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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(二级C++笔试403.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

二级C++笔试403.docx

1、二级C+笔试403二级C+笔试-403(总分:83.00,做题时间:90分钟)一、选择题(总题数:35,分数:58.00)1.C+中运算符优先级由高到低排列正确的是A) :+ + | B) *| ,C) sizeof %+: D) ,& new sizeof(分数:1.00)A.B.C.D.解析:解析 考查C+运算符的优先级。解题要点 运算符的优先级是:最高,其次是 ,( ),等,然后是+,-,再低还有-*,*,+, ,=。考点链接 逗号的优先级最低。2.以下程序执行后的输出结果是( )。#include iostreamusing namespace std;void try(int,int

2、,int,int);int main ( )int x,y,z,r;x=1;y=2;try(x,y,z,r);coutrend1;return 0;void try(int x,int y, int z,int r)z = x+y;x = X*X;y = y*y;r = z+x+y;A) 18 B) 9 C) 10 D) 不确定(分数:1.00)A.B.C.D.解析:解析 本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。下面是正确解答。根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try()没有任何返回值。而try()函

3、数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量r的值。但在主函数中,并没有对变量r赋值。在C+语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数try()中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。3.下列对变量的引用中,错误的是A) int a; int &p=a; B) char a; char &p=a;C) int a; int &p;p=a; D) float a; float &p=a;(分数:2.00)A.B.C.D.解析:解析 本题考核引用的定义

4、和初始化。引用具有如下特点:引用能够使用任何合法变量名;引用不是变量,所以必须在定义时初始化,而且一旦初始化之后,就不能再成为其他变量的引用;引用不是值,不占存储空间,说明引用时,目标的存储状态不会改变。所以,引用只有说明,没有定义; 引用仅在说明时带有“&”,以后就像普通变量一样使用,不能再带“&”。在C选项中,由于在定义引用p后没有进行初始化,所以此语句错误。4.下列字符串中可以用作C+语言标识符的是A) 1234B) foo barC) virtualD) 34var(分数:1.00)A.B.C.D.解析:解析:C+语言标识符只能由数字,字母和下划线组成,并且只能以字母和下划线为开头。5

5、.下列程序的执行结果是_。#includeiostream.h#includestdlib.hclass TestClasspublic:int x,y;TestClass () x=y=0;TestClass (int a,int b)x=a;y=b;void disp()coutx=x,y=yend1;void main()TestClass s1(2,3);s1.disp();A) x=2,y=2 B) x=2,y=3C) x=3,y=2 D) x=3,y=3(分数:2.00)A.B.C.D.解析:解析 由主函数入手,定义了类TestClass的对象s1(2,3),当类对象进入其作用域时

6、调用构造函数,构造函数应读是调用具有参数的“TestClass(int a,int b)x=a;y=b;)”。然后引用成员函数disp(),则输出为“cout”x=“x”,y=“yend1;”。即x=2,y=3。6.在面向对象的程序设计中,下列叙述中错误的是A) 任何一个对象构成一个独立的模块B) 一个对象不是独立存在的实体,各个对象之间有关联,相互依赖C) 下一层次的对象可以继承上一层次对象的某些属性D) 上述三种说法都正确(分数:1.00)A.B.C.D.解析:解析 在面向对象的程序设计中,一个对象是一个可以独立存在的实体。各个对象之间相对独立,相互依赖性小。所以,选项B错误,应为所选。7

7、.有下列程序:#includeiostreamusing namespace std;class TestClassprotected:TestClass()coutx;TestClass(char c)coutc;class TestClassl:public TestClasspublic:TestClassl(char c)coutc;int main()TestClass1 d1(y);retum 0;执行这个程序屏幕上将显示输出( )。A) y B) yx C) xy D) yy(分数:2.00)A.B.C.D.解析:解析 程序中的类TestClass为基类,TestClass1为T

8、estClass的派生类。由main主函数入手,定义TestClass1类型的对象d1,参数值为y。 TestClass1类继承TestClass,所以主函数中“TestClass1 d(y);”语句首先调用“TestClass1(char c)coutc;”,然后调用基类中的 “TestClass()coutx;输出x,最后执行“TestClass(char c)coutc;”,输出y,即答案为“xy”。8.有如下程序: #includeiostream using namespace std; class Obj static int i; public: Obj( )i+ Obj( )i

9、-; static int getVal( )return i; ; int Obj:i=0; void f( )Obj ob2;coutob2getVal( ); int main( ) Obj obl; f( ); Obj*ob3=new Obj;coutob3-getVal( ); delete ob3;coutObj:getVal( ); return 0; 程序的输出结果是 A) 232 B) 231 C) 222 D) 221(分数:2.00)A.B.C.D.解析:解析 因为实现了同类之间的不同对象之间的数据共享,所以静态数据成员无论有多少个类对象的建立和删除,都只有一个副本。Ob

