[计算机类试卷]国家二级(C++)笔试模拟试卷121及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷121及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷121及答案与解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 121及答案与解析 1 下列叙述中正确的是 ( A)一个算法的时间复杂度大,则其空间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度也必定大 ( C)一个算法的空间复杂度大,则其时间复杂度必定小 ( D)上述三种说法都不对 2 下列叙述中错误的是 ( A)二又链表是二又树的存储结构 ( B)循环链表是循环队列的一种存储结构 ( C)循环队列属于线性表 ( D)带链的队列是队列的一种存储结构 3 下列叙述中错误的是 ( A)继承是面向对象方法的一个主要特 征 ( B)对象是面向对象软件的基本模块 ( C)类是对象的一个实例 ( D)消息是请求对象执行
2、某一处理或卧答某一要求的信息 4 下列叙述中正确的是 ( A)软件工程主要研究如何编程 ( B)数据库设计的主要任务是设计数据库管理系统 ( C)算法的效率与数据的存储结构无关 ( D)上述三种说法都不对 5 下列叙述中正确的是 ( A)黑箱 (盒 )测试方法完全不考虑程序的内部结构和内部特征 ( B)黑箱 (盒 )测试方法主要考虑程序的内部结构和内部特征 ( C)白箱 (盒 )测试完全不考虑程序内部的逻辑结构 ( D)上述三种说法都不对 6 将 5个数据进行快速排序,在最坏情况下需要比较的次数是 ( A) 4 ( B) 5 ( C) 10 ( D) 20 7 设有如图所示的二叉树 则对该二叉
3、树后序遍历的结果是 ( A) FCADBEG ( B) ACBDFGE ( C) ABDCGEF ( D) ACBDFEG 8 关系表中的每一横行称为一个 ( A)关系 ( B)元组 ( C)属性 ( D)字段 9 在下列关系运算中,能不改变关系中属性个数且减少元组个数的是 ( A)并 ( B)差 ( C)投影 ( D)交 10 下列叙述中正确的是 ( A)实体集之间一对一的联系实际上就是一一对应的关系 ( B)关系模型只能处理实体集之间一对一的联系 ( C)关系模型属于格式化模型 ( D)以上三种说法都不对 11 关于常成员函数,下列说法中错误的是 ( A)常成员函数无法更新对象的数据成员,
4、但可以访问其他类的公用数据成员或全局变量 ( B)常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员 ( C)常成员函数既可以被常对象调用,也可以被一般对象调用 ( D)常成员函数不仅要在声明中用到 const修饰符,在定义时也 必须使用 const修饰苻 12 解决类继承中产生的二义性的方法不包括 ( A)使用作用城运算符限定访问的成员函数 ( B)在派生类中定义同名函数,且参数表必须和基类的保持一致 ( C)在派生类中定义同名函数,且参数表可以和基类的不同 ( D)采用虚基类解决多重继承中的共同基类产生的二义性 13 一个类的友元函数能够访问该类的 ( A)私有成员 ( B)
5、保护成员 ( C)公用成员 ( D)所有成员 14 执行下列语句后,输出结果为 steven的是 Char * str=“steven“; cout. write(str, ); ( A) strlen(str) ( B) sizeof(str) ( C) strlen(str+1) ( D) sizeof(str-1) 15 对于拷贝构造函数和赋值操作的关系,正确的是 ( A)拷贝构造函数和赋值操作是完全一样的操作 ( B)进行赋值操作时,会调用类的构造函数 ( C)当调用拷贝构造函数时,类的对象正在被建立并被初始化 ( D)拷贝构造函数和赋值操作不能在同一个类中被同时定义 16 下面描述中
6、体现了抽象类特性的语句是 ( A)可以说明 虚函数 ( B)可以进行构造函数重栽 ( C)可以定义友元函数 ( D)不能说明其对象 17 下面说法正确的是 ( A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 ( B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 ( C)类的内联函数必须在类体内定义 ( D)类的内联函数必须在类体外通过加关键字 inline定义 18 已知一个运行正常的的程序中有下面两个语句: int *p1, *p2P1=b由此可知,变量 a和 b的类型分别是 ( A) int和 int ( B) int*和 int ( C) int和 in
7、t* ( D) int*和 int 19 若有以下定义和语句 int a 4, b=3, *p, *q, *w; p= q w=q; q NULL; 则以下选项中错误的语句是 ( A) *q=0 ( B) w=p ( C) *p=a; ( D) *p=*w; 20 下列关于虚函数与函数重载区别的叙述中不正确的是 ( A)函数说明形式上不同 ( B)函数重载允许是非成员函数,虚函数只能是成员函数 ( C)函数重载的调用依据参数和类型 的差别,虚函数则依据对象 ( D)函数重载的本体可以在类外定义,虚函数不可以 21 请阅读以下程序 main( ) int x=1.y=0, a=0, b=0: s
8、witch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; cout “a=“ a “b=“ bend1; 上面程序的输出结果是 ( A) a=2, b=1 ( B) a=1, b=1 ( C) a=1. b=0 ( D) a=2. b=2 22 以下程序的输出结果是 main( ) int i=0,a=0: while(i 20) for:) if(i%10)=0)break; else i-; i+=11;a+=i; cout a end1; ( A) 21 ( B) 32
9、( C) 33 ( D) 11 23 以下程序的功能是按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出: main( ) int n, k, float score, sum, ave; sum=0.0; for(n=1; n =10; n+) for(k=1;k =4;k+) cin score; sum+=score; ave= sum/4.0 cout “No“ n “:“ aveend1; 上述程序运行后结果不正确,调试中发现有 一条语句出现在程序中的位置不正确。这条语句是 ( A) sum=0.0 ( B) sum+=score ( C) ave=sun/4.0
10、( D) cout “No“ n “:“ ave end1; 24 执行下列程序时输入 123空格 456空格 789回车 ,输出结果是 main() char s100; int c. i; scanf(“%c“, scanf(“%d“, scan(“%s“, s); printf(“%c, %d, %sn“, c,i,s); ( A) 123,456,789 ( B) 1,456.789 ( C) 1,23,456,789 ( D) 1,23,456 25 有如下程序 main( ) int n5=0,0,0,i, k=2; for(i=0 i k i+)ni=ni+1; cout nk
11、end1; 该程序的输出结果是 ( A)不定值 ( B) 2 ( C) 1 ( D) 0 26 下列关于虚基类的描述中错误的是 ( A)虚基类子对象的初始化由最派生类完成 ( B)虚基类子对象的初始化次数与虚基类下面的派生类个数有关 ( C)设置虚基类的目的是消除二义性 ( D)带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用 27 在某类的公共部分有声明 string operator+();和 string operator+(int);则说明 ( A) string operator+();是前置自增运算符声明 ( B) string operator+();
12、是后置自增运算符声明 ( C) string operator+(int); 是前置自增运算符声明 ( D)两条语句无区别 28 以下有关类与结构体关系的叙述不正确的是 ( A)结构体中只包含数据;类中封装了数据和操作 ( B)结构体的成员对外界通常是开放的;类的成员可以被隐蔽 ( C)用 struct不能声明一个类型名;而 class可以声明一个类名 ( D)结构体成员默认为 public;类成员默认为 private 29 设有 char str80以下不能将输入数据 firstnsecondn CR读取到数组 sir中的语句是 ( A) cin.get(str, strlen(str);
13、 ( B) cin.getline(str, strlen(str); ( C) cin str; ( D) cin.read(str, strlen(str); 30 下列能对对象进行初始化的是 ( A)构造函数 ( B)析构函数 ( C)友元函数 ( D)静态成员函数 31 控制格式输入 /输出的操作子中,设置域宽的的函 数足 ( A) ws ( B) oct ( C) setfilll(int) ( D) setw(int) 32 下列不能作为类的成员的是 ( A)自身类对象的指针 ( B)自身类对象 ( C)自身类对象的引用 ( D)另一个类的对象 33 设置虚基类的目的是 ( A)简
14、化程序 ( B)消除二义性 ( C)提高程序运行效率 ( D)减少目杯代码 34 下列描述中正确的是 ( A)类中可以定义与类名相同的数据成员 ( B)直接于类中可以定义与父类名相同的数据成员 ( C)孙子类中可以定义与爷爷类名相同的数 据成员。 ( D)类的所有子孙中都不可以定义与该类同名的数据成员。 35 要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用 ( A)重载函数 ( B)内联函数 ( C)静态函数 ( D)虚函数 36 在深度为 4的满二叉树中,叶子结点的个数为【 】。 37 在一个容量为 25的循环队列中,若头指针 front 9,尾指针 rear 16,则该
15、循环队列中共有【 】个元素。 38 在面向对象方法中,允许作用于某个对象上的操作称为【 】。 39 软件生命周期包括八个阶段。为使各时期的 任务更明确,又可以分为以下三个时期:软件定义期,软件开发期,软件维护期。编码和测试属于【 】期。 40 在数据库系统中,数据具有独立性。由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。这种独立性称为【 】。 41 为了表明一个函数不带返回值,应在定义函数时指定该函数类型为【 】。 42 下列程序如果去掉 for循环外围的大括号对,则会出现编译错误。错误原因是【 】。 #
16、include iostream, h int a=5; void main() int a=10, b=20; cout a “, “ b end1; int a=0, b=0; for (int i=1; i 8; i+) a+=i; b+=a; cout a “, “ b “, “ : a end1; cout a “, “ b end1; 43 对于下列语句 char* strl = “Hello“; char * str2 =. “Hello“; *strl = P; cout str2 end1; 其输出结果为:【 】 44 下列程序不能通过编译,应该在划线部分填写的语句是【 】。
17、 #include iostream. h #include stdlib. h double Fune(int a, int b, char ch) double x; switch(ch) case +: x=double(a) +b; break; case -: x= double(a) -b; break; case /: x=double(a) * b; break; case /: if(B) x=double(a) /b; else exit(1) break default: exit(1); _ void main() cout Func(32 , 6 ,-) “,“; c
18、out Func(32, 6 ,*) “,“; cout Func(32, 6 ,/) end1; 45 根据下面的主程序,完成类的一种构造函数的最简单形式。 #include iostream. h class base private: int num; public: 【 】 ; ; void main() base try(6); 46 下列程序的执行结果为【 】。 #inciude iostream, h int f(int i) return + +i; int g(int void main() int a, b; a=b=0; a+ =f(g(A) ); b+=f(f(B) )
19、; cout %= “ a “, b=“ (b end1; 47 下列程序的运行结果是【 】。 # include iostream. h class A public: virtual void use()cout “in An“; ; class B:public A public: virtual void use()cout “in Bn“; ; class C: public B public: virtual void use() cout “in Cn“; ; void main() A *obj; obi=new C; obj- use() delete obj; 48 完成下
20、列类的构造函数,初始化语句为【 】。 #include iostream. h class Test private: int x, y; public, void Test(int initx, int inity) _ void printx() cout x “ “ y “=“ x-y; ; void main() Test x(300, 200); x. printx(); 49 根据下列程序的执行结果,可以断定划线部分的修饰符应为【 】。 执行结果: i9a football is created. a football is created. i=10 a football is
21、destroyed. a football is created. i=20 a football is destroyed. a football is destroyed. 源程序: # inelude iostream. h class Football public: Football() cout “a football is created. “ end1; Football() cout “a football is destroyed. “ end1; ; void func(int i) _ Football f1; Football f2; cout “i= “ i end
22、1; void main() func(10); func(20); 50 下列程序的输出结果是【 】。 # include iostream. h class MyClass public: int number; void set(int i); ; int number=3; void MyClass: :set (int i) number=i; void main( ) MyClass my1; int number=10; my1.set(5), cout my1, number ,; my1.set(number); cout my1.number ,; my1.set(: :n
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 121 答案 解析 DOC
