全国计算机二级C++考试真题及答案.docx

上传人:b****5 文档编号:4521901 上传时间:2022-12-01 格式:DOCX 页数:13 大小:22.37KB
下载 相关 举报
全国计算机二级C++考试真题及答案.docx_第1页
第1页 / 共13页
全国计算机二级C++考试真题及答案.docx_第2页
第2页 / 共13页
全国计算机二级C++考试真题及答案.docx_第3页
第3页 / 共13页
全国计算机二级C++考试真题及答案.docx_第4页
第4页 / 共13页
全国计算机二级C++考试真题及答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

全国计算机二级C++考试真题及答案.docx

《全国计算机二级C++考试真题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C++考试真题及答案.docx(13页珍藏版)》请在冰豆网上搜索。

全国计算机二级C++考试真题及答案.docx

全国计算机二级C++考试真题及答案

2021年9月全国计算机二级C++考试真题及答案

一、选择题〔1-10,21-40每题2分,11-20每题1分〕

(1)以下数据构造中,属于非线性构造的是

A)循环队列

B)带链队列

C)二叉树

D)带链栈

(2)以下数据构造中,能够按照“先进后出〞原那么存取数据的是

A)循环队列

B)栈

C)队列

D)二叉树

(3)对于循环队列,以下表达中正确的选项是

A)队头指针是固定不变的

B)队头指针一定大于队尾指针

C)队头指针一定小于队尾指针

D)队头指针可以大于队尾指针,也可以小于队尾指针

(4)算法的空间复杂度是指

A)算法在执行过程中所需要的计算机存储空间

B)算法所处理的数据量

C)算法程序中的语句或指令条数

D)算法在执行过程中所需要的临时工作单元数

(5)软件设计中划分模块的一个准那么是

A)低内聚低耦合

B)高内聚低耦合

C)低内聚高耦合

D)高内聚高耦合

(6)以下选项中不属于构造化程序设计原那么的是

A)可封装

B)自顶向下

C)模块化

D)逐步求精

(7)软件详细设计产生的图如下:

该图是

A)N-S图

B)PAD图

C)程序流程图

D)E-R图

(8)数据库管理系统是

A)操作系统的一局部

B)在操作系统支持下的系统软件

C)一种编译系统

D)一种操作系统

(9)在E-R图中,用来表示实体联系的图形是

A)椭圆形

B)矩形

C)菱形

D)三角形

(10)有三个关系R,S,和T如下:

R

 B

 C

 a

 1

 2

 b

 2

 1

 c

 3

 1

S

 A

 C

 d

 3

 2

T

 A

 B

 A

 1

 2

 B

 2

 1

 C

 3

 1

 D

 3

 2

其中关系T由关系R和S通过某种操作得到,该操作为

A)选择

B)投影

C)交

D)并

〔11〕函数FA调用FB,假设要把这两个函数定义在同一个文件中,那么

A〕FA必须定义在FB之前

B〕FB必须定义在FA之前

C〕假设FA定义在FB之后,那么FA的原型必须出现在FB的定义之前

D〕假设FB定义在FA之后,那么FB的原型必须出现在FA的定义之前

〔12〕有如下两个类定义

classAA{};

classBB{

   AAv1,*v2;

   BBv3;

   int*v4;

};

其中有一个成员变量的定义是错误的,这个变量是

A〕v1

B〕v2

C〕v3

D〕v4

〔13〕有如下类定义:

classXX{

    intxdata;

public:

   XX(intn=0):

xdata(n){}

};

classYY:

publicXX{

   intydata;

public:

   YY(intm=0,intn=0):

XX(m),ydata(n){}

};

YY类的对象包含的数据成员的个数是

A〕1

B〕2

C〕3

D〕4

〔14〕以下有关运算符函数的描述中,错误的选项是

A〕运算符函数的名称总是以operator为前缀

B〕运算符函数的参数可以是对象

C〕运算符函数只能定义为类的成员函数

D〕在表达式中使用重载的运算符相当于调用运算符重载函数

〔15〕以下关于模板形参的描述中,错误的选项是

A〕模板形参表必须在关键字template之后

B〕模板形参表必须用括弧()括起来

C〕可以用class修饰模板形参

D〕可以用typename修饰模板形参

〔16〕在以下枚举符号中,用来表示“相对于当前位置〞文件定位方式的是

A〕ios_base:

:

cur

B〕ios_base:

:

beg

C〕ios_base:

:

out

D〕ios_base:

:

end

〔17〕以下字符串可以用作C++标识符的是

A〕2021var

B〕goto

C〕test-2021

D〕_123

〔18〕以下枚举类型的定义中,包含枚举值3的是

A〕enumtest{RED,YELLOW,BLUE,BLACK};

B〕enumtest{RED,YELLOW=4,BLUE,BLACK};

C〕enumtest{RED=-1,YELLOW,BLUE,BLACK};

D〕enumtest{RED,YELLOW=6,BLUE,BLACK};

〔19〕有如下程序段:

inti=1;

while

(1){

   i++;

   if(i==10)break;

     if(i%2==0)cout<<'*';

}

