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

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 页