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

2018年北京联合大学数字艺术803软件基础之C程序设计考研仿真模拟五套题

  摘要

一、选择题

1. 若程序中有宏定义行:

#defineN100

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

A. 宏定义行中定义了标识符N 的值为整数100

B. 在编译程序对C 源程序进行预处理时用100替换标识符N C. 上述宏定义行实现将100赋给标识符N D. 在运行时用100替换标识符N 【答案】D

【解析】D 项正确,预处理程序对源程序中所有使用宏名的地方进行直接替换。A 项错误,宏定义没有类型限制;B 项错误,预处理程序进行宏替换,而非编译程序;C 项错误,宏定义不是赋值操作,而是进行在预编译时进行替换。

2. 有以下程序:

程序运行后输出的结果是( )。 A.12, -3, 0, 0 B.-3, -1, 1, 3 C.0, 1, 2, 3

D.-3,-3,-3,-3 【答案】B

【解析】在函数参数传递时,一维数组和二维数组都是以指针的形式。函数fun 的作用是通过二维数组a 来 给数组b 赋值,元素(从倒数0个开始)。所以,

第 2 页,共 62 页

表示a 上对角线元素,表示a 中第i 行倒数第i 个

3. 有以下程序:

程序运行后的输出结果是( )。 A.1 B.123 C.23 D.3

【答案】A 【解析】和

,不执行if 后面的语句,所以最后输出只有1,故答案为A 选项。

是转义字符,表示空字符,故

成立,输出1;

是字符常量和0不等,

都是字符常量,因为

4. 有以下程序:

程序运行后的输出结果是( )。 A.aegi B.dfhk C.abed

D.abcdefghijk 【答案】A

【解析】char *a[]是定义一个指针数组,即指向指针的数组,所以,由题中初始化结果得

但是在输出语句时题中要求输出的字符

子输出第一个字符即

5. 以下函数不能用于向文件写入数据的是( )。

A.ftell B.fwrite C.fputc D.fprintf 【答案】A

【解析】函数ftell ( )用于得到文件位置指针当前位置相对于文件首的偏移字节数。在随机方式存取文件时,由于文件位置频繁地前后移动,程序不容易确定文件的当前位置。调用函

第 3 页,共 62 页

所以每个

A 项不能写入数据,BCD 三项都可以向文件中写入。 数ftell 就能非常容易地确定文件的当前位置。

6. 有以下程序:

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

【解析】函数fun 的功能:对字符串数组S 中n 个字符串按照字符串的长度由小到大进行排 序,要求输出 数组的第一个和第五个字符串的内容,即

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

若有以下程序段

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

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

是把q 置为p 的next

结点

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

第 4 页,共 62 页