ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:66KB ,
资源ID:502686      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-502686.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C++)笔试模拟试卷222及答案与解析.doc)为本站会员(medalangle361)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

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