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

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

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

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

基本操作题

1.请打开考生文件夹下的解决方案文件proj1,此工程中含有一个源程序文件proj1.cpp。其中每个注释“// ERROR****found*****之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:

smaller

smaller

smaller

largest

注意:只修改注释“// ERROR**********found************的下一行语句,不要改动程序中的其他内容。

// proj1.cpp

#include <iostream>

using namespace std;

const int Size=4;

class MyClass

{

public:

MyClass(int x=0):value(x) { }

void Set(int x) {value=x; }

friend void Judge(MyClass &obj);

private:

int value;

};

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

void MyClass::Judge(MyClass &obj)

{

if(obj.value==Size)

cout<<\\

(1)void Judge(MyClass &obj)

(2)(ptr+i)->Set (i+ 1);

(3)delete[ ] ptr;

解析:(1)主要考查考生对友元函数的掌握,由类的定义中关于Judge函数的声明可知该函数为友元函数,因此在定义时不能使用类名和作用域符。

(2)主要考查考生对指针的掌握,ptr是指针,(ptr+i)也是指针,表示指针ptr向后移动i个位置,因此在调用成员函数时要使用标识符’->。

(3)主要考查考生对delete语句的掌握,释放指针使用delete语句,其格式为:delete[ ]指针;。

简单应用题

2.请打开考生文件夹下的解决方案文件proj2,此工程中含有一个源程序文件proj2.cpp,其中定义了MyString类。MyString是一个用于表示字符串的类,其构造函数负责动态分配一个字符数组,并将形参指向的字符串复制到该数组中;成员函数reverse的功能是对字符串进行反转操作,例如,字符串“ABCDE”经过反转操作后,会变为“EDCBA”;成员函数print的作用是将字符串输出到屏幕上。

请在横线处填写适当的代码并删除横线,以实现MyString类的功能。此程序的正确输出结果应为:

Before reverse:

abc

defg

After reverse:

cba

gfed

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

(1)strlen(s) +1

(2)delete [ ]m_str

(3)m_str[n-i-1]

(4)m_str[n-i-1]=tmp

解析:(1)考查使用new语句动态分配内存空间,要分配空间大小应为字符串的长度加1。

(2)主要考查考生对析构函数的掌握,析构函数使用delete语句释放指针。

(3)和(4)主要考查考生对成员函数的掌握,这里是一个变量交换操作,通过中间变量tmp交换。

综合应用题

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 // 如果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<length;++i)

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

return *this;

}

解析:主要考查考生对运算符重载的掌握,因为有动态数组,所以要先分配空间,再复制字符串。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号