C语言笔试习题(1)

来源:百度知道 编辑:UC知道 时间:2024/04/27 12:09:13
请给出详细解释
1.以下叙述中正确的是
A.可以把printf和if定义为用户标识符
B.可以把printf定义为用户标识符,但不能把if定义为用户标识符
C.可以把if定义为用户标识符,但不能可以把printf定义为用户标识符
D.printf和if都不能定义为用户标识符
(答案B)
2.若变量已正确定义,以下非法的表达式是
A.a/=b+c
B.a%(4.0)
C.a=1/2*(x=y=20,x*3)
D.a=b=c
(答案D)
3.已有定义:double x; int i;,能正确给x赋70000.0的表达式是
A.x=7000*10
B.x=70000
C.x=35000+35000
D.i=700,x=i*100
(答案:B)
4.设x为int类型,其值为11,则表达式:(x++*1/3)的值是
A.3
B.4
C.11
D.12
(答案:C)
5.以下叙述中正确的是
A.C程序中,赋值运算符的优先级最低
B.若a是实型变量,C程序中允许进行以下赋值:a=10,因此,实型变量中允许存放整型数。
C.若a和b类型相同,在执行了赋值a=b后b中的值将放入a 中,b 中的值将丢失。
D.在C程序中,除号运算符“/”两边的类型相同时才能进行相除运算。
(答案:D)

6.int a=-1;printf(“%o,%x%u\n”,a,a,a); 输出结果为 ____________________________________
int b=32767;printf(“%o,%x,%u\n”,b,b,b); 输出结果为________________________________
(答案:177777,ffff,65535
77777,7fff,32767)

问题的解释是:

1:(可以把printf定义为用户标识符,但不能把if定义为用户标识符)

if是c语言的关键字,所以规定不可以,printf可以被用户自定义为用户定义

的函数。

2:(A.a/=b+c B.a%(4.0) C.a=1/2*(x=y=20,x*3) )

a,b,c是变量表达式,所以不能定义为变量。

3:答案a等于70000.000000000,c的答案是70000.000000000

d的答案是70000.000000000

4:答案是B,vc下面得到的答案

5:a错是因为运算符的优先级最低的是逗号运算符,

b错是因为实型变量中允许赋值整性变量但是不允许存放整型数

c 错是因为b中的值不会丢失!

6:%o是八进制的输出形式,八进制的177777就是int值的-1,
%x是16进制无符号的输出形式,
%u是无符号的10进制的输出形式。

你可以看一看各种格式的输出形式即可:

你可以调出计算机转化一次就可以明白了。