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

2016年山西师范大学数学与计算机科学学院高级语言程序设计(加试)之C程序设计教程考研复试题库

  摘要

一、选择题

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

A.break 语句不能用于提前结束for 语句的本层循环 B. 使用break 语句可以使流程跳出switch 语句体 C.continue 语句使得整个循环终止

D. 在for 语句中,continue 与break 的效果是一样的,可以互换 答:B

【解析】B 项正确,break 语句可以跳出switch 语句和循环。A 项错误,break 语句在for 循环C 项错误,continue 语句的作用是跳过本次循环体中余下尚未执行的语句,内部的作用是跳出循环;

立刻进行下一次的循环条件判定,可以理解为仅结束本次循环,并没有使整个循环终止;D 项错误,continue 和break 的效果完全不同。

2. 以下选项中合法的标识符是( )。

答:C

【解析】C 语言中标识符的命名规则是:标识符由字母、数字和下画线组成,并且第一个字符必须是字母或下画线。C 语言的标识符是区分大小写字母的。

3. 有以下程序

执行后的输出结果是( )。 A.5, 11 B.5, 5

C.11, 11 D.11, 5 答:A

【解析】fun 函数中m 和i 是静态变量,退出函数以后,下次再进入该函数时,m 和i 仍然保持上一次的数 值。第一次调用

返回11。

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

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

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

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

答:B

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

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

5. 有以下程序:

时,返回5; 第二次调用时

执行值

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

_'

值为1,因

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

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

答:A

【解析】main 函数中,首先定义两个结构体stn 类型的变量a , b , 把a 成员信息复制给b 成员,在f ( )函数中,利用指针重新对b 成员信息进行赋值,分别后,再调用函数f ( )输出a , b 成员信息。

6. 有以下程序:

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

答:A

【解析】C 语言中可以将多条语句放在同一行,用右结合。首

先执行C ,使得C

的值也为5。然后执行下句逗号表达式中的执行

使得B 的值为4, 最后打印输出。

7. 有以下程序:

程序的运行结果是( )。 A.-1, 0 B.0, 0 C. -1 , -1 D.1, 1

隔开。赋值运算和逗号运算都是从左到

即将A 的值5赋给变量

即得A 的值为5, 然后执行

把B 的值0赋给A ,此时A 的值为0, 然后