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

2017年广东工业大学机电工程学院803C语言程序设计考研冲刺密押题

  摘要

一、选择题

1. 若有以下程序:

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

A. 可用S 定义结构体变量

B. 可用T 定义结构体变量

C.S 是struct 类型的变量

D.T 是structS 类型的变量

【答案】B

【解析】S 为结构体类型名,而T 为结构体变量名表。

2. 有以下程序:

程序的运行结果是( )。

【答案】A

【解析】程序执行过程为:调用f 函数,将结构体a 与b 的地址作为参数传入函数,函数中指针a 指向结构体a ,指针b 指向结构体b ,将指针a 指向的结构体a 赋给指针b 指向的结构体b ,结构体b 内容被修改。输出b

3. 设有以下程序段:inty :

y=rand( )%30+1;

则变量y 的取值范围是( )。

A.0≤y ≤30

B.0

C.l

D.l

【答案】B

【解析】本题考点为“%”求余符号。rand ( )产生随机整数,任何整数对30求余得到的整数范围为0〜29,则y 的取值范围为

4. 以下程序段中的变量已正确定义:

程序段的输出结果是( )。 A. B. C. D.

【答案】D

【解析】for 语句在没有说明时,仅仅是跟随其后的第一条语句。这时注意第二个for 循环有一个“;”结束,所以视为空语句,表示什么也不做,然后是下一个顺序语句,即输出语句,这时没有for 循环,只输出一个“*”。

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

A. 同一个数组中所有元素的类型相同

B. 不可以跳过前面的数组元素给后面的元素赋初值0

C. 定义语句

D. 若有定义语句

【答案】D

【解析】一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0, 当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。

或者说故B 选项正确。 给a 数组中所有元素赋初值0 编译时将忽略多余的初值

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

A. 在程序中凡是以“#”开始的语句行都是预处理命令行

B. 预处理命令行的最后不能以分号表示结束

C.#defineMAX是合法的宏定义命令行

D.C 程序对预处理命令行的处理是在程序执行的过程中进行的

【答案】D

,其中的末尾不得用“;【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行””

结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。

7.

若变量已正确定义。在中,以下不可替代W 的是( )。 A. B. C. D.

【答案】A

【解析】在C 语言中,并没有运算符,判断不相等时,使用

8. 阅读以下程序:

该程序在编译时产生错误,其出错原因是( )。

A. 定义语句出错,case 是关键字,不能用作用户自定义标识符

B. 定义语句出错,printF 不能用作用户自定义标识符

C. 定义语句无错,scanf 不能作为输入函数使用

D. 定义语句无错,printf 不能输出case 的值

【答案】A

【解析】在C 语言中,关键字又称保留字,它是系统预先定义的,具有特定含义的标识符,

故不允许用户重新定义。case 为C 语言中的关键字,因此用户不能再定义标识符为case 的变量。

9. 有以下程序

其他三个选项都可以。