全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx

上传人:b****4 文档编号:17171003 上传时间:2022-11-28 格式:DOCX 页数:15 大小:21.16KB
下载 相关 举报
全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx_第1页
第1页 / 共15页
全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx_第2页
第2页 / 共15页
全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx_第3页
第3页 / 共15页
全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx_第4页
第4页 / 共15页
全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx

《全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级 C++语言程序设计 模拟试题及答案考前必看Word格式文档下载.docx

A)数据库设计B)算法设计

C)软件总体设计D)制定软件确认测试计划

11、下列关于函数重载的叙述中,错误的是

A)重载函数的参数个数可以不同

B)重载函数的参数类型可以不同

C)重载函数的返回值类型必须不同

D)重载函数的参数个数或参数类型必须有所不同

12、下列关于类成员对象构造函数调用顺序的叙述中,正确的是

A)与它们在初始化列表中顺序相同

B)与它们在类中声明的顺序相同

C)与析构函数的调用顺序相同

D)顺序不确定

13、下列关于派生类的叙述中,错误的是

A)派生类至少要有一个基类

B)派生类中包括了从基类继承的成员

C)一个派生类可以作为另一个派生类的基类

D)基类成员被派生类继承以后访问权限保持不变

(14)下列关于运算符重载的叙述中,正确的是

A)通过运算符重载机制可以为C++语言扩充新的运算符

B)运算符重载的作用是使已有的运算符作用于类的对象

C)重载运算符的操作数类型可以全部为基本类型

D)所有运算符都可以重载

(15)下列关于模板的叙述中,错误的是

A)调用模板函数时,有时可以省略模板实参

B)函数模板的每个实例就是一个函数定义

C)类模板的每个实例就是一个类定义

D)类模板的实例是一个类对象

(16)下列关于输入输出流的叙述中,正确的是

A)一个文件流可以与一个数据文件相联系

B)cin是专门从键盘输入数据的输入流类

C)流运算符<

<

用来从输入流中读取数据

D)宽度设置的效果永久有效

(17)下列选项中可以做C++标识符的是

A)_256B)fat/pigC)deleteD)5char

(18)关键字unsigned不能修饰的类型是

A)charB)intC)floatD)longint

(19)有如下程序:

#include<

iostream>

usingnamespacestd;

intmain(){

chara;

cin>

>

a;

if(a='

*'

)cout<

"

***"

endl;

elsecout<

###"

return0;

}

A)***B)###C)***###D)无输出

(20)下列对一维数组a的定义中,语法正确的是

A)inta(10)B)intn=7,a[n];

C)intn;

cin>

n;

inta[n];

D)constintsize=10;

inta[size];

(21)假设函数fun已经定义,其原型为”voidfun(inta,intb=7,char*p=”**”);

”,下列函数调用中错误的是

A)fun(5)B)fun(5,8)C)fun(6,”##”)D)fun(0,0.”==”)

(22)已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是

A)voidprint()const;

B)constvoidprint();

C)voidconstprint();

D)voidprint(const);

(23)已知基类Employees只有一个构造函数,其定义如下:

Employee:

:

Employee(intn):

id(n){}

Manager是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是

A)Manager:

Manager(intn):

B)Manager:

Manager(intn){id=n;

C)Manager:

Employee(n){}

D)Manager:

Manager(intn){Employee(n);

(24)已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于

A)c1.operator*(c2.operator+(c1))B)c1.operator+(c2.operator*(c1))

C)c1.operator*(c1.operator+(c2))D)c2.operator+(c1.operator*(c1))

(25)下列类模板的定义中语法格式错误的是

A)template<

classT>

classBuffer{/*…*/};

B)template<

typenameT>

C)template<

classT1,classT2>

D)template<

T>

(26)在C++中既可以用于文件输入又可以用于文件输出的流类是

A)fstreamB)ifstreamC)ofstreamD)iostream

(27)有如下类定义:

classMyClass{

intb;

chara;

doublec;

public:

MyClass():

c(0.0),b(0),a('

'

){}

};

创建这个类的对象时,数据成员的初始化顺序是

A)a,b,cB)c,b,aC)b,a,cD)c,a,b

(28)有如下类定义

intx;

x(0),y(0){}

intGetX(){returnx;

voidSetX(intxx){x==xx;

inty;

已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是

A)obj.x;

B)obj.y;

C)obj.GetX();

D)obj.SetX(0);

(29)有如下类定义

classTest{

constcharb;

Test(charc){a=c;

b=c;

}//第1行

voidf(chara)const{this->

a=a;

}//第2行

voidg(charb){this->

b=b;

}//第3行

charh()const{returna;

}//第4行

编译时没有错误的行是

A)第1行B)第2行C)第3行D)第4行

(30)有如下程序:

classA{

A(){cout<

A'

;

~A(){cout<

'

C'

classB:

publicA{

B(){cout<

G'

~B(){cout<

T'

Bobj;

运行这个程序的输出结果是

A)GATCB)AGTCC)GACTD)AGCT

(31)有如下程序:

usingnamespacestd;

classBase{

public;

voidfun(){cout<

B'

classDerived:

publicBase{

public;

voidfun(){cout<

D'

Derivedd;

d.fun();

若程序的输出结果是BD,则划线处缺失的部分是

A)fun() B)Base.fun()C)Base:

fun()D)Base->

fun()

(32)有如下程序:

classB{

virtualvoidf(){cout<

B"

voidg(){cout<

classD;

publicB{

voidf(){cout<

D"

voidg(){coun<

}

voidh(B*p){p->

f();

p->

g();

Dobj;

h(&

obj);

运行这个程序的输出结果是:

A)DDB)BBC)BDD)DB

(33)有如下程序:

cstring>

classMyString{

charstr[80];

MyString(constchar*s){strcpy(str,s);

MyString&

operator+=(MyStringa){

strcat(str,a.str);

return*this;

ostream&

operator<

(ostream&

s,constMyString&

z){returns<

z.str}

MyStringx("

abc"

),y("

cde"

);

cout<

(x+=y)<

A)abcB)cdeC)abcdeD)abccde

(34)有如下程序:

iomanip>

cout<

setfill('

#'

)<

setw(4)<

OK"

123<

A)##OK123B)##OK#123C)OK##123D) OK##123#

(35)有如下语句序列:

ifstreaminfile("

DATA.DAT"

);

if(infile.good())cout<

A"

else{

cout<

ofstreamoutfile("

if(outfile.fail())cout<

C"

elsecout<

若执行这个语句序列显示的是BD,则说明文件DATA.DAT

A)以读方式打开成功

B)以读方式打开失败,但以写方式打开成功

C)以读方式打开失败,以写方式打开也失败

D)以读方式打开成功,以写方式打开也成功

 36.关于函数中的<

返回类型>

下列表述中错误的是(  )。

  A.<

中有可能包含关键字int

  B.<

中有可能包含自定义标识符

  C.<

中衣可能包含字符*

  D.<

中可能包含[]

  37.Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是(  )。

  Samplea[2],*p=newSample;

  A.0

  B.1

  C.2

  D.3

  38.有如下两个类定义:

  classXX{

  private:

  doublex1;

  protected:

  doublex2;

  public:

  doublex3;

  };

  claseYY:

protectedXX{

  doubley1;

  protected;

  doubley2;

  doubley3;

  在类YY中保护成员变量的个数是(  )。

  A.1

  B.2

  C.3

  D.4

  39.下列关于运算符重载的描述中,错误的是(  )。

  A.可以通过运算符重载在C++中创建新的运算符

  B.赋值运算符只能重载为成员函数

  C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象

  D.重载类型转换运算符时不需要声明返回类型

  40.下列关于类模板的描述中,错误的是(  )。

  A.类模板的成员函数都是模板函数

  B.可以为类模板参数设置默认值

  C.类模板描述了一组类

  D.类模板中只允许有一个类型参数

二、程序改错题(18分)

  使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为

  TC1

  TC2

  注意:

不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。

  试题程序:

  #include

  #include  structTCO

  {

  //********error********

  virtualvoidfun();

  classTCl:

publicTCO

  voidfun()

  cout<

TCl"

  }

  classTC2:

TC2"

  voidmain()

  TCO"

P;

  TClobj1;

  TC2obj2;

  p=*obj1;

  p->

fun();

  p=*obj2;

  return;

  三、简单应用题(24分)

  使用VC++6.0打开考生交件夹下的源程序文件2.cpp。

阅读下列函数说明和代码,完成空出部分程序。

函数fun(intN[4])的功能是用4个数字,组成互不相同且无重复数字的3位数,并将满足所有条件的数字输出到屏幕,

  并且每输出一个3位数就换一行。

  程序分析:

可填在百位、十位、个位的数字都是1、2、3、0。

组成所有的排列后再去掉不满足条件的排列。

如果判定第一个数字是0,则也去掉。

  voidfun(intN[4])

  intmain()

  intN[4]={1,2,3,0};

  fun(N):

  return0;

四、综合应用题(18分)

  使用VC++6.0打开考生文件夹下的源程序文件3.cpp。

其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。

  

(1)基类People完成打印功能,定义其中的打印函数为

  虚函数,请在注释1后添加适当的语句。

  

(2)类Boy继承于People,在构造函数中设置性别为1,

  请在注释2后添加适当的语句。

  (3)类Girl继承于People,在构造函数中设置性别为0,请在注释3后添加适当的语句。

  (4)实现函数fun,用于传递不同的类型,打印出性别,请在注释4后添加适当的语句。

  输出的内容如下:

  Sex=Boy

  Sex=Girl

除在指定位暨添加语句之外,请不要改动程序中的其他内容。

  classPeople

  //********1********

  voidprint(){}

  intsex;

  classBoy:

publicPeople

  publiC:

  Boy()

  //********2********}

  voidprint()

Boy"

  classGirl:

  Girl()

  //********3********}

Girl"

  //********4********{

Sex="

  p.print();

  Boym:

  fun(m);

  Girln:

  fun(n);

参考答案

一、选择题答案

1-5)DCBAB

6-10)BBADD

11-15)CBDBC 

16-20)AAABD 

21-25)CACBD 

26-30)ABACB 

31-35)CDDAC

36-40)BDCAD

二、程序改错题

  

(1)应改为“virtualvoidfun()=0;

”。

  

(2)应改为“p=&

obj1;

  (3)应改为“p=&

obj2;

  三、简单应用题

  inti,j,k;

  for(i=0;

i<

4;

i++)//百位循环

  for(j=0;

j<

j++)//十位循环

  for(k=0;

k<

k++)//个位循环

  if(i!

=j&

&

j!

=k&

k!

=i&

N[i]!

=0)//

  当三位数不同,并且百位不为0

  四、综合应用题

  

(1)将“voidprint(){};

”补充完整为“virtualvoidprint(){};

  

(2)应添加“sex=1;

  (3)应添加“sex=0;

  (4)应添加“voidfun(People&

p)”。

  

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

当前位置:首页 > 解决方案 > 学习计划

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

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