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

2017年广东工业大学计算机学院831数据结构与C语言[专业硕士]之C程序设计考研题库

  摘要

一、选择题

1. 文件不存在或是被锁定! 【答案】

2. 有以下程序:

程序的运行结果是( )。

A. B. C. D. 【答案】A

,【解析】函数facl 中嵌套函数fac2, fac2为递归函数。程序执行过程为:调用函数facl (3),输出输出3>0 成立,调用函数fac2 (2),输出用fac2 (0)

用结束。程序的运行结果是:

3. 若有以下定义和语句:

故A 项正确。

,输出成立,调用fac2 (1)

成立,调

,再返回fac2 (2), 再返回facl (3),函数调不成立,返回fac2 (1)

则值为6的表达式是(提示:

【答案】D

的优先级高于

( )。

【解析】定义指向结构体变量的指针P ,并将结构体数组首地址赋给加一指向数组第二个元素,其成员ri=6, D 项正确员5。

4. 以下选项中合法的标识符是

A.1_1 B.1-1 C._11 D.1_ _ 【答案】C 式为5, 之后再自加一

指向结构体数组第一个元素,其成员n=5,由于

指针自

指向结构体数组第一个元素,其成

是后缀,先取值,所以表达

为结构体数组第一个元素,其成员n=5, 先取值,表达式为

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

5. 有以下程序:

程序的运行结果是( )。 A.21,18 B.81,81 C.21,21 D.18,18

【答案】A

,替换过程是,用宏调用提供的实参字符串,【解析】带参数的宏的调用格式:宏名(实参表)S 直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。(k+j+2•被置换成k+j+2*k+j+2,计算时先计算2*k,结果为21; S (j+k+2.被置换成j+k+2*j+k+2,计算时先计算2*j,结果为18。程序的运行结果是21,18,故A 选项正确。

6. 关于C 语言中数的表示,以下叙述中正确的是( )。

A. 只有整型数在允许范围内能精确无误地表示,实型数会有误差 B. 只要在允许范围内整型和实型都能精确表示

C. 只有实型数在允许范围内能精确无误地表示,整型数会有误差 D. 只有八进制表示的数才不会有误差 【答案】A

【解析】实型数据在内存中存储的二进制位数是有限的,而一个十进制实数转化为二进制实

数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。在整形数允许范围之内,二进制可以表示任意一个整数。

7. 有以下程序:

$

程序的运行结果是( )。 A.7, 6, 5 B.5, 5, 5 C.7, 5, 5 D.5, 6, 5

【答案】B

【解析】条件表达式的优先级高于赋值表达式,

中先执行

给j ,再进行

8. 有以下程序:

为否,则执行

运算,当以前缀形式出现时,则

先赋

先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,

再进行加一或减一操作。

此时b 为5, 赋给i ,i 为5;

故最后输出的是5,5,5。

程序运行后的输出结果是( )。 A.b »B ,b ,A B.b ,B ,B ,A C.a ,B ,B ,a D.a ,B ,a ,B 【答案】A

【解析】fun ( )函数中的两个局部变量(:和山c 是一个字符指针变量,在程序中取出指针所指内存单元的值进行修改,对其进行的修改影响调用函数中对应的变量的值;而d 是一