[计算机类试卷]国家二级(C++)笔试模拟试卷179及答案与解析.doc

上传人:roleaisle130 文档编号:502637 上传时间:2018-11-29 格式:DOC 页数:18 大小:52.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷179及答案与解析.doc_第1页
第1页 / 共18页
[计算机类试卷]国家二级(C++)笔试模拟试卷179及答案与解析.doc_第2页
第2页 / 共18页
[计算机类试卷]国家二级(C++)笔试模拟试卷179及答案与解析.doc_第3页
第3页 / 共18页
[计算机类试卷]国家二级(C++)笔试模拟试卷179及答案与解析.doc_第4页
第4页 / 共18页
[计算机类试卷]国家二级(C++)笔试模拟试卷179及答案与解析.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 179及答案与解析 1 算法分析的目的是 ( ) ( A)找出数据结构的合理性 ( B)找出算法中输入和输出之间的关系 ( C)分析算法的易懂性和可靠性 ( D)分析算法的效率以求改进 2 下列叙述中正确的是 ( )。 ( A)线性链表的各元素在存储空间中的位置必须是连续的 ( B)线性链表的头元素一定存储在其他元素的前面 ( C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存储空间中 的位置不一定是连续的,且各元素的存储顺序也是任意的 3 线性表常采用的两种存储结构是 ( ) ( A)顺序

2、存储结构和链式存储结构 ( B)散列方法和索引方式 ( C)链表存储结构和数组 ( D)线性存储结构和非线性存储结构 4 设栈 S和队列 Q的初始状态为空,元素 a、 b、 c、 d、 e和 f依次通过栈 S,一个元素出栈后即进入队列 Q,若 6个元素出队的顺序是 b、 d、 c、 f、 e、 a,则栈 S的容量至少应该是 ( )。 ( A) 6 ( B) 4 ( C) 3 ( D) 2 5 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( ) ( A) DB包括: DBS 和 DBMS ( B) DBMS包括 DB和 DBS ( C) DBS包括 DB和 DBMS

3、( D)没有任何关系 6 在包含 1000个元素的线性表中实现如下各运算,所需的执行时间最长的是 ( ) ( A)线性表按顺序方式存储,在线性表的第 100个结点后面插入一个新结点 ( B)线性表按链接方式存储,在线性表的第 100个结点后面插入一个新结点 ( C)线性表按顺序方式存储,删除线性表的第 900个结点 ( D)线性表按链接方 式存储,删除指针 P所指向的结点 7 一间教室可坐多名学生,则实体教室和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 8 对于长度为 n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确韵是 ( )。

4、( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 9 对关系 S和 R进行集合运算,结果中既包含 s中的所有元组也包含 R中的所有元组,这样的集合运算称为 ( ) ( A)并运算 ( B)交运算 ( C)差运算 ( D)积运算 10 建立 E-R模型的工作,属于软件生命周期中的 ( ) ( A)需求分析阶段 ( B)设计阶段 ( C)编码阶段 ( D)测试阶段 11 在下列横线处应添加的语句是 ( )。 class Basepublic:void fun()cout“Base:fun“ end1; class: Derived:

5、public Base public: void fun() _/显示调用基类的 fun函数 cout “Derived:fun“end1; ; ( A) Derived:fun ( B) Base:fun(); ( C) Pubic:fun ( D) fun(); 12 ( )提供了类对外部的接口,私有成员是类的内部实现,而保护成员不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。 ( A)公有成员 ( B)私有成员 ( C)私有成员函数 ( D)保护成员 13 若类 A和类 B的定义如下: #include malloc.h class A int i,j

6、; public: int geti() return i; ; class B: public A int k; public: void make() k=i,j; ); 则上述定义中非法的表达式是 ( )。 ( A) k=i*j; ( B) int k; ( C) return i; ( D) void make(); 14 在下面的类定义中,错误的语句是 ( )。 class Sample public: Sample(int val): / Sample(); / private: int a=2.5; / Sample(): / ; ( A) ( B) ( C) ( D) 15 假

7、定 MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为 ( ) ( A) MyClass ( B) MyClass(MyClass x) ( C) MyClass(MyClass ( D) MyClass(MyClass *x) 16 下面对静态数据成员的描述中,正确的是 ( ) ( A)静态数据成员是类的所有对象共享的数据 ( B)类的每个对象都有自己的静态数据成员 ( C)类的不同对象有不同的静态数据成员值 ( D)静态数据 成员不能通过类的对象调用 17 关于运算符重载,下列表述中正确的是 ( )。 ( A) C+已有的任何运算符都可以重载 ( B)运算符函数的返回类型不能声

8、明为基本数据类型 ( C)在类型转换符函数的定义中不需要声明返回类型 ( D)可以通过运算符重载来创建 C+中原来没有的运算符 18 不能作为函数重载的判断依据的是 ( )。 ( A) const ( B)返回类型 ( C)参数个数 ( D)参数类型 19 有如下类的定义。横线处的语句是 ( )。 class MyClass public: MyClass(int a=0, int b=0) X=a; Y=b; void Change()const X-=10; Y+=10; private: _intX, Y; ( A) static ( B) const ( C) mutable ( D)

9、不需要填入内容 20 有如下函数模板定义: template T1 sum(T1 a1) return(a1+a2+a3); 则以下调用中正确的是 ( )。 ( A) sum int,4,3 (5); ( B) sum 4,3 (5); ( C) sum int,int,int (5); ( D) sum(5); 21 下列关于 this指针的叙述中,正确的是 ( ) ( A)任何与类相关的函数都有 this指针 ( B)类的成员函数都有 this指针 ( C)类的友元函数都有 this指针 ( D)类的非静态成员函数才有 this指针 22 以下程序输 出结果是 ( ): #include

10、iostream using namespace std; void add(int X,int y,int *z) *z=y+x; int main() int a,b,c; add(8,4, add(6,a, add(a,b, cout a “,“ b “,“ c end1; return 0; ( A) 12, 10, 14 ( B) 12, 18, 30 ( C) 12, 6, 18 ( D) 12, 14, 30 23 有如下程序: #include iostream.h using namespace std; class TestClass public: TestClass (

11、)cout “default constructorn“; TestClass(const TestClass TestClass userCode(TestClass b)TestClass c(b);return c; int main() TestClass a,d; cout “calling userCode()n“; d=userCode(a); return 0; 执行上面程序的过程中,构造函数 TestClass()和TestClass(const Testclass x)被调用的次数分别是 ( ) ( A) 2次 3次 ( B) 3次 2次 ( C)都是 2次 ( D)都是

12、3次 24 有以下程序: #include iostream using namespace std; public: TestClass(int r1,int r2) R1=r1; R2=r2; void print(); void print() const; private; int R1,R2; ; void TestClass:print() cout R1 “,“ R2end1; void Testclass:print() const cout R1 “,“ R2 end1; int main() TestClass a(5,4); const TestClass b(20,52

13、); b.print(); return 0; 执行后的输出结果是 ( )。 ( A) 5, 4 ( B) 20, 52 ( C) 0, 0 ( D) 4, 5 25 静态数据成员是为 ( )的数据。 ( A)私有 ( B)保护 ( C)所有对象共享 ( D)类成员 26 下列说法中错误的是 ( ) ( A)公有继承时基类中的 public成员在派生类中仍是 public的 ( B)公有继承时基类中的 private成员在派生类中仍 public是的 ( C)私有继承时基类中的 public成员在派生类中仍 private是的 ( D)保护继承时基类中的 public成员在派生类中仍 prot

14、ected是的 27 有如下程序: #include iostream using namespace std; TestClass()cout “BB“;fun() void fun()cout “Bf“; ; class TestClass1:public TestClass public: TestClass1()cout “DD“; void fun()cout “Df“; ; int main() TestClass1 d; return 0; 执行上面的程序将输出 ( )。 ( A) BBBfDD ( B) BBDfDDDf ( C) DD ( D) DDBBBf 28 下列程序中

15、横线处正确的语句是 ( )。 #include iostream using namespace std; class TestClass public: void fun()cout “TestClass:fun“end1; ; class TestClass1:public TestClass void fun() _/显示调用基类的函数 fun() cout “TestClass1:fun“ end1; ; ( A) fun(); ( B) TestClass.fun() ( C) TestClass:fun(); ( D) TestClass- fun(); 29 下面关于虚函数的描述

16、中正确的是 ( ) ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数即在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 30 有如下程序: #include iostream using namespace std; class TestClass1 public: virtual void fun()cout “1“; ; class TestClass2: public TestClass1 public: TestClass2()cout “2“; ; class TestClass3:publi

17、c TestClass2 public: virtual void fun()TestClass2:fun();cout “3“; ; int main() TestClass 1 aa,*p; TestClass2 bb; TestClass3 cc; p= P- fun(); return 0; 执行上面程序的输出是 ( )。 ( A) 1122 ( B) 2112 ( C) 2213 ( D) 2223 31 有如下程序: #include iostream using namespace std; long fun(int n) if(n 2) return(fun(n-1)+fun(

18、n-2); return 2; int main() cout fun(3) end1; return 0; 则该程序的输出结果应该是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 32 下列程序的输出结果是 ( )。 #include iostream using namespace std; template T fun(T a,T b)return(a =b)?a:b; void main() cout fun(3,6), fun(3.14F,6.28F) end1; ( A) 6 , 3.14 ( B) 3, 6.28 ( C) 3, 3.14 ( D) 6, 6.

19、28 33 针对数组定义 int data10;,下列表述中错误的是 ( ) ( A)用 *data可访问到数组的首元素 ( B)用 data9可访问到数组的末元素 ( C)用 data10访问数组元素会超出数组边界 ( D) data共有 10个元素,其首元素是 data1 34 有如下类声明: class Foo int bar; 则 Foo类的成员 bar是 ( ) ( A)公有数据成员 ( B)公有成员函数 ( C)私有数据成员 ( D)私有成员函数 35 为了取代 C中带参数的宏,在 C+中使用 ( )。 ( A)重载函数 ( B)内联函数 ( C)递归函数 ( D)友元函数 36

20、软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 _阶段。 37 不改变关系表中的属性个数但能减少元组个数的是 _。 38 用树形结构表示实体之间联系的模型是 _。 39 在两种基本测试方法中, _测试的原则之一是保证所测模块中每一个独立路径至少执行一次。 40 与二维表中的 “行 ”的概念最接近的概念是 _。 41 执行以下程序后,输出 “*”号的个数是 _。 #include iostream.h main() int i,j; for(i=1;i 5;i+) for(j=2;j =i;j+) cout *; 42 有如下类声明: class TestCla

21、ss1 int k; public: void set(int n)k=n; int get()constreturn k; ; class TestClass2:protected TestClass1 protected: int j; public: void set(int m,int n)TestClass1:set(m);j=n; int get()constreturn TestClass1:get()+j;) ; 则类 TestClass2中保护的数据成员和成员函数的个数是 _。 43 一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函

22、数又称 _。 44 表达式 x.operator+(y.operator+(0)还可以写成 _。 45 基类为虚函数,撤销对象调用析构函数时,采用 _联编。 46 以下函数实现的功能是 _。 void fun(char*s) char*p,*q,temp; p=s; q=s+strlen(s)-1; while(p q) temp=*p; *p=*q; *p=temp; p+; q-; 47 指针数组是由 _构成的数组。 48 已知一个函数的原型是: int fn(double a); 若要以 5.27为实参调用该函数,应使用表达式 _。 49 非成员函数应声明为类的 _函数才能访问这个类 的

23、 private成员。 50 在类中, _成员为类的所有对象所共享。 国家二级( C+)笔试模拟试卷 179答案与解析 1 【正确答案】 D 2 【正确答案】 D 3 【正确答案】 A 4 【正确答案】 C 【试题解析】 栈的操作规则是后进先出,队列的运算规则是先进先出。对于本题,出队顺序也就是入队顺序,同样也是出栈顺序,为了得到 b、 d、 c、 f、 e、 a出栈顺序,则入栈顺序应该是 a进、 b 进、 b出、 c进、 d 进、 d出、 c出、 e进、 f进、 f 出、 e出、 a出。可以看作最多只有 3个元素在 栈内,所以栈的容量最少应为 3。 5 【正确答案】 C 6 【正确答案】 A

24、 【试题解析】 由于线性表采用的是顺序存储方式,用存储单元的邻接性体现线性表元素间的一维顺序关系,因此对线性表进行插入和删除运算时,可能需要移动大量的结点,以保持这种物理和逻辑的一一致性。对于选项 A),后面的 900个结点都要住后移动,对于选项 C),后面的 100个结点都要往前移动。而对于线性表按链接方式存储,当进行插入与删除操作时,只改变相应的指针即可,所以比较 4个选项的操作可得知选项 A)所需要的执行时间最长。 7 【 正确答案】 B 8 【正确答案】 D 9 【正确答案】 A 10 【正确答案】 B 11 【正确答案】 B 12 【正确答案】 A 13 【正确答案】 A 【试题解析

