二级C++分类模拟283.docx

上传人:b****6 文档编号:14250518 上传时间:2023-06-21 格式:DOCX 页数:22 大小:25.86KB
下载 相关 举报
二级C++分类模拟283.docx_第1页
第1页 / 共22页
二级C++分类模拟283.docx_第2页
第2页 / 共22页
二级C++分类模拟283.docx_第3页
第3页 / 共22页
二级C++分类模拟283.docx_第4页
第4页 / 共22页
二级C++分类模拟283.docx_第5页
第5页 / 共22页
二级C++分类模拟283.docx_第6页
第6页 / 共22页
二级C++分类模拟283.docx_第7页
第7页 / 共22页
二级C++分类模拟283.docx_第8页
第8页 / 共22页
二级C++分类模拟283.docx_第9页
第9页 / 共22页
二级C++分类模拟283.docx_第10页
第10页 / 共22页
二级C++分类模拟283.docx_第11页
第11页 / 共22页
二级C++分类模拟283.docx_第12页
第12页 / 共22页
二级C++分类模拟283.docx_第13页
第13页 / 共22页
二级C++分类模拟283.docx_第14页
第14页 / 共22页
二级C++分类模拟283.docx_第15页
第15页 / 共22页
二级C++分类模拟283.docx_第16页
第16页 / 共22页
二级C++分类模拟283.docx_第17页
第17页 / 共22页
二级C++分类模拟283.docx_第18页
第18页 / 共22页
二级C++分类模拟283.docx_第19页
第19页 / 共22页
二级C++分类模拟283.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级C++分类模拟283.docx

《二级C++分类模拟283.docx》由会员分享,可在线阅读,更多相关《二级C++分类模拟283.docx(22页珍藏版)》请在冰点文库上搜索。

二级C++分类模拟283.docx

二级C++分类模拟283

二级C++分类模拟283

选择题

1、下列有关类继承的叙述中,错误的是______。

  A.继承可以实现软件复用  B.虚基类可以解决由多继承产生的二义性问题

  C.派生类构造函数要负责调用基类的构造函数  D.派生类没有继承基类的私有成员

2、已知在一个类体中包含如下函数原型:

