一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.02 B.13 C.57 D.12
【答案】D 【解析】
具有短路效应,当
前面的表达式结果为逻辑假时后面的表达式不在进行
计算。k++首先去k 的值,为0, 为逻辑假不在进行的计算,k 的值为1, 所以结果为1和2。
2. 关于C 语言标识符,以下叙述错误的是( )。
A. 标识符可全部由数字组成 B. 标识符可全部由下划线组成 C. 标识符可全部由小写字母组成 D. 标识符可全部由大写字母组成 【答案】A
【解析】标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。所以,B 、 C 、D 选项正确,答案为A 选项。
3. 有以下程序:
程序运行的结果是( )。 A.3456787 B.876543 C.1098765 D.321678 【答案】D
【解析】由于数组名本身是一个地址,所以在用数组名作为实参传递时,对应的形参相当于一个指针变量,在函数中可以通过指针变量来引用数组元素,从而改变元素的值。本题中函数fun 的作用是将数组A 的前n 个元素进 行逆转,变为
的结果是数组k 的前五个元素
逆转后,输出数组中第3个至第8个元素。
4. 字符数组a 和b 中存储了两个字符串,判断字符串a 和b 是否相等,应当使用的是
( )。
A. B. C. D. 【答案】A
【解析】C 语言中,判断字符串是否相等,使用字符串比较函数符
故答案为A 选项。
5. 有以下程序:
程序运行后的输出结果是( )。 A.8,16 B.16,32 C.8,32 D.16,16 【答案】C
【解析】带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换不计算,只是进行简单的替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。FNA (FNB (a ))的替换过程为:FNA (2+2)替换为2+2X2+2,计算结果为8。FNB (FNA (b ))的替换过程为:FNB (4*4)替换为4X4+4X4=32。程序运行后的输出结果是8,32,故C 项正确。
不能使用相等操作
6. 有如下程序:
程序运行后的输出结果是( )。
【答案】A
【解析】
循环依次输出结构体变量的成员与经过位运算之
后的结果
7. 下列叙述中错误的是( )。
A.C 程序可以由一个或多个函数组成 B.C 程序可以由多个程序文件组成 C. 一个C 语言程序只能实现一种算法
D. —个C 函数可以单独作为一个C 程序文件存在 【答案】C
【解析】一个C 语言程序可以实现任意多种算法,并没有数量限制 8 若主函数中有定义语句在主函数前定义的fun 函数首部为.则
以下选项中错误的调用语句是( )。
A.
B.
C.
D. 【答案】D
【解析】D 项错误,
首先数组访问越界,其次
右移运算符。程序执行过程为:定义结构体数组data ,并且初始化,
则
4,1, 1, 4。 程序运行后输出结果为:
是一个整数型,而函数fun 的参数是