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

2016年北京邮电大学数字媒体与艺术设计学院C语言程序设计考研复试题库

  摘要

一、选择题

1. 有以下程序

程序的运行结果是( )。 A.a=2.b=l B.a_2,b-2 C.a=l, b=l D.a=l, b=0 答:A

【解析】当执行swicth 语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch 语句体内寻找与该值吻合的case 标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case 和default 中的语句,直到switch 语句体结束;每当执行到break 语句时,立即跳出switch 语句体。switch 语句通常总是和break 语句联合使用,使得switch 语句真正起到分支的作用。x=l,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=l,接下来遇到break ,跳出内层switch ; 由于外层分支中没有break 语句,会继续执行外层分支2,执行a++, b++,此时a=2, b=l; 然后遇到break 语句,跳出外层switch 。

2. 有以下程序:

第 2 页,共 34 页

程序运行后的输出结果是( )。 A.2, 1 B.6, 1 C.6,0 D.2, 0 答:A

【解析】程序前面表达式等同于a=2; 优先级低于

程序执行过程为:c=241, c/100=2, 2%9=2, 得

为真,

非0值为真,0值为假,即(-1)为真,逻辑与表达式

得b=l。

3. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。

造成错误的原因是( )。 A. 定义语句B. 赋值语句C. 语句D. 赋值语句答:D

【解析】本题中for 循环中首先将MIN 值赋值给max , 然后用将MIN 值与

值进行比较,所以无论

先执

4. 有以下定义语句,编译时会出现编译错误的是( )。

答:C

【解析】本题中a 为一个字符型变量,只能为其赋值一个字符常量。C 项中

第 3 页,共 34 页

中max 未赋初值

中,不应给max 赋MIN 值

中判断条件设置错误

放错了位置

与max 的值比较。每次都是

始终执行。

的值是什么,都不会影响if 的判断语句,

所以函数返回的是数组中最后一个元素的值。本题的错误在于

的位置,for 循环之前应

不是字符常

量,所以会编译错误。BD 两项为转义字符,编译可以通过。

5. 关于C 语言的变量名,以下叙述正确的是( )。

A. 变量名不可以与关键字同名 B. 变量名不可以与预定义标识符同名 C. 变量名必须以字母开头 D. 变量名是没有长度限制的 答:A

【解析】合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被C 语言保留的,不能用作其他用途的标识符,它们在程序中都代表着固定的含义,用户不可重新定义,A 项正确。预定义标识符是系统已经有过定义的标识符,用户可以重新定义,所以可以作为变量名,B 项错误。变量名除了以字母开头以外,还可以以下划线开头,C 项错误。变量名没有长度限制,但不可超过编译器可以辨识的范围,D 项错误。

6. 有以下程序

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

答:A

【解析】本题考查的是函数调用时的参数传递问题。程序在调用函数f 时,传给函数f 的参数只是结构变量在栈中的一个拷贝,函数f 的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c 的值。

第 4 页,共 34 页