{int k=0; char c='A'; do {
switch (c++) {
case 'A': k++; break; case 'B': k--;
case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3; } k++; }
while(c<'G');
printf(\}
7.阅读下列程序,当输入为:ab*ABí#CD$ 时,写出程序运行的输出结果。void main ( ) {char c;
while((c=getchar( ))!='$')
{if('A'<=c && c<'Z') putchar(c);
else if('a'<=c && c<='z') putchar(c-32); } }
8.阅读下列程序,输入数据:2,4 写出程序运行的输出结果。 #include
{int i,s=1,t=1,a,n;
scanf(\for(i=1;i s*=a; printf(\} 9.阅读下列程序,写出程序运行的输出结果。 #include for(i=0;i<4;i++) {for(j=1;j<=i;j++) printf(\n=7-2*i; for(j=1;j<=n;j++) printf(\printf(\ 16 } } 第4章 数组 一、选择题 1.在C语言中,在int num[5]={10,20,30,40,50}中,num[3]的值是( )。 A.20 B.50 C.40 D.10 2.若int a[10];,则下列( )可以正确引用a数组的元素。 A.a [10] B.a[3+1] C.a(5) D.a[11] 3.若int num[10];,要将10赋值到数组num的第4个元素,正确的方法是( )。 A.num[3]=10; B.Num[3]=10; C.num[4]=10; D.Num[4]=10; 4.在C语言中,若要定义一个数组用于保存5个参赛者,参加4个不同项目的比赛成绩,是应是( )。 A.score[6][5] B.score[4][3] C.score[5][4] D.score[5] 5.执行下面的C代码段后,屏幕输出结果是( ) 。 char str1[15] = \ char str2[15] = \ strcpy(str1,str2); printf(\ A.She is a girl B.He is a boy C.She is a girl He is a boy D.He is a boy She is a girl 6.以下对二维数组a进行初始化,不正确的是( )。 A.int a[] [3]={1,2,3,4,5,6}; B.int a[] [3]={{1,2,3},{4,5,6}}; C.int a[2] [3]={{1,2,3},{4,5,6}}; D.int a[] []={{1,2,3},{4,5,6}}; 7.下列描述中不正确的是( )。 A.字符型数组中可以存放字符串 B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行整体输入、输出 D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 8.以下程序的输出结果是 ( )。 #include strcpy (&b[0],\ strcpy (&b[1],\ strcpy (&b[2],\ 17 printf (\} A.CFGH B.ACFGH C.ABCDEFGH D.FGH 9.假定int类型变量占用2个字节,若有定义:int x[8]={1,2,3};,则数组x在内存中所占字节数是( ) 。 A.3 B.6 C.10 D.16 10.若char x[ ]=\ char y[ ]={'a','b','c','d'}; 则正确的叙述为( )。 A.数组x和数组y长度相等 B.数组x的长度小于数组y的长度 C.数组x的长度大于数组y的长度 D.以上都不对 11.以下程序执行后的输出结果是( )。 #include {int i,test ,p[17],head; for(i=0;i<16;i++) p[i]=i+1; p[16]=0; test=0; while(test!=p[test]) {for(i=1;i<3;i++) {head=test; test=p[test]; } p[head]=p[test]; test=p[head]; } printf(\} A.1,2,3 B.2,3,4 C.10 D.4 12.有以下程序 #include { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<=i;j++) printf(\ for(j=_____;j<4;j++) printf(\printf(\ } } 若要按以下形式输出数组右上半三角 18 ??1 2 3 4 ?? 6 7 8 ?? 11 12 ?? 16 则在程序下划线处应填入的是( )。 A.i-1 B.i C.i+1 D.4-i 13.若有定义语句:int b;char c[10];,则下列正确的输入语句是( )。 A.scanf(\B.scanf(\ C.scanf(\ D.scanf(\14.若定义:int a[100];,则下列数组元素的引用中,非法的是( )。 A.a[0] B.a[1] C.a[99] D.a[100] 15.有以下程序 main() { char a[7]=\ int i,j; i=sizeof(a); j=strlen(a); printf(\} 程序运行后的输出结果是( )。 A.2 2 B.7 6 C.7 2 D.6 2 16.有以下程序 #define N 20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf(\} 程序运行后的输出结果是( )。 A.10234 B.12344 C.12334 D.12234 17.有以下程序 main() { char str[][10]={\int n=0,i; 19 for(i=0;i<7;i++) if(str[i][0]==′r′) n++; printf(\ } 程序执行后的输出结果是( )。 A.0 B.1 C.2 D.3 18.有以下程序 #include 程序运行后的输出结果是( )。 A.42 B.40320 C.105 D.384 19.有以下程序 main() {int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=t[i]; printf(\} 程序执行后的输出结果是( )。 A.45 B.20 C.25 D.36 20.以下程序运行后的输出结果是( )。 #include \main() { char ch[]=\ i; for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++) printf(\ printf(\} A.abcbcc B.2 C.3 D.无数 二、填空题 1.不管数组是几维的,程序内存都是按 维存放的。2.用来引用特定数组元素的数值称为 。 3.数组长度和数组的最大下标之间相差 。 20