求学快递网是国内领先的B2M2C教育培训网上信息平台!

首页 | 分站加盟 | 课程发布 | 最新课程 | 最新机构 | 培训专题 | 全国分站 | 帮助中心

计算机等级考试_计算机等级考试报名_计算机考试成绩查询_求学快递网

计算机等级考试一步到位
您的位置:求学快递网 > 计算机等级考试 > 计算机二级 > 每日一练 > 2017河南计算机等级考试二级C++ 上机试题2 - 正文内容

2017河南计算机等级考试二级C++ 上机试题2

2017河南计算机等级考试二级C++ 上机试题2

联 系 方 式 : 0 3 7 1 - 5 8 5 3 5 5 2 5

微      信 : 1 5 7 3 6 9 1 0 2 1 7

Q     Q : 2 4 2 4 1 9 8 9 1 7

一、程序改错题 
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: 
TC1:0 
TC2 
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。 
试题程序: 
#include 
structTC1 

TCl(inti=0) 

m_i=i; 

voidprint() 

cout<<"TCl:"<<M_I<<ENDL; 

intm_i; 
}; 
classTC2 

public: 
TC2() 


voidprint() 

cout<<"TC2"<<ENDL: 

//********error******** 
private: 
~TC2() 


}; 
intmain() 

//********error******** 
TC1obj1(); 
//********error******** 
TC20bj2(); 
obj1.print(); 
obj2.print(); 
return0; 
}

二、简单应用题 
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成函数fun(char*S,inta[]),其功能是把字符串S中的数字提取出来存储在a[]中,然后返回数字的个数。 
  
例如s="1234abcdef567",则a[]中存储着1234567,返回7。 
注意:不能修改程序的其他部分,只能修改fun函数。 
试题程序: 
#include(iostream.h> 
intfun(char*s,inta[]) 


intmain() 

inta[1024]; 
intlen=fun("1234abedef567",a); 
for(inti=0;i<LEN;I++) style="TEXT-ALIGN: left; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/25px 宋体; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" 

COUt<<A[I]<<’’; 

cout<<ENDL; 
cout<<I<<ENDL: 
return0; 
}

三、综合应用题 
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。类People包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓名,然后输出这个姓名到屏幕。 
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 
(1)完成类的构造函数功能,请在注释1后添加适当的语句。 
(2)完成构造函数对姓名的赋值,请在注释2后添加适当的语句。 
(3)定义类的友元函数fun,请在注释3后添加适当的语句。 
(4)补充函数fun的年龄比较功能,请在注释4后添加适当的语句。 
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。 
试题程序: 
#include 
classPeople 

public: 
//********1******** 

inti; 
for(i=0;sUserName[i]!=0;i++) 
{m_UserName[i]=sUserName[i]; 

  
  
//********2******** 
m_Old=nOld; 

private: 
charm_UserName[32]; 
intm_Old; 
//********3******** 
}; 
voidfun(char*s,People&personl,People&person2 

//********4******** 
if() 

for(inti=0;personl.m_UserName[i]!=0;i+ 
+) 

s[i]=personl.m_UserName[i]; 
s[i+1]=0; 


else 

for(inti=0;person2.m_UserName[i]!=0;i+ 
+) 
{s[i]=person2.m_UserName[i]; 
s[i+1]=0; 



voidmain() 

chars[32]; 
Peoplepl("abc",20); 
Peoplep2("def",30): 
fun(S,p1,p2); 
cout<<S<<ENDL: 
return; 
}

一、程序改错题 
(1)应改为“public:”。 
(2)应改为“TClobj1(0);”或“TClobjl;”。 
(3)应改为“TC20bj2;”。 
【解析】本题第1处的“private:~TC2()”是析构函数,它不是私有的,所以这里应该删除“private:”或修改为“pub-lic:”。第2处的“TClobjl();”语句是定义一个TCl类型的对象objl(),根据类TCl构造函数的定义“TCl(inti=o)”,知道存在整型参数,应该补充参数,或者只是先定义一个对象名,然后在使用时补充参数,即修改为“TClobjl(0);或TClobil;”。第3处的“TC20bj2();”语句修改为“TC20bj2;”。 
二、简单应用题 
intj=0; 
for(inti=0;s[i]!=0;i++)//字符串内循环 

if(s[i]>=’0’&&s[i]<=’9’)//判断字符是否为0 
~9的字符 
a[j++]=s[i]-’0’;//如果为0~9的字符,转换 
为整型 


returnj;//返回数字个数 
【解析】本题中变量j用来记录转换的个数,首先初始化为0,然后利用for循环判断每一个当前字符是否为数字字符。如果为数字字符,就将其减去字符“0”,即实现字符和整型的转换,并且将j的变量值加1。 
三、综合应用题 
(1)应添加“People(char*sUserName,intnOld)”。 
(2)应添加“m_UserName[i]=0;”。 
(3)应添加“friendvoidfun(char*s,People&personl,People&person2);”。 
(4)将“if()”补充完整为“if(personl.m_Old)person2.mOld)”。 
【解析】本题第1处要求“完成类的构造函数”。根据 
“classPeople”语句知道People为类,所以类People的构造函数名为People,根据第1处的大括弧中的语句知道函数中的参数为数组sUserName存放姓名,整型nOld存放年龄,所以补充构造函数定义为“People(char*sUserName,intnOtd)”。第2处要求“完成构造函数对姓名的贼值”。第2处补全姓名赋值,即“m_UserName[i]=0;”。第3处要求“定义类的友元函数fun”。在C++中,如果在本类以外的其他地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中的fun函数定义为“voidfun(char*S,People&personl,People&person2)”,所以声明fun()为类People的友元函数,即这里补全“friendvoktfun(char*s,People&personl,People&person2);”。第4处要求“补充函数fun的年龄比较”。类People中年龄的变量为m_Old,根据C++中类变量的调用格式补充第4处if语句中的条件判断语句,即“if(per-sonl.m_O1d)person2.m_Old)”。



联 系 方 式 : 0 3 7 1 - 5 8 5 3 5 5 2 5

微      信 : 1 5 7 3 6 9 1 0 2 1 7

Q     Q : 2 4 2 4 1 9 8 9 1 7


相关推荐

计算机等级考试最新机试技巧
计算机等级考试高效利用技巧

最新计算机资讯

热点专题

计算机等级考试经验技巧分享

关于本站  诚征英才  广告服务  招生服务  免责声明  分站加盟  VIP会员  联系我们  网站地图  网站记事

版权所有 CopyRight 2008-2017 粤ICP备14009694号 www.studyems.com, Inc. All Rights Reserved
违法和不良信息举报邮箱:2881796407@qq.com 举报电话: