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

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

1、国家二级( C+)笔试模拟试卷 222及答案与解析 1 下列有关 C+流的叙述中,错误的是 ( A) C+操作符 setw设置的输出宽度永久有效 ( B) C+操作符 endl可以实现输出的回车换行 ( C)处理文件 I/O时,要包含头文件 fstream ( D)进行输入操作时, eof( )函数用于检测是否到达文件尾 2 有如下程序: #include iostream using namespace std; class MyClass public: MyClass(int x): val(X) void Print( )constcout“const: val=“ val t; vo

2、id Print( )eout “val=“ val t; private: int val; ; int main( ) const MyClass objl(10); MyClass obj2(20); objl Print( ); obj2 Print( ); return 0; 程序的输出结果是 ( A) val=10 const:val=20 ( B) eonst:val=10 eonst:val=20 ( C) eonst:val=10 val=20 ( D) val=10 val=20 3 数据库 DB、数据库系统: DBS、数据库管理系统 DBMS之间的关系是( )。 ( A)

3、 DB包括 DBS和 DBMS ( B) DBMS包括。 DB和 DBS ( C) DBS包括 DB和 DBMS ( D)没有任何关系 4 下列叙述中正确的是 ( )。 ( A)线性链表的各元素在存储空间中的位置必须是连续的 ( B)线性链表的头元素一定存储在其他元素的前面 ( C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 5 下面描述中,不属于软件危机表现的是 ( A)软件过程不规范 ( B)软件开发生产率低 ( C)软件质量难以控制 ( D)软件成本不断提

4、高 6 “商品 ”与 “顾客 ”两个实体集之间联系一般是 ( )。 ( A)一对一 ( B)多对多 ( C)一对多 ( D)多对一 7 在有 n个结点的二叉链表中,值为非空的链域的个数为 _。 ( A) n-1 ( B) 2n-1 ( C) n+1 ( D) 2n+1 8 下列叙述中错误的是 ( A)在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统 ( B)在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关 ( C)在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关 ( D)在数据库设计的过程中,物理结构设计依赖于具体的计算机系统 9 下列关于队列的叙述中,正确的

5、是 ( )。 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 10 最简单的交换排序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 11 若有以下程序: #include iostream using namespace std; class A private: int a; public: A(int i) a=i; void disp () cout a “,“; ; class B private: int b; public: B(int j) b=j; void di

6、sp () cout b “,“; ; class C : public B,public A private: int c; public: C(int k):A(k-2),B(k+2) c=k; void disp () A:disp(); B:disp(); cout c endl; ; int main() C obj(10); obj.disp(); return 0; ( A) 10,10,10 ( B) 10,12,14 ( C) 8,10,12 ( D) 8,12,10 12 下列程序的输出结果是 ( )。 #include iostream.h main() int m=5;

7、 if(m+ 5) cout m; else cout m-; ( A) 7 ( B) 6 ( C) 5 ( D) 4 13 下列运算符中,不能重载的是 ( A) ?: ( B) + ( C) - ( D) = 14 若执行以下程序时从键盘上输入 9,则输出结果是 main( ) int n; cin n; if(n+ 10)cout n end1; else cout n - - end1; ( A) 11 ( B) 10 ( C) 9 ( D) 8 15 下列有关类继承的叙述中,错误的是 ( )。 ( A)继承可以实现软件复用 ( B)虚基类可以解决由多继承产生的二义性问题 ( C)派生类

8、构造函数要负责调用基 类的构造函数 ( D)派生类没有继承基类的私有成员 16 下列各组类型声明符中,含义相同的一组是 ( )。 ( A) unsigned longint 和 long ( B) signed short和 short ( C) unsigned short和 short ( D) shortint和 int 17 有关析构函数的说法不正确的是 ( )。 ( A)析构函数有且只有一个 ( B)析构函数无任何函数类型 ( C)析构函数和构造函数一样可以有形参 ( D)析构函数的作用是在对象被撤销时收回先前分 配的内存空间 18 下列叙述正确的是 ( )。 ( A)对于虚拟类型参

9、数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 ( B)对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 ( C)对于常规参数所对应的模板实参,任何情况下都不能省略 ( D)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 19 下列打开文件的表达式中,错误的是 ( )。 ( A) ofstream ofile;ofile.open(“C:vca.txt“,ios:binary); ( B) fstream iofile;iofile.open(“a.txt“,ios:ate); ( C) ifstream ifile(“C:

10、vca.txt“); ( D) cout.open(“C:vcs.txt“,ios:binary); 20 char c=41;printf(“%o“,c); 的结果为 ( )。 ( A) 0101 ( B) 101 ( C) 41 ( D) 65 21 下面是类 MyChss 的定义,对定义中语句描述正确的 是 ( )。 class MyClasspublic: void MyClass(int a)X=a; ) / int f(int a, int b) / X=a; Y=b; int f(int a, int b, int c=0) / X=a; Y=b; Z=c; stahc void

