国家二级C++机试(选择题)模拟试卷508
选择题
1.下列叙述中正确的是(B)
A. 算法的效率只与问题的规模有关,而与数据的存储结构无关
B. 算法的时间复杂度是指执行算法所需要的计算工作量
C. 数据的逻辑结构与存储结构是一一对应的
D. 算法的时间复杂度与空间复杂度一定相关
解析:算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间夏杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的:数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。
2.下列描述中正确的是( )。(D)
A. 数据的逻辑结构与存储结构必定是一一对应的
B. 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C. 程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构
D. 以上三种说法都不对
解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。
3.下列选项中,正确的C++标识符是( )。(D)
A. 6_group
B. group~6
C. age+3
D. _group_6
解析:C++中标识符的命名遵循如卜规则:不能是C十十关键字,第一个字母必须是字母或下划线,中间不能有空格,变量名中不能包括“.”、“:”、“,”、“”’、“””+.之类的特殊符号。总之标识符中除了能使用26个英文大小写字母和数字外,只能使用下划线“一”。
4.设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为( )。(D)
A. 85
B. 120
C. 250
D. 350
解析:①具有n个结点的完全二叉树的深度为[long 2 n]+1,计算出该完全二叉树的深度为10。
②设度为0的结点(即叶子结点)为n 0 ,度为1的结点为n 1 ,度为2的结点为n 2 ,总结点数为n,深度为k。n=n 1 +n 2 +n 0 ,由于n 0 =n 2 +1则n 2 =n 0 -1,故n=n 1 +n 0 -1+n 0 =n 1 +2n 0 -1。由于完全二叉树中度为1的结点数只有两种可能:0或1。
③假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2 m -1个结点,根据以上计算所得的深度10来计算,应有2 10 -1=1024-1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。
故n=n 1 +2n 0 -1=1+2n 0 -1=2n 0 ,则n 0 =n/2=700/2=350。
5.若字符指针P所指向的字符串为\\(B)
A. 9
B. 8
C. 7
D. 6
解析:字符指针p所指向的字符串为\\
6.下列选项中属于面向对象设计方法主要特征的是(A)
A. 继承
B. 自顶向下
C. 模块化
D. 逐步求精
解析:面向对象设计方法的丰要特征有封装性、继承性和多态性。而结构化程序设计方法的主要原则有自顶向下,逐步求精,模块化.限制使用goto语句。
7.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强,则耦合性越弱。软件设计应该遵循高内聚低耦合。
8.下面叙述中错误的是( )。(A)
A. 软件测试的目的是发现错误并改正错误
B. 对被调试的程序进行“错误定位”是程序调试的必要步骤
C. 程序调试通常也称为Debug
D. 软件测试应严格执行测试计划,排除测试的随意性
解析:软件测试是为了发现错误而执行程序的过程。软件测试要严格执行测试计划,排除测试的随意性。程序调试通常也称Debug,对被调试的程序进行“错误”定位是程序调试的必要步骤。
9.已知枚举类型定义语句为:
enum Token {NAME,NUMBER,PLUS=5,MINUS,PRINT=10};
则下列叙述中错误的是( )。(A)
A. 枚举常量NAME的值为1
B. 枚举常量NUMBER的值为1
C. 枚举常量MINUS的值为6
D. 枚举常量PRINT的值为10
解析:此题考查的是C++语言的数据类型。第一个枚举常量的值为0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增1。
10.有如下程序:
class Base{
public:
int data;
};
class Derivedl:public Base{};
class Derived2:protected Base{};
int main(){
Derivedl d1;
Derived2 d2;
d1.data=0; ∥①
d2.data=0; ∥②
return 0;
}
下列关于程序编译结果的描述中,正确的是( )。(C)
A. ①②皆无编译错误
B. ①有编泽错误,②无编译错误
C. ①无编译错误,②有编译错误
D. ①②皆有编译错误
解析:保护继承的类Dervied2不能访问基类Base中的公共数据成员data。
11.有如下程序:
#inc1ude <iostream>
using namespace std;
int main() {
int f,f1=0,f2=1;
for (int i=3;i<=6;i++){
f=f1+f2;
f1=f2;f2=f;
}
cout<<f<<end1;
return 0;
}
运行时的输出结果是( )。(C)
本文档预览:3600字符,共8580字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载