一、选择题
1. 以下叙述中正确的是( )。
A. 在scanf 函数的格式串中,必须有与输入项一一对应的格式转换说明符
B. 只能在printf 函数中指定输入数据的宽度,而不能在scanf 函数中指定输入数据占的宽度
C.scanf 函数中的字符串是提示程序员的,输入数据时不必管它
D. 复合语句也被称为语句块,它至少要包含两条语句
【答案】C
【解析】C 项正确,scanf 函数中的字符串是为了増加程序的可读性,并不影响数据的输入。A 项错误,可以在%和格式字符之间加入号,作用是跳过对应的输入数据;B 项错误,可以在格式字符前加入一个正整数指定输入数据所占的宽度;D 项错误,用一对花括号把若干语句括
起来构成一条复合语句。一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。
2. 若变量已正确定义,有以下程序段:
其输出结果是。
A. 程序段有语法
B.3, 5,3
C.3, 5, 5
D.3, 5, 7
【答案】B
【解析】当a>b时,令a=b, a=3,b=5,因此a>b条件不成立,所以不执行a=b。然后c=a=3。此时“c!=a”条件不成立,不执行“c=b; ”语句。结果为a=3, b=5, C=3。
3. C 语言编译程序的功能是( )。
A. 执行一个C 语言编写的源程序
B. 把C 源程序翻译成码
C. 把C 源程序翻译成机器代码
D. 把C 源程序与系统提供的库函数组合成一个二进制执行文件
【答案】C
【解析】变异程序可以把用户按C 寓言规定的语法写出的语句翻译成二进制的机器指令,每条C 语句经过编译最终都将转换成二进制的机器指令。
4. 有以下程序:
程序运行后的输出结果是( )。
A.1256
B.5634
C.5612
D.3456
【答案】B
【解析】第一次funl 传递参数5, 6,输出5, 6, 第二次调用fun2,fun2的作用是将全局变量a 变为3, b 变为4, 故输出3, 4。
5. 设有以下程序段:inty :
y=rand( )%30+1;
则变量y 的取值范围是( )。
A.0≤y ≤30
B.0C.lD.l【答案】B
【解析】本题考点为“%”求余符号。rand ( )产生随机整数,任何整数对30求余得到的整数范围为0〜29,则y 的取值范围为或者说故B 选项正确。
6. C 语言程序中,运算对象必须是整型数的运算符是( )。
A.&&
B./
C.%
D.*
【答案】C
【解析】模运算中不能出现浮点数,运算对象只能是整数。
7. 有以下程序:
程序:
程序的运行结果是( )。
A.6
B.5
C.4
D.3
【答案】A
【解析】程序执行过程为:定义字符串指针p 并为其初始化为“01234”,调用函数fun (p ), 将指针传入函 数。while 循环找到字符串的束符地址,然后使这个指针指向结束符下一个单元,结束循环。返回字符串首地址 与结束符下一个地址之差,也即是字符串长度加1。输出地址差为6, 故A 选项正确。
8. 对于一个正常运行的C 程序,以下叙述中正确的是( )。
A. 程序的执行总是从程序的第一个函数开始,在main 函数结束
B. 程序的执行总是从main 函数开始
C. 程序的执行总是从main 函数开始,在程序的最后一个函数中结束
D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
【答案】B
【解析】一个正常运行的C 程序总是从main 函数开始执行,最后返回到main 函数结束。
9. 设有以下说明和语句:( )。
A. B.
C.
D.
【答案】A 【解析】
题目中表达式。则与表达式等价的选项是 是指向有4个元素的数组指针,a 为二位数组首地址,赋值给数组指针p 。是对数组a 第1行第3列元素的引用。是数组第1行第3列元素,
是B 项错误。是对数组第3行第1列元素的引用,
是数组第3行第1列元素,D 项错误。 A
项正确。与题目中等价,对数组第1行第3列元素的引用,C 项错误。
10.有以下程序