2017年南京大学3303C++程序设计上机考试复试仿真模拟三套题
● 摘要
一、选择题
1. 以下关于C 语言数据类型使用的叙述中错误的是( )。
A. 若要准确无误差地表示自然数,应使用整数类型。
B. 若要保存带有多位小数的数据,应使用双精度类型。
C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型。
D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型。
【答案】D
【解析】C 语言的数据类型有:整型、字符型、实型、枚举类型、数组类型、结构体类型、共同体类型、指针类型和空类型。在C 语言中没有逻辑类型,而是借用整型、字符型、实型来描述逻辑数据。
2. 以下合法的转义字符是( )。 A. B. C. D.
【答案】D 【解析】
3. 有如下程序:
程序运行后的输出结果是( )。
A.12
B.14
C.20
D.13
【答案】C
【解析】整型常量中,十进制整常量没有前缀,输出格式控制符为
为前缀,输出格式控制符为进制数
十六进制整常量以或表示成十进制数为19,以十进制格式输出八进制整常量以0作十六作为前缀,输出格式控制符为故C 项正确。 表示1到2位十六进制所代表的字符,D 项正确。
4. 以下叙述中正确的是( )。
A. 不能用字符串常量对字符数组名进行整体赋值操作
B. 字符串常量“Hello”会被隐含处理成一个无名字符型数组,它有5个元素 C.
D.
【答案】A
【解析】A 项正确,不可以用赋值语句给字符数组整体赋一串字符,但是可以直接用字符串
B 项错误,常量给一维字符 数组赋初始值。编译器会在字符串常量最后添加
最近的’\0’作为其结束标志,运行时不安全;D 项错误,不能给数组str 赋值。
5. 有以下定义:
以下叙述中错误的是( )。
A.x 的内存地址与x.i 的内存地址相同
B.struct data是一个类型名
C. 初始化时,可以对x 的所有成员同时赋初值
D. 成员i 、c 和d 占用的是同一个存储空间
【答案】D
【解析】i 、c 、d 是结构体变量x 中的三个不同的成员,占用不同的存储空间。共用体的各成员占用同一个存储空间。
6. 若有以下程序
则程序的输出结果是( )。
A.11,2
B.25,2
C.11,12
D.25,26
【答案】D
【解析】S (k+j)展开后是(3+2)*(3+2)=25,T (k+j)展开后是(3+2)*(3+2)/(3+2)*(3+2)+1=26。
在语法上是合法的,运行也是安全的 效果是一样的 它共有6个元素;C 项错误,在语法上是合法的,但是没有字符串尾标识符,系统将要在其后的内存中找一个距它
7. 若有以下程序
则程序的输出结果是( )。
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 。
8. 以下叙述错误的是( )。
A. 在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法
B. 同一程序各模块可由不同人员同时进行编写调试,可提高编写程序的效率
C. 模块化的程序设计是采用自顶向下、逐步细化的原则
D. 程序的每个模块都可通过三种基本结构实现
【答案】A
【解析】结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码。进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入输出关系,然后完成 各个模块的编写调试后再集中编译,模块化的程序设计采用自顶向下、逐步细化的原则,A 选项叙述错误,C 选 项叙述正确。各个模块可以由不同人员同时进行编写调试,提高编写程序的效率,B 选项叙述正确。结构化程序 主要由3种基本控制结构组成,顺序结构、选择结构、循环结构,这三种基本结构可以解决任何复杂的问题,D 选项叙述正确。故选择A 选项。