一、选择题(每题1.5分,共计45分)
1、以下叙述正确的是【 】
A.C语言程序是由过程和函数组成的
B.C语言函数可以嵌套调用,例如:fun(fun(x)) C.C语言函数不可以单独编译
D.C语言中除了main函数,其他函数不可作为单独文件形式存在 2、以下关于C语言的叙述中正确的是【 】
A.C语言中的注释不可以夹在变量名或关键字的中间 B.C语言中的变量可以在使用之前的任何位置进行定义
C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D.C语言的数据常量中夹带空格不影响常量的正常使用 3、以下C语言用户标识符中,不合法的是【 】 A._1 B.AaBc C.a_b D.a—b
4、若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是【 】 A.a=a++,i++;
B.i=(a+k)<=(i+k); C.i=a; D.i=!a;
5、有以下程序
#include
{ char a,b,c,d; scanf(“%c%c”,&a,&b);
c=getchar(); d=getchar(); printf(“%c%c%c%c\\n”,a,b,c,d); }
当执行程序时,按下列方式输入数据(从第1列开始,
则输出结果是【 】 A.1234 B.12 C.12 3 D.12 34
6、以下关于C语言数据类型使用的叙述中错误的是【 】 A.若要准确无误差的表示自然数,应使用整数类型
B.若要保存带有多位小数的数据,应使用双精度类型
C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
7、若a是数值类型,则逻辑表达式(a= =1)||(a!=1)的值是【 】 A.1 B.0 C.2
D.不知道a的值,不能确定
8、以下选项中与if(a= =1)a=b; else a++; 语句功能不同的switch语句是【 A.switch(a) {case:a=b;break; default:a++; }
B.switch(a= =1) {case 0:a=b;break; case 1:a++; }
C.switch(a)
{default:a++;break; case 1:a=b; }
D.switch(a= =1) {case 1 : a=b;break; case 0 : a++; }
9、有如下嵌套的if语句 if (a
if(b 以下选项中与上述if语句等价的语句是【 】 A.k=(a<b)?a:b; k=(b<c)?b:c; B.k=(a<b)?((b<c)?a:b:((b>c)?b:c); C.k=(a<b)?((a<c)?a:c):((b<e)?b:c); D.k=(a<b)?a:b; k=(a<c)?a:c; 10、有以下程序 #include<stdio.h> main() {in i,j,m=1; for(i=1;i<3;i++) 】 {for(j=3;j>O;j--) {if(i*j)>3)break; m=i*j; } } printf(\\n\); } 程序运行后的输出结果是【 】 A.m=6 B.m=2 C.m=4 D.m=5 11、有以下程序 #include(stdio.h> main() {int a=l;b=2; for(;a<8;a++) {b+=a;a+=2;} printf(\,%d\n\,a,b); } 程序运行后的输出结果是【 】 A.9,18 B.8,11 C.7,11 D.10,14 12、有以下程序,其中k的初值为八进制数 #include {int k=011; printf(\\n\,k++); } 程序运行后的输出结果是【 】 A.12 B.11 C.10 D.9 13、下列语句组中,正确的是【 】 A.char *s;s=\ B.char s[7];s=\ C.char *s;s={\}; D.char s[7];s={\}; 14、以下关于return语句的叙述中正确的是【 】 A.一个自定义函数中必须有一条return语句