执行这个程序段输出字符*的个数是

A〕10

B〕3

C〕4

D〕5

〔20〕数组arr的定义如下:

intarr[5]={1,2,3,4,5};

以下语句中输出结果不是2的是

A〕cout<<*arr+1<

B〕cout<<*(arr+1)<

C〕cout<

D〕cout<<*arr<

〔21〕计算斐波那契数列第n项的函数定义如下:

Intfib(intn){

   if(n==0)return1;

   elseif(n==1)return2;

     elsereturnfib(n-1)+fib(n-2);

}

假设执行函数调用表达式fib

(2),函数fib被调用的次数是

A〕1

B〕2

C〕3

D〕4

〔22〕Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是

Samplea[2],*p=newSample;

A〕0

B〕1

C〕2

D〕3

〔23〕以下关于虚基类的描述中,错误的选项是

A〕使用虚基类可以消除由多继承产生的二义性

B〕构造派生类对象时,虚基类的构造函数只被调用一次

C〕声明“classB:

virtualpublicA〞说明类B为虚基类

D〕建立派生类对象时,首先调用虚基类的构造函数

〔24〕将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是

A〕不合法的运算符

B〕一元运算符

C〕无操作数的运算符

D〕二元运算符

〔25〕有如下模板声明:

template classA;

以下声明中,与上述声明不等价的是

A〕template classA;

B〕template classA;

C〕templateclassA;

D〕templateclassA;

〔26〕以下关于C++流的描述中,错误的选项是

A〕cout>>'A'表达式可输出字符A

B〕eof()函数可以检测是否到达文件尾

C〕对磁盘文件进展流操作时,必须包含头文件fstream

D〕以ios_base:

:

out模式翻开的文件不存在时,将自动建立一个新文件

27〕有如下程序:

#include

usingnamespacestd;

classToy{

public:

   Toy(char*_n){strcpy(name,_n);count++;}

   ~Toy(){count--;}

   char*GetName(){returnname;}

   staticintgetCount(){returncount;}

private:

   charname[10];

   staticintcount;

};

intToy:

:

count=0;

intmail(){

   Toyt1(“Snoopy〞),t2(“Mickey〞),t3(“Barbie〞);

   cout<

return0;

}

运行时的输出结果是

A〕1

B〕2

C〕3

D〕运行时出错

〔28〕有如下程序

#include

usingnamespacestd;

classA{

public:

    A(inti):

rl(i){}

    voidprint(){cout<<'e'<

    voidprint()const{cout<<'C'<

private:

   intrl;

};

intmain(){

   Aal

(2);    constAa2(4);

   al.print();   a2.print();

   return0;

}

运行时的输出结果是

A〕运行时出错

B〕E2-C16-

C〕C4-C16-

D〕E2-E4-

29〕有如下程序:

#include

usingnamespacestd;

className{

   charname[20];

public:

   Name(){

       strcpy(name,"");    cout<<'?

';

}

Name(char*fname)){

   strcpy(name,fname);    cout<'?

';

}

};

intmain(){

  Namenames[3]={Name(“张三〞),Name(“李四〞)};

Return0;

}

运行此程序输出符号?

的个数是

A〕0

B〕1

C〕2

D〕3

〔30〕有如下程序:

#include

usingnamespacestd;

public:

AA(){cout<<'1';}

};

classBB:

publicAA{

intk;

public:

BB():

k(0){cout<<'2';}

BB(intn):

k(n){cout<<'3';}

}

intmain(){

BBb(4),c;

return0;

}

运行时的输出结果是

A〕1312            D〕132             C〕32              D〕1412

 

〔31〕有如下程序:

#include

usingnamespacestd;

classC1{

public:

~C1(){cout<<1;}

};

ClassC2:

publicc1{

public:

~c2(){cout<<2;}

};

intmain(){

C2cb2;

C1*cb1;

return0;

}

运行时的输出结果是

A〕121             B〕21              C〕211             D〕12

〔32〕有如下程序

#include

usingnamespacestd;

classPublication{//出版物类

charname[30];

public:

Publication(char*name="未知名称"){

strcpy(this->name,name);

}

constchar*getName()const{returnname;}

virtualconstchar*getType()const{return"未知类型";}

};

classBook:

publicPublication{//书类

public:

Book(char*name):

Publication(name){}

virtualconstchar*getType()const{return"书";}

};

voidshowPublication(Publication&p){

cout<

"<

}

intmain(){

Bookbook("精彩人生");

showPublication(book);

return0;

}

运行时的输出结果是

A〕未知类型:

未知名称                  B〕未知类型:

精彩人生

C〕书:

未知名称                        D〕书:

精彩人生

 

〔33〕以下关于运算符重载的描述中,错误的选项是

A〕:

:

运算符不能重载

B〕类型转换运算符只能作为成员函数重载

C〕将运算符作为非成员函数重载时必须定义为友元

D〕重载[]运算符应完成“下标访问〞操作

 

〔34〕有如下程序:

#include

#include

Usingnamespacestd;

