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


本文标签: 函数 成员 构造 对象 数据