10、j obl;调用构造函数一次,i=1,f( );再调用f函数,新生成局部对象ob2,调用构造函数一次,i=2,调用ob2.getVal();打印i=2;f函数调用结束时,对象ob2被删除,调用析构函数一次,i=1;0bj*ob3=new Obj;生成一个对象指针,调用构造函数一次,此时i=2,coutob3-getVal( );打印i的值为2,delete ob3;调用析构函数一次,i-1,coutObj:getVal( );为1。9.数据库管理系统是_。A操作系统的一部分 B在操作系统支持下的系统软件C一种编译系统 D一种操作系统(分数:2.00)A.B.C.D.解析:数据库管理系统是数据库

11、的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。10.下面关于构造函数和析构函数的描述中,错误的是( )。A析构函数可以声明为虚函数B对虚析构函数的调用可以采用动联编 C一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响D构造函数可以声明为虚函数(分数:1.00)A.B.C.D.解析:11.下面是关于派生类声明的开始部分,其中正确的是( )。Aclass virtual B:public A Bvirtual class B:public ACclass B:public A virtual Dclass

12、 B:virtual publicA(分数:2.00)A.B.C.D.解析:12.以下有关类与结构体关系的叙述不正确的是A) 结构体中只包含数据;类中封装了数据和操作B) 结构体的成员对外界通常是开放的;类的成员可以被隐蔽C) 用struct不能声明一个类型名;而class可以声明一个类名D) 结构体成员默认为Public;类成员默认为private(分数:2.00)A.B.C.D.解析:解析 可以说类来源于结构体,两者有相似之处。但类的功能更强大一些,不仅增加了操作,还能够隐藏和包含其成员变量或成员函数。13.在表达式x-y中,“-”是作为非成员函数重载的运算符。若使用显式的函数调用代替直接

13、使用运算符“-”,这个表达式还可表示为( )。Ax.operator-(y) Boperator-(y,x) Cy.operator-(x) Doperator-(x,y)(分数:2.00)A.B.C.D.解析:14.执行下列语句序列:int i=0;while(i25)i+=3;couti;输出结果是( )。A24 B25 C27 D28(分数:2.00)A.B.C.D.解析:解析 本题考查的是循环语句while的使用。i为3的倍数,当i=24时;i25,执行while的循环体i+3,则 i=27,不满足i25的条件,结束循环。15.下列关于线性链表的描述中正确的是( )。A) 存储空间不一

14、定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A.B.C.D.解析:解析 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。16.对建立良好的程序设计风格,下面描述正确的是A) 程序应简单、清晰、可读性好 B) 符号名的命名只要符合语法C) 充分考虑程序的执行效率 D) 程序的注释可有可无(分数:2.00)A.B.C.D.解析:解析 程序设计应该简单易懂,语句构造应该简单直接

15、,不应该为提高效率而把语句复杂化。17.下列函数中,哪项是正确的递归函数( )。A int Fun(int n)if(n1) return 1;else return n*Fun(n+1);B) int Fun(ira n)if(abs(n)1) return 1;else return n*Fun(n/2);C) int Fun(int n)if(n1) return 1;else return n*Fun(n*2)1D) int Fun(int n)if(n1) return 1;else retun n*Fun(n-1);(分数:1.00)A.B.C.D.解析:解析 本题考查递归函数这个

16、知识点。递归函数由递归出口和递归体两部分组成:递归出口给出了递归终止的条件;递归体给出了递归的方式。对于选项A,当参数n=1时,不满足递归调用的结束条件;对于选项C,当参数n=0时,不满足递归调用的结束条件;对于选项D,当参数n:2时,不满足递归调用的结束条件。18.下列程序的运行结果是( )。#includeiostream.hclassAint a;public:A()a=0;A()int aaa=aa;couta+;void main()A x,y(2),z(3);coutendl;A00 B23 C34 D25(分数:2.00)A.B.C.D.解析:解析 本题考查的是对构造函数的掌握,

17、另外+运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。19.类模板templateclass Tclass x(),其中,友元函数f成为从该类模板实例化的每个模板类的友元,则其说明应为( )。Afriend void f();Bfriend void f(xT&);Cfriend void A:f();Dfriend voidCT:f(xT&)(分数:1.00)A.B.C.D.解析:20.有如下程序:#includeiostreamusing namespace std;class Musicpublic:void setTitle(char*str)strcpy(titl

18、e,str);protected:char type10;private:char title20;class Jazz:public Musicpublic:void set(char* str)strcpy(type,Jazz); /strcpy(title,str); /;下列叙述中正确的是A) 程序编译正确 B) 程序编译时语句出错C) 程序编译时语句出错 D) 程序编译时语句和都出错(分数:2.00)A.B.C.D.解析:21.C+语言规定,函数返回值的类型是由( )。A) return语句中的表达式类型所决定B) 调用该函数时的主调函数类型所决定C) 调用该函数时系统临时决定D)

19、在定义该函数时所指定的函数类型所决定(分数:2.00)A.B.C.D.解析:解析 函数返回值的类型是由在定义该函数时所指定的函数类型所决定。22.下列选项中不属于结构化程序设计原则的是_。A可封装 B自顶向下 C模块化 D逐步求精(分数:2.00)A.B.C.D.解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。23.若有以下变量和函数说明:#includeiostream.hcharCh=*;void sub (int x,int y,char ch,double*Z)switch(ch)case+:*Z=x+y;break:case-:*Z=x-

