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

全国计算机二级考试C++语言程序设计上机考试试题及答案(8)

中华IT学院   【 】  [ 2017年6月29日 ]

  考试试题答案与解析

  一、程序改错题

  (1)“d3=(d1  (2)“d3=(d2)?d1\d2:-l;”应改为“d3=(d2)?d1/d2:-l;”。

  (3)“d3=(--dl)+(d2++);”应改为“d3=(d1++)+(d2--);或d3=(++d1)+(--d2);”。

  【解析】本题考查了考生对条件表达式和自增自减运算符了解的情况。d3应为d1和d2中较大者的值,所以“(d1(d2)”应改为“(d1>d2)”。若d2不为0,应返回d1/d2的值,而不是d1\d2。第3处应该输d1+1d2-l,所以两者的+

  +、--应反过来。又因为d3应该是两者原值之和,所以++、--应同时为后缀式或前缀形式。

  二、简单应用题

  //必须使用递归

  jntfunl(intn)

  {

  if(n<=0)

  return0;

  if(n==1)

  return1;

  returnn*funl(n-1);

  };

  //不能使用递归

  intfun2(intn)

  {

  if(n<=0)

  retturn0;

  intres=1:

  for(inti=1;i<=n;i++)

  {

  res*=i;

  }

  returnres;

  }

  【解析】本题考查的是递归函数和阶乘算法。递归的阶乘算法可以通过判断传入参数,如果大于1,则返回n*funl(n-1),意思是返回n乘以n-1的阶乘;如果等于1,则返回1。这样递归下去就能最终得出n的阶乘。非递归算法可以先建立一个累乘变量,并初始化为1,然后循环遍历1~n,将遍历的数累乘到变量中即可。

  三、综合应用题

  (1)“while()”应改为“while(infile.get(ch))”。

  (2)应添加“bur[len++]=ch;bur[len]=ch;len++;”。

  (3)应添加“outfile2<  (4)“TCobj();”应改为“TCobi("in.txt");”。

  【解析】本题考查了文件流的使用。根据题意,第1处要获得一个字符,并判断是否到文件结尾,所以应使用get函数;第2处应将ch存入buf数组,同时让len增1;第3处将buf中的字节输出给outfile2,注意同时让i增1,否则while循环将进入死循环;第4处TC只确一个带char*参数的构造函数,所以创建对象时必须使用构造参数,根据题意这个参数应该是“"in.txt"”。

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