2017年青海师范大学C语言程序设计复试仿真模拟三套题
● 摘要
一、选择题
1. 以下关于编译预处理的叙述中错误的是( )。
A. 预处理命令行必须位于源程序的开始
B. 源程序中凡是以#开始的控制行都是预处理命令行
C. 一行上只能有一条有效的预处理命令
D. 预处理命令是在程序正式编译之前被处理的
【答案】A
【解析】通常,预处理命令位于源文件的开头,也可以写在函数与函数之间。
2. 有以下程序:
程序的运行结果是( )。
A.5, 1
B.1, 1
C.18, 1
D.13, 1
【答案】A 【解析】’按位与运算,13=11018, 5=1018, 执行语句结果为101B=5, 即c=5
。逻辑与运算,10与5均为真,结果为真,即d=l。故A 选项正确。
3. 以下选项中能表示合法常量的是( )。
A. 整数:1,200
B. 实数:
1.5E2.0
【答案】D
【解析】A 项错误,表达错误;B 项错误,E 后面应为整数,不能是小数;C 项错误;字符斜杠的表示方法
正确。
因为第一个\表示是转义字符;D 项正确,表示空字符串,
第一个字符为
4. 有以下程序(其中k 的初值为八进制数):
程序运行后的输出结果是( )。
A.12
B.11
C.10
D.9
【答案】D
【解析】k 的初值是八进制数011,转换为十进制数就是9,在输出时自增运算符“++”是作为后缀出现的,因此是先输出9,然后k 的值再自增1。
5. 设变量已正确定义并赋值,以下正确的表达式是( )。
A.x=y*5=x+z
B.int (15.8%5)
C.x=y+z+5,++y
D.x=25%5.0
【答案】C
【解析】赋值运算左边必须是单一变量名。A 项错误,“y*5=x+z”部分是非法赋值。BD 两项错误,求余运算中的操作对象只能是整型。C 项,为逗号表达式。
6. 若有定义doublea=22; inti=0,k=18; ,则不符合C 语言规定的赋值语句是( )。
A.a=a++,i++
B.i=(a+k)<=(i+k)
C.i=a%ll D.
【答案】C
【解析】C 项错误,在C 语言的算术运算符中,取余运算符“%”的左右两侧的两个运算分量必须是整数。A 项,赋值运算符的优先级高于“,”运算法,先进行赋值;B 项,将“=”右边的逻辑表达式的计算结果赋给变量i ; D 项,首先对变量a 求逻辑非操作,然后将结果赋值给变量i 。
7. 有以下程序:
程序运行后输出的结果是( )。
【答案】A
【解析】C 语言中可以将多条语句放在同一行,用
右结合。首 先执行C ,使得C
的值也为5。然后执行下句逗号表达式中的
执行
使得B 的值为4, 最后打印输出。
的C 语言表达是( )。
把B 的值0赋给A ,此时A 的值为0, 然后即得A 的值为5, 然后执行即将A 的值5赋给变量隔开。赋值运算和逗号运算都是从左到8. 以下不能正确表示代数式
【答案】D 【解析】与/优先级相同,所以采用左结合的方式。D 项若改为:
则为正确。
二、设计题
9. 请根据以下各小题的要求设计C 应用程序(包括界面和代码)。
请编写函数fun ( ),它的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数获得,并放在主函数的 age 数组中;要求函数把0至9岁年龄段的人数放在
年龄段的人数放在中,把20至29岁年龄段的人数放在
100岁)以上年龄的人数放在
注意:部分源程序给出如下。
请勿改动主函数main ( )和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序如下:
P ,把10至19岁中,其余依次类推,把100岁(含中。结果在主函数中输出。