11、 g ()X=10; ) / private: int X, Y, Z; ; ( A)语句 是类 MyClass的构造函数定义 ( B)语句 和语句 实现类成员函数 的重载 ( C)语句 实现对类成员变量 X的更新操作 ( D)语句 和 都不正确 22 下列对变量的引用中,错误的是 ( )。 ( A) int a; int ) 下列对函数模扳 Max的调用中错误是 ( A) Max(3.5,4,5) ( B) Max(3.5,4) ( C) Max double (3.5,4.5) ( D) Max double (3.5,4) 36 37 【 】结构,也称为重复结构,即算法中有一组操作要求反

12、复被执行。 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 在下列基类的定义中,有无 virtual修饰 use成员函数的结果将不同,其原因是_。 当 use( )为虚拟函数时的程序

13、执行结果: sizeof(A)=8 sized(B)=12 sizeof(C)=16 当 use( )非虚拟函数时的程序执行结果: sizeof(A)=4 sized(B)=8 sizeof(C)=12 源程序如下: #include iostream.h class Grandad public: Grandad( ):money(10) int money; virtual void use( ) ; class Father:public Grandad public: Father( ):money(100) int money; void use( ) ; class Son:pub

14、lic Father public: Son( ):money(300) int money; void use( ) ; void main(void) Grandad A;Father B;Son C; cout “sizeof(A)=“ sizeof(A) endl; cout “sizeof(B)=“ sizeof(B) endl; cout “sizeof(C)=“ sizeof(C) endl; 43 重载的流运算符函数经常定义为类的【 】函数。 44 有以下程序 #include iostream using namespace std; class MyClass public

15、: static int s; MyClass(); void SetValue(int val); ; int MyClass:s=0; MyClass:MyClass() S+; void MyClass:SetValue(int val) S=val: int main() MyClass my3, *p; p=my; for(int k=0; k 3; k+) P- Set Value(k+1); p+; cout MyClaSS:s endl; retum 0; 运行后的输出结果是【 】。 45 switch后面括号中的表达式只能是整型、 _或枚举型表达式。 46 设在主函数中有以下

16、定义和函数调用语句,且 fun()函数为 void类型,请写出fun()函数的首部【 】。 int main() double s1022; int n; fun(s); return 0; 47 非成员函数只有在声明为类的【 】才能访问这个类的所有 private成员。 48 下列程序用于打印出 ASC 字符,其析构函数内的语句应为【 】。 # include iostream. h # inelude iomanip, h template class T class Array T * elems; int size; public: Array(int.s); Array() T te

17、mplate class T Array T :Array(int s) size=s; elems=new Tsize for(int i=0;i size;i+) elemsi=0 template celass T Array T : Array() _ template class T T template class T void Array T :operator=(T temp) for(int i=0;i size;i+) elemsi=temp; void main() int i,n=26; Array int arr1(n) Array char arr2(n) for(

18、i=0;i n;i+) -. arr1i=a+i; arr2i=a+i; cout “ASCII 字符 “ endl; for(i=0;i n;i+) cout setw(8) arr1i setw(8) arr2i endl; 49 下列说明 const chr* ptr;中, ptr应该是【 】。 50 有如下程序: #include iostream using namespace std; class PARENT public: PARENT() cout “PARENT“; ; class SON: public PARENT public: SON() cout “SON“; ;

19、 int main() SON son; PARENT *p; p = return 0; 执行上面程序的输出是【 】。 国家二级( C+)笔试模拟试卷 222答案与解析 1 【正确答案】 A 2 【正确答案】 C 3 【正确答案】 C 【试题解析】 数据库系统 (DBS)由数据库 (DB)、数据库管理系统 (DBMS)、数据库管理员、硬件平台和软件平台 5个部分组成,可见 DB 和 DBMS 都是 DBS 的组成部分。 4 【正确答案】 D 5 【正确答案】 A 【试题解析】 本题主要考查了软件危机的表现。在软件的开发和维护过程中,软件危机主要表现在: 软件质量难以保证。 软件的成本不断提高

20、。 软件开发生产率提高的速 度,远远跟不上计算机应用迅速普及深入的趋势。总之,软件危机可以归纳为成本、质量、生产率等问题。 6 【正确答案】 B 【试题解析】 对于 “商品 ”和 “顾客 ”两个实体集来说,一种商品可被多个顾客来购买,而一个顾客也可以购买多种商品。因此,两者的联系属于多对多的联系。 7 【正确答案】 A 8 【正确答案】 B 【试题解析】 数据库设计主要分四个步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计。选项 B错误,应为所选,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的 逻辑结构,也独立于具体的数据库管理系统,与具体的数据库管理系统无关。 9

