一、选择题
1. 以下选项中能表示合法常量的是( )。
A. 整数:1,200
B. 实数:
1.5E2.0
答:D
【解析】A 项错误,表达错误;B 项错误,E 后面应为整数,不能是小数;C 项错误;字符斜杠的表示方法
正确。
2. 有以下程序:
程序的运行结果是( )。
答:C
【解析】在funO 函数中,
出。
3. 有以下程序
第 2 页,共 33 页 因为第一个\表示是转义字符;D 项正确,表示空字符串,
第一个字符为表示X 取值为a 的小数部分,因此,输入a 为输
执行后的输出结果是( )。
A.32
B.24
C.5
D.40
答:A
【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1
,然后再判断++i的值(i 加1之后的值)是否能被之前的值)是否能被5整除(判断后i 被加1)
8整除(判断后i 被加1),若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,此时i=31,++i%8==0成立,此时i=32。
4. 有以下程序:
程序运行后的输出结果是( )。
A.0
B.1
C.2
D.3
答:C
【解析】“++”和“一”运算,当以前缀形式出现时,贝U 先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。a 初始定义为1,b 为0,先执行--a ,结果为0,即if 判断为假,执行b+=2; ,然后输出b 的值。即b 为2。
5. 若有以下程序段:
输出结果是。
A.16
B.8
C.4
D.2
第 3 页,共 33 页
答:C
【解析】C 语言中,右移运算符是将变量转换成二进制,然后右移相应位数,将移出的位信息舍去,并在高位补0, 将所得的结果再赋值给变量。本题十进制数8转换为二进制数为00001000, 右移一位得到00000100, 再转换成十进制数就是4。
6. 下列叙述中正确的是( )。
A. 在switch 语句中,不一定使用break 语句
B. 在switch 语句中,必须使用default
C.break 语句必须与switch 语句中的case 配对使用
D.break 语句只能用于switch 语句
答:A
【解析】break 语句放入功能是跳出正在执行的条件语句或循环语句,switch 语句中可以根据需要选择是否使用break 语句,A 项正确;default 语句在switch 语句中可以省略,因此B 项错误;switch 语句中并非每个case 后都需要使用break 语句,因此C 项错误;break 语句还可以用于for 等循环结构中,因此D 项错误。
7. 设有定义:
则以下赋值语句中错误的是( )。
A.data2=datal;
B.data2=(2,6);
C.data2.real=datal.real;
D.data2.real=datal.unreal;
答:B
【解析】B 项错误,对结构体进行初始化时,应该用花括号括起来的一组值,而不是用小括号。
8. 以下叙述正确的是( )。
A.C 程序总是以main ( )作为程序执行的起始行
B.main ( )函数若不带参数,其后面的一对圆括号可省略
C. 函数体内的定义语句和可执行语句允许任意穿插出现
D.C 语言中的语句之间必须用分号作为分隔符
答:A
【解析】main ( )函数后面的括号告诉编译器这是一个函数,不可以省略,排除B 选项;在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C 选项;C 语言中的某些语句可以不用分号,例如if 语句,宏定义,故D 选项错误;
第 4 页,共 33 页