【计算机类职业资格】二级C++笔试-1及答案解析.doc
《【计算机类职业资格】二级C++笔试-1及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-1及答案解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-1 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下面关于友元的说法中错误的是( )。(分数:2.00)A.若类 A是类 B的友元,那么类 B也是类 A的友元B.友元关系不能被继承C.若函数 fun被说明为类 A的友元,那么在 fun中可以访问类 A的私有成员D.若类 A是类 B的友元,那么类 A的所有成员函数都是类 B的友元2.下列关于函数模板的定义中,合法的是( )。(分数:2.00)A.template class TT abs(T z) return z0 ?-z:z;B.templatetypename T
2、T abs(T z) return z0 ?-z:z;C.template Tclass Tabs(T z) return z0 ?-z:z;D.template T abs(Tz) return z0 ?z:z;4.下面关于运算符重载中正确的是( )。(分数:2.00)A.运算符函数的返回类型不能声明为基本数据类型B.C+的所有运算符都可以重载C.在类型转换符函数的定义中不需要声明返回类型D.通过运算符重载可以定义 C+中没有的运算符5.TestClass类定义如下: class TestClass private: intid; char gender; char *phone; publ
3、ic: TestClass ():id(0),gender(#),phone(NULL) TestClass(int no,char ge=#,char *ph=NULL) id=no;gender=ge;phone=ph; ; 下面类对象定义语句中错误的是( )。(分数:2.00)A.TestClass myObj(i);B.TestClass myObj(2,“11101111155“);C.TestClass myObj(1,m);D.TestClass myObj;6.下面( )不是构造函数的特征。(分数:2.00)A.构造函数必须指定返回值类型说明B.构造函数可以设置缺省参数C.构造
4、函数可以重载D.构造函数的函数名与类名相同7.在软件开发中,需求分析阶段不可以使用的工具是( )。(分数:2.00)A.数据字典B.数据流图C.判断树D.程序流程图8.实现算法所需要的存储单元的多少称为( )。(分数:2.00)A.可实现性B.空间复杂度C.时间复杂度D.困难度9.下面有关类模板的说法中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只是虚拟类型的参数D.用类模板定义一个对象时,不能省略实际参数10.有如下程序: #includeiostream using namespace std; class Base
5、public: virtual void func1()cout“Base 1“; void rune2()cout“Base 2“; ; class Derived:public Base public: void func1()cout“Derived 1“; void func2()cout“Derived 2“; ; int main() Base *p=new Derived; P-func1(); P-func2(); return 0: 运行此程序,屏幕上将显示输出_。(分数:2.00)A.Derived 1 Base 2B.Base 1 Base 2C.Derived 1 De
6、rived 2D.Base 1 Derived 211.有 3个关系 R、S 和 T如下: (分数:2.00)A.笛卡尔积B.交C.并D.自然连接12.已知:int n=1;在下面定义引用的语句中,正确的是( )。(分数:2.00)A.int x=B.int C.int D.int 13.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1个B.1个或多于 1个C.0个或 1个D.至少有 2个14.下面关于继承和派生的叙述中,正确的是( )。(分数:2.00)A.作为虚基类的类不能被实例化B.派生类不能访问基类中的保护成员C.虚函数必须在派生类中重新实现D.派生类向基类
7、的构造函数传递参数15.以下关于栈的描述中错误的是( )。(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针16.有如下类定义: class Fun public: Fun(int v):value(v)/ Fun()/ private: Fun,/ int value=0;/ ; 其中存在语法错误的行是( )。(分数:2.00)A.B.C.D.17.下面关于面向对象的程序设计方法中,正确的是( )。(分数:2.00)A.“多态性”是指对象的状态根据运行的要求进行变化B.“封装性”是指将不同类型的数据结合在一起作为一个整
8、体来处理C.在面向对象的程序设计中,结构化程序设计方法仍有着重要作用D.基类的私有成员在派生类的对象中不可访问,也不占内存空间18.下面关于虚函数的表述中正确的是( )。(分数:2.00)A.虚函数不能声明为另一个类的友元函数B.派生类必须重新定义基类的虚函数C.如果在重定义虚函数时使用了保留字 virtual,那么该重定义函数仍是虚函数D.虚函数不能够声明为静态函数19.下面字符串中,不可以用作 C+标识符的是( )。(分数:2.00)A.caseB._test_cC.ReturnD.x_200820.运行以下的程序代码,结果是( )。 #includeiostream using name
9、space std; intmain() int x=5; int *q= int y+; tout(*q)+end1; return 0; (分数:2.00)A.5B.6C.7D.821.下列关于线性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的22.数据库管理员(DBA) 是数据库系统的一个重要组成部分,有很多职责。以下选项不属于 DBA职责的是( )。(分数:2.00)A.定义
10、数据的存储结构和存取策略B.定义数据库的结构C.定期对数据库进行重组和重构D.设计和编写应用系统的程序模块23.在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(分数:2.00)A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)24.下面有关 this指针的叙述中,正确的是( )。(分数:2.00)A.类的成员函数都有 this指针B.任何与类相关的函数都有 this指针C.类的非静态成员函数才有 this指针D.类的友元函数都有 this指针25.使用输入输出操作符 setw,能够控制( )。(分数:2.00)A.填充字符B.输出宽度C.对齐方式D
11、.输出精度26.将下面类 TestClass中的函数 fun()的对象成员 n值修改为 100的语句应该是( )。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass*ptr=new TestClass(45); _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10027.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序
12、线性表B.线性链表C.二又链表D.有序线性链表28.语句 ofstream outf(“TEST.DAT“,ios_base:app);的功能是建立流对象 outf,并试图打开文件TEST.DAT与 outf关联,而且( )。(分数:2.00)A.如果文件存在,打开失败:如果文件不存在,建立一个新文件B.如果文件存在,将文件指针定位于文件首;如果文件不存在,打开失败C.如果文件存在,将文件指针定位于文件尾:如果文件不存在,建立一个新文件D.如果文件存在,将其置为空文件;如果文件不存在,打开失败29.下面数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.队列C.树D.栈30.有如
13、下类定义: class Test int x_,y_; public: Test ():a_(0) ,b_(0) Test(int a,int b=0) :a_(a),b_(b) ; 若执行语句 Test x(2) ,y3, *z4; 则 Test类的构造函数被调用的次数是( )。(分数:2.00)A.2次B.3次C.4次D.5次31.下面的类定义中,如果要为其添加一个析构函数,对于析构函数定义正确的是( )。 class TlestClass private: int a: public: TestClass(int giva_a=0) a=give_a; (分数:2.00)A.void T
14、estClass ()B.TestClass void()C.voidTestClass()D.TestClass()32.运算符重载是对已有的运算符赋予多重的含义,所以( )。(分数:2.00)A.能够对基本类型数据(如 double),重新定义“+“运算符的含义B.只能重载 C+中己经有的运算符,不能重新定义新运算符C.能够改变一个已有运算符的优先级和操作数个数D.C+中现有的所有运算符都可以重载33.下面 for语句的循环次数为( )。 for(int i=0,n=0;!ni+);(分数:2.00)A.0B.5C.6D.无穷次34.执行下列程序语句后,输出结果为( )。 #inelude
15、iostream using namespace std; int m=5; int main() int m=3; m+; :m+; coutmend1; return 0; (分数:2.00)A.3B.4C.5D.635.有以下程序: #includeiostream using namespace std; class TestClass public: TestClass(int n)number=n; /拷贝构造函数 TestClass(TestClass TestClass() private: int number; ; TestClass fun(TestClass P) Te
16、stClass temp(p); return temp; int main() TestClass obj1(10),obj2(0) ; TestClass obj3(obj 1) ; obj2=fun(obj3) ; return 0: 程序执行时,TestClass 类的构造函数被调用的次数是( )。(分数:2.00)A.2B.3C.4D.5二、B填空题/B(总题数:15,分数:30.00)36.从程序设计的方法和技术的发展角度来说,程序设计主要经历了结构化设计和 1 的程序设计阶段。(分数:2.00)填空项 1:_37.关系数据库系统实现的专门关系运算包括选择、连接和 1。(分数:2.
17、00)填空项 1:_38.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_39.软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于 1 测试。(分数:2.00)填空项 1:_40.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:2.00)填空项 1:_41.若要访问指针变量 q所指向的数据,应使用表达式 1。(分数:2.00)填空项 1:_42.若有定义语句:int x=3,y=2,z=1;则表达式 x y?x:y 的值是 1。(分数:2.00)填空项 1:_43.非成员函数必须声明为类的 1 才能访问这个类的 pr
18、ivate成员。(分数:2.00)填空项 1:_44.执行下列语句后,输出的结果为_。 void run() static int x=3; x+; coutx“ “; int main() for(int i=0;i2;i+) fun(); return D; (分数:2.00)填空项 1:_45.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; ;class B:private A public: B()coutB; ; int main() Aa; B b; return 0; 这个程序的输出
19、结果是_。(分数:2.00)填空项 1:_46.执行下列语句段后程序的输出结果是_。int x=1,2,3,4,5;int q=x;cout*(+q)end1;(分数:2.00)填空项 1:_47.C+中多态性分为编译时的多态性和运行时的多态性,其中运行时的多态性时通过 1 实现的。(分数:2.00)填空项 1:_48.执行下列语句后,输出结果为_。 int a=0,b=2,c=3; switch(a) case 0:switch(b) case 1:cout*;break; case 2:tout%;break; case 1:switch(C) case 1:cout$;break; ca
20、se 2:cout*;break; default:tout#; (分数:2.00)填空项 1:_49.对于枚举类型的定义语句 enum WeekSun,Tue=3,Fri,Sat=6,Mon;其中枚举常量 Mon的值为 1。(分数:2.00)填空项 1:_50.执行下列程序段以后程序的输出是_。 void add(int int main() int y=3; add(y); coutyend1; (分数:2.00)填空项 1:_二级 C+笔试-1 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下面关于友元的说法中错误的是( )。(
21、分数:2.00)A.若类 A是类 B的友元,那么类 B也是类 A的友元 B.友元关系不能被继承C.若函数 fun被说明为类 A的友元,那么在 fun中可以访问类 A的私有成员D.若类 A是类 B的友元,那么类 A的所有成员函数都是类 B的友元解析:解析 C+中有些对象或函数需要访问其他对象的内部成员,这样可以用 friend关键字将对应的类指定友元函数或友元类,但是这种关系不是相互的。如果声明一个类 A为类 B的友元类,则类 A中的所有成元函数都可以访问类 B中的私有成员。另外,友元关系不会被继承。2.下列关于函数模板的定义中,合法的是( )。(分数:2.00)A.template class
22、 TT abs(T z) return z0 ?-z:z;B.templatetypename TT abs(T z) return z0 ?-z:z; C.template Tclass Tabs(T z) return z0 ?-z:z;D.template T abs(Tz) return z0 ?z:z;解析:解析 声明一个函数模板格式是: template模板形参表声明函数声明 其中模板形参表声明是由一个或多个模板形参组成(如果是多个需要用逗号隔开)。其中,模板形参可以换成class,函数的声明部分和一般函数的声明部分类似,只有某些类型修饰符被虚拟类型参数替代。解析:解析 ifstr
23、eam 是文件输入流类,只能用于输入,它没有提供任何用于输出的操作。ofstream 是文件输出流类,只能用于输出,它没有提供任何用于输入的操作。从文件中输入字符要用文件输入流类引用 outf,并调用其输入字符的成员函数 get()。根据题目中的要求,可以看出当输入文件中读到换行符时,程序将在输出文件中两次输出换行符,即双倍行距。outc.put(C) 为输出一个字符,因为“if(c=/n)coutc.put(C) ;”此句,当 c为间格字符(行距字符)时,再多输出一次 outc.put(C) 。4.下面关于运算符重载中正确的是( )。(分数:2.00)A.运算符函数的返回类型不能声明为基本数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 答案 解析 DOC
