当前位置:首页 > 全部子站 > IT > 等级考试

2018年9月计算机二级C++考试上机练习题及答案(6)

来源:长理培训发布时间:2018-08-14 20:36:43

   一、程序改错题

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

  9,8,7,6,5

  注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。

  试题程序:

  #include(iostream.h>

  classTC

  {

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

  TC(inti)

  {

  m_i=i;

  }

  voidprint()

  {

  cout<<--m_i<<’,’;

  }

  public:

  intm_i;

  };

  intmain()

  {

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

  inti();

  TC04(10);

  while(i>5)

  {

  /********errOr********/

  i++:

  04.print();

  }

  cout<  return0;

  }

  二、简单应用题

  使用vC++6.0打开考生文件夹下的源程序文件2.cpp,请实现函数fun(doublea[],intlen)的如下功能:

  (1)a[]是一个数组,长度为len。

  (2)a[0]=0,a[1]=1。

  (3)a[i+2]=a[i]+a[i+1]。

  注意:不能修改函数的其他部分。

  试题程序:

  #include(iostream)

  voidfun(doublea[],intlen)

  {

  }

  voidmain()

  {

  doublea[20];

  fun(a,20);

  for(inti=0;i<20;i++)

  {

  std::cout<  if(i%6==5)

  std::eout<  }

  return;

  )

  三、综合应用题

  使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为

  C3

  C2

  这个程序需要修改的部分,请按照以下部分实现。

  (1)类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。

  (2)类C1私有虚继承类C0,请在注释2后添加适当的语句。

  (3)类C2公有继承于C0,请在注释3后添加适当的语句。

  (4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。

  注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。

  试题程序:

  #include(iostream.h)

  classCO

  {

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

  };

  //********2********

  classC1:

  {

  public:

  voidprint()

  {

  cout<"”C1"<  }

  };

  //********3********

  classC2:

  {

  public:

  voidprint()

  {

  cout<<"C2"<  }

  };

  //********4***x****

  classC3:

  {

  public:

  voidprint()

  {

  cout<<"C3"<  }

  };

  voidmain()

  {

  C30bj3;

  C20bj2;

  obj3.print();

  obj2.print();

  return;

  }

  一、程序改错题

  (1)应添加“public:”。

  (2)“inti()”应改为“inti(10);”。

  (3)“i++;”应改为“i--;”。

  【解析】本题主要考查的是成员的访问属性。成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问。故应在构造函数前添加“public:”,否则该类无法被实例化。变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者。本题要求输出5个数,while的循环变量i每次减1,在i>5时循环,故i初始化应为10。若循环中i每次增1,则循环永远不会退出。

  二、简单应用题

  voidfun(doublea[],intlen)

  {

  if(1en>O)

  a[0]=0:

  if(1en>1)

  a[1]=1;

  for(inti=2;i<1en;i++)

  a[i]=a[i-1]+a[i-2];

  }

  【解析】本题考查的是计算数列值。首先给a[0]和a[1]赋初值,注意判断数组是否越界,然后循环遍历a[2]~a[len-1],根据题目给出关系计算每一个元素的值。

  三、综合应用题

  (1)应添加“virtualvoidprint()=0,”。

  (2)“classC1:”应改为“classC1:virtualprivateC0”。

  (3)“classC2:”应改为“classC2:publicC0”。

  (4)“classC3:”应改为“classC3:publicC2,publicC1”。

  【解析】本题考查了类的继承。根据题意,第1处应该添加“virtualvoidprint()=0;”。第2处根据题意,在冒号后面应添加“virtualprivateCO”。第3处根据题意,冒号后应添加“publicCO”。第4处根据题意,冒号后应添加“publicC2,publicC1”。

责编:曾珂

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部