2018年北京市培养单位遗传与发育生物学研究所864程序设计之C程序设计考研基础五套测试题
● 摘要
一、选择题
1. 以下不能正确表示代数式
【答案】D 【解析】优先级相同,所以采用从左到右结合的方式。D 项,应该改为:
2. 若要求从键盘读入含有空格字符的字符串,应使用函数( )。
A.gets ( )
B.getc ( )
C.getchar ( )
D.scanf ( )
【答案】A
【解析】A 项,gets 函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。B 项错误,C 语言标准库中没有getc 函数;C 项,getchar 函数是从键盘读入单个字符,空格、回车符都将作为字符读入;D 项,scanf 函数用
为输入数据的分隔符而不能被读入。
3. 有如下程序:
第 2 页,共 44 页 的C 语言表达是( )。
格式符输入字符串时,空格和回车符都作
程序运行后的输出结果是( )。
【答案】A
【解析】程序执行过程为:定义结构体变量input ,
调用
调用函数
使
构体成员为
4. 有以下程序
执行后的输出结果是( )。
A.32
B.24
C.5
D.40
【答案】A
【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1之前的值)是否能被5整除(判断后i 被加1),然后再判断++i的值(i 加1之后的值)是否能
,被8整除(判断后i 被加1)若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,
此时i=31,++i%8==0成立,此时i=32。
5. 有以下程序:
第 3 页,共 44 页
使
将结构体地址传入函数,执行函数体,
调用
而4是值传递,并没有改变num 的值。输出结
若要使程序的运行结果为248, 应在下画线处填入的是( )。 A.
B.1248 C. D.
【答案】D
【解析】要输入248,是124的两倍,124为01111100,248为11111000,因此只要左移一位即可。
6. 下列语句中,正确的是( )。
【答案】A
【解析】A 项,将存放字符串常量的无名存储区的首地址赋给指针变量;BD 两项错误,C 语言中不可以用赋值语句给字符数组整体赋一字符串,可以逐个给数组元素赋字符值,并在最后加入字符串结束标志;C 项,赋 值格式错误。
7. 有以下程序:
程序运行的结果是( )。
A.1
B.2
C.3
D.4
【答案】B
【解析】fun 函数是一个递归函数,其功能是:当b 的值为零时,返回此时a 的值; 否则,
返回
即将a 和b 的值分别减1后返回
b 为零。执行过程为:执行fun 值2。
返回当b 不断递减时,a 也不断递减直到此时b=l,返回返回a 的
第 4 页,共 44 页