国家二级C++机试(操作题)模拟试卷677
基本操作题
1.请打开考生文件夹下的解决方案文件proj1。程序中位于每个// ERROR ****found****下一行的语句有错误,请加以更正。更正后程序的输出应为:
The value is 5
The value is 10
There are 2 objects.
There are 1 objects.
注意:只修改每个// ERROR****found****下的那一行,不要改动程序中的其他内容。
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass(int value)
{
// ERROR **********found**********
this.value = value;
count++;
}
// ERROR **********found**********
void ~MyClass()
{
count–;
}
static int getCount() {return count; }
int getValue() {return value; }
private:
int value;
static int count;
};
// ERROR **********found**********
static int MyClass::count = 0;
int main()
{
MyClass* p = new MyClass(5);
MyClass* q = new MyClass(10);
cout << \\
(1)this->value=value;
(2)~MyClass()
(3)int MyClass::count=0;
解析:(1)主要考查考生对this指针的掌握,this是一个指针变量,调用成员时应使用标识符\\
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,其中定义了Shape类和Point类。Shape类表示抽象的形状,其成员函数draw声明了显示形状的接口。Point是Shape的派生类,表示平面直角坐标系中的点,其成员函数draw用于在屏幕上显示Point对象;成员函数distance用于计算两个点之间的距离。提示:在平面直角坐标系中,点(x1,y2)和点(x2,y2)之间的距离为:d=
(1)virtual void draw()const =0;
(2)const Point&pt
(3)double x_,y_:
(4)x_<<’,’<<y_
解析:(1)主要考查考生对纯虚函数的掌握,参考在派生类中该函数的定义可得到,注意纯虚函数要\\
综合应用题
3.请打开考生文件夹下的解决方案文件proj3,其中声明的Matrix是一个用于表示矩阵的类。其成员函数transpose的功能是实现矩阵的转置运算。将矩阵A的行列互换,所得到的矩阵称为A的转置,记作AT。例如,若有3×3矩阵
则A的转置为
AT=
for(int i=0;i<M;i++)
for(intj=0;j<i;j++)
{
int temp = array[i][i];
array[i][j]=array[j][i];
array[j][i]=temp;
}
解析:主要考查考生对二维数组的掌握,程序用二维数组表示矩阵,编写矩阵转置功能。要实现矩阵的转置,只要使矩阵中的元素array[i][j]与array[j][i]交换.程序使用循环语句遍历矩阵元素,外层循环用于控制行下标,内层循环用于控制列下标。
本文档预览:3600字符,共2397字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载