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

2016年中山大学信息科学与技术学院S3505001电子工程基础综合)之C程序设计考研复试题库

  摘要

一、选择题

1. 有如下程序:

程序运行后的输出结果是( )。

答:A

【解析】程序执行过程为:定义结构体变量input ,

调用

调用函数

使

构体成员为

2. 以下程序:

第 2 页,共 35 页

使

将结构体地址传入函数,执行函数体,

调用

而4是值传递,并没有改变num 的值。输出结

程序运行后的结果是( )。 A.1 3 7 B.7 3 1 C.7 3 D.3 7 答:D

【解析】函数fun 是递归函数,递归终止条件是x 小于等于4, 当大于等于4是递归调用第一次循环

调用

跳出if 循环,执行输出x=3, 然后回到第一次循环,执

行if 循环的语句,输出x=7。

3. 下列选项中,能正确定义数组的语句是( )。

A

)答:C

【解析】一维数组定义格式是:类型名数组名[整型常量表达式]。C 项正确,它使用预处理宏定义,N 可以看做是常量。A 项错误,数组长度不能由变量指明;B 项错误,没有指明数组的长度;D 项错误,数组长度应该整型常量表达式。

4. 有以下程序:

程序运行的结果是( )。 A.40 B.16 C.8 D.4 答:C

【解析】左移一位相当于原数乘以二,右移相当于除以二,

结果为4X2=8。没有超过char

的类型表示范围,所以输出8。C 语言中字符型变量可以用在任何整型变量可以使用的地方。

5. 若有定义:inta=0,b=0,c=0,d=0; ,以下关于C 语言表达式:执行顺序的叙述正确的是( )。

A. 先执行++a,表达式++a的值为1; 再执行++b,表达式++b的值为1,由此可确定为1,因此执行++C

B. 先执行++a, 表达式++a的值为1, 由此可确定值为1, 因此执行++C

第 3 页,共 35 页

B

C )

D )

|值为1, 因此执行++c

_'

C. 先执行++b, 表达式++b的值为1; 再执行++a, 表达式++a的值为1,由此可确定’

D. 先执行++a, ++b,++c,++d,使得a , b , c ,d 的值都为1, 由此可确定此执行++C

答:B

值为1,因

【解析】++a表示先将变量a+1, 再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式

中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2, 即++C,B 项正确。

6. 有以下程序:

程序的运行结果是( )。

答:C

【解析】调用f 函数时,将结构体数组名作为实参传给了形参指针,使结构体指针a 指向了结构体C 的首地址。因此,在f 函数中,对指针所指结构体中的成员的赋值就是对数组c 中元素的赋值,故返回主函数之后,数组c

7. 有以下程序:

第 4 页,共 35 页

成员的值已被更新,

最终输出结果为