2018年山西大学计算机与信息技术院876数据结构+C程序设计之C程序设计考研强化五套模拟题
● 摘要
一、选择题
1. 有如下程序:
程序运行后的输出结果是( )。
A.25
B.13
C.9
D.12
【答案】B
【解析】带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。调用函数D (i+j),进行替换为
2. 有以下程序:
则以下叙述正确的是( )。
A. 在main 函数中声明了 findmax 函数
B. 在main 函数中定义了 findmax 函数
C. 在main 函数中两次调用了 findmax 函数
D. 在main 函数内、外重复定义了 findmax 函数
【答案】A
第 2 页,共 54 页 输出13,故B 选项正确。
【解析】程序编译是从上到下进行的,所以如果函数定义放在主函数之后,那么在函数调用时必须提前声明函数,可以在主函数之前声明函数,也可以在主函数中函数调用之前声明函数。题目中函数findmax 定义放在了函数之后,所以主函数中声明了 findma 函数
。
为函数声明
,为函数调用
,
为函数定义。A 选项正确。B 选项是在main 函数外定义的findmax
函数,错误。在main 函数中,出现了一次findmax 函数的声明和一次findmax 函数的调用,不是两次调用,C 选项错误。D 选项在main 函数内不是定义findmax 函数而是声明findmax 函数。
3. 有以下程序:
程序运行后的输出结果是( )。 A. B. C. D.
【答案】C
【解析】本⑨题将两个字符串常量复制给一个二维字符数组,用字符常量为字符数组赋值会在最后加上一个 休止符,故数组大小为字符的个数加1,且数组的下标从0开始计数,故p 指向第二个字符串。strlen 函 数用来计算字符串的长度,不包括休止符,因此长度为10。
4. 若有定义:
则与上述定义完全等价的说明语句是( )。
A.int*a[20][10];
B.int*a[20];
C.int*a[10];
D.int*a[10][20];
【答案】A
【解析】新定义的类型T 为大小为10的整型数组,定义T 型指针数组*a[20],等价于定义了一个指向整型长度为10的数组的指针数组,这个指针数组大小为20,即为整型指针二维数组,行20列10,A 项正确。
5. 有以下程序
第 3 页,共 54 页
程序运行后的输出结果是( )。
A.1
B.10
C.11
D.2
【答案】A
【解析】初始化后,s 指向数组a 的首元素,在调用函数fun 时,形参s 和实参s 是两个独立的int 型指针,在fun 函数内部,形参s 指向新的存储空间,但是不会影响实参s 的指向。所以,在main 函数中,s 仍然指向数组a 的首元素,输出结果是1。
6. 设a , b,c 是整型变量且均已赋值,则以下选项中错误的赋值语句是( )。
【答案】A
【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类 型相同才能实现赋值。A 项中,赋值运算
能被赋值,A 项错误。B 项运算过程为,先赋值句。C 项运算过程为,先计算
程为,先将2赋给c , 再将c 赋给b ,然后计算
7. 有以下程序:
程序运行后的输出结果是( )。
A.256
B.652 再计算左值为表达式,不是变量不将结果赋给a ,是正确的赋值语将结果赋给b ,再将b 赋给a ,是正确的赋值语句。D 项运算过将结果赋给a ,是正确的赋值语句。
第 4 页,共 54 页