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

2017年北京交通大学02106C程序设计考研复试核心题库

  摘要

一、选择题

1. 有以下程序:

程序的运行结果是( )。 A.22 B.41 C.100 D.121

【答案】B

【解析】调用fun 函数,

2. 若有定义语句intkl=10, k2=20; ,执行表达式为( )。

A.0和1 B.0和20 C.10和1 D.10和20 【答案】B

【解析】在C 语言中,没有专门的“逻辑值”,而是用非0表示“真”,用0表示“假”。根据优先级,先计算括号内的。括号内先比较

和比较的结果为假,值为0, 再赋值给

可得

的大小,由于

,故左边括号中的与

的值为0,由于0与任何值相与结果都是0, 故右边

后,kl 和k2的值分别

一个括号不需运算,即的值不变,仍为20。

3. 若有定义inta=l,b=2,c=3;II ,则执行表达式(a=b+c)(++b)后a 、b 、c 的值依次为( )。

A.1、2、3 B.5、3、2 C.5、2、3 D.5、3、3

【解析】根据优先级规则,晒边都是括号,则从左至右执行括号中的表达式,将b+c的值赋值给a ,即a 为5, 不为0, 则II 右边的括号不需要再执行。

4. 以下叙述中错误的是( )。

A. 同一个数组中所有元素的类型相同

B. 不可以跳过前面的数组元素给后面的元素赋初值0 C. 定义语句D. 若有定义语句【答案】D

【解析】一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0, 当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。

5. 有以下程序:

程序运行后的结果是( )。 A.11 B.21 C.6 D.120 【答案】B

【解析】在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元,其生存周期 一直延续至整个程序结束。fim 函数被调用了 5次,第1次

第2次,

第3次,

第4次,

第5次,

6. C 源程序中不能表示的数制是( )。

A. 二进制 B. 八进制 C. 十进制 D. 十六进制

给a 数组中所有元素赋初值0

编译时将忽略多余的初值

【解析】C 语言中整型常量可以是十进制数、八进制数、十六进制数,虽然运行方式以二进制数运行,但整型常量不包括二进制数。

7. 以下程序段中,与语句:

【答案】A

【解析】三元运算符表达式的形式为:表达式果果

那么就执行

前面的语句

时,

功能相同的是( )。

表达式表达式3, 当表达式1的值为真时,

的关系:①如否则

②如

结果为表达式2的值;当表达式1的值为假时,结果为表达式3的值。首先判断

判断b 、c 的关系,如果否则

综上所述:当

与A 项语句功能相同。

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

A.14.0 B.31.5 C.7.5

D. 程序有错无输出结果

【答案】D

【解析】宏定义有两种:无参数的宏定义,即#definePT3.5; 带参数的宏定义,不能用宏来计算,宏只能做简单的代替而不能做计算,故程序会报错。

二、设计题

9. 请编写一个函数fun , 它的功能是:将SS 所指字符串中所有下标为奇数位置的字母转换为大写(若该位 置上不是字母,则不转换)。

例如,若输入“abc4Efg ”,则应输出“aBc4EFg ”。 注意:部分源程序在文件PROG1.C 中。

请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。

试题程序: