电子科技大学《C语言》20春期末考试
试卷总分:100  得分:30
一、单选题 (共 30 道试题,共 75 分)
1.判断字符串a和b是否相等,应使用( )。
A.if(a==b)
B.if(a=b)
C.if(strcpy(a,b))
D.if(strcmp(a,b)==0)
答案:D
2.已知a=8,b=3,c=4,表达式(a>b&&c>a)||(ab)的值是( )。
A.15
B.12
C.1
D.0
答案:D
3.设int x=1,y=1;表达式(!x++||y--)的值是( )。
A.0
B.1
C.2
D.-1
答案:B
4.下面四个选项中,均是不合法的用户标识符的选项是( )。
A.c-d if double
B.float la0 _A
C.A P_0 while
D._123 temp BYTE
答案:A
5.以下描述正确的是( )。
<语句只能用于退出多层循环
B.switch语句中不能出现continue语句
C.在循环中break语句不能独立出现只能用
答案:C
6.下面程序有错误的行是(行前数字表示行号)( )。 1 main() 2 { 3 float a[10]={0.0}; 4 int i; 5 for(i=0;i<3;i++) scanf("%d",&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf("%f\n",a[0]); 8 }
A.没有错误
B.第3行有错误
C.第5行有错误
D.第7行有错误
答案:C
7.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )。
A.不确定
B.int
C.float
D.double
答案:D
printf输出格式%b8.以下叙述错误的是( )。
A.一个C程序只能包含一个main函数
B.C语言的注释符可以“/*”开始并以“*/”结束
C.C语言本身具有输入输出语句
D.在对一个C程序进行编译的过程中,不能发现注释中的拼写错误
答案:C
9.已有定义int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是( )。
A.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
B.%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
C.%x是格式符的一种,它可以适用于任何一种类型的数据
D.整型变量的输出格式符只有%d一种
答案:A
10.已有说明 float f=3.14,*p;若让p指向f,则正确的赋值语句是( )。
A.p=f;
B.p=&f;
C.*p=f;
D.*p=&m
答案:B
11.执行语句"x=(a=3,b=a--)"后,x,a,b的值依次为( )。
A.3,2,3
B.3,2,2
C.3,3,2
D.2,3,2
答案:A
12.下面函数调用语句含有实参的个数为( )。fun((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
答案:B
13.设x、y均为float型变量,则以下不合法的赋值语句为
A.++x;
B.y=(x%2)/10;
C.x*=y+8
D.x=y=0
答案:B
14.以下能对二维数组a进行正确初始化的语句是( )。
A.int a[2][]={{1,0,1},{5,2,3}};
B.int a[2][4]={{1,2,3},{4,5},{6}};
C.int a[][3]={{1,2,3},{4,5,6}};
D.int a[][3]={{1,0,1}{},{1,1}};
答案:C
15.int i=0; while(i++<5); 循环结束后i的值是( )。
A.6
B.7
C.5
D.8
答案:C
16.若已定义int a; 下面对(1)(2)两个语句的正确解释是( )。 (1)int *p=&a; (2)*p=a;
A.语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值
B.(1)和(2)语句的执行