20、y;break:case*:*Z=x*y; break:case/:*Z=X/y;break;以下合法的函数调用语句是( )。Asub(10,20,Ch,y);Bsub(1.2+3,2*2,+,&Z);Csub(sub(1,2,+,&y),sub(3,4+,&x),-,&y);Dsub(a,b,&x,ch);(分数:1.00)A.B.C.D.解析:24.设有如下程序:#include iostreamusing namespace std;class Apublic:int i;display()coutclass A/n;class Bpublic:int i;display()coutcl

21、ass B/n;class C : public A, public Bint j;public:int i;show ( )j = i * i;display();int main()C demo;demo.show();return O;则主程序运行时将( )。A) 因为变量i的重复定义而报错B) 因为对象demo间接调用display()函数时产生二义性而报错C) 因为类定义的语法错误而不能运行D) 没有语法错误,能够正常输出结果(分数:1.00)A.B.C.D.解析:解析 本题主要考察C+中多继承的工作方式和二义性的解决办法。在C+中,允许一个派生类从多个基类派生,这种继承方式称为多继

22、承。多继承的定义格式如下:class派生类名:继承方式基类名1,继承方式2基类名2,派生类类体;但是,如果一个派生类的两个或多个基类中有某个同名成员,在派生类中对这个成员的访问就可能出现二义性;同时,如果一个派生类是由两个或多个基类派生出来的,而这几个基类又有一个共同的基类,对该基类进行访问时,也可能会出现二义性。本题程序中,类C是由类A和类B多继承得到的派生类,但其自身函数show()中调用了display()函数,而这个函数是同时出现在类C的两个基类中的,因此程序会出现二义性,编译器将无法确定调用哪一个display()函数来执行操作,因此报错。解决二义性的通常办法是通过作用域运算符“:”

23、进行限定。25.以下哪个特征不是面向对象思想中的主要特征?A) 多态 B) 继承 C) 封装 D) 垃圾回收(分数:2.00)A.B.C.D.解析:解析 考查面向对象语言的基本思想。解题要点 面向对象语言的基本特性是封装、继承和多态。错解分析 垃圾回收是Java的主要特点。考点链接 要掌握面向对象的优点。26.树是结点的集合,它的根结点数目是( )。A) 有且只有1 B) 1或多于1C) 0或1 D) 至少2(分数:2.00)A.B.C.D.解析:27.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )。A硬件资源 B通信资源C支持软件 D辅助资源(分数:2.00)A.B.C.D.

24、解析:28.多态性指的是A)以任何方式调用一个虚函数B)以任何方式调用一个纯虚函数C)借助于指向对象的基类指针或引用调用一个虚函数D)借助于指向对象的基类指针或引用调用一个纯虚函数(分数:1.00)A.B.C.D.解析:解析 考查多态性的基本概念。解题要点 多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。考点链接 注意多态和重载的关系和应用。29.要利用C+流进行文件操作,必须在程序中包含的头文件是 A) iostream B) fstream C) strstream D) iomanip(分数:2.00)A.B.C.D.解析:解析 头文件iomapip用于输入/输出的格式控制,

25、头文件iostrearn包含了对输入/输出流进行操作所需的基本信息。30.已知:int n=10;那么下列语句中错误的是( )。Aint*p=new longn; Bint pn;Cint*p=new long(n); Dint p10;(分数:2.00)A.B.C.D.解析:31.下列有关类和对象的叙述不正确的是A) 任何一个对象都归属于一个具体的类B) 类与对象的关系和数据类型与变量的关系相似C) 类的数据成员不允许是另一个类的对象D) 一个类可以被实例化成多个对象(分数:2.00)A.B.C.D.解析:解析 对象是类的实例,类的成员可以是其他类的对象,那么在该类实例化的时候,必须保证其他

26、类的对象已经生成,否则将会出现错误。32.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为A) log2n B) n/2 C) n D) n+1(分数:2.00)A.B.C.D.解析:解析 在长度为n的线性表中进行顺序查找,最坏情况下需要比较n次。选项C正确。33.下列表示引用的方法中,( )是正确的。已知:int m=10;Aint &x=m; Bint &y=10:Cint &Z Dfloat &t=&m;(分数:1.00)A.B.C.D.解析:34.下面不属于软件原计原则的是_。A) 抽象 B) 模块化 C) 自底向上 D) 信息隐蔽(分数:2.00)A.B.C.D.解析:

27、解析 软件设计原则包括抽象、模块化、信息隐蔽和模块独立性。35.在数据流图(DFD) 中,带有名字的箭头表示A) 模块之间的调用关系 B) 程序的组成成分C) 控制程序的执行顺序 D) 数据的流向(分数:1.00)A.B.C.D.解析:解析 数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。二、填空题(总题数:15,分数:25.00)36.在下列程序的横线处填上适当的语句,使该程序的输出为12。#includediostream.husing namespace std;class Basepublic:int a,b;Base(int i)a=i;class Derived:public Baseint a;public:Derived(int x):Base(x),b(

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2