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

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

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

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

基本操作题

1.打开考生文件夹下的解决方案proj1,其中有类Conversion的定义和主函数main的定义,类Conver-sion能够实现十进制数向任意进制数的转换。程序中位于每个//ERROR *******found*******下的语句行有错误,请加以改正。更正后程序的输出应该是:

请输入需要转换的十进制正整数:31

请输入需要转换的进制(例如:二进制输入2,八进制输入8):4

转换后的4进制数是:133

注意:只能修改每个//ERROR *******found*******下的那一行,不要改动程序中的其他内容。

#include<iostream>

#include<iomanip>

using namespace std;

const int MAX=100;

class Conversion//十进制向任意进制的转换

{

public:

Conversion(int x,int n=2):

value(x),radix(n),count(0){ }

void Compute();

void Print()const;

private:

int value,radix;//十进制数与转换进制基数

int count,data[MAX];//保存转换后的位数和数值

};

//ERROR *******found*******

void Compute()

{

int templ,temp2=value;

for(int i=0;temp2>0;i++)

{

templ=temp2%radix;

//ERROR *******found*******

temp2=templ/radix;

data[i]=temp1;

count++;

}

}

//ERROR *******found*******

void Conversion::Print()

{

for(int i=count-1;i>=0;i–)

cout<<data[i];

cout<<endl;

}

int main()

{

int x,radix;

cout<<”请输入需要转换的十进制正整数:”;

cin>>x;

cout<<”请输入需要转换的进制(例如:二进制输入2,八进制输入8):”;

cin>>radix;

Conversion obj(x,radix);

obj.Compute();

cout<<·-转换后的”<<radix<<”进制数是:”;

obj.Print();

return 0;

}

(1)void Conversion::Compute()

(2)temp2=temp2/radix;

(3)void Conversion::Print()const

解析:(1)在类外定义类的成员函数的函数体时要指明函数所属的类,通过在成员函数名前加类名和两个冒号即可声明成员函数所在的类。因此应将void Compute()改为void Conversion::Compute()。

(2)temp1变量用于保存进制转换后的每一个位,并及时的赋值给数组data中;temp2变量用于保存需要进行进制转换的数,以及每一次取余操作后的商;因此在上一句语句保存当前取余操作的余数并赋值给temp1后,要执行temp2的求商操作,且保存为新的temp2值,并用于下一次循环的取余操作。因此temp2=temp1/radix应改为temp2=temp2/radix。

(3)在类外定义类的静态成员函数时,要在函数名尾部加上const修饰符。对于同一个函数来说,有const修饰和无const修饰被视为两种函数。因此应将void Conversion::Print()改为void Conversion::Print()const。

简单应用题

2.打开考生文件夹下解决方案proj2,其中有类Graphics(“图形”)、IsoeelesTriangles(“等腰三角形”)、Parallelogram(“平行四边形”)的定义和主函数main的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述定义。例如,当输入数值6时,程序分别输出边长为6的等腰三角形和平行四边形,即此程序的正确输出结果应为:

6

*

***

*****

*******

*********

***********

******

******

******

******

******

******

注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“//*******found*******”。

#include<iostream>

#include<iomanip>

using namespace std;

class Graphics//图形类

(

public:

Graphics(int e):edges(e){ }

//*******found*******

protected:

int edges;

};

//*******found*******

________________//等腰三角形类

{

public:

IsocelesTriangles(int x):

Graphics(x){ }

void Draw();

};

void IsocelesTriangles::Draw()

{

int i,J;

if(edges<=0)

cout<<”errors”<<endl;

if(edges>0)

{

for(i=0;i<edges;i++)

{

//*******found*******

________________//输出前导空格

cout<<setw(2)<<‘’;

for(j=0;j<2*i+1;j++)

cout<<setw(2)<<’*’;

cout<<endl;

}

}

cout<<endl:

}

class Parall

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号