习题6(第七章)数组 下载本文

{ char s[80],c1,c2=‘’; int i=0,num=0; gets(s); while(s[i]!=‘\\0’) { c1=s[i]; if(i==0) c2=‘’; else c2=s[i-1]; if(【1】) num++; i++; } printf(“There are %d words.\\n”,num); } 【1】 A)c1==‘’&&c2==‘’ B)c1!=‘’&&c2==‘’ C)c1==‘’&&c2!=‘’ D)c1!=‘’&&c2!=‘’

【题7.46】下面程序的运行结果是 A 。 #include main() { char ch[7]={“12ab56”}; int i,s=0; for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2) s=10*s+ch[i]-‘0’; printf(“%d\\n”,s); }

A)1 B)1256 C)12ab56 D)1 2 5 6

【题7.47】当运行以下程序时,从键盘输入:aa bb cc dd (表示回车),则下面程序的运行结果是 A 。 #include main() { char a1[5],a2[5],a3[5],a4[5]; scanf(“%s %s”,a1,a2); gets(a3); gets(a4); puts(a1); puts(a2); puts(a3); puts(a4); }

A)aa B)aa C)aa D)aa bb bb bb bb cc cc cc dd dd cc dd dd ee

【题7.48】当运行以下程序时,从键盘输入:ab c def (表示回车),则下面程序的运行结果是 D 。 #include #define N 6 main() { char c[N]; int i=0; for(;i

A)abcdef B)a C)b D)ab b c c c d d d e f

【题7.49】当运行以下程序时,从键盘输入:AhaMA Aha(表示回车),则下面程序

的运行结果是 A 。

#include main() { char s[80],c=‘a’; int i=0; scanf(“%s”,s); while(s[i]!=‘\\0’) { if(s[i]==c) s[i]=s[i]-32; else if(s[i]==c-32) s[i]=s[i]+32; i++; } puts(s); }

A)ahAMa B)AhAMa C)AhAMa ahA D)ahAMa ahA

【题7.50】下面程序的运行结果是 D 。

#include main() { char a[80]=“AB”,b[80]=“LMNP”; int i=0; strcat(a,b); while(a[i++]!=‘\\0’) b[i]=a[i]; puts(b); }

A)LB B)ABLMNP C)AB D)LBLMNP

【题7.51】下面程序的运行结果是 B 。 #include main() { char str[]=“SSSWLIA”,c; int k; for(k=2;(c=str[k])!=‘\\0’;k++) { switch(c) { case ‘I’: ++k; break; case ‘L’: continue; default: putchar(c); continue; } putchar(‘*’); } }

A)SSW* B)SW* C)SW*A D)SW

【题7.52】下面程序的运行结果是 B 。 #include main() { char a[]=“morning”,t; int i,j=0; for(i=1;i<7;i++) if(a[j]

A)mogninr B)mo C)morning D)mornin

7.2 填空题

【题7.53】在C语言中,二维数组的定义方式为:类型说明符数组名[【1】常量表达式][【2】常量表达式];

【题7.54】在C语言中,二维数组元素在内存中的存放顺序是【 】按行主顺序存放。

【题7.55】若有定义:double x[3][5];则x数组中行下标的下限为【1】,列下标的上限为

【2】。

【题7.56】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为:【 】。 (假设a[0][0]位于数组的第一个位置上。)

【题7.57】若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到

的初值是【1】,a[2][1]得到的初值是【2】。

【题7.58】若有以下输入(代表回车符),则下面程序的运行结果是 。 7 10 5 4 6 7 9 8 3 2 4 6 12 2 -1 main() { int b[51],x,i,j=0,n=0; scanf(“%d”,&x); while(x>-1) { b[++n]=x; scanf(“%d”,&x); } for(i=1;i<=n;i++) if(b[i]%2==0) b[++j]=b[i]; for(i=1;i<=j;i++) printf(“=”,b[i]); printf(“\\n”); }

【题7.59】下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main() { int a[N],i; for(i=0;i

【题7.60】下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。 main()