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

2017年北京信息科技大学经管学院817数据结构和C语言之C程序设计考研题库

  摘要

一、选择题

1. 以下关于typedef 的叙述错误的是( )。

A. 用typedef 为类型说明一个新名,通常可以增加程序的可读性 B.typedef 只是将已存在的类型用一个新的名字来代表

C. 用typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D. 用typedef 可以增加新类型 【答案】D

【解析】用typede 只是将已存在的类型用一个新的名字来代表,并没有增加新类型。

2. 有以下程序:

程序运行后的输出结果是( )。 A.20045537 B.20044550 C.20042580 D.20041703 【答案】D

【解析】把结构体变量作为一个参数传递给函数时,传递的是实参结构体变量的值,系统给结构体类型的形参开辟相应的内存空间,并把实参中各成员的值赋给对应的形参成员。所以改变形参变量的内容对实参不会有任何影响。因此本题的函数f ( )对结构体s[0]没做改动,结果还是20041703。

3. 设有定义:

以下不能将一行(不超过80个字符)带有空格的字符串正确

读入的语句或语句组是( )。

A. B.

C. D. 【答案】C

【解析】字符串的输入有两种方式:使用scanf ( )函数和使用get ( )函数。scanf 输入时,遇到控制字符 (空格,换行等)就认为字符输入结束,当字符串中含有空格时,用scanf 输入导致字符串输入不完整。

4. 程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s 、p 、q 均已正确定义,并用于指向链表结点,指针变量s 总是作为头指针指向链表的第一个结点。

若有以下程序段

该程序段实现的功能是( )。 A. 删除首结点 B. 尾结点成为首结点 C. 首结点成为尾结点 D. 删除尾结点 【答案】C

【解析】进过while 循环后,p 指向链表的尾结点

5. 以下四个程序中,完全正确的是( )。

【答案】B

【解析】A 项中,“main ( )”函数后面不能加分号;C 语言中注释语句的注释方法是

或//注释一行,

“indUde”前缺少“#”号。

不能嵌套使用,C 项错误; D 选项中预编译命令

是把q 置为p 的next

结点

q 的next 结点为空,此时q 结点成为链表的尾结点。

6. 以下选项中不合法的标识符是( )。

【答案】C

【解析】标识符是由若干个字符组成的字符序列,用来命名程序的一些实体。语法规则为:①标识符由字母、数字或下画线组成;②第一个字符必须是字母或下画线;③标识符最多由274个字符组成;④在标识符中严格区 分大小写字母;⑤关键字不能作为自定义的标识符在程序中使用。

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

A.C 程序总是以main ( )作为程序执行的起始行 B.main ( )函数若不带参数,其后面的一对圆括号可省略 C. 函数体内的定义语句和可执行语句允许任意穿插出现 D.C 语言中的语句之间必须用分号作为分隔符 【答案】A

【解析】main ( )函数后面的括号告诉编译器这是一个函数,不可以省略,排除B 选项;在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C 选项;C 语言中的某些语句可以不用分号,例如if 语句,宏定义,故D 选项错误;答案为A 选项。

8. 以下不合法的字符常量是( )。

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

【解析】在C 语言中,含义,仅仅代的转义,

表示转义符,可以对特殊符号进行转义,此时特殊符号不再有其他

表示换行,

表示Tab 键。A 项,

表示两位的八进

表普通的字符,\后面的字符取值范围应该在Ascn 码表范围。例如. 表示对双引号

表示对转义符的转义,

制数,8不是合法的八进制数字。B 项,表示双引号这个特殊字符;C 项,表示转义符这个特殊字符;D 项,表示两位十六进制数,是指十六进制数cc 。

9. 下列选项中,能够满足“若字符串si 等于字符串s2, 则执行ST ”要求的是( )。

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