考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C加加>模拟试题>正文
2018年9月计算机二级C++考试考前过关练习题(4)
考试吧 2018-05-17 14:50:27 评论(0)条

  点击查看:2018年9月计算机二级C++考试考前过关练习题汇总

  程序改错题

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

  10

  TC1

  注意:不要改动main函数,不能增加或删除行,也不能

  更改程序的结构,错误的语句在//******error******的下面。

  试题程序:

  #include

  classTC1

  {

  public:

  TC1()

  {

  }

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

  private:

  virtual~TC1()

  {

  usingnamespacestd;

  cout<<"TCl"<  }

  };

  classTC2:publicTC1

  {

  public:

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

  explicitTC2(inti)

  {

  m_i=i;

  }

  TC2&operator()(inti)

  {

  this->m_i=i;

  }

  voidprint()

  {

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

  cout<  }

  private:

  intm_i;

  };

  voidfun(TC2C1)

  {

  C1.print();

  }

  intmain()

  {

  fun(TC2(10));

  return0;

  }

  参考答案:

  (1)删除“private:”语句。

  (2)应改为“TC2(inti)”。

  (3)应改为“std::cout<

  【解析】本题中第1处的“virtual~TC1()”语句是TC1析构函数,不是私有函数,所以删除“private:”。第2处“ex-plicitTC2(inti)”构造函数语句中的“explicit”是禁止隐式转换。程序中无法实现对类TC2的直接使用,所以这里应该将其删除。即“TC2(inti)”。在第3处实现fun函数中m-i的标准输出,即在屏幕上输出10。在程序中用到C++标准库时,要使用std标准命名空间进行限定。cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即“std::cout<  二、简单应用题

  charstr[32];

  inti;

  for(i=30;i>=0;i--)//计算二进制

  {

  if(x%2)str[i]=’1’;//求余,如果余不为零字符串

  str第i位为1

  elsestr[i]=’0’;//否则为0

  x>>=1;

  if(!x)break;

  }

  str[31]=’\0’;//串加尾符

  cout<<&str[i]<  writeFile(&str[i]);

  【解析】本题要求定义存放二进制的字符串str。利用for循环对十进制数字x进行取余运算,直到余数为0结束。如果取余结果为0,则二进制字符串这个字符位的值为0,否则为1。调用WriteFile,将运算结果存入文件。

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

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

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