国家二级C++机试(操作题)模拟试卷478
基本操作题
1.请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含程序文件main.cpp,其中有ElectricFan(“电风扇”)类和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
品牌:清风牌,电源:关,风速:0
品牌:清风牌,电源:开,风速:3
品牌:清风牌,电源:关,风速:0
注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
#include
using namespace std;
class ElectricFan{ //“电扇”类
char*brand;
int intensity; //风速:0一关机,1一弱,2一中,3一强
public:
ElectricFan(const char*the_brand):intensity(0){
brand=new char[ Strlen(thebrand)+1 ];
strcpy(brand,the brand);
}
~ElectricFan(){delete[]brand;}
//ERROR********found********
const char*theBrand()const{return*brand;}//返回电扇品牌
int theIntensity()const{return intensity;}
//返回风速
bool isOn()const{return intensity>0;}
//返回电源开关状态
//ERROR****found****
void turnOff(){intensity=1;}
//关电扇
void setIntensity(int inten){
//开电扇并设置风速
//ERROR********found********
if(intensity>=1&&intensity<=3)
intensity=inten;
}
void show(){
cout<<\\
(1)const char*theBrand()const{returnbrand;}
//返回电扇品牌
(2)void turnOff(){intensity=0;}//关电扇
(3)if(inten>=1&&inten<=3)intensity=inten:
解析:(1)主要考查考生对指针的掌握情况,因为brand是一个动态指针,水brand表示字符串的首个字符,brand表示动态数组,这里要返回动态数组存储的品牌名称。
(2)主要考查考生对成员函数的掌握情况,根据题目中类的定义中私有成员的定义:int intensity;//风速:0-关机,1-弱,2-中,3-强,可知本函数要关电扇,因此在这里intensity=0;。
(3)主要考查考生对成员函数的掌握,根据题目中函数的注释:开电扇并设置风速,可知if语句里要判断的应该是形参inten而不是intensity。
简单应用题
2.请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中含有一个源程序文件proj2.cpp。函数char*GetNum(ehar*src,ehar*buf)从src开始扫描下一个数字字符序列,并将其作为一个字符串取出放入字符串空间buf中。函数返回扫描的终止位置,如果返回NULL表示没有扫描到数字字符序列。
运行程序时,如果输入的一行字符序列是
ABC012XYZ378MN274WS则输出为:
Digit string 1 is 012
Digit string 2 is 378
Digit string 3 is 274
注意:只在横线处编写适当代码,不要删除或移动“//****found****”。
//proj2.cpp
#include
using namespace std;
char*GetNum(char*src,char*bur)
{
while(*src!=’\0’)
{
if(isdigit(*src))break;
src++;
}
if(*src==’\0’)
//********found********
__________;
while(*src!=’\0’&&isdigit(*src))
{
//********found********
__________;
buf++;
src++;
}
*bur=’\0’;
return src;
}
int main()
{
char str[100],digits[20];
cin.getlihe(str,100);
char*p=str;
int i=1;
while((p=CetNum(p,digits))!=NULL)
{
cout<<\\
(1)return NULL
(2)*buf=*src
(3)i++
解析:(1)主要考查考生对if语句的掌握,由判断条件if(*src==’\0’),说明字符串src为空,则返回NULL即可。
(2)主要考查考生对while循环语句的掌握,while语句的循环条件为*src!=’\0’&&isdigit(*src),该条件是指,若字符串src不为空并且*src指向的字符为数字字符,则进行循环。题目要求把数字字符放人字符串buf中,因此为*buf=*src。
(3)主要考查考生对while循环语句的掌握,从上一行语句cout<<\\
综合应用题
3.请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:
排序前:7,1,3,11,6,9,12,10,8,4,5,2
排序后:1,2,3,4,5,6,7,8,9,10,11,12
要求:
补充编制的内容写在“//***********3***********”与“//***********666***********”两行之间。不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数
本文档预览:3600字符,共4645字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载