intmain(){

ints[]={123,234};

cout<

for(inti=0;i<2;i++){cout<

return0;

}

运行时的输出结果是

A〕123             B〕***123          C〕***123          D〕***123

  234                234                  ***234          234***

 

〔35〕有如下类定义

classA{

char*a;

public:

A():

a(0){}

A(char*aa){ //把aa所指字符串拷贝到a所指向的存储空间

a=               ;

strcpy(a,aa);

strcpy(a,aa);

}

~A(){delete[]a;}

};

横线处应填写的表达式是

A〕neschar[strlen(aa)+1]              B〕char[strlen(aa)+1]

C〕char[strlen(aa)]                    D〕newchar[sizeof(aa)-1]

 二、填空题(每空2分,共30分)

 

(1)某二叉树有5个度为2的结点以及3个度为1的结点,那么该二叉树中共有 【1】 个结点。

 

(1)某二叉树有5个度为2的结点以及3个度为1的结点,那么该二叉树中共有 【1】 个结点。

 

(2)程序流程图中的菱形框表示的是 【2】 。

 (3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中 【3】 阶段产生“软件需求规格说明书〞。

〔4〕在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生〞和“可选课程〞的联系为 【4】 。

〔5〕人员根本信息一般包括:

身份证号,姓名,性别,年龄等。

其中可以作为主关键字的是 【5】 。

〔6〕假设表达式(x+(y-z)*(m/n))+3中的变量均为double型,那么表达式值的类型为【6】。

〔7〕有如下循环语句:

For(inti=50;i>20;i-=2) cout<

运行时循环体的执行次数是【7】。

〔8〕利用表达式a[i]可以访问int型数组a中下标为i的元素。

在执行了语句int*p=a;后,利用指针p也可访问该元素,相应的表达式是【8】。

〔9〕下面是一个递归函数,其功能是使数组中的元素反序排列。

请将函数补充完整。

voidreverse(int*a,intsize){

if(size<2)return;

intk=a[0];

a[0]=a[size-1];

a[size-1]=k;

reverse(a+1, 【9】);

}

 

〔10〕类Sample的构造函数将形参data赋值给数据成员data。

请将类定义补充完整。

classSample{

public:

Sample(intdata=0);

Private:

Intdata;

};

Sample:

:

Sample(intdata){

 【10】

}

 

〔11〕有如下类定义:

classSample{

public:

Sample();

~Sample();

Private:

Staticintdate;

};

将静态数据成员data初始化为0的语句是【11】。

 

〔12〕“图形〞类Shape中定义了纯虚函数CalArea(),“三角形〞类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。

classShape{

public:

virtualintCalArea()=0;

}

classTriangle:

publicShape{

public:

Triangle{ints,inth}:

side(s),height(h){}

 【12】{returnside*height/2;}

private:

   intside;

   intheight;

};

 

〔13〕有如下程序:

#include

usingnamespacestd;

classGrandChild{

public:

GrandChild(){strcpy(name,"Unknown");}

constchar*getName()const{returnname;}

virtualchar*getAddress()const=0;

private:

charname[20];

};

classGrandSon:

publicGrandChild{

public:

GrandSon{char*name}{}

Char*getAddress()const{return"Shanghai";}

};

intmain(){

GrandChild*gs=newGrandSon("Feifei");

cout<getName()<<"住在"<getAddress()<

deletegs;

return0;

}

运行时的输出结果是【13】。

〔14〕如下程序定义了“单词〞类word,类中重载了<运算符,用于比拟“单词〞的大小,返回相应的逻辑值。

程序的输出结果为:

AfterSorting:

HappyWelcome,请将程序补充完整。

#include

#include

usingnamespacestd;

classWord{

public:

Word(strings):

str(s){}

stringgetStr(){returnstr;}

 【14】const{return(str

friendostream&operator<<(ostream&output,constWord&w)

{output<

private:

stringstr;

};

Intmain(){

Wordw1("Happy"),w2("Welcome");

Cout<<"Aftersorting:

";

if(w1

elsecout<

return0;

}

 

〔15〕请将以下模板类Data补充完整。

template

classData{

public:

voidput(Tv){val=v;}

 【15】get()  //返回数据成员val的值,返回类型不加转换

{returnval;}

private:

Tval;

};

参考答案

选择题

〔1〕C〔2〕B〔3〕D〔4〕A〔5〕B

〔6〕A〔7〕C〔8〕B〔9〕C〔10〕D(11)D(12)C(13)B(14)C(15)B

(16)A(17)D(18)A(19)C(20)D(21)B(22)D(23)C(24)B

(25)D(26)A(27)C(28)B(29)D(30)A(31)B(32)D(33)C(34)B(35)A

填空

〔1〕14

〔2〕判断

〔3〕需求分析

〔4〕多对多

〔5〕身份证号

(6)double

(7)15

(8)*(p+i)

(9)size-1

(10)this->data=data;

(11)intSample:

:

data=0;

(12)intCalArea(size,height)

(13)Unknown住在Shanghai

(14)booloperator<(Wordw)

(15)T

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1