1、国家二级( C+)笔试模拟试卷 213及答案与解析 1 下列叙述中错误的是 ( )。 ( A)一种数据的逻辑结构可以有多种存储结构 ( B)数据的存储结构与数据的处理效率无关 ( C)数据的存储结构与数据的处理效率密切相关 ( D)数据的存储结构在计算机中所占的空间不一定是连续的 2 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性表 3 以下关于顺序存储结构的叙述中, ( )是正确的。 ( A)每个结点中至少包含一个指针域 ( B)逻辑上相邻的结点物理上不必邻接 ( C)可用于栈、队列、树等逻辑结构的存储表示
2、 ( D)插入、删除运算操作不方便 4 结构化分析方法是面向 ( )的自顶向下逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 5 在 E-R图中,用来表示属性的图形是 ( )。 ( A)矩形 ( B)椭圆形 ( C)菱形 ( D)平行四边形 6 有 3个结点的二叉树有 ( )。 ( A) 2种形态 ( B) 4种形态 ( C) 7种形态 ( D) 5种形态 7 软件结构设计的图形工具是 ( )。 ( A) DFD图 ( B)结构图 ( C) PAD图 ( D) N-S图 8 下列选项中不属于软件生命周期开发阶段任务的是 ( )。 ( A)软件测试 (
3、 B)概要设计 ( C)软件维护 ( D)详细设计 9 在一棵二叉树的前序遍历、中序遍历、后序遍历所产生的序列中,所有叶结点的先后顺 ( )。 ( A)都不相同 ( B)完全相同 ( C)前序和中序相同,而与后序不同 ( D)中序和后序相同,而与前序不同 10 用白盒法设计测试用例的方法包括 ( )。 ( A)错误推测 ( B)因果图 ( C)基本路径测试 ( D)边界值分析 11 下面关于面向对象的程序设计方法中,正确的是 ( )。 ( A) “多态性 ”是指对象的状态根据运行的要求进行变化 ( B) “封装性 ”是指将不同类型的数据结合在一起作为一个整体来处理 ( C)在面向对象 的程序设
4、计中,结构化程序设计方法仍有着重要作用 ( D)基类的私有成员在派生类的对象中不可访问,也不占内存空间 12 下列关于函数模板的定义中,合法的是 ( )。 ( A) template class T abs(T z)return z T abs(T z)return zabs(T z)return z using namespace std; int m=5; int main() int m=3: m+: : m+: cout using namespace std; class Base public: virtual void func1()coutfunc1(); p-func2();
5、 return 0; 运行此程序,屏幕上将显示输出 _。 ( A) Derived 1 Base 2 ( B) Base 1 Base 2 ( C) Derived 1 Derived 2 ( D) Base 1 Derived 2 24 下面关于友元的说法中错误的是 ( )。 ( A)若类 A是类 B的友元,那么类 B也是类 A的友元 ( B)友元关系不能被继承 ( C)若函数 fun被说明为类 A的友元,那么在 fun中可以访问类 A的私有成员 ( D)若类 A是类 B的友元,那么类 A的所有成员函数都是类 B的友元 25 运行以下的程序代码,结 果是 ( )。 #include usin
6、g namespace std; intmain() int x=5: int *q=i5; i+)”是由 1到 4,一共是 4次循环。内层循环 “for(j=2;j=i;j+)”是 j初始等于 2,当 j小于等于 i那么 j就加 1。所以只有当 i等于 2时才进入内层循环,当 i等于 2时,内层循环进行一次,输出一个“*”,同理 i=3时两个 “*”, i=4时 3个 “*”,所以一共是 6个。 42 【正确答案】 3 【试题解析】 首先在 TestClass2中声明为 protected的变量 j为保护的数据成员。然后 TestClass2保护继承于 TestClass1,所以基类 Tes
7、tClass1中的公有成员和保护成员在派生类 TestClass2中都成了保护成员。即 get和 set函数都成了保护成员。 43 【正确答案】 纯虚函数 【试题解析】 纯虚函数是在声明虚函数时被 “初始化 ”为 0的函数。纯虚函数没有函数体,只是函数的名而不具备函数的功能,只是在基类中预留了一个函数名,具体功能留给派生类根据需要去定义。 44 【正确答案】 x+y+ 或 x+(y+) 【试题解析】 此题考查的是运算符重载。 y.operator+(0)部分是调用的 “H”运算符的重载函数,因为多了一个虚拟参数,所以应该是重载的后缀,即 y+,而不是 +y。 x operator+(y.ope
8、rator+(0)表示的就是 x+(y+)。 45 【正确答案】 动态 【试题解析】 当基类的析构函数为虚函数时,无论指针指的哪一个类的对象,对象撤销,系统都会采用动态联编,调用相应的析构函数,对对象进行清理工作。 46 【正确答案】 将字符串首尾颠倒 【试题解析】 “p=s; ”将指针 p指向串 s头,然后 “q=s+strlen(s)-1; ”将 q指向串s尾。在 while循环中将 p, q指向的字符交换,即循环后实现首尾颠倒。 47 【正确答案】 指针或指针变量 【试题解析】 此题考查的是指针数组的概念。指针数组是由指针组成的数组,即数组中的每一个元素都是指向同一类型对象的指针。 48 【正确答案】 血 (5 27) 【试题解析】 此题考查的是函数调用。 C+中函数调用的一般形式是:函数名(实参表 )。 49 【正确答 案】 友元 【试题解析】 此题考查的是友元函数。一个类的私有成员和保护成员,只能由其本身的成员来访问,不能被其他函数访问,但是如果想让类中的数据成员可以被其他函数访问,可以通过友元函数声明来分享类中的数据资源。 50 【正确答案】 静态 【试题解析】 类的静态成员属于整个类,为类的所有对象所共享。