2017年湖南师范大学物理与信息科学学院845C语言程序设计考研仿真模拟题
● 摘要
一、选择题
1. 以下叙述中错误的是( )。
A. 当在程序的开头包含头文件stdio. h时,可以给指针变量赋NULL
B. 函数可以返回地址值
C. 改变函数形参的值,不会改变对应实参的值
D. 可以给指针变量赋一个整数作为地址值
【答案】D
【解析】不能将一个整数直接赋给指针变量作为地址,D 项错误。标准库文件stdiah 定义了 NULL 是一个 类型为void*,值等于0的对象。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
2. 下列关于C 语言文件的叙述中正确的是( )。
A. 文件由一系列数据依次排列组成,只能构成二进制文件
B. 文件由结构序列组成,可以构成二进制文件或文本文件
C. 文件由数据序列组成,可以构成二进制文件或文本文件
D. 文件由字符序列组成,其类型只能是文本文件
【答案】C
【解析】C 语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。根据数据的组成形式,可将文件分为两种:①ASCII 文件,又称文本
存储形式原样输出到磁盘上存放。所以C 文 件就是一个字节流或一个二进制流。
3. 有以下程序:
程序运行时键盘输入则输出的结果是( )。
A.10
B.11
C.9
D.8
第 2 页,共 38 页 文件,它的每一个字节可放一个ASCII 码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的
【答案】A 【解析】
和运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当
是先用后加,即a 以后缀形式出现时,则先取值,再进行加一或减一操作。判断条件中
的值为9, 所以条件不成立,但是a 已经进行了自增1操作,a 的值此时为10。执行else 语句时,因为打印是先用后减,所以先输出10, 然后a 的值变为9。
4. 若有函数声明
:以下叙述正确的是( )。
A. 函数参数array ,ptr 都是指针变量
B. 函数参数array 不是指针变量,ptr 是指针变量
C. 调用函数时,实参数组的值将一一复制给array 数组
D. 调用函数时,array 是按值传送,ptr 是按地址传送
【答案】A
【解析】数组名为数组的首地址,也是指向数组的指针,所以array 和ptr 都是指针,A 项正确,B 项错误。调用函数时,将实参数组首地址赋给指针array , 而不是传递整个数组元素,C 项错误。调用函数时,ar-ray 与ptr 都是按地址传送的,D 项错误。
5. 有以下程序
程序的输出结果是( )。
A.8
B.5
C.7
D.6
【答案】D
【解析】C 语言中的标识符区分大小写,pad 只实现了一次自增操作,结果输出6。
6. 若有定义语句
接着执行以下选项中的语句,则能正确执行的语句是( )。
A.
B.
C.
D.
【答案】B
第 3 页,共 38 页
【解析】scanf 中参数列表,需为地址,只有B 项符合题意。
7. 有以下程序:
程序运行后的输出结果是( )。
A.8,16
B.16,32
C.8,32
D.16,16
【答案】C
【解析】带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换不计算,只是进行简单的替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。FNA (FNB (a ))的替换过程为:FNA (2+2)替换为2+2X2+2,计算结果为8。FNB (FNA (b ))的替换过程为:FNB (4*4)替换为4X4+4X4=32。程序运行后的输出结果是8,32,故C 项正确。
-8. 表达式a+=a=a=9的值是( )。
A.9
B.-9
C.18
D.0
【答案】D
a+=a-=a=9计算顺序为a+=a-=9, 即a=a-9=9-9=0;,【解析】(a-=(a=9))首先a=9,最后a+=0,
即a=a+0=0+0=0。
9. 有以下程序
执行后的输出结果是( )。
第 4 页,共 38 页
相关内容
相关标签