C\\C++程序设计复习题
一、 选择题
1、 一个C语言程序总是从( C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main( ) D) 不确定
2、以下能正确定义二维数组的是 ( C ) A.int a[][3]; B.int a[][3]=2{2*3}; C.int a[][3]={};
D.int a[2][3]={{1},{2},{3,4}};
3、设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D ) A) ?x?&&?y? B) x||y+z&&y-z C) x<=y D) !((x 4、 执行以下程序段后,i的值是 ( C ) int i=10; switch(i+1) { case 10: i++; break; case 11: ++i; case 12: ++i; break; default : i=i+1; } A) 11 B) 13 C) 12 D) 14 5、语句while(!e);中的条件!e等价于 ( B ) A) e==0 B)e!=1 C) e!=0 D) 运行时出错 6、下列数据中,为字符串常量的是( B ) 。 (A)?A? (B)“house” (C)How do you do. (D)?$abc? 7、 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 ( B ) A) 随机值 B) 0 C) 1 D) F 8、 在执行char str[10]=“china\\0”; strlen(str)的结果是 ( B ) A)5 B) 6 D) 7 D 9 9、 若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是 ( B ) A) 随机值 B) m C)o D) omputer 10、有以下程序 ( D ) main() { int i=0,x=0; for (;;) { if(i==3||i==5) continue; if (i==6) break; i++; s+=i; }; printf(\ } 程序运行后的输出结果是 A.10 B.13 C.21 D.程序进入死循环 11、以下定义语句中正确的是 ( C ) A.char a='A'b='B'; B.float a=b=10.0; C.int a=10,*b=&a; D.float *a,b=&a; 12、设有int x=11;则表达式(x++*l/3)的值为( B )。 (A)3 (B)4 (C)11 (D)12 13、 在说明一个结构体变量时系统分配给它的存储空间是( D ) A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间 C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和 14、 用C语言编写的代码程序( B ) A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 15、C语言中用于结构化程序设计的三种基本结构是( A ) A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 16、下列选项中,不能用作标识符的是( D ) A)_1234_ B)_1_2 C) int_2_ D)2_int_ 17、有以下程序 main() { int m=0256,n=256;printf(\ } 程序运行后的输出结果是 ( C )(//0256以0开头,表示是8进制整数,%o以8进制输出,0x是16进制,%x是16进制。) A.0256 0400 B.0256 256 C.256 400 D.400 400 18、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)的c语言表达式是( A )。 (A)x/y*z (B)x*(1/(y*z)) (C) x/y*1/z (D)x/y/z 19、有以下程序 int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s[i]);i++) d+=s[i];//f(s[i])为判断奇偶 printf(\ } 程序运行后的输出结果是 ( A ) A.9 B.11 C.19 D.21 20、以下叙述中正确的是 ( A ) A)局部变量说明为static存储类,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局部变量完全相同 21、有以下程序 ( B ) main() { char a='a',b; print(\ printf(\ } 程序运行后的输出结果是 A.b,b B.b,c C.a,b D.a,c 22、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5); 23、有以下程序( B ) main() { char a='a',b; printf(\ printf(\ 程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c 24、有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { D ) case 0:printf(\ case 2:printf(\ default:printf(\ } } 程序运行后的输出结果是 ( D ) A.022111 B.021021 C.000122 D.012 25、假定w、x、y、z、m均为int型变量;有如下程序段: w=1;x=2;y=3;z=4; m=(w (D) 1 26、已定义c为字符型变量,则下列语句中正确的是( A ) A)c='97'; B)c=\ C)c=97; D)c=\ 27、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是((A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回实参 (D) 传递方式由用户指定 28、以下定义语句中,错误的是 ( D )。 (A)int a[]={1,2}; (B) char *a[3]; (C)char s[10]=\; (D) int n=5,a[n]; 29、以下能正确定义数组并正确赋初值的语句是( D ) A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; d[3][2]={{1,2},{34}}; B ) 。 D)int