21、 【正确答案】 C 【试题解析】 队列是指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端称为队尾,允许删除的一端称为队头,所以在队列中既可以插入数据,也能删除数据,所以选项 A、 B是错误的。在这种数据结构中,最先插入的元素最先能够被删除,因此队列又称为先进先出的线性表。答案是 C。 10 【正确答案】 D 11 【正确答案】 D 【试题解析】 本题考核派生类构造函数的使用。本题中,派生类 c具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。 12 【正确答案】 B 【试题解析】 此题中,因为 m+ 5成立 (此时 m的值变为 6),所以执行

22、语句cout m;输出结果为 6。 13 【正确答案】 A 【试题解析】 :?是 C+中唯一一个三目运算符,不能被重载。 14 【正确答案】 B 【试题解析】 本题考察的是后置自增运算符的知识,题中 if语句可以拆解为:if(n 10)n+=1, cout n endl;。 15 【正确答案】 D 【 试题解析】 本题考查的是类继承。派生类继承了基类的全部数据成员和私有成员,只是基类的私有成员在派生类中是隐藏的,只能在基类内部访问。 16 【正确答案】 B 【试题解析】 本题考查的知识点是:基本类型的派生类型。派生类型声明符是由基本类型关键字 char、 int、 float、 double前

23、面加上类型修饰符组成的。类型修饰符包括: short短类型,缩短字长; long 长类型,加长字长; signed 有符号类型,取值范围包括正负值 unsigned 无符号类型,取值范围只包括正值。其中signed 和 unsigned只能同时出现一个,如果省略则默认为 signed。 short和 long也只能同时出现一个,如果修饰的类型是 int,则可以省略 int。 unsigned long int的省略形式 17 【正确答案】 D 【试题解析】 析构函数是在对象被撤销之前执行,但析构函数本身并不会收回先前分配的内存空间。 18 【正确答案】 C 【试题解析】 本题考核函数模板的使用

24、。函数的实参可以省略,但模板实参的省略并不是必然的,而是有条件的。 19 【正确答案】 D 【试题解析】 选项 D中, open()函数并不是 cout对象中的成员函数,因此对open()函数的调用是非法的。 20 【正确答案】 C 【试题解析】 printf(“%o“,c);以八进制输出 c,而 41就是八进制表示的字符。 , 21 【正确答案】 D 22 【正确答案】 B 23 【正确答案】 A 24 【正确答案】 C 25 【正确答案】 B 26 【正确答案】 B 27 【正确答案】 B 【试题解析】 本题考查的是运算符的优先级,应该先计算 a+b 的值为 21,然后与 c比较大小的值为

25、 0,根据 “i 5;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 【正确答案】 采用虚函数的每个派生类都含有一个指向虚函数表的指针,故多4字节。 43 【正确答案】 友元 44 【正确答案】 3 45 【正确答案】 字符型 46 【正确答案】 void fun(b22) 【试题解析】 此题考核的知识点是函数的定义

26、形式与数组名作为函数的参数。函数头的定义形式是 “存储类型说明符数据类型说明符函数名 (形参列表 )”,此题没有涉及到函数的存 储类别。如果函数的参数是数组,其第 1维的长度可以省略。因此本题的函数首部可以写成: void fun( b22)。 47 【正确答案】 友元函数 【试题解析】 本题考核友元函数。 C规定,一个类的私有成员和保护成员,只能由其本身的成员来访问,不能被其他函数访问,这样形成了封装的概念,也保护了类本身的数据不致于受到破坏。但是,如果想让类中的成员数据可以被其他函数访问,可以通过友元函数声明,来分享类中的资源。类的友元函数可以直接访问该类的所有成员,包括私有成员。 48

27、【正确答案】 delete elems; 【试题解析】 注意,用 new动态申请的内存在使用完成后一定要用 delete释放。 49 【正确答案】 指向常量的指针 【试题解析】 见常量指针的定义。 50 【正确答案】 PARENTSON 【试题解析】 本题考查了派生类的构造。在构造一个派生类的时候,会先构造其基类。所以主函数一开始在定义 SON类的对象 son 时,会先执行 PARENT类的构造函数再执行 SON类的构造函数,输出 “PARENTSON”。接下来定义了一个PARENT 类指针 p,此处并未创建任何对象,所 以不会调用构造函数。第 3条语句让指针 p指向 son 对象,此步只改变了指针 p 的值,所以也没有输出。故最终输出的结果就是: PARENTSON。

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

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

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