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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)笔试模拟试卷 214及答案与解析 1 下列有关继承和派生的叙述中,正确的是 A) 派生类不能访问基类的保护成员 B) 作为虚基类的类不能被实例化 C) 派生类应当向基类的构造函数传递参数 D) 虚函数必须在派生类中重新实现 2 以下模板定义 : template class T T fun(T x,T y)return x*x+y*y; 下面对fun的调用中错误的是 ( )。 ( A) fun int (2,6.5) ( B) fun(2,6.5) ( C) fun (2,6) ( D) fun(2,6) 3 从工程管理角度,软件设计一般分为两步完成,它们是 ( A)概要设计

2、与详细设计 ( B)数据设计与接口设计 ( C)软件结构设计与数据设计 ( D)过程设计与数据设计 4 有如下程序: #include iostream using namespace std: class A public: virtual void funcl( )cout “A1“; void func2( )cout“A2“; ; class B: public A public: void funcl( )cout “B1“; void fllnc2( )cout “B2“; ; int main( ) A*p=new B; p- funcl( ); p-func2( ); retu

3、rn 0: 运行程序,屏幕上将显示输出 ( A) B182 ( B) A1A2 ( C) BlA2 ( D) AlB2 5 6 单个用户使用的数据视图的描述称为 ( )。 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 7 以下关于外码和相应的主码之间的关系,正确的是 _。 ( A)外码并不一定要与相应的主码同名 ( B)外码一定要与相应的主码同名 ( C)外码一定要与相应的主码同名而且唯一 ( D)外码一定要与相应的主码同名,但并不一定唯一 8 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为 _。 ( A)顺序存储结构 ( B)链式存储结构 ( C)索

4、 引存储结构 ( D)散列存储结构 9 下列说法中错误的是 ( )。 ( A)公有继承时基类中的 public成员在派生类中仍是 public的 ( B)公有继承时基类中的 private成员在派生类中仍是 private的 ( C)私有继承时基类中的 public成员在派生类中是 private的 ( D)保护继承时基类中的 public成员在派生类中是 protected的 10 对建立良好的程序设计风格,下面描述正确的是 ( )。 ( A)程序应简单、清晰、可读性好 ( B)符号的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 11 在进行了任何 C+流的操

5、作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败函数名是 ( A) fail ( B) eof ( C) bad ( D) good 12 在下面的类定义中,横线处应填入的内容是 class Fred public: void print () cout data end1; void setData (double D) data=d; static int count; private: double data; ;_count=0; /静态数据成员的定义 ( A) int ( B) static int ( C) int Fred: ( D) sta

6、tic int Fred: 13 有如下程序: #include iostream using namespace std; int main() cout.fill(*); cout.width(6); cout.fill(#); cout 123 end1; return 0; 执行后的输出结果是 ( A) #123 ( B) 123# ( C) *123 ( D) 123* 14 已知 n是一个 int型变量,下列语句中错误的是 ( )。 ( A) long*p=new longn; ( B) long pn; ( C) long*p=new long(n); ( D) long p10

7、; 15 下列有关类和对象的叙述不正确的是 ( A)任 何一个对象都归属于一个具体的类 ( B)类与对象的关系和数据类型与变量的关系相似 ( C)类的数据成员不允许是另一个类的对象 ( D)一个类可以被实例化成多个对象 16 有如下程序: #include iostream using namespace std; Class A public: A()cout “A”; A()cout “ A”; ; A*p; public: B()cout “B”; p new A; B()cout “ B”; delete p; ; B obj; return 0; ) 执行这个程序的输出结果是 ( (

8、 A) BAA A B A ( B) ABA B A A ( C) BAA B A A ( D) ABA A B A 17 下列程序的运行结果是 #include iostream.h class A int a; public: A( ) a 0; A(int aa) a aa; cout a ; ; void main( ) A x,y(2) ,z(3) ; cout endl; ( A) 00 ( B) 23 ( C) 34 ( D) 25 18 下列关于虚函数与函数重载区别的叙述中不正确的是 ( )。 ( A)函数说明形式上不同 ( B)函数重载允许是非成员函数,虚函数只能是成员函 数

9、 ( C)函数重载的调用依据参数和类型的差别,虚函数则依据对象 ( D)函数重载的本体可以在类外定义,虚函数不可以 19 有如下程序: #include iostream) using namespace std; classBase public: Base(int x 0)cout x; ; Class Derived: public Base public: Derived(int x 0)cout x; private: Base Val; ; int main() Derived d(1); return ( A) 100 ( B) 000 ( C) 010 ( D) 001 20

