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. 有以下程序:
相关内容
相关标签