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

2017年中国人民公安大学程序设计复试仿真模拟三套题

  摘要

一、选择题

1. 有以下程序:

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

A.1,2,3

B.1, 3, 2

C.1, 3, 3

D.3, 2, 1

【答案】C

【解析】题中首先定义a=l,b=2,c=3,d=0; 在执行b++==2时,先做if 判断,再执行“++”,所以第一个if 语句判断值为真,进入if 语句,再看下一个if ,这时b 经过上面运算后的值为3, 所以第二个if 语句为真(因为是或运算,只要一个为真,整体判断都为真),“II ”运算具有短路效应,这时后面的运算都忽略,不做(c-操作,所以c 值不变,仍为3。

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

A.EOF 只能作为文本文件的结束标志,其值为-1

B.EOF 可以作为所有文件的结束标志

C.EOF 只能作为二进制文件的结束标志

D. 任何文件都不能用EOF 作为文件的结束标志

【答案】A

【解析】文件结束或者错误,则返回符EOF 是在头文件中定义的宏,一般值为在while 循环中以EOF 作为文件结束标志,这种以EOF 作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII 代码值的形式存放,由于不可能出现-1,因此可以用EOF 作为文件结束标志。

3. 有以下程序:

第 2 页,共 16 页

程序的运行结果是( )。

【答案】A

【解析】程序执行过程为:将a 赋给b , 调用f 函数,将b 中name 地址与gender 和score 的值传进函数,执行函数体,strcpy 函数改变b 中name 值,但由于后两个成员为值传递不能改变b 中gender 和score 值。调用函数结束后,结构体

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

A. 在scanf 函数的格式串中,必须有与输入项一一对应的格式转换说明符

B. 只能在printf 函数中指定输入数据的宽度,而不能在scanf 函数中指定输入数据占的宽度

C.scanf 函数中的字符串是提示程序员的,输入数据时不必管它

D. 复合语句也被称为语句块,它至少要包含两条语句

【答案】C

【解析】C 项正确,scanf 函数中的字符串是为了増加程序的可读性,并不影响数据的输入。A 项错误,可以在%和格式字符之间加入号,作用是跳过对应的输入数据;B 项错误,可以在格式字符前加入一个正整数指定输入数据所占的宽度;D 项错误,用一对花括号把若干语句括

起来构成一条复合语句。一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。

5. 若有以下程序

第 3 页,共 16 页

则程序的输出结果是( )。

A.5, 1, 2, -1

B.2, 1, 2, -1

C.2, 2, 2, 4

D.1, 2, 3, 4

【答案】A 【解析】和II 是逻辑运算符,符号两侧都为真时,结果为真,否则返回假;苻号两侧都为假时,结果为假,否则返回真。

题目没有答案,原题可能是

输出a ,b ,c ,d

第一个if 判定表达式中是两个赋值语句,结果判定为true ,执行结束后a=2, b=l,c=2在第二个if 判定表达式中,c==3判定为false ,然后执行d=-l,非零值,判定为true ,所以执行a=5,最终结果是a=5,b=1,c=2,d=-1,选A 。

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

若有以下程序段

该程序段实现的功能是( )。

A. 删除首结点

B. 尾结点成为首结点

C. 首结点成为尾结点

D. 删除尾结点

【答案】C

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

7. 以下选项中关于C 语言常量的叙述错误的是( )。

A. 所谓常量,是指在程序运行过程中,其值不能被改变的量

B. 常量分为整型常量、实型常量、字符常量和字符串常量

C. 常量可分为数值型和非数值型常量

第 4 页,共 16 页 是把q 置为p 的next

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