考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C加加>模拟试题>正文
2018年9月计算机二级C++考前基础练习题及答案(11)
考试吧 2018-05-02 15:08:26 评论(0)条

  点击查看:2018年9月计算机二级C++考前基础练习题及答案汇总

  1.有如下程序:

  #included

  usingnamespacestd;

  voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain(  ){

  intx=10,y=26;

  f1(X,y);

  f2(x,y);

  cout

  }

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

  A.10

  B.16

  C.26

  D.36

  2.有如下程序:

  #include

  usingnamespacestd;

  classXA{

  inta;

  public:

  staticintb;

  XA(intaa):a(aa){b++;}

  ~XA(  ){}

  intget(  ){returna;}

  };

  intXA::b=0

  intmain(  ){

  XAd1(1),d2(3);

  cout

  }

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

  A.5

  B.6

  C.7

  D.8

  3.有如下程序:

  #include

  usingnamespacestd:

  classPoint{

  intx,y;

  public:

  Point(intx1=0,inty1=0)):X(X1),y(y1){}

  intget(  ){returnx+y;)

  };

  classCircle{

  Pointcenter}

  intradius;

  public:

  Circle(intCX,intcy,intr):center(cx,cy),radius(r)

  {}

  intget(  ){returncenter.get(  )+radius;}

  };

  intmain(  ){

  Circlec(3,4,5);

  cout

  }

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

  A.5

  B.7

  C.9

  D.12

  4.若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是(  )。

  A.operatorlong(  )const;

  B.operatorlong(BigNumber);

  C.longoperatorlong(  )const;

  D.longoperatorlong(BigNumber);

  5.有如下函数模板定义:

  template

  T1FUN(T2n){returnn*5,0;}

  若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为(  )。

  A.FUN(9)

  B.FUN<9>

  C.FUN(9)

  D.FUN<9>(double)

  6.下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他3条语句不同,该语句是(  )。

  A.cout

  A.析构函数可以重载

  B.析构函数由系统自动调用

  C.每个对象的析构函数只被调用一次

  D.每个类都有析构函数

  8.下列关于构造函数的描述中,错误的是(  )。

  A.构造函数名与类名相同

  B.构造函数可以有返回值

  C.构造函数可以重载

  D.每个类都有构造函数

  9.若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是(  )。

  A.0

  B.1

  C.2

  D.3

  10.下列描述中,错误的是(  )。

  A.公有继承时基类中的公有成员在派生类中仍是公有成员

  B.公有继承时基类中的保护成员在派生类中仍是保护成员

  C.保护继承时基类中的公有成员在派生类中仍是公有成员

  D.保护继承时基类中的保护成员在派生类中仍是保护成员

  参考答案:

  1.A。【解析】该题考查了函数参数传递的两种方式:引用传递和值传递,引用传递时x和y会交换,而值传递时二者不交换,因此选10。

  2.C。【解析】每调用一次get函数时,对新的类A对象进行一次实例化,调用一次构造函数,类A的静态成员变量b便加1。

  3.D。【解析】简单类之间继承关系的调用,按照通常做法便可以得到答案。center.get()函数调用后,3和4的和被返回,接着再调用Circle类的radius成员变量5相加后得到12。

  4.A。【解析】C++不仅可以对运算符进行重载,还可以重载类型转换符,函数声明的形式为:0perator类型符()const。

  5.C。【解析】函数返回类型是double型,则T1为double型,T2为int型才符合函数模板的定义。

  6.D。【解析】setw(6)将输出宽度设为6,如果位数不够,则在最左边补齐,因此该项输出一定不会与其他3项一致。

  7.A。【解析】析构函数不能被重载,因为它的函数中不带有任何参数,也没任何返回值,函数只有一个版本即“~类名(){}”。

  8.B。【解析】构造函数没有返回值,虽然叫函数,但是它没有任何返回值,包括void型都不是,官方叫法应该叫“构造器”。

  9.A。【解析】PAT(*ad){3}该表达式表示一个指向类PAT的数组的指针,只是声明了该指针,而并没有进行实例化对象,因此该语句运行时并不会调用构造函数。

  10.C。【解析】保护继承时,类成员的访问级别只能是降低为保护模式,因此即使基类的公有成员,也被缩小为保护模式。

扫描/长按二维码帮助考试通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"考试吧"了解更多考试资讯、下载备考资料

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心