for(I=0;I<4;I++) for(j=0;J
13、以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。请填空。
2 -1 -7 -9 a= -4 0 b= -8 10 3 1 main()
{int a[3][2]={2,-1,-4,0,3,1}; int b[4][3]={7,-9,-8,10}; int I,j,k,s,c[3][2]; for(I=0;I<3;I++) for(j=0;j<2;j++)
{for(s=0,k=0;k<2;k++) s+=a[i][k]*b[k][j]; c[i][j]=s; } for(I=0;I<3;I++) {
for(j=0;j<2;j++) printf(―m‖,c[I][j]); printf(―\\n‖); } }
14、下面程序的运行结果是( )。 main()
{int I,j,row,col,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}}; min=a[0][0];
21
for(I=0;I<3;I++) for(j=0;j<4;j++) if(a[i][j] {min=a[i][j];row=I;col=j;} printf(―%d,%d,%d\\n‖,min,row,col); } 15、找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。 void f31(int m, int n, int arr[] ) {int I,j,k,max,row,col,flag; for(I=0;I {max=arr[I*n+0]; row=I;col=0; for(j=1;j if(arr[I*n+j]>max) {max=arr[I*n+j]; row=I;col=j;} flag=1; for(k=0;k if(arr[k*n+j] if(flag==1) printf(―鞍点的位置:第%d行,第%d列‖,I,j); } } 16、打印出以下的杨辉三角形(包括10行) 1 1 1 1 1 1 2 1 3 3 1 4 6 4 1 1 5 10 10 5 …....…..... main() {int a[10][10],I,j; for(I=0;I<10;I++) { a[I][0]=1; a[I][I]=1; 22 } for(I=2;I<10;I++) for(j=1;J a[I][j]=a[I-1][j]+a[I-1][J-1]; } 17、下面是一个5*5阶螺旋方阵。试编程打印出此形式的n*n的方阵 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 main() { int a[10][10],I,j,k=0,m,n; printf(―%d‖,&n); if(n%2==0) m=n/2; else m=n/2+1; for(I=0;I for(I=0;I printf(―]‖,a[i][j]); printf(―\\n‖); } } 18、有已排好序的字符串a,下面的程序是将字符串s中的每个字符按升 23 序的规律插入到a中。请填空。 #include char a[20]=‖cehiknqtw‖; char s[]=‖fbla‖; int I,k,j; for(k=0;s[k]!=‘\\0‘;k++) {j=0; while(s[k]>=a[j]&&a[j]!=‘\\0‘) j++ for(________________) (__________________); a[j]=s[k]; } puts(a); } 19、下面程序的功能是在三个字符串中找出最小的。请填空。 main() {char s[20],str[3][20]; int I; for(I=0;I<3;I++) gets(str[i]); strcpy(s,________); if(strcmp(str[2],s)<0) strcpy(s,str[2]); printf(―%s\\n‖,__________); } 20、下面程序的运行结果是( ) #include ―stdio.h‖ main( ) {char s[ ]=‖ABCCDA‖,c; int k; for(k=1;(c=s[k])!=‘\\0‘;k++) {switch(c) {case ?A‘:putchar(?%‘);continue; case ?B‘:++k;break; default:putchar(?*‘); 24 case ‘C‘:putchar(?&‘);continue; } putchar(?#‘); } } 21、输入一行字符,统计其中有多少个单词,规定单词间以一个或多个空格相隔。 #include ―stdio.h‖ main( ) { char string[81]; int I,s=0,flag=0; gets(string); for(I=0;string[i]!=‘\\0‘;I++) { if((flag==0)&&(a[i]>=‘a‘&&a[i]<=‘z‘)||(a[i]>=‘A‘&&a[i]<=‘Z‘)) {flag=1; s=s+1; } if a[i]=‘ ‘ flag=0; } printf(―%d‖,s); } 附录:答案 一、 选择题 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB 二、 填空题 1、 continue a[I] 2、7 3、t=a[5] I=5 4、t*m 5、1 3 4 5 6、10010 7、the number is:5,the average is:5.000000 8、a[1]=3 a[2]=4 a[3]=3 9、PAGE 10、y 2 –28 25 11、strcmp(str[0],str[1])? S 12、600 13、1001 14、15 I+8 15、6 三、判断题 1—5 错对对对对 6—10 错对错错错 11—12对对 四、程序填空 1、i=0 n/2-1 2、i 4、i=0 n-1 5、min=a[0] k=i max=a[0] j=i 6、flag=0 flag==0 a[i][j]=‘‘ 7、int i; for(i=n;i 12、b[j][i]=a[i][j] 14、scanf(―%s‖,c[i]); p=I; j=i+1 strcmp(c[j],c[i]) 五、综合应用 2、1 3 4 5 3、0 1 2 3 4 4、a[I]>b[j] j<5 I<3 5、break x!=a[I] 6、void f(int a[],int n) {int I,t; for(I=0;I {t=a[I]; a[I]=a[n-I]; a[n-I]=t;}} 7、 1 2 3 4 5 8、10010 18、(I=strlen(a);I>=I;I--) a[I+1]=a[I] 19、(strcmp(str[0],str[1]))<0?str[0]:str[1] s 20、#&*&% 26