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

2017年南京师范大学F160C程序设计复试仿真模拟三套题

  摘要

一、选择题

1. 有如下程序:

程序运行时,从键盘输入:3〈回车〉后,程序输出结果为( )。

A.3, 4,

B.1, 2, 3, 4,

C.0, 1, 2, 3, 4, 5,

D.0, 1, 2,

【答案】A

【解析】continue 语句只能用在循环结构中,其作用是结束本次循环,即不再执行循环体中continue 语句之后的语句,而是立即转入对循环条件的判断与执行。本题执行过程为:输入3, 则data=3; 执行for 循环,i=0,if 条件成立,结束本次循环,不输出i 值,执行下一次循环;直到条件不成立,依次输出i 值3, 4, 直到i=5退出for 循环。故A 选项正确。

2. 若有定义:

则正确的switch 语句是( )。

第 2 页,共 16 页 if

【答案】D

【解析】D 项正确,标号可以是整型表达式。A 项错误,case 是关键字,与其后面的常量表达式合称case 语句标号。常量表达式的类型必须与swicth 后圆括号中的表达式类型相同,各case 语句标号的值应该互不相同。c 是变量,不能作为表达式放在case 后面;B 项错误,switch 后面

不应该有分号;C 项错误,switch 参数值类型必须是这几种类型之一:

3. 设有定义:则以下选项中对语句所作的注释叙述错误的是( )。 A. B. C.

正确的输入数据

D.

【答案】A

【解析】A 项中是起作用的,程序从键盘正确的读入前两个数据并且保存在指定的地址,读入第三个数据后,将其放入缓冲区,然后寻找应该存放的地址,因为没有找到,程序会发生错误而中断,注释错误。B 项由于scanf 只接收两个数据,所以变量x 得不到赋值,注释正确。C 项scanf 会按照float 类型读取输入的第二个数据并且保存为int 类型,由于两种类型的存储形式与所占内存单元均不同,b 得不到正确的赋值,注释正确。D 项在使用scanf 函数时,如果除了格式说明字符和附加格式字符外,还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符,注释正确。

4. 要求定义一个具有6个元素的int 型一维数组,以下选项中错误的是( )。 A. B. C.

D.

【答案】A

【解析】数组名后面括号内,必须是整型常量,不可以是变量,A 项定义错误。

5. 若有定义语句:库函数strcpy 的功能是复制字符串,以下选项中错误的函数调用是( )。 A. B. C. D.

【答案】A

【解析】题目中字符指针str3, 没有为指针开辟内存,能作为函数参数。

第 3 页,共 16 页

多余的格式符完全不起作用 多佘的输入项不能获得输入数据 输入项与格式符类型不匹配,变量b 和x 得不到; 格式串中允许加入格式符以外的字符串

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

A. 同一个数组中所有元素的类型相同

B. 不可以跳过前面的数组元素给后面的元素赋初值0

C. 定义语句

D. 若有定义语句

【答案】D

【解析】一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0, 当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。

7. 表达式:

A.0

B.3

C.4

D.5

【答案】B

【解析】运算符类型结果依然为4,

8. 有以下程序

给a 数组中所有元素赋初值0 编译时将忽略多余的初值 的值是( )。 的优先级高于的结果为所以先进行除法和求余运算,再进行减法运算。结果为4, 转换成double 类型再转换成强制类型转换表达式的形式((表达式)。:类型名)最后结果为3。

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

A.10, -1, 8,-3, 6,

B.5,4,3,2,1,

C.10, 2, 8, 4, 6,

D.5,-1,3,-3,1,

【答案】A

【解析】fim ( )函数功能是:对数组中,下标为偶数的元素累加5, 下标为奇数的元素减去5, 所以执行完fun ( )函数后,数组e 变为10, -0,8,-3,6。

二、设计题

9. 学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函数fun , 它 的功能是:按分数的高低排列学生的记录,高分在前。

注意:部分源程序存在文件中。

请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干

第 4 页,共 16 页