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, 然后