2012年计算机二级C++第十一套上机模拟试题及答案解析

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

本文导航
  • 第1页:一、改错题
  • 第2页:二、简单应用题
  • 第3页:三、综合应用题
  一、改错题

  使用VC6打开考生文件夹下的工程kt17_1,此工程包含一个源程序文件kt17_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:

  0149162536496481

  源程序文件kt17_1.cpp清单如下:

  #include

  templateclassVector

  { Tvec[N];

  public:

  voidset(intpos,Tval);

  Tget(intpos);

  /*****************found*****************/ }

  templatevoidVector::set(intpos,Tval)

  { vec[pos]=val; }

  /*****************found*****************/

  templateVector::get(intpos)

  { returnvec[pos]; }

  intmain()

  { Vectorv;

  inti=0;

  doubled=0.0;

  for(i=0;i<10;i++)

  v.set(i,double(i*i));

  for(i=0;i<10;i++)

  cout<  cout<  /*****************found*****************/ }

  【参考答案】

  (1)在“}”后添加分号。

  (2)将template Vector::get(int pos)

  改为:template T Vector::get(int pos)

  (3)将缺少返回值

  改为:加入return 0;

  【试题解析】

  (1)主要考查对于类定义的理解,即使使用了类模板,在类定义的结尾仍然需要使用分号,这是C++的规定;

  (2)主要考查是模板类的定义,template是关键字,在<>中间是类型的定义,题目中Vector是一个类的名称,前面应该有该模板的名称,即T,这样才是完整的定义;

  (3)主要考查对函数返回值的掌握,任何返回值类型不为int型的函数最后都必须使用returen语句返回对应类型的值,就算是main函数也不例外。

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答