考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C++语言程序设计 > C++模拟试题 > 文章内容
  

全国计算机二级考试C++考前押密试卷(4)

中华IT学院   【 】  [ 2017年8月25日 ]

  二、程序改错题

  (1)“i=i+9;”应改为“this->i=i+9;(*this).i=i+_9;或TC::i=i+9;”。

  (2)“TCobj;”应改为“TCobj(1);”。

  (3)“cout<<"member:"<  【解析】本题考查了考生对变量作用域的了解情况。i=i+9;语句使形参的值自增9,这样做是毫无意义的,因为形参变量值在函数结束后不会被保存。所以等号左边的变量i应引用为TC的私有成员变量,将私有成员初始化为形参i+9的值,可以通过this指针来引用,也可以通过域作用符“::”。“TCobj;”语句会产生一条编译错误,因为TC类已经定义了一条TC(inti)构造函数,C++就不会为其自动生成默认构造函数了。这就意味着,要创建TC类的对象必须带有一个int型构造函数参数。该构造函数中的第1条就是输出语句。从输出了形参i的内容来看,这个构造参数应该为1。“cout<<"member:"<  三、简单应用题

  imfun(char*data)

  {

  intMaxPos=0:

  if(data==NULL

  return-l:

  charMaxData=data[0];

  if(MaxData==0)

  return-1;

  for(inti=1;data[i]!=0;i++)

  if(data[i]>=MaxData)

  {

  MaxData=data[i];

  MaxPos=i:

  }

  returnMaxPos;

  }

  【解析】本题考查的是查找最大值算法。根据题意,首先检查传入参数的合法性,如不合法或为空串,则返回-1,然后通过for循环遍历整个字符串,将最大值字符保存到MaxData内,并将最大位置保存给MaxPos,最后返回Max-Pos。

  四、综合应用题

  (1)“TC(inti,intj)”应改为“TC(inti,intj):Num2(j)”。

  (2)应添加“friendvoidfun();”。

  (3)应添加“intTC::Num3=0;”。

  (4)“obj.Add();”应改为“0bj.Add(5);”。

  【解析】本题考查了构造函数初始化列表、声明友元函数、初始化静态成员变量。第1处应该添加初始化Num2成员的语句,由于该成员为常成员,所以只能通过初始化列表初始化。第2处应添加将fun函数声明为TC类友元的语句。静态成员变量需要在类外初始化,就像定义类的成员函数一样。可以将静态成员变量看成全局变量。Add函数需要一个int型参数,从Add函数的定义来看,它将增加形参i的值。由于main函数中先调用了一次Print成员函数,已经输出了3行数据,然后再调用fun函数的,所以fun函数中调用Print是输出后3行数据。Num3在第1次输出时值为10,fun函数中创建obj对象时,又让其增加1,而希望它最终的值是16,所以不难得知,Add()中应传入5才能达到目的。

首页 1 2 3 4 5 6 7 8 9 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved