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

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

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

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

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,此工程中含有一个源程序文件proj1.cpp。其中每个注释\\

(1)Circle(int r): radius(r){ }

(2)void Circle::Display()

(3)c.Display);

解析:(1)主要考查考生对构造函数的掌握,常变量私有成员只能通过成员列表进行初始化。

(2)主要考查考生对成员函数的掌握,在定义类的成员函数时要加上类名和作用域符。

(3)主要考查考生对成员函数调用的掌握,调用成员函数时应使用标识符’.’。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,此工程中含有一个源程序文件proj2.cpp,其中定义了Sort类和InsertSort类。Sort是一个表示排序算法的抽象类,成员函数mySort为各种排序算法定义了统一的接口,成员函数swap实现了两个整数的交换操作。InsertSort是Sort的派生类,它重新定义了基类中的成员函数mySort,具体实现了简单插入排序法。本程序的正确输出结果应为:

Before sorting a[ ]=

5,1,7,3,1,6,9,4,2,8,6,

After sorting a[ ]=

1.1.2.3.4.5.6.6.7.8.9,

请首先阅读程序,分析输出结果,然后根据以下要求在横线处填写适当的代码并删除横线,以实现上述功能。

(1)将Sort类的成员函数swap补充完整,实现两个整数的交换操作;

(2)将InsertSort类的构造函数补充完整;

(3)将InsertSort类的成员函数mySort补充完整,实现简单插入排序法(在交换数据时,请使用基类的成员函数swap)。

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

(1)x=y

(2)Sort(a0,n0)

(3)swap(a[j], a[j-1])

(4)break

解析:(1)主要考查考生对成员函数的掌握,题目要求将Sort类的成员函数swap补充完整,实现两个整数的交换操作,因此这里是一个交换操作,程序利用中间值tmp交换x和y的值。

(2)主要考查考生对构造函数的掌握,派生类的构造函数使用成员列表初始化基类。

(3)主要考查考生对成员函数调用的掌握,题目提示:在交换数据时,请使用基类的成员函数swap。因此这里可以直接调用swap函数交换a[j]和a[j-1]的值。

(4)主要考查考生对成员函数的掌握,当条件a[j]<a[j-1]不满足时,说明顺序没问题不需要交换,使用break语句跳出本次循环。

综合应用题

3.请打开考生文件夹下的解决方案文件proj3。本题创建一个小型字符串类,字符串长度不超过100。程序文件包括proj3.h、proj3.cpp、writeToFile.obj。补充完成proj3.h,重载复合赋值运算符+=。

要求:

补充编制的内容写在//**********333**********与//**********666**********之间,不得修改程序的基他部分。

注意:程序最后将结果输出到文件out.dat中。

//proj3.h

#include <iostream>

#include <iomanip>

using namespace std;

class MiniString

{public:\\t

friend ostream &operator<< ( ostream &output, const MiniString &s ) //重载流插入运算符

{\\toutput << s.sPtr;\\t\\treturn output;\\t}

friend istream &operator>>( istream &input, MiniString &s ) //重载流提取运算符

{\\tchar temp[100 ]; // 用于输入的临时数组

temp[0] = ’\0’;

\\tinput >> setw( 100 ) >> temp;

\\tint inLen = strlen(temp); //输入字符串长度

\\tif( inLen != 0)

{

\\t s.length = inLen; //赋长度

\\t if( s.sPtr!= 0) delete [ ]s.sPtr; // 避免内存泄漏

\\t s.sPtr = new char[s.length + 1 ];

\\t strcpy( s.sPtr, temp ); \\t// 如果s 不是空指针,则拷贝内容

}

else s.sPtr[0 ] = ’\0’; \\t\\t\\t\\t// 如果s 是空指针,则为空字符串

return input;

}

MiniString( const char *s = \\

MiniString&operator+=(const MiniString&s)

{

char* pt = new char[length +1];

strcpy(pt, sPtr);

int blength = length;

length +=s.length;

delete[ ] sPtr;

sPtr = new char[length +1];

strcpy(sPtr, pt);

delete[ ] pt;

for (int i=0;i< s.length;++i)

sPtr[blength +i]= s.sPtr[i];

sPtr[length] =’\0’; // 添加字符串结束符

return *this;

}

解析:主要考查考生对运算符重载的掌握,因为有动态数组,所以要使用new语句来重新分配空间。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号