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

2018年北京市培养单位光电研究院864程序设计之C程序设计考研核心题库

  摘要

一、选择题

1. 有以下程序段

若要求使p 指向一个int 型的动态存储单元,在横线处应填入的是( )。 A.int

B. (int*) C.int*

D. (*int) 【答案】B

C 语言标准规定malloc 函数返回值的类型为void*,malloc 【解析】函数的调用形式为:(size ),size 的类型为unsignedint 。p 是指向int 型的指针,要把void*强制转换成int*。

2. 有以下程序:

执行时如输入为

:A.abcdefg

B.

c. D.bcdefgh 【答案】D

则输出结果是( )。

【解析】题目中for 语句含义是,每次将函数getchar ( )的输入值赋给变量c ,如果不等于‘#’,则执行putcbar (++c), 即将当前变量c 值的ASCII 码+1后,再输出改变后的变量c 的值。当变量c 的值等于‘#’,则终止循环,所以输出应该是bcdefgh ,答案为D 选项。

3. 在以下给出的表达式中,与while (E )中的(E )不等价的表达式是( )。

A.

B.

C.

D. 【答案】C

【解析】ABD 三项都是E 不等于零时执行while 循环,C 项是E 等于零时执行while 循环。

4.

以下能正确表述算式

【答案】A

【解析】A 项正确。sin 是库函数,其参数中的角度要求用弧度制表示。C

语言中义的常量,

需要用户自定义或者直接使用是

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

A.C 程序中的注释只能出现在程序的开始位置和语句的后面 B.C 程序书写格式严格,要求一行内只能写一个语句 C.C 程序书写格式自由,一个语句可以写在多行上 D. 用C 语言编写的程序只能放在一个程序文件中 【答案】C

【解析】C 程序的注释可以出现在C 程序的任何位置,注释符号:“//”或“/*•••*/”。C 程序中,一行内可写多个语句,每条语句用分号“;”结束。用C 语言编写的程序可以放在多个程序文件中,用#indude命令行实现文件包含功能。

6. 有如下程序:

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

【答案】C

【解析】题目中判断if 条件是否成立,后a 自增

的C 语言表达式是( )。

不是已定

而不

代替B

项未替换也没有将30度换算成弧度,错

应该除以

误。C 项没有将30度换算成弧度,错误。D 项弧度换算错误

对应于

先取值为0, 则为0,

且不计算,而

得if 条件不成立执行else 函数体,输出F 。

最后执行语句

按照格式输出故C 选项正确。

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

A. 在C 语言程序中,main 函数必须放在其他函数的最前面 B. 每个后缀为.C 的C 语言源程序都可以单独进行编译 C. 在C 语言程序中,只有main 函数才可以单独进行编译 D. 每个后缀为.C 的C 语言源程序都应该包含一个main 函数 【答案】B

main 是主函数的起始行,【解析】每一个可执行的C 程序都必须有一个且只能有一个主函数。后缀名为.C 的C 语言源程序都可以单独进行编译。

8. 以下定义语句中正确的是( )。

\

【答案】C

【解析】C 项正确,int 转换成char 类型时,按照ASCII 码表进行转换,65

表示示

等价于转换成

A 项错误,b , c 都是float*类型

,B 项错误,b 未定义,

可改成

类型

66表

错误,

无法把

D 项错误,分号表示语句的结束,

应改成逗号。

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

A. 在程序中凡是以“#”开始的语句行都是预处理命令行 B. 预处理命令行的最后不能以分号表示结束 C.#defineMAX是合法的宏定义命令行

D.C 程序对预处理命令行的处理是在程序执行的过程中进行的 【答案】D

【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行”,其中的末尾不得用“;”结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。

10.有以下程序: