数组 ·11·
int a[3][3]={1,2,3,4,5,6,7,8,9},i,s1=0,s2=1; for(i=0;i<=2;i++) { s1=s1+ a[i][i];
s2=s2*a[i][i];};
printf(\ }
12. 以下程序完成功能是:计算两个3*4阶矩阵相加,并打印出结果。请填空。
#include
int a[3][4]={{3,-2,1,2},{0,1,3,-2},{3,1,0,4}}; int b[3][4]={{-2,3,0,-1},{1,0,-2,3},{-2,0,1,-3}}; int i,j,c[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) ________; for(i=0;i<3;i++) { for(j=0;j<4;j++)
printf(\printf(\} }
13. 以下程序的运行结果是________.
main() {
int i, j,a[3][3]; for(i=0;i<3;i++) {for(j=0;j<3;j++)
{if(i==3) a[i][j]=a[i-1][a[i-1][j]]+1; else a[i][j]=j; printf(\}
printf(\
} }
14. 阅读下列程序:
#include
int i, j, row, column,m;
static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}}; m=array[0][0];
for (i=0; i<3; i++) for (j=0; j<3; j++)
if (array[i][j] { m=array[i][j]; row=i; column=j;} 数组 ·12· printf(\ } 上述程序的输出结果是 ________。 15. 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该 是________。 : . char a[10],b; scanf(\ : . 16. 以下程序段的输出结果是________。 main() { char b[]=\ b[5]=0; printf(\} 17. 若有以下程序段,若先后输入: English? Good? 则其运行结果是________。 main() { char c1[60],c2[3]; int i=0,j=0; scanf(\ scanf(\ while(c1[i]!= '\\0') i++; while(c2[j]!= '\\0') c1[i++]=c2[j++]; c1[i]= '\\0'; printf(\} 18. 从键盘输入由5个字符组成的单词,判断此单词是不是hello,并显示结果。 #include static char str[ ]={‘h’,’e’,’l’,’l’,’o’}; char str1[5]; 【1】 ; for(i=0;i<5;i++) 【2】 ; flag=0; for(i=0;i<5;i++) if 【3】 {flag=1; break;} 数组 ·13· if(flag) printf(\else printf(\} 19. 以下程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。 请填空。 #include { char a[]=\ int i, j, k; k=strlen(a); for(i=0; i<=k-2; i+=2) for(j=i+2; j<=k; 【1】) if( 【2】 ) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(\ } 20. 输入5个字符串,将其中最小的打印出来。 main() { char str[10],temp[10]; int i; 【1】; for(i=0;i<4;i++) {gets(str); if (strcmp(temp,str)>0) 【2】; } printf(\} 21. 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不 相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。 #include char str1[100],str2[100],c; int i,s; printf(\ printf(\ i=0; while((strl[i]==str2[i]&&(str1[i]!= 【1】)) i++; s= 【2】 ; printf(\ } 数组 ·14· 22. 设有下列程序: #include int i; char str[10], temp[10]; gets(temp); for (i=0; i<4; i++) { gets(str); if (strcmp(temp,str)<0) strcpy(temp,str); } printf(\} 上述程序运行后,如果从键盘上输入(在此 则程序的输出结果是 ________。 23. 以下程序功能是:统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标 志,请填空。 #include #include int num[26],i; char c; for(i=0; i<26; i++) num[i]=0; while( 【1】 != '#') /*统计从终端输入的大写字母个数*/ if( isupper(c)) num[c-65]+=1; for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/ if(num[i]) printf(\【2】 , num[i]); } 24. 下面程序段完成功能是:输出两个字符串中对应字符相等的字符。请填空。 char x[ ]= \char y[ ]= \int i=0; while (x[i]!= 【1】 &&y[i]!= 【2】 ) { if (x[i]==y[i]) printf(\【3】); else i++; } 25. 下面程序完成功能是:计算一个字符串中子串出现的次数。 #include 数组 ·15· { int i ,j, k,count; char str1[20],str2[20]; printf(\gets(str1); printf(\gets(str2); 【1】; for(i=0;str1[i];i++) for(j=i,k=0;str1[j]==str2[k];j++,k++) if ( 【2】 ) count++; printf(\} 26. 下面程序完成以下功能:从键盘输入一行字符,统计其中有多少个单词,单词之间用空 格分隔。 #include char s[81]; int i , c, num=0,word=0; 【1】; for(i=0;(c=s[i])!=’\\0’;i++) if(c==32) 【2】; else if (word==0) {word=1; 【3】;} printf(\} 27. 下面程序完成功能是:判定用户输入的正整数是否为“回文数”,所谓“回文数”是指正 读反读都相同的数。请填空。 #include int buffer[10], i,k,flag; long number ,n; printf(\scanf(\k=0; n=number; do { 【1】 ; k=k+1; n=n/10; }while (n!=0); flag=1; for( i=0;i<=(k-1)/2;i++)