25、】 因为派生类不能访问基类的私有成员 i和 j(默认情况下,成员的属性为私有 ),所以表达式 k=i*j是非法的。其余的访问权限都是许可的。 14 【正确答案】 C 15 【正确答案】 C 【试题解析】 拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它的一般格式是:类名 :类名 (const类名 ”, TestClass2继承于 TestClass1中的fun,所以输出 1。然后输出 TestClass3 中的 “cout ”3”,即输出 3。 31 【正确答案】 C 32 【正确答案 】 D 33 【正确答案】 D 34 【正确答案】 C 35 【正确答案

26、】 B 36 【正确答案】 开发 【试题解析】 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。定义阶段包括可行性研究初步项目计划和需求分析:开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用、维护和退役。 37 【正确答案】 选抒 38 【正确答案】 层次模型 39 【正确答案】 白盒 【试题解析】 按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证所测试模 块中每一独立路径至少执行一次;保证所测试模块所有判断的每一分支至少执行一次;保证所测试模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。 40 【正确答案】 元组 【试题解析】 在关系模型中,数据结构用单一的二维表结构来表示实体及实体间的联系。一个关系对应一个二维表。 二维表中的列称为属性,属性值的取值范围称为值域。二维表中的行称为一个元组。 41 【正确答案】 6 42 【正确答案】 3 43 【正确答案】 纯虚函数 44 【正确答案】 x+y+ 或 x+(y+) 45 【正确答案】 动态 46 【正确答案】 将字符串首尾颠倒 47 【正确答案】 指针或指针变量 48 【正确答案】 fn(5.27) 49 【正确答案】 友元 50 【正确答案】 静态

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1