频道栏目
首页 > 资讯 > C++ > 正文

2014年计算机二级C++考试专家预测试卷及答案4

14-03-18        来源:[db:作者]  
收藏   我要投稿

 程序改错题(18分)  
  使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误.请改正程序中的错误,本题的功能是从键盘中输入字符串str,然后输出字符串str中的字符个数。  
  注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。  
  试题程序:  
  #include  
  intmain()  
  {  
  /********error********/  
  cout<<"pleaseinputastrin9:"<  /********error*******/  
  namespacestd;  
  charstr[256];  
  cin.getline(str,256);  
  cout<<>  return0;  
  }  

简单应用题(24分)  
  使用VC++6.o打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str1,char*str2),此函数的功能是计算str1中出现str2的个数,当不出现时,则返回0。  
  例如:  
  str1为“asdfsfdfg”  
  str2为“sf”则返回1  
  str2为“df”则返回3  
  注意:不能修改函数的其他部分。  
  试题程序:  
  #include  
  //注意只能使用int类型,不能类型转换  
  intfun(char*str1,char*str2)  
  {  
  }  
  voidmain()  
  {  
  charstr1[1024];  
  charstr2[256];  
  cout<<"pleaseinputastring:"<  cin.getline(str1,1024);  
  cout<<"pleaseinputotherstring;"<  cin.getline(str2,256);  
  cout<  cout<  return;  
  }
综合应用题(18分)  
  使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成。  
  (1)定义私有数据成员year、month和day,分别用于表示年、月和日,它们都是int型的数据。请在注释1之后添加适当的语句。  
  (2)完成默认构造函数Date的定义,使Date对象的默认值为year=1,month=1,day=1,请在注释2之后添加适当的语句。  
  (3)完成重载构造函数Date(inty,intm,intd)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值,请在注释3之后添加适当的语句。  
  (4)完成成员函数print的类外定义,使其以“年一月一日”的格式将Date对象的值输出到屏幕上,例如1949-10-1。请在注释4之后添加适当的语句。  
  注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。  
  试题程序:  
  #include  
  classDate  
  {  
  public:  
  //********1********  
  Date(inty。intm,intd)  
  {  
  //********2********  
  }  
  voidprint()const;  
  private:  
  //datamember  
  //********3********  
  };  
  voidDate::print()const  
  {  
  //********4********  
  }  
  intmain()  
  {  
  DateOlympic_BJ(2008,8,8);  
  Olympic_BJ.print();return0;  
  }

程序改错题  
  本题考查了考生对名字空间的了解情况。  
  (1)“cout<<"pleaseinputastrin9:”<(endl;”应改为“std::cout<<”pleaseinputastrin9:”<(std::endl;”。  
  (2)“namespacestd;”应改为“usingnamespacestd;”。  
  【解析】本题中程序使用的头文件是(iostream),没有.h  
  后缀,该头文件中定义的所有标识符都位于C++标准库名  
  字空间“std”内。所以语句“cout<<"pleaseinputastrin9:"<  加std::前缀的麻烦,可以使用语句“usingnamespacestd”。 

简单应用题  
  intfun(char*str1.char*str2)  
  {  
  intsize=0;  
  intstrllen;  
  intstr2len;  
  for(strllen=0;str1[strllen]!=0;strllen++);  
  for(str21en=0;str2[str21en]!=0;str2len++);  
  for(inti=0:i  {  
  intj=0;  
  for(;j  if(strl[i+j]!=str2[j])  
  break;  
  if(i==str21en)  
  {  
  ++size;  
  i+=j;  
  }  
  }  
  returnsize;  
  }  
  【解析】本题考查的是字符串查找算法。首先求出两个字符串的长度,然后循环遍历第1个字符串,再使用一个内循环遍历第2个字符串,判断两个字符串相应位置是否一致。如果遍历完第2个字符串,所有位置都一致,则记数值size增1,即找到一个子串。  

综合应用题  
  (1)应添加“Date(){year=1;month=1;day=l;}”或“Date():year(1),month(t),day(1){}”。  
  (2)应添加“year=Y;month=m;day=d;”。  
  (3)应添加“intyear,month,day;”。  
  (4)应添加“cout<<><><><><><><>  【解析】本题考查了类的定义。根据题意,此处应定义3个int型数据成员year、month和day。根据题意,第2处应添加默认构造函数,并初始化3个变量,这里既可以使用赋值语句来实现,也可以使用初始化列表。第3处只能通过赋值语句初始化3个成员,因为注释3位于函数中,无法在此处使用初始化列表。添加输出语句.注意题目头包含的头文件是iostream.h,不能添加std::前缀。<><><><><><>

相关TAG标签
上一篇:2014年计算机二级C++考试专家预测试卷及答案2
下一篇:NBA2K 新玩家升15级领5QB组建战队抽QB 道具礼包 VIP一个月
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站