VOLUMEOPERATOR-(VOLUME.const;,下列关于这个函数的叙述中,错误的是______。

  A.这是运算符一的重载运算符函数

  B.这个函数所重载的运算符是一个一元运算符

  C.这是一个成员函数

  D.这个函数不改变类的任何数据成员的值

3、下列程序的输出结果为______。

  #include<iostream.h>

  voidmain()

  {

  char*a[]={"hello","the","world"};

  char**pa=a;

  pa++;

  cout<<*pa<<endl;

  }

  A.hello  B.the  C.word D.hellotheworld

4、在一个长度为n的线性表中删除一个元素,最坏情况下需要移动的数据元素数目为 (  )。

  A.1  B.n-1  C.n+1  D.n/2

5、若有如下语句

  #include<iostream.h>

  voidmain()

  {

    intx=3;

    do{

       x=x-2;

      cout<<x;

     }while(!

(--x));

  }

  则上面程序段______。

  A.输出的是1  B.输出的是1和-2

  C.输出的是3和0  D.是死循环

6、有如下程序:

  #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.123321  B.213312  C.213  D.123123

7、如果类A被说明成类B的友元,则______。

  A.类A的成员即类B的成员

  B.类B的成员即类A的成员

  C.类A的成员函数不得访问类B的成员

  D.类B不一定是类A的友元

8、下列定义语句中,错误的是______。

  A.intpx*;  B.char*acp[10];

  C.char(*pac)[10];  D.int(*p)();

9、下列叙述中正确的是

  A.线性链表是线性表的链式存储结构

  B.栈与队列是非线性结构

  C.双向链表是非线性结构

  D.只有根结点的二叉树是线性结构

10、有以下程序:

  #include<iostream>

  usingnamespacestd;

  classA

  {private:

   inta;

   public:

   A(inti)

  {a=i;}

   voiddisp()

  {cout<<a<<",";}};

  classB

  {private:

   intb;

  public:

   B(intj)

  {b=j;}

   voiddisp()

  {cout<<b<<",";}};

  classC:

publicB,publicA

  {private:

   intc;

  public:

   c(intk):

A(k-2),B(k+2)

   {  c=k;

   }

   voiddisp()

   {

    a:

:

disp();

    B:

:

disp();

    cout<<c<<endl;

   }

  };

  intmain()

  {

   Cobj(10);

   obj.disp();

   return0;

  }

  程序执行后的输出结果是______。

  A.10,10,10  B.10,12,14

  C.8,10,12  D.8,12,10

11、有如下定义:

  inta[5]={1,3,5,7,9},*P=a;

  下列表达式中不能得到数值5的是______。

  A.a[2]  B.a[3]  C.*(P+2) D.*P+4

12、下列各组类型声明符中,含义相同的一组是______。

  A.unsignedlongint和long  B.signedshortint和short

  C.unsignedshort和short  D.shortint和int

13、执行语句:

{cout<<setfill('*')<<setw(10)<<setfill('#')<<left<<123<<"OK"<<endl;return0;)后将输出(  )。

  A.123*******OK  B.123#######OK

  C.123********OK********  D.123#######OK########

14、以下不能正确定义二维数组的选项是(  )。

  A.inta[2][2]={{1},{2}};  B.inta[][2]={1,2,3,4);

  C.inta[2][2]={{1},2,3};  D.inta[2][]={{1,2},{3,4}};

15、执行下面的程序段后,变量k的值为(  )。

  intk=3,s[2]; s[0]=k; k=s[1]*10;

  A.不定值  B.33  C.30  D.10

16、已知在一个类体中包含如下函数原型:

VOLUMEoperator-(VOLUME.const;,下列关于这个函数的叙述中,错误的是______。

  A.这是运算符—的重载运算符函数

  B.这个函数所重载的运算符是一个一元运算符

  C.这是一个成员函数

  D.这个函数不改变类的任何数据成员的值

17、C++系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是______。

  A.cout  B.cin  C.cerr  D.cset

18、若已知“inta[3][7];”,则用指针表示数组a中的元素时,下列表示中错误的是______。

  A.*(a+1)[5]  B.*(*a+3)  C.*(*(a+1))  D.*(*a[0][0]+2)

19、面向对象的开发方法中,类与对象的关系是______。

  A.抽象与具体  B.具体与抽象

  C.部分与整体  D.整体与部分

20、下列排序方法中,最坏情况下时间复杂度(即比较次数)低于O(n2)的是______。

  A.快速排序  B.简单插入排序

  C.冒泡排序  D.堆排序

21、下列程序的输出结果是(  )。

  #include<iostream.h>

  main()

  {

  intm=5;

  if(m++>5)

  cout<<m;

  elsecout<<m--;

  }

  A.7  B.6  C.5  D.4

22、下列关于文件流的描述中,正确的是______。

  A.文件流只能完成针对磁盘文件的输入/输出

  B.建立一个文件流对象时,必须同时打开一个文件

  C.若输入流要打开的文件不存在,将建立一个新文件

  D.若输出流要打开的文件不存在,将建立一个新文件

23、一个满二叉树其深度为4,则其叶子节点的个数为(  )。

  A.8  B.16  C.32  D.4

24、面向对象程序设计将数据与(  )放在一起,作为一个互相依存、不可分割的整体来处理。

  A.信息  B.数据抽象

  C.数据隐藏  D.对数据的操作

25、在软件开发中,需求分析阶段产生的主要文档是______。

  A.软件集成测试计划  B.软件详细设计说明书

  C.用户手册  D.软件需求规格说明书

26、有如下程序:

  

  #include<iostream>

  usingnamespacestd;

  classPublication{ //出版物类

  charname[30];

  public:

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

  strcpy(this->name,name);

  }

  constcha*getName()const{returnname;}

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

  };

  classBook:

publicPublication{ //书类

  public:

  Book(char*name):

 Publication(name){}

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

  };

  voidshowPublication(Publication &p){

  cout<<p.gettype()<<":

"<<p.getName()<<endl;

  }

  intmain(){

  Bookbook("精彩人生");

  showPublication(book);

  return0;

  }

  运行时的输出结果是______。

  A.未知类型:

未知名称  B.未知类型:

精彩人生

  C.书:

未知名称  D.书:

精彩人生

27、有如下程序:

  #include<ioslreclm>

  Usingnamespacestd;

  classBase{

  public:

   Base(intx=0):

valB(x){cout<<valB;}

   ~Base(){cout<<valB;}

  Private:

   intvalB;

  };

  class,Derived:

publicBase{

  public:

   Dcrived(intx=0,inty=0):

Base(x),valD(y)

  {cout<<valD;}

   ~Derived(){cout<<valD;}

  private:

   intvalD;

  };

   intmain(){

    Derivedobj12(2,3);

    return0;

  }

  运行时的输出结果是(  ),

  A.2332  B.2323

  C.3232  D.3223

28、下面程序的运行结果是(  )。

  #include<iostream.h>

  intx=5;

  intfun(inta)

  {

   intc;

   C=X*a;

   retumc;

  }

  voidmain()

  {

   intx=3,a=4;

   x=x+fun(a);

   cout<<"x"”<<X<<endl;

  }

  A.x=15  B.x=17  C.x=23  D.x=25

29、运行以下程序后,如果从键盘上输入shose后回车,则输出结果为_______。

  #include<iostream.h>

  voidmain(){

   intv1=0,v2=0,k=0;

   charch[80];

   cin>>ch;

   while(ch[k]){

   switch(ch[k]){

     case's';

     case'h';

     default:

v1++1;

     case'o':

v2++;

   }

   k++;

  }

  cout<<v1<<","<<v2<<end1;

  }

  A.2,0  B.5,0

  C.4,5  D.2,5

30、下列关于运算符重载的叙述中,正确的是______。

  A.通过运算符重载,可以定义新的运算符

  B.有的运算符只能作为成员函数重载  

  C.若重载运算符+,则相应的运算符函数名是+

  D.重载一个二元运算符时,必须声明两个形参

31、有如下程序:

  #include<iostream>

  usingnamespacestd;

  classPoint{

  public:

  staticintnumber;

  public:

  Point(){number++;}

  ~Point(){number--;}

  };

  intPoint:

:

number=0;

  intmain(){

  Point*ptr;

  PointA,B;

  {

  Point*ptr_point=newPoint[3];

  ptr=ptr_point;

  }

  PointC;

  cout<<Point:

:

number<<endl;

  delete[]ptr;

  return0;

  }

  执行这个程序的输出结果是______。

  A.3  B.4  C.6D.7

32、有如下说明:

  inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

  则数值为9的表达式是______。

  A.*p+9  B.*(p+8)  C.*p+=9  D.p+8

33、以下程序的输出结果是(  )。

  #include<iostream.h>

  voidfunc(char**m)

  {

  ++m:

  cout<<*m<<end1;

  }

  voidmain()

  {

 staticchar*a[]={"MORNING","AFTERTOON","EVENING"};

 char**n:

 n=a;

 func(n);

 }

A.为空  B.MORNING

C.AFTERTOON  D.EVENING

 

34、有如下程序:

#include<iostream>

usingnamespacestd;

classBASE{

public:

 ~BASE(){cout<<"BASE";}

};

classDERIVED:

publicBASE{

public:

 ~DERIVED(){cout<<"DERIVED";}

intmain(){DERIVEDx;return0;}

执行后的输出结果是(  )。

  A.BASE  B.DERIVED

  C.BASEDERIVED  D.DERIVEDBASE

35、有如下程序:

  #include<iostream>

  #include<iomanip>

  usingnamespacestd;

  intmain(){  

  ints[]={123,234};

  cout<<right<<setfill('*')<<setw(6);

  for(inti=0;i<2;i++){cout<<s[i]<<endl;}

  return0;

  }

  运行时的输出结果是______。

  

  A.123

  234

  B.***123

  234

  C.***123

  ***234

  D.***123

  234***

36、有函数模板声明和一些变量定义如下:

  

  template<classT1,classT2,classT3>T1sum(T2,T3);

  doubled1,d2;

  则下列调用中,错误的是______。

  A.sum<double,double,double>(d1,d2);

  B.sum<double,double>(d1,d2);

  C.sum<double>(d1,d2);

  D.sum(d1,d2);

37、有如下程序:

  #include<iostream>

  #include<string>

  usingnamespacestd;

  classInstrument{

  public:

  Instrument(stringt="乐器",stringn="无名"):

type(t),name(n){}

  virtualstringGetType()const{return"乐器";}

  virtualstringGetName()const{return"无名";}

  protected:

  stnngtype,name;

  };

  classPiano:

publicInstrument{

  public:

  Piano(stringn,stringt="钢琴"):

lnstrument(t,n){}

  stringCetType()const{return"钢琴";}

  stringGetName()const{returnname;}

  };

  intmain(){

  Instrument*pi=newPiano("星空");

  cout<<pi->GetType()<<'-'<<pi->GetName();

  deletepi;

  return0;

  }

  运行时的输出结果是______。

  A.钢琴-星空  B.钢琴-无名

  C.乐器-星空  D.乐器-无名

38、下列关于输入流类成员函数getline()的描述中,错误的是______。

  A.该函数是用来读取键盘输入的字符串的

  B.该函数读取的字符串长度是受限制的  

  C.该函数读取字符串时,遇到终止符便停止

  D.该函数读取字符串时,可以包含空格

39、下面程序的输出结果是______。

  #include<iostream>

  usingnamespacestd;

  intmain()

  {

  intn=10;

  while(n>7){

  n--;

  cout<<n<<',';

  }

  cout<<endl;

  }

  A.10,9,8,  B.9,8,7,  C.10,9,8,7,  D.9,8,7,6,

40、下列关于类模板的叙述中,错误的是______。

  A.类模板描述的是一组类  B.可以为类模板的参数设置默认值

  C.类模板的成员函数可以是函数模板  D.定义类模板时只允许有一个模板参数

 

答案:

选择题

1、D

[解析]3种继承方式中,派生类继承了基类的私有成员,但不能被直接访问,可以通过派生类的友元函数去访问基类的私有成员。

2、B

[解析]本题考核运算符的重载。

题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。

3、B

[解析]本题主要考查的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。

4、B

[解析]在一般情况下,要删除第i个元素时,首先是从第i+1个元素开始,直到第n个元素之间共n-i个元素依次向前移动一个位置,删除结束后,线性表的长度减1。

最坏情况指的是删除线性表的第一个元素,则需要移动表中第1个元素以外所有的元素,答案为B。

5、B

[解析]do...while语句的一般格式为“do循环体语句while(表达式);”,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。

本题中,先执行x=x-2,即为1。

判断表达式的值,!

(--x)为真,x=0,继续循环。

再次执行循环体语句后,x=-2,此时表达式的值为0,结束循环。

6、B

[解析]此题考查的是类的构造与析构。

建立类的对象时,构造函数的执行顺序如下:

执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右)接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行自身的构造函数。

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2