admin 管理员组文章数量: 1086019
2024年4月28日发(作者:constitution什么意思中文翻译)
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个叶子结点与80个度为1结点,
则该二叉树中总结点数为______。
A、219
B、221
C、229
D、231
二叉树性质3:在随便一棵二叉树中,度为结点(即叶子
结点)总是比度为2结点多一种。此题中度为2结点数为70-
1=69,该二叉树中总结点数为70+80+69=219。
故此题答案为A。
5、冒泡排序在最坏状况下比较次数是______。
A、n(n+1)/2
B、
C、n(n-1)/2
D、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。
8、下列论述中对的是______。
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和public
B、public和protected
C、protected和public
D、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
using namespace std;
class MyClass{
public:
MyClass(int x):val(x) {}
void Print() const{ cout<<""< void print() {cout<<"val="< private: int val; }; int main(){ const MyClass obj1(10); MyClass obj2(20); (); (); return 0; } 步伐输出功效是______。 A、val=10 B、 C、 val=20 D、val=10 val=20 本题考查是构造函数调用顺序。 const MyClass obj1(10);一方面定义了MyClassconst对象 obj1,并初始构造函数参数为x=10。构造函数通过:val(x)将x值 给val。 MyClassobj2(20);定义MyClass对象obj2,并初始构造函数 参数为x=20。构造函数通过:val(x)将x值给val。 ();挪用Obj1对象中Print()函数,输出obj1对象成 员变量val当前值,即输出 故此题答案为B。 15、有如下程序: #include using namespace std; class Base{ public: void output() { cout<<1;} virtual void Print(){cout<<'B';} }; class Derived:public Base{ public: void output() {cout<<2;} void Print() { cout<<'D';} }; int main(){ Base *ptr=new Derived; ptr->output(); ptr->Print(); delete ptr; return 0; } 程序输出成果是______。 A、1B B、1D C、2B D、2D 本题考查是虚函数。 virtual void Print(){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标号语句 B、if语句分支 C、循环语句循环体 D、函数函数体 本题考查是函数函数体。 由一对花括号括起来<函数体>是语句序列,它定义了函 数应执行详细操作。 if语句分支和循环语句循环体普通使用花括号{}括起来; switch语句中case标号语句后加是冒号":"。 故本题答案为D。 17、下列关于运算符重载描述中,对的是______。 A、运算符重载为成员函数时,若参数表中无参数,重载 是一元运算符 B、一元运算符只能作为成员函数重载 C、二元运算符重载为非成员函数时,参数表中有一种参 数 D、C++中能够重载所有运算符 本题重要考查了运算符重载。 一元运算符还可以作为全局函数重载,因此选项B错误。 二元运算符重载为非成员函数时,参数表中有两个参数, 因此选项C错误。 有些运算符不能被重载,如域运算符(::),条件运算符 (?:)等,详细哪些运算符不能被重载与编译器关于,因此选 项D错误。 故本题答案为A。 18、C++中模板涉及______。 A、对象模板和函数模板 B、对象模板和类模板 C、函数模板和类模板 D、变量模板和对象模板 本题考查是C++中模板,涉及函数模板和类模板。 函数模板是一系列有关函数模型或榜样,这些函数源代码 形式类似,只是所针对数据类型不同。 类模板就是一系列有关类模型或样板,这些类成员构成相 似,成员函数源代码形式相似,所不同只是所针对类型。 故本题答案为C。 19、如果运用C++流进行输入输出,下面论述中对的是 ______。 A、只能借助于流对象进行输入输出 B、只能举行花式化输入输出 C、只能借助于cin和cout举行输入输出 D、只能利用运算符>>和<<举行输入输出 本题考查是C++流概念。 就像C语言同样,C++语言中也没有输入/输出语句。在 C++中,将数据从一种对象到另一种对象流动抽象为"流",数 据输入与输出就是通过输入/输出流来实现。C++流可以借助 于cin、cout、cerr、clog进行输入输出;使用运算符">>"、 "<<"和get()、getline()、put()、write()函数也可以进行输入输 出。 故本题答案为A。 20、在函数中,可以用auto、extern、register和static这 四个核心字中一种来阐明变量存储类型,如果不阐明存储类型, 则默认存储类型是______。 A、auto B、extern C、register D、static 此题考查是C++变量类型。C++中变量类型分为以下几种: auto--函数内部局部变量。(auto能够省略不写)一种局 部变量如果没有用于储备种别界说符说明时,则自动被说明为 auto。 static--静态存储分派,又分为内部和外部静态。 extern--所有变量(用于外部变量阐明)。 register--变量存储在硬件寄存器中。 故本题答案为A。 21、以下符号中不属于C++中心字是______。 A、friend B、namespace C、continue D、byte 此题考查是C++中心字。 核心字也称保存字,它是由C++语言自身预先定义好一 类单词。 具体请见C++中心字表。 故本题答案为D。 22、有以下头文献: int f1(); static int f2(); class MA{ public: int f3(); static int f4(); }; 在所描述函数中,具备隐含this指针是______。 A、f1 B、f2 C、f3 D、f4 本题考查是this指针。 this指针式一种隐含指针,它隐含于每一个类非静态成员 函数中,它明确地表达出了成员函数当前操纵数据所属对象。 当对一种对象挪用成员函数时,编译步伐先将对象地点赋值给 this指针,然后挪用成员函数,每次成员函数存取数据成员时, 则隐含利用this指针。 this指针是指向对象自身指针,它只存在于类非静态成员 中。f1,f2不是成员函数,不存在隐含指针;f4为静态成员函 数,也不具有this指针;具有this指针函数在挪用时按thiscall 挪用约定挪用。 故本题答案为C。 23、下列各组类型声明符中,含义相似一组是______。 A、unsigned long int和long B、signed short int和short C、unsigned short和short D、short int和int 此题考查是符号常量声明。 整型常量除涉及基本整型(int)外,还涉及短整型 (short int)、长整型(long int)、无符号型(unsigned)。若 整型常量为无符号型则在表达时需要在前面加上unsigned,若 没加unsigned则默认表达为有符号型(signed),因而选项A、 C错误; 选项D中int表达整型,short int表达短整型,含义不同, 因此错误; 选项B表达有符号短整型,有符号(signed)可以隐藏, 同步short int可以表达为short,因而选项B对的。 故本题答案为B。 24、有以下步伐: #include using namespace std; class B{ public: virtual void show(){cout<<"B";} } ; class D:public B{ public: void show() {cout<<"D";} }; void fun1(B *ptr) { ptr->show(); void fun2(B &ref) { ();} void fun3(B b ) { ();} int main(){ B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); return 0; } 步伐运营输出功效是______。 A、BBB B、BBD C、DBB } D、DBD 本题考查是虚函数用法,及虚函数被继承后互相调用关系。 一方面经由进程B类生成b对象,经由进程B类生成*p 对象指针并申请D类内存构造赋给*p。然后经由进程D类生 成d。 调用fun1函数,参数地址传递p指针地址。由于() 是虚函数,因此调用();输出D。 调用fun2函数,参数引用传递对象b,因此调用(); 输出B。 调用fun3函数,参数对象d;参数b=d地址。因此调用 ();输出B。 因此输出功效DBB。 故本题答案为C。 25、若有以下类界说: class B{ void fun1(){} protected: double var 1; public: void fun2(){} }; class D:public B{ protected: void fun3() {} }; obj是类D对象,以下语句中不违背类成员访问掌握权限 是______。 A、1(); B、1; C、2(); D、3() 此题考查是类成员访问掌握。 类中供给了3中访问掌握权限:公有(public)、私有 (private)和保护(protected)。B类中成员界说访问权限为: fun1()为私有,var1为保护,fun2为公共类D公共继承B类构 造,继承构造稳定革成员权限。 由于对象外部调用成员,只能访问(公共)Public权限成 员,仅fun2()为Public权限。 故本题答案为C。 26、有以下步伐: #include using namespace std; class Part{ public: Part(int x=0):val(x) {cout< ~Part(){cout< private: int val; }; class Whole{ public: Whole(int x,int y,int z=0):p2(x),p1(y),val(z) {cout< ~Whole(){cout< private: Part p1,p2; int val; }; int main(){ Whole obj(1,2,3); return 0; } 步伐输出功效是______。 A、 B、 C、213 D、 本题考查是类以及类构造函数。 class Whole{ public: Whole(int x,int y,int z=0):p2(x),p1(y),val(z){cout< ~Whole(){cout< private: Part p1,p2;//定义时间顺序跟那个 int val; }; 在定义类Whole私有成员时,Part p1,p2;定义对象p1在 p2前。因此在执行Whole(int x,int y,intz=0):p2(x),p1(y),val(z) {cout< 构造办法。Whole obj(1,2,3);创立Whole类对象obj这时调用 Whole类构造办法Whole(int x,int
版权声明:本文标题:2021年全国计算机等级考试二级c++题库3共17套 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1714242024a671362.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论