当前位置:问答库>考研试题

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 页