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. 有以下程序 其他三个选项都可以。
相关内容
相关标签