10、下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除,在下画线处应填入的选项是 #include iostream.h Void main( ) int i 0,j,k; doi ;k 316 13 * i;while(_) ; j k/11; cout “316 13 * “ i “ 11 *“ j; ( A) k/11 ( B) k%11 ( C) k/11 0 ( D) k%11 0 21 有如下程序: #include using namespace std; class TestClass int n; public: TestClass(int k):

11、 n(k) int get()return n; int get()constreturn n+1; ; int main() TestClass p(5); const TestClass q(6); coutp get()q get(); return 0; 执行后的输出结果是 ( )。 ( A) 55 ( B) 57 ( C) 75 ( D) 77 22 下列关 于 C+流的说明中,正确的是 ( )。 ( A)与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 ( B)从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作 ( C) cin 是一个预定义的输入流类 (

12、D)输出流有一个名为 open的成员函数,其作用是生成一个新的流对象 23 内部格式控制操作函数是在头文件 ( )中定义的。 ( A) iostream.h ( B) iomanip.h ( C) istream.h ( D) ostream.h 24 在说明一个结构体变量时,系 统分配给它的存储空间是 ( )。 ( A)该结构体中第一个成员所需的存储空间 ( B)该结构体中最后一个成员所需的存储空间 ( C)该结构体中占用最大存储空间的成员所需的存储空间 ( D)该结构体中所有成员所需存储空间的总和 25 假定 MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为 ( )。 ( A

13、) MyClass sub2(char*a,char b) char c: c=*a; ”a=b; b=c; sub3(char*a, char*b) char c; c=*a; ”a=*b; *b=c; void main() char a,b; a=A; b=B:sub1(a, b); putchar(a): putchar(b): a=A;b=B; sub2( sub3( while(argv1i! =0) n=fun();i+; cout n*argcendl; int fun() static int s=0; s+ 1; return s; 假设程序经编译、连接后生成可执行文件 e

14、xam.exe,若键入以下命令行 exam 123回车 则运行结果为 ( A) 6 ( B) 8 ( C) 3 ( D) 4 33 在 C+语言程序中 ( A)函数的定义可以嵌套,但函数的调用不可以嵌套 ( B)函数的定义和调用均可以嵌套 ( C)函数的定义和调用均不可以嵌套 ( D)函数的定义不可以嵌套,但函数的调用可以嵌套 34 表示 C+类中保护成员的关键字是 ( )。 ( A) public ( B) private ( C) virtual ( D) Rrotected 35 在语句 cin data;中, cin是 ( A) C+的关键字 ( B)类名 ( C)对象名 ( D)函数

15、名 36 在 最坏情况下,堆排序需要比较的次数为 _。 37 38 在深度为 5的完全二叉树中,叶子结点的个数最多为【 】。 39 符合结构化原则的 3种基本控制结构是:选择结构、循环结构和【 】。 40 一个队列的初始状态为空。现将元素 A, B, C, D, E, F, 5,4,3,2,1依次入队,然后再依次退队则元素退队的顺序为 _。 41 表达式 c3=c1.operator+(c2)或 c3=operator+(c1,c2)还可以表示为 _。 42 为解决在多重继承环境中因公共基类 带来的 _问题, C+语言提供了虚基类机制。 43 在任何类中都有三种访问权限的数据成员,这三种权限是

16、 public、 private和_。 44 下面程序运行输出的结果是【 】。 #include iostream using namespace std; int main() char a=“Chinese“; a3=0; cout a endl; return 0; 45 在下面函数的横线处填上适当的内容,使该函数能够利用递归方法求解字符串str的长度 (不得使用系统提供的字符串处理函数 )。 int GJetLen(char*str) if(【 】 ) return 0; else return 1+GetLen (str+1); 46 在一个函数的定义或声明前加上关键字【 】时,该函

17、数就声明为内联函数。 47 由 C+编写的面向对象的程序是由一个个的对象组成,对象之间通过【 】而相互作用。 48 C+语言中表示双精度浮点数的关 键字是【 】。 49 假设 fin是一个文件流对象,则关闭文件的语句是【 】。 50 如果要把返回值为 void的函数 A声明为类 B的友元函数,则应在类 B的定义中加入的语句是【 】。 国家二级( C+)笔试模拟试卷 214答案与解析 1 【正确答案】 C 2 【正确答案】 B 3 【正确答案】 A 【试题解析】 从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步简化成软件

18、的算法或表示和数据结构。而在技术上,概 要设计和详细设计又由若干活动组成,包括总体结构设计、数据设计和过程设计。因此,本题的正确答案是A。 4 【正确答案】 B 【试题解析】 基类指针可以指向派生类对象,但是指针只能访问继承自基类的成员,而不能访问派生类中的新增加成员或重新定义后的成员。故 p- funcl( ); p- func2( );都执行基类的成员函数,打印 A1A2。 5 【正确答案】 C 6 【正确答案】 A 【试题解析】 单个用户使用的数据视图的描述称为外模式。 7 【正确答案】 A 8 【正确答案】 D 9 【正确答案】 B 10 【正确答案】 A 【试题解析】 本题涉及程序的

19、编程风格,考生应该掌握一些基本的良好编程风格。符号的命名不仅要符合语法,应有一定实际意义,且尽量简洁。除非对效率有特别要求,程序编写要做到清晰第一,效率第二。必须要有必要的注释。 11 【正确答案】 A 【试题解析】 C+中可以用文件流对象的下列成员函数来判别文件流的当前状态。函数 is_ open()判定流对象是否与一个打开的文件相联系,若是,返回 true,否则返回 false;函数 good()刚进行的操作成 功时返回 true,否则返回 false;函数fail()与 good()相反,刚进行的操作失败时返回 true,否则返回 false;函数 bad()如果进行了非法操作返回 tr

20、ue,否则返回 false;函数 eof()进行输入操作时,若到达文件尾返回 true,否则返回 false。其中, eof函数只能用于输入流操作。 12 【正确答案】 C 【试题解析】 本题考核静态数据成员的定义。题中数据成员 count被定义成了静态的,其初始化的格式为:类型类名:静态数据成员 =常量值 ;,所以横线处应填入的为 “int Fred”。 13 【正确答案】 A 【试题解析】 本题考核 I/O 的格式化输出。语句 “cout.fill(*);”表示填充字符为*,并且一直有效,直到再次设置填充字符为止。语句 “cout.width(6);”用来设置输入输出宽度,当实际数据宽度小

21、于指定的宽度时,多余的位置用填充字符填满;当实际数据的宽度大于设置的宽度时,仍按实际的宽度输出。语句“cout.fill(#);”表示将填充字符改为 #(即把之前设置的 #改为 #),由于数据“123”的实际宽度小于 6,由于输出的 初始状态为在输出宽度内右对齐,所以前面将会有 3个填充字符 #。 14 【正确答案】 B 【试题解析】 此题考查的是数组、指针及关键字 new。说明一维数组的一般形式是:数组类型 数组名 数组长度 ;其中数组长度必须是整型常量或常量表达式。选项 B)中, n是一个变量,不能做数组的长度,故选项 B)错误;其他选项均正确。 15 【正确答案】 C 【试题解析】 对象

22、是类的实例,类的成员可以是其他类的对象。那么在该类实例化的时候,必须保证其他类的对象已经生成,否则将会出现错误。 16 【正确答 案】 B 【试题解析】 本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用予对象的构造函数,调用顺序按它们在类中说明的顺序,最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出 A,然后调用于对象的构造函数输出 B, p newA再调用类 A的构造函数输出 A;析构函数的调用顺序和构造函数的调用顺序相反。 17 【正确答案】 B 【试题解析】 本题考查的是对构造函数的掌握,另

23、外 “ ”运算符是右结合的,所以在 进行输出的时候都是先把原来的输出后再自加 1。 18 【正确答案】 D 【试题解析】 A项, B 项, C项均为虚函数与函数重载的不同之处。但有一点它们是相同的:在类内外定义均可。故 D项错误。 19 【正确答案】 D 【试题解析】 本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下: 执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序 (自左向右 ); 执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序 (自上而下 ): 执行自身的构造函数。本题 Derived 类继承于 Base类,所以首先会构造基类 Base

24、,但 Derived 类的构造函数没有初始化列表,所以将调用 Base类的默认构造函数,输出一个 0。接下来由于它的成员中还定义了一个 Base类的对象,而构造函数也没有显示初始化这个对象,所以再次调用 20 【正确答案】 B 【试题解析】 dowhile 语句的一般形式是 do 语句 while(表达式 ) ; 特点是 :“直到型 ”循环结构。先执行一次 “语句 ”,判 “表达式 ”,当 “表达式 ”为非0,再执行 “语句 ”,直到 “表达 式 ”的值为 0时停止执行语句。在一般情况下,用while和 dowhile 语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当 w

25、hile后面的 “表达式 ”一开始就为 “假 ”时,两种循环的结果不同。这是因为此时 while循环的循环不被执行,而 dowhile 循环 的循环体被执行一次。本题的关键是两个加数分别能被 13和 11整除,在 i 0时,直接将 316赋值给 k,当 k%11的值为 0时,则不必执行循环,将执行 jk/11 语句,输出结果,所以该表达式合理的条件是 k%11。 21 【正确答案】 B 【试题解析】 C+中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为 “int get()const; “”的函数,对于非常对象将调用原型为 “int get(); ”的函数。因为首先用 5对对

26、象 p 进行了初始化,所以执行 p get()时直接返回 5,而对于常对象则以 6对 q 进行初始化,在调用 q get()时,将调用原型为 “int getoconst; ”的函数,该函数将返回 n+1,第二个输出应为 7,所以本题答案为57。 22 【正确答案】 A 23 【正确答案】 B 24 【正确答案】 D 25 【正确答案】 C 26 【正确答案】 B 27 【正确答案】 B 28 【正确答案】 C 29 【正确答案】 B 30 【正确答案】 B 31 【正确答案】 B 32 【正确答案】 A 【试题解析】 本题考察静态变量的使用规则。考生需要注意的是 s为静态变量,每次进入 fu

27、n函数时 s还保留使用原来的值,因此 while循环将最终返回的是各位数之和,而 argc表示参数的个数,此处为 1,因此正确答案为 A。 33 【正确答案】 D 【试题解析】 本题考查函数的定 义,调用及其嵌套之间的关系。 34 【正确答案】 D 【试题解析】 保护成员的语法。 35 【正确答案】 C 【试题解析】 本题考查的知识点是:预定义流对象。 C+流有 4个预定义的流对象,它们的名称及与之联系的 I/0 设备如下: cin 标准输入 cout 标准输出 cerr 标准出错信息输出 clog 带缓冲的标准出错信息输出 故本题应该选择 C。 36 【正确答案】 O(nlog2n) 【试题

28、解析】 在最坏情况下,冒泡排序所需要的比较次数为 n(n 1) /2;简单插入排序所 需要的比较次数为 n(n 1) /2;希尔排序所需要的比较次数为 O(n1.5个 ) ;堆排序所需要的比较次数为 O(nlog2n) 。 37 【正确答案】 成员初始化列表 【试题解析】 派生类是基类的具体化,而基类则是派生类的抽象。派生类也就是基类的具体实现,所以对基类数据成员的初始化是在派生类的构造函数中成员初始化列表执行的。 38 【正确答案】 16 【试题解析】 在深度为 5的完全二叉树中,就属深度为 5的满二叉树中的叶子结点的个数最多,这些叶子结点均在最后一层 (即第 5层 )上。又根据二叉树的性质

29、1:在二叉树的第 k层上,最多有 2k-1(k1)个结点。因此,在第 5层上最多的结点数为 25-1 16。 39 【正确答案】 顺序结构 【试题解析】 结构化程序设计的 3种基本逻辑结构为顺序结构、选择结构和循环结构。顺序结构是一种简单的程序设计结构,它是最基本、最常用的程序设计结构;选择结构又称为分支结构,包括简单分支和多分支选择结构;循环结构也叫重复结构,它根据给定的条件,判断是否需要重复执行某一相同的程序段。 40 【正确答案】 A, B, C, D, E, F, 5,4,3,2,1。 【试题解析】 队列是先进先出的。 41 【正确答案】 c3=c1+c2 【试题解析】 此题考查的是

30、“+”运算符的重载。运算符函数的调用有两种形式,第一种是像一般函数那样用函数名调用,即 c1.Opeerator(c2)或者 operator+(c1,c2);另一种是通过运算符构成表达式,即 c1+c2。 42 【正确答案】 二义性 43 【正确答案】 protected 44 【正确答案】 Chi 【试题解析】 字符串的结束标识是 0,输出字符串时,到第一个 0输出结束,而不管其后是 否还有数据,因此本题输出为字符中的前 3个字符。 45 【正确答案】 *str=NULL 46 【正确答案】 inline 47 【正确答案】 消息 48 【正确答案】 double 【试题解析】 C+语言中基本的数据类型关键字,有 int, float, double。 49 【正确答案】 fin 【试题解析】 如果程序没有用 close()主动关闭文件,则在文件流对象退出作用域时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占用的系统资源并将文件置于更安全 的状态。 50 【正确答案】 friend void A(); 【试题解析】 C+中类的友元函数在声明时应在该函数前面加上关键字 friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上 friend。

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