矩阵两条对角线元素之和
矩阵所有不靠边元素之和
矩阵所有元素之和
矩阵所有靠边元素之和
第1题:
下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
define N 20
void fun(int *a,int n)
{
int i, m,t,k;
/*************found**************/
for(i=O; i<n; i++)
{
m==i;
for(k=i; k<n; k++)
if(a[k]<a[m])
/*************found**************/
k=m;
t=a[i];
a[i]=a[m];
a[m]=t;
}
}
main()
{
int x,b[N]={11,5,12,0,3,6,9,7,10,8},
n=10,i;
clrscr();
for(i=0; i<n; i++)
printf("%d",b[i]);
printf("\n");
fun(b,n);
for(i=0; i<n; i++)
printf("%d",b[i]);
printf("\n");
}
第2题:
以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define N 3
#define M 3
select(int a[N][M],int *n)
{int i,j,row=1,colum=1;
for(i=0;i
for(j=0;j
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n= 【16】 ;
return 【17】 ;
}
main()
{int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
第3题:
以下程序中函数 f 的功能是在数组 x 的 n 个数 ( 假定 n 个数互不相同 ) 中找出最大最小数 , 将其中最小
的数与第一个数对换 , 把最大的数与最后一个数对换 . 请填空 .
#include <stdio.h>
viod f(int x[],int n)
{ int p0,p1,i,j,t,m;
i=j=x[0]; p0=p1=0;
for(m=0;m<n;m++)
{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]<j) {j=x[m]; p1=m;}
}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1]; x[p1]= _[14]_______ ; _[15]_______ =t;
}
main()
{ int a[10],u;
for(u=0;u<10;u++) scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++) printf("%d",a[u]);
printf("\n");
}
第4题:
请编一个函数void fun( int tt[M][N], int pp[N], tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <conio.h>
include <stdio.h>
define M 3
define N 4
void fun(int tt[M][N],int pp[N])
{
}
main()
{
int t[M] [N]={{68,32,54,12},{14,24,88,
58},{42, 22, 44, 56}};
int p[N],i,j,k;
clrscr();
printf("The riginal data is:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nThe result is:\n");
for(k=0;k<N;k++)
printf("%4d",p[k]);
printf("\n");
}
第5题:
A、O(m2)
B、O(n2)
C、O(m*n)
D、O(m+n)
第6题:
以下程序中的select()函数功能是:在N行M列的二维数组中选出一个最大值作为函数值返回,并通过形参传回此最大值的行下标。请填空完成此程序。
include<iostream>
define N 3
define M 3
using namespace std;
int select(int a[N][M],int *n)
{
int i,j,row=0,colum=0;
for(i=0;i<N;i++)
for(i=0;j<M;j++)
if(a[i][j]>a[row][colum])
{
row=i;
colum=j;
}
*n=【 】;
return 【 】;
}
int main()
{
int a[N][M]={9,11,23,6,1,15,9,17,20};
int max,n;
max=select(a,&n);
cout<<"max="<<max<<"line="<<n<<end1;
return 0;
}
第7题:
已知有一维数组A[0...m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系______可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。
A.i=k/n,j=k%m
B.i=k/m,j=k%m
C.i=k/n,j=k%n
D.i=k/m,j=k%n
第8题:
以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。#define N 3#define M 3select(int a[N][M],int *n){int i,j,row=0,colum=0;for(i=0;i<N;i++)for(j=0;j<M;j++)if(a[i][j]>a[row][colum]){row=i;colum=j;}*n=;return();}
第9题:
下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素的平方和,返回此和数。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
define M 5
int fun(int n,int XX[][M])
{
int i,j,sum=O;
printf("\nThe %d x %d matrix:\n",M,M);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
/*************found*************/
printf("%4d",XX[i j]);
/*************found*************/
printf('\n');
}
for(i=0;i<n;i++)
sum+=xx[i][i]*XX[i][i]+XX[i][n-i-1]
*XX[i][n-i-1];
return(sum);
}
main()
{
int aa[M][M)={{3,12,4,24,35},
{11,3, 3,7, 56},{61,27,58,49,24},
{17,28,7,36,85},{15,33,5,24,9}};
clrscr();
printf("\nThe result of all elements on 2
diagnals iS%d",fun(M,aa));
}
第10题:
给定程序MODllC中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。
inClude<coMo.h>
inClude<stdio.h>
dehne M 5
/************fOUnd************/
int fun(int n,int xx[][])
{int i,j,sum=0;
printf("\n The%dx%d matrix:\n"M,M);
for(i=0;i<M;i++)
{ for(j=0;j<M;j++)
/************found************/
printf("%f",xx[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
sum+=xx[i][i]+XX[i][[n-i-1];
return(sum);
}
main( )
{int aa[M][M]={{1,2,3,4,5),{4,3,2,1,0),
{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
clrscr( );
printf("\n The sum Of all elements On 2 diagnals is %d."fun(M,aa));
}