下载此文档

2021年最新全国计算机等级考试二级c++题库3共17套.pdf


文档分类:资格/认证考试 | 页数:约43页 举报非法文档有奖
1/43
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/43 下载此文档
文档列表 文档介绍
该【2021年最新全国计算机等级考试二级c++题库3共17套 】是由【青山代下】上传分享,文档一共【43】页,该文档可以免费在线阅读,需要了解更多关于【2021年最新全国计算机等级考试二级c++题库3共17套 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..2021年最新全国计算机等级考试二级c++题库3共17套6第三套1、在面向对象办法中,实现息隐蔽是依托______。A、对象继承B、对象多态C、对象封装D、对象分类息隐蔽是指采用封装技术,将程序模块实现细节隐藏起来,使模块接口尽量简朴。故本题答案为C。2、下列论述中对的是______。A、为了建立一种关系,一方面要构造数据逻辑关系B、表达关系二维表中各元组每一种分量还可以提成若干数据项C、一种关系属性名表称为关系模式D、一种关系可以涉及各种二维表为了建立一种关系,一方面要指定关系属性,因此选项A是错误。表达关系二维表中各元组每一种分量必要是不可分基本数据项,因此选项B是错误。在关系数据库中,把数据表:..达到二维表,而一种二维表就是一种关系,因此选项D是错误。一种关系属性名表称为该关系关系模式,其记法为:<关系名>(<属性名1>,<属性名2>,…,<属性名n>)。故本题答案为C。3、下列论述中,不符合良好程序设计风格规定是______。A、程序效率第一,清晰第二B、程序可读性好C、程序中要有必要注释D、输入数据前要有提示息要形成良好程序设计风格,重要应注重和考虑下述某些因素:符号名命名应具备一定实际含义,以便于对程序功能理解;对的注释可以协助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊规定,程序编写要做到清晰第一,效率第二。故本题答案为A。4、一棵二叉树中共有70个叶子结点与0个度为1结点,则该二叉树中总结点数为______。A、219B、221C、229D、231:..二叉树性质3:在任意一棵二叉树中,度为结点(即叶子结点)总是比度为2结点多一种。本题中度为2结点数为70-1=69,该二叉树中总结点数为70+0+69=219。故本题答案为A。5、冒泡排序在最坏状况下比较次数是______。A、n(n+1)/2B、C、n(n-1)/2D、n/2冒泡排序法是一种最简朴互换类排序办法,它是通过相邻数据元素互换逐渐将线性表变成有序。假设线性表长度为n,则在最坏状况下,冒泡排序需要通过n/2遍从前去后扫描和n/2遍从后往前扫描,需要比较次数为n(n-1)/2。故本题答案为C。6、软件调试目是______。A、发现错误B、改正错误C、改进软件性能D、验证软件对的性:..软件调试目是诊断和改正程序中错误,改正后来还需要再测试。故本题答案为B。7、下列论述中对的是______。A、数据库系统是一种独立系统,不需要操作系统支持B、数据库技术主线目的是要解决数据共享问题C、数据库管理系统就是数据库系统D、以上三种说法都不对为理解决多顾客、多应用共享数据需求,使数据为尽量多应用服务,数据管理技术--数据库技术应运而生。数据库系统由如下几某些构成:数据库、数据库管理系统、数据库、系统(硬件和软件),因此选项A、C是错误。故本题答案为B。、下列论述中对的是______。A、数据逻辑构造与存储构造必然是一一相应B、由于计算机存储空间是向量式存储构造,因而,数据存储构造一定是线性构造C、程序设计语言中数组普通是顺序存储构造,因而,运用数组只能解决线性构造D、以上三种说法都不对:..数据逻辑构造在计算机存储空间中存储形式称为数据存储构造。一种数据逻辑构造依照需要可以表达到各种存储构造,惯用存储构造有顺序、链接、索引等。而采用不同存储构造,其数据解决效率是不同。因而,在进行数据解决时,选取适当存储构造是很重要,因此选项A是错误。依照数据构造中各数据元素之间先后件关系复杂限度,普通将数据构造分为两大类型:线性构造和非线性构造,因此选项B是错误。数组既可以解决线性构造也可以解决非线性构造,因此选项C是错误。故本题答案为D。9、软件是指______。A、程序B、程序和文档C、算法加数据构造D、程序、数据与有关文档完整集合计算机软件是计算机系统中与硬件互相依存另一某些,是程序、数据及有关文档完整集合。故本题答案为D。10、下列论述中对的是______。:..A、程序执行效率与数据存储构造密切有关B、程序执行效率只取决于程序控制构造C、程序执行效率只取决于所解决数据量D、以上三种说法都不对所谓提高程序执行效率,重要涉及两个方面:一是提高数据解决速度,二是尽量节约在数据解决过程中所占用计算机存储空间。故本题答案为A。11、如果派生类以protected方式继承基类,则原基类protected成员和public成员在派生类中访问属性分别是______。A、public和publicB、public和protectedC、protected和publicD、protected和protected本题考查是派生类。派生类中成员不能访问基类中私有成员,可以访问基类中公有成员和保护成员。此时派生类对基类中各成员访问能力与继承方式无关,但继承方式将影响基类成员在派生类中访问控制属性。故本题答案为D。:..12、如下关于类模板模板参数论述中,错误是______。A、模板参数可以作为数据成员类型B、模板参数可以作为成员函数返回类型C、模板参数可以作为成员函数参数类型D、模板参数不能作为成员函数局部变量类型本题考查模板作用。模板作用:模板它提供是一种框架,待你提供真正参数后,它便有了一种实例。类模板定义不同类型成员:成员函数、静态数据成员和嵌套类型。模板参数也可以作为成员函数局部变量类型。故本题答案为D。13、语句int*p=&k;定义了指针p,与这个语句等效语句序列是______。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k;本题考查是指针。:..一种指针是一种特定类型数据存储地址,例如一种变量地址。在使用任何指针变量之前必要先给它赋一种所指合法详细对象地址值。语句int*p=&k;定义了一种指向变量k地址int类型指针p,此定义办法是在定义过程中同步赋初始值。选项A中int*p;p=&k;是先定义了一种指针p,然后将变量k地址赋给指针p,与题目中语句int*p=&k;等效。故本题答案为A。14、有如下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intx):val(x){}voidPrint()const{cout<<<<val<<' ';}voidprint(){cout<<val=<<val<<' ';}private:intval;};intmain(){:..constMyClassobj1(10);MyClassobj2(20);();();return0;}程序输出成果是______。A、val=10B、C、val=20D、val=10val=20本题考查是构造函数调用顺序。constMyClassobj1(10);一方面定义了MyClassconst对象obj1,并初始构造函数参数为x=10。构造函数通过:val(x)将x值给val。MyClassobj2(20);定义MyClass对象obj2,并初始构造函数参数为x=20。构造函数通过:val(x)将x值给val。();调用Obj1对象中Print()函数,输出obj1对象成员变量val当前值,即输出故本题答案为B。:..#include<iostream>usingnamespacestd;classBase{public:voidoutput(){cout<<1;}virtualvoidPrint(){cout<<'B';}};classDerived:publicBase{public:voidoutput(){cout<<2;}voidPrint(){cout<<'D';}};intmain(){Base*ptr=newDerived;ptr->output();ptr->Print();deleteptr;return0;}:..。A、1BB、1DC、2BD、2D本题考查是虚函数。virtualvoidPrint(){cout<<'B';}表达这办法是虚函数,虚函数意思是如果子类有继承这虚函数,则子类对象在执行此办法时调用子类此办法。否则会调用基类此办法。在此程序中Derived是子类,Base是基类,Base*ptr=newDerived;创立一种子类对象给基类指针对象。ptr->output();由于指针ptr是基类对象。因此在执行output()办法时会调用基类output()办法,也就是Base类output()办法。不会调用Derived类output()办法,由于output()不是虚函数。输出1。ptr->Print();由于Print();在基类Base中声明是虚函数,因此在子类中如果有继承此办法就会调用子类这办法。因此这个调用是Derived类Print();办法。输出D。故本题答案为B。16、必要用一对大括号括起来程序段是______。A、switch语句中case标号语句:..if语句分支C、循环语句循环体D、函数函数体本题考查是函数函数体。由一对花括号括起来<函数体>是语句序列,它定义了函数应执行详细操作。if语句分支和循环语句循环体普通使用花括号{}括起来;switch语句中case标号语句后加是冒号:。故本题答案为D。17、下列关于运算符重载描述中,对的是______。A、运算符重载为成员函数时,若参数表中无参数,重载是一元运算符B、一元运算符只能作为成员函数重载C、二元运算符重载为非成员函数时,参数表中有一种参数D、C++中可以重载所有运算符本题重要考查了运算符重载。一元运算符还可以作为全局函数重载,因此选项B错误。二元运算符重载为非成员函数时,参数表中有两个参数,因此选项C错误。:..),条件运算符(?:)等,详细哪些运算符不能被重载与编译器关于,因此选项D错误。故本题答案为A。1、C++中模板涉及______。A、对象模板和函数模板B、对象模板和类模板C、函数模板和类模板D、变量模板和对象模板本题考查是C++中模板,涉及函数模板和类模板。函数模板是一系列有关函数模型或样板,这些函数源代码形式相似,只是所针对数据类型不同。类模板就是一系列有关类模型或样板,这些类成员构成相似,成员函数源代码形式相似,所不同只是所针对类型。故本题答案为C。19、如果运用C++流进行输入输出,下面论述中对的是______。A、只能借助于流对象进行输入输出B、只能进行格式化输入输出C、只能借助于cin和cout进行输入输出:..>>和<<进行输入输出本题考查是C++流概念。就像C语言同样,C++语言中也没有输入/输出语句。在C++中,将数据从一种对象到另一种对象流动抽象为流,数据输入与输出就是通过输入/输出流来实现。C++流可以借助于cin、cout、cerr、clog进行输入输出;使用运算符>>、<<和get()、getline()、put()、write()函数也可以进行输入输出。故本题答案为A。20、在函数中,可以用auto、extern、register和static这四个核心字中一种来阐明变量存储类型,如果不阐明存储类型,则默认存储类型是______。A、autoB、externC、registerD、static本题考查是C++变量类型。C++中变量类型分为如下几种:auto--函数内部局部变量。(auto可以省略不写)一种局部变量如果没有用于存储类别定义符阐明时,则自动被阐明为auto。static--静态存储分派,又分为内部和外部静态。:..register--变量存储在硬件寄存器中。故本题答案为A。21、下列符号中不属于C++核心字是______。A、friendB、namespaceC、continueD、byte本题考查是C++核心字。核心字也称保存字,它是由C++语言自身预先定义好一类单词。详细请见C++核心字表。故本题答案为D。22、有如下头文献:intf1();staticintf2();classMA{public:intf3();staticintf4();:..};在所描述函数中,具备隐含this指针是______。A、f1B、f2C、f3D、f4本题考查是this指针。this指针式一种隐含指针,它隐含于每个类非静态成员函数中,它明确地表达出了成员函数当前操作数据所属对象。当对一种对象调用成员函数时,编译程序先将对象地址赋值给this指针,然后调用成员函数,每次成员函数存取数据成员时,则隐含使用this指针。this指针是指向对象自身指针,它只存在于类非静态成员中。f1,f2不是成员函数,不存在隐含指针;f4为静态成员函数,也不具有this指针;具有this指针函数在调用时按thiscall调用商定调用。故本题答案为C。23、下列各组类型声明符中,含义相似一组是______。A、unsignedlongint和longB、signedshortint和short:..C、unsignedshort和shortD、shortint和int本题考查是符号常量声明。整型常量除涉及基本整型(int)外,还涉及短整型(shortint)、长整型(longint)、无符号型(unsigned)。若整型常量为无符号型则在表达时需要在前面加上unsigned,若没加unsigned则默认表达为有符号型(signed),因而选项A、C错误;选项D中int表达整型,shortint表达短整型,含义不同,因此错误;选项B表达有符号短整型,有符号(signed)可以隐藏,同步shortint可以表达为short,因而选项B对的。故本题答案为B。24、有如下程序:#include<iostream>usingnamespacestd;classB{public:virtualvoidshow(){cout<<B;}};:..classD:publicB{public:voidshow(){cout<<D;}};voidfun1(B*ptr){ptr->show();}voidfun2(B&ref){();}voidfun3(Bb){();}intmain(){Bb,*p=newD;Dd;fun1(p);fun2(b);fun3(d);return0;}程序运营输出成果是______。A、BBBB、BBDC、DBBD、DBD:..本题考查是虚函数用法,及虚函数被继承后互相调用关系。一方面通过B类生成b对象,通过B类生成*p对象指针并申请D类内存构造赋给*p。然后通过D类生成d。调用fun1函数,参数地址传递p指针地址。()是虚函数,();输出D。调用fun2函数,参数引用传递对象b,();输出B。调用fun3函数,参数对象d;参数b=d地址。();输出B。因此输出成果DBB。故本题答案为C。25、若有如下类定义:classB{voidfun1(){}protected:doublevar1;public:voidfun2(){}};classD:publicB{:..protected:voidfun3(){}};已知obj是类D对象,下列语句中不违背类成员访问控制权限是______。A、();B、;C、();D、()本题考查是类成员访问控制。类中提供了3中访问控制权限:公有(public)、私有(private)和保护(protected)。B类中成员定义访问权限为:fun1()为私有,var1为保护,fun2为公共类D公共继承B类构造,继承构造不变化成员权限。由于对象外部调用成员,只能访问(公共)Public权限成员,仅fun2()为Public权限。故本题答案为C。26、有如下程序:#include<iostream>usingnamespacestd;:..classPart{public:Part(intx=0):val(x){cout<<val;}~Part(){cout<<val;}private:intval;};classWhole{public:Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;}~Whole(){cout<<val;}private:Partp1,p2;intval;};intmain(){Wholeobj(1,2,3);return0;}程序输出成果是______。:..A、B、C、213D、本题考查是类以及类构造函数。classWhole{public:Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;}~Whole(){cout<<val;}private:Partp1,p2;//定义时间顺序跟那个intval;};在定义类Whole私有成员时,Partp1,p2;定义对象p1在p2前。因此在执行Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;},创立对象时先执行p1(y)构造办法,再执行p2(x)构造办法。Wholeobj(1,2,3);创立Whole类对象obj这时调用Whole类构造办法Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;},得到x=1,y=2,z=3,在执行:p2(x),p1(y),val(z)办法,由于对象p1在p2定义前,因此:..先构造对象p1也就执行p1(2),调用Part类Part(intx=0):val(x){cout<<val;}办法,输出2,接着构造p2对象,执行p2(1)输出1。再执行val(z)给val赋值为3再执行办法体语句cout<<val;输出3。当前所有对象构造完了,开始析构对象了。由于析构与构造相反,因此先析构z再p2再p1,输出为312。总体输出就是。故本题答案为B。27、有如下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){--count;}staticintgetCount(){returncount;}private:staticintcount;};:..intMyClass::count=0;intmain(){MyClassobj;cout<<();MyClass*ptr=newMyClass;cout<<MyClass::getCount();deleteptr;cout<<MyClass::getCount();return0;}程序运营成果是______。A、121B、232C、221D、122本题考查是类构造函数。intMyClass::count=0;意思是初始化静态变量count=0;MyClassobj;是指创立类MyClass对象obj,这时会执行类MyClass构造办法MyClass(){++count;},得到count=1,cout<<();输出1。:..MyClass*ptr=newMyClass;创立类MyClass指针对象*ptr,这时会执行类MyClass构造办法MyClass(){++count;}得到count=2,cout<<MyClass::getCount();输出2。deleteptr;删除指针对象,这时会调用析构办法~MyClass(){--count;},得到count=1,cout<<MyClass::getCount();输出1。故本题答案为A。2、有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};classDerived:publicBase{public:Derived(intx=0){cout<<x;}private:Baseval;};:..Derivedd(1);return0;}______。A、B、1C、01D、001本题考查是类有关知识。Baseval;由于类Derived有个Base类对象val为私有变量。因此在给此类创立对象时会创立Baseval;对象。在Derivedd(1);创立对象d时先创立Base对象val,执行Base类Base(intx=0){cout<<x;}办法,输出;接着创立类Derived对象d执行类Derived带一种参数构造办法Derived(intx=0){cout<<x;},在执行前由于类Derived是公共继承类Base因此先执行基类构造办法Base(intx=0){cout<<x;}输出(这个办法是给参数赋默认值;intx=0意思是如果没有传参数过来就以表达这个参数值);:..因此输出1。故本题答案为D。29、对于一种类定义,下列论述中错误是______。A、如果没有定义拷贝构造函数,编译器将生成一种拷贝构造函数B、如果没有定义缺省构造函数,编译器将一定生成一种缺省构造函数C、如果没有定义构造函数,编译器将生成一种缺省构造函数和一种拷贝构造函数D、如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数本题考查是类定义。类是一种顾客自定义类型,声明一种类对象时,编译程序需要为对象分派存储空间,进行必要初始化。在C++中这项工作是由构造函数来完毕。构造函数作用是在对象被创立时运用特定值构造对象,将对象初始化为一种特定状态,使该对象具备区别于其她对象特性。构造函数在对象被创立时候由系统自动调用。故本题答案为B。:..______。A、重载函数函数名必要相似B、重载函数必要在参数个数或类型上有所不同C、重载函数返回值类型必要相似D、重载函数函数体可以有所不同本题考查是函数重载。函数重载容许用同一种函数名定义各种函数。被重载函数必要要有不同形参列表。不可以依照函数返回值类型来重载函数。函数重载是用同一种函数名在不同参数上做不同事情。对于仅仅是函数返回值不同,其他参数所有相似,不是重载。如果浮现这种况,会在编译产生错误。故本题答案为C。31、已知一程序运营后执行第一种输出操作是cout<<setw(10)<<setfill('*')<<1234;则此操作输出成果是______。A、1234B、******1234C、**********1234D、1234******setw(10)表达要输出10个宽度。:..*替代。1234表达操作数据,因而前应当有6个*。故本题答案为B。32、如下函数作用是以双倍行距输出文献:voiddouble_space(ifstream&f,ofstream&t){charc;while(______){______;if(c=='')(c);}}画线缺失某些是______。A、(c)(c)B、(c)(c)C、(c)(c)D、(c)(c)本题考查是文献流输入输出。文献流以磁盘文献以及其她可按文献方式进行管理外部设备为输入输出对象。:..何用于输出操作。ofstream是文献输出流类,只能用于输出,它没有提供任何用于输入操作。fstream是文献输入输出流类。(c)为获得一种字符;(c)为输出一种字符,由于if(c=='')(c);此句,当c为间格字符(行距字符)时,(c)。故本题答案为A。33、派生类成员函数不能访问基类______。A、公有成员和保护成员B、公有成员C、私有成员D、保护成员本题考查是继承类型。类继承方式有公有继承、保护继承和私有继承三种方式。对于公有继承基类中成员访问属性不变,对于保护和私有继承基类中成员转换为相应访问类型。但是如果基类成员访问属性为private,则不能被继承。故本题答案为C。:..FunNumber成员函数是______。A、intopera-(FunNumber);B、FunNumberopera-();C、FunNumberopera-(int);D、intopera-(FunNumber,FunNumber);本题考查是类成员函数。选项A是重载了负号或减法运算符,由于减法运算符它具备两个操作数,而题面原型中只有一种,如果重载是减号运算符,则必为成员函数。选项B中由于没参数,无论是负号或减法运算符至少具备一种参数,因此它必为成员函数,同步也必然是重载了负号运算符。选项C是必然以成函数方式重载,由于C++规定不能对内置类运算符进行重载,因此它不也许是友元函数(由于操作数为内置int型),因此必为成员函数重载,且必然是重载了减法运算符。选项D有两个参数,无论是负号或减法运算符,其操作数不超2个,因此必然为友元函数重载,且重载了减法运算符。故本题答案为D。:..35、下列是重载乘法运算符函数原型声明,其中错误是______。A、MyClassopera*(double,double);B、MyClassopera*(double,MyClass);C、MyClassopera*(MyClass,double);D、MyClassopera*(MyClass,MyClass);本题考查是运算符重载。重载运算符应保持其原有基本语义。重载运算符应尽量保持其原有特性。运算符重载应当配套。至少要有一种形式参数是类类型。因此选项A错。故本题答案为A。36、在两种基本测试办法中,______测试原则之一是保证所测模块中每一种独立途径至少要执行一次。原则答案为:白盒或白箱白盒测试基本原则是:保证所测模块中每一独立途径至少执行一次;保证所测模块所有判断每一分支至少执行一次;保证所测模块每一循环都在边界条件下至少执行一次;验证所有内部数据构造有效性。37、线性表存储构造重要分为顺序存储构造和链式存储构造。队列是一种特殊线性表,循环队列是队列______存储构造。:..原则答案为:顺序在实际应用中,队列顺序存储构造普通采用循环队列形式。3、对下列二叉树进行中序遍历成果为______。原则答案为:ACBDFEHGP或A、C、B、D、F、E、H、G、P或A,C,B,D,F,E,H,G,P或A,C,B,D,F,E,H,G,P二叉树中序遍历指在访问根结点、遍历左子树与遍历右子树

2021年最新全国计算机等级考试二级c++题库3共17套 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数43
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小3.01 MB
  • 时间2024-03-29