一、选择题
1. 设有以下程序段:
则变量y 的取值范围是( )。
答:B
【解析】本题考点为
求余符号。rand ( )产生随机整数,任何整数对30求余得到
的整数范围为0〜29, 则y 的取值范围为或者说故B 选项正确。
2. 有以下程序(程序中库函数用以判断ch 中的字符是否为小写字母):
程序运行后的输出结果是( )。
A. B. C. D. 答:C
【解析】fun 函数实现的功能是将字符串中空格前面的小写字母转换为对应的大写字母
,
中需要改变的是b 和d , 因此为
3. 有以下程序
第 2 页,共 34 页
程序的运行结果是( )。 A.345678 B.876543 C.1098765 D.321678 答:D
【解析】函数fun 的作用是交换
对其修改,在函数外部也会发生作用。互换,执行完成后,数组k 变成
4. 设有两行定义语句:
int scanf; float case;
则以下叙述正确的是( )。 A. 两行定义语句都不合法 B. 两行定义语句都合法 C. 第1行语句不合法 D. 第2行语句不合法 答:D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函 数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途 的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
5. 有以下程序:
程序运行后的输出结果是( )。
第 3 页,共 34 页
与的值,数组是以指针的形式传递的,在函数内部的作用是把数组k 中的
,把
到
和,
互换,
和
输出,得到321678。
A.1, 3 B.0, 2 C.0, 3 D.1, 2 答:D
【解析】在C 语言中,没有专门的“逻辑值”,而是用非0表示“真”,用0表示“假”。第一次循环之后a=_l, b=l,第二次循环之后,a=0, b=2, 第三次循环时,由于a=0, 此时产生短路现象,即系统跳过b++不再对它进行求值,这时,a 自增1,由0变为1, 而b 的值不变,仍为2,故结果为1,2。
6. 若有以下程序
则程序的输出结果是( )。 A.H9
B. 表达式不合法输出无定值
C.
D. 答:A
【解析】当字符参与数学运算时,替换成其在ACSII 码表中对应的数值,
则
在printf 函数中,cl 以字符的形式输出,得到结
果H ,c2以整数的形式输出,得到ASCII 码值9。
7. 有以下程序:
程序运行后的输出结果是( )。 A.-1 B.0 C.1 D.7 答:A 【解析】
和
运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当
直到while 判断为0
以后缀形式出现时,贝U 先取值,再进行加一或减一操作。程序中执行
第 4 页,共 34 页