首页 > 全部 > 二级C++ > 国家二级C++机试(操作题)模拟试卷434

国家二级C++机试(操作题)模拟试卷434

本单篇文档共4453字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 7624人下载
价格: 1.60 原价:¥9.00
收藏

国家二级C++机试(操作题)模拟试卷434

基本操作题

1.使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正main()函数中的错误,使程序的输出结果如下:

Constructor.

Default constructor.

Area is 12

Area is 0

Area is 12

注意:错误的语句在//*****error******的下面,修改该语句即可。

#include

class CRectangle

{

private:

double length,width;

public:

CRectangle()

{

cout<<\\

(1)CRectangle Rect2;

(2)CRectangle Rect3(Rect1);

(3)Rect2.Set(0,0);

解析:(1)构造函数CRectangle()不带有参数,CRectangle(double1,double w)带有2个参数,在创建对象时会自动调用构造函数,但是参数必须匹配,第1个标识下定义Rect2对象时,有一个参数,而类CRectangle()并没有重载一个参数的构造函数,编译后出错,因此第1标识下应改为“CRectangle Rect2;”。

(2)Rect3.GetArea()输出的结果和Rect1.GetArea()输出结果一致,因此对象Rect3和对象Rect1两者具有相同的length和width值,除定义Rect3对象之外没有改变Rect31的length和width值,因此Rect3成员变量的初始化是通过拷贝构造函数类实现的,即用Rect1对象去初始化Rect3,因此第2个标识下应改为“CRectangle Rect3(Rect1);”。

(3)Rect2.GetArea()的输出结果为0,说明Rect2的成员变量length和width值至少一个为0,而Set()函数必须有两个参数,这里Rect2.Set(0)参数不匹配,应改为“Rect2.Set(0,0);”或者“Rect2.Set(0,5)”,两个参数当中至少一个为0即可。

简单应用题

2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。补充函数convert(long s,long*str),使之从低位开始取出长整型变量S中奇数位上的数,依次存放在数str中。

例如,当s中的数为:7654321时,str中的数为:7531。

注意:请勿改动主函数。

#include

void convert(long s,long *str)

{

}

void main()

{

long s,res,

cout<<\\

long s1=10;

*str=s%10;//先取个位数

while(s>0)

{

s=s/100; //每次除以100,

*str=s%10*s1+*str; //取除

以100后的个位数,str增加1位

s1=s1*10;

}

解析:(1)由审题分析可知,奇数位即为个位数、百位数、万位数……,取个位数比较简单,s%10便得到了个位数。获取百位数可由s/100后,再和lO取余得到,同样万位数可由s/10000,再和10取余得到,从百位数开始后面的奇数位都是在上次的基础上再除以100后再取余数,因此可利用循环。

(2)在循环外先取S的个位数,然后进入循环,s=s/100,获取除以100的个位数方法为s%10,这个数是*str的高一位,乘以它所在*str中的位置的权值,然后和以前的值相加便得到这次*sir值,如此循环,直到s为0为止。

综合应用题

3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:

(1)完成构造函数的定义,使得数据成员变量filename和contex为空,内容长度FileLength为0。请在注释//********1********后添加适当的语句。

(2)完成析构函数,对contex内存的释放。请在注释//********2********后添加适当的语句。

(3)完成WriteFile()函数,用来对contex内容进行设置填充内容,如果以前有内容,则删除以前的内容,重新填写。请在注释//********3********后添加适当的语句。

(4)完成CopyFile()函数,完成将参数对象的contex的内容拷贝到当前的文件内容中,请在注释//********4********后添加适当的语句。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

#include

class MyFileClass

{

private:

char filename[64];

char *contex;

int FileLength;

public:

MyFileClass()

{

//********1********

contex=NULL;

FileLength=0;

}

~MyFileClass()

{

if(FileLength)

//********2********

}

void OpenFile(char *str,int

len)

{

for(int i=0;i<len;i++)

{

filename[i]=str[i];

}

filename[len]=0;

FileLength=0;

if(contex)

{

delete[]contex;

contex=NULL;

}

}

void WriteFlie(char *str,int len)

{

if(contex!=NULL)

//********3********

contex=new char[len+1];

for(int i=0;i<len;i++)

contex[i]=str[i];

contex[len]=0;

FileLength=len;

}

void CopyFile(MyFileClass&file)

{

//********4********

}

void display()本文档预览:3600字符,共4453字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(操作题)模拟试卷434

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号