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

2016年浙江师范大学数理与信息工程学院C程序设计考研复试题库

  摘要

一、选择题

1. 设有两行定义语句:

int scanf;

float case;

则以下叙述正确的是( )。

A. 两行定义语句都不合法

B. 两行定义语句都合法

C. 第1行语句不合法

D. 第2行语句不合法

答:D

【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函 数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途 的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。

2. 设有定义:

intk=0;

以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

A.++k

B.k+=l

C.k++

D.k+1

答:C

【解析】k++表达式值为k 的值,其余为k+1的值。

3. 以下叙述中错误的是( )。

A. 当在程序的开头包含头文件stdio. h时,可以给指针变量赋NULL

B. 函数可以返回地址值

C. 改变函数形参的值,不会改变对应实参的值

D. 可以给指针变量赋一个整数作为地址值

答:D

【解析】不能将一个整数直接赋给指针变量作为地址,D 项错误。标准库文件stdiah 定义了 NULL 是一个 类型为void*,值等于0的对象。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。

4. 以下程序段中,循环次数不超过10的是( )。

A.

B.

C.

D.

答:A

【解析】A 项,执行函数体判断条件不成立,退出循环,循环次数为1,不超过10

由于执行函数体时i 在增加,一直成立,

由于函次,A 项正确。B 项执行函数体i=6, 判断条件为程序陷入无限循环,循环次数大于10, B 项错误。C 项执行函数体i=3, 判断条件为

D 项执行函数体i=4, 判断条件为数体中i 每次増加2, 所以永远不可能等于10, 故程序会陷入无限循环,循环次数大于10, C 项错误。由于函数体中i 每次减少2, 所以永远不可能等于1,故程序会陷入无限循环,循环次数大于10, D 项错误。

5. 有如下程序:

程序运行后的输出结果是( )。

答:A

【解析】程序执行过程为:定义结构体变量input ,

调用

调用函数

使

构体成员为

使

将结构体地址传入函数,执行函数体,

调用

而4是值传递,并没有改变num 的值。输出结

6. 有如下程序:

程序运行时,输入

A.DCDC

B.DCBA

C.BABA

D.ABCD

答:B 则输出结果是( )。

【解析】本题考查了函数的递归调用,进入函数后,字符变量ch 每次保存读进来的字

后,下一次读取不满足if 条符,如果不是换行符,则继续读取下一个字符常量,当ch 保存完

件,函数进行输出,依次输出答案为B 选项。

7. 以下可以将任意一个两位整数n 的个位数与十位数对换的表达式为( )。

A. (n-n/10×10)×10+n/10

B.n-n/l0×l0+n/10

C.n/10+(n-n/10)

D. (n-n/10)×10+(n/10)

答:A

A 项n/10得到十位数字,n-n/10得到个位数字,,n-n/10【解析】将个位数乘以10加上十位数字(

×10)×l0+n/10实现将任意一个两位整数个位数与十位数对换,A 项正确。B 项n-n/10×10得到个位数字,n/10为十位数字,n-n/10×l0+n/10实现两位整数个位数与十位数之和,B 项错误。C 项n/10+(n-n/10)=n, 不能实现题目中要求,C 项错误。D 项n/10是十位数字,n-n/10为原两位整数减去十位数字,不是个位数字,D 项错误。

8. 有以下程序: