更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
打开解决方案文件proj1,此工程文件包含源程序文件main.cpp,其中有基类Base、派生类Derived和主函数main的定义。程序位于每个“//ERROR**********found**********”下的语句行有错误,请加以更正。

更正后程序的输出应该是:

     1+2=3

[程序]

//main.cpp

#include<iostream>

using namespace std;

class Base{

public:

    Base(int x):m(x) { }

    int getm(){ return m;}

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

private:

    int m;

};

 

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

class Derived:protected Base{

public:

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

    Derived(int x,int y):m(x),n(y) { }

    int getn(){ return n;}

    int getsum( ){ return m+n; }

private:

    int n;

};

 

int main()

{

    Derived test(1,2);

    cout<<test.getm()<<'+'<<test.getn()<<'='<<test.getsum()<<endl;

    system(pause);;

    return 0;

}


解题说明:

1、只能修改每个“//ERROR**********found**********”下的那一行,不要改动程序中的其他内容,也不能删除或移动“//ERROR**********found**********”。

2、可将下列压缩文件“proj1.zip”下载到计算机中,解压后用VC2010对程序进行调试运行,即找到并双击文件“proj1.sln”打开解决方案,然后操作。

(1)源程序文件在解决方案管理器的Source Files文件夹中,头文件在Header Files文件夹中。

(2)为了避免运行结果闪退,方便调试,可在主函数“return 0;”语句前添加语句“system(“pause”);”,调试结束后再删除添加的该语句。

3、操作完成后,将答案(正确的整行)以填空题的方式依次填写到作业系统中。


(含图)<a href=/ueditorupload/read?objectId=0f7e2bb51d910a8b12be59eebdf71740&amp;fileOriName=proj1.zip target=_blank type=zip>proj1.zip</a>

打开解决方案文件proj2,此工程文件包含源程序文件main.cpp,其中有类MyClassA(基类)、类MyClassB(派生类)和主函数main的定义。程序通过指针和基类对象的引用实现运行多态性,但位于每个“//ERROR**********found**********”下的语句行有错误,请加以更正。

更正后程序的输出应该是:

&nbsp;&nbsp;&nbsp;&nbsp; MyClassB::show()

&nbsp;&nbsp;&nbsp;&nbsp; MyClassB::show()

[程序]

//main.cpp

#include&lt;iostream&gt;

#include&lt;cstring&gt;

using namespace std;

class MyClassA{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 基类

public:

&nbsp;&nbsp;&nbsp; MyClassA()

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcpy(str,MyClassA::show());

&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; //ERROR**********found**********

&nbsp;&nbsp;&nbsp; void show()const

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;str&lt;&lt;endl;

&nbsp;&nbsp;&nbsp; }

private:

&nbsp;&nbsp;&nbsp; char str[100];

};

class MyClassB:public MyClassA{&nbsp;&nbsp;&nbsp; // 派生类

public:

&nbsp;&nbsp;&nbsp; MyClassB()

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcpy(s,MyClassB::show());

&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; void show()const

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;s&lt;&lt;endl;

&nbsp;&nbsp;&nbsp; }

private:

&nbsp;&nbsp;&nbsp; char s[100];

};

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

void fun(MyClassA t)

{

&nbsp;&nbsp;&nbsp; t.show();

}

int main()

{

&nbsp;&nbsp;&nbsp; MyClassB tb;

&nbsp;&nbsp;&nbsp; fun(tb);

&nbsp;&nbsp;&nbsp; MyClassA *ta=&amp;tb;

&nbsp;&nbsp;&nbsp; //ERROR**********found**********

&nbsp;&nbsp;&nbsp; ta.show();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 通过ta调用show()

&nbsp;&nbsp;&nbsp; system(pause);

&nbsp;&nbsp;&nbsp; return 0;

}

&nbsp;

解题说明:

1、只能修改每个“//ERROR**********found**********”下的那一行,不要改动程序中的其他内容,也不能删除或移动“//ERROR**********found**********”。

2、可将下列压缩文件“proj2.zip”下载到计算机中,解压后用VC2010对程序进行调试运行,即找到并双击文件“proj2.sln”打开解决方案,然后操作。

(1)源程序文件在解决方案管理器的Source Files文件夹中,头文件在Header Files文件夹中。

(2)为了避免运行结果闪退,方便调试,可在主函数“return 0;”语句前添加语句“system(“pause”);”,调试结束后再删除添加的该语句。

3、操作完成后,将答案(正确的整行)以填空题的方式依次填写到作业系统中。


(含图)<a href=/ueditorupload/read?objectId=33b3e3da15464ead059049e72430f801&amp;fileOriName=proj2.zip target=_blank type=zip>proj2.zip</a>

打开解决方案文件proj3,此工程文件包含源程序文件main.cpp,其中有类Array(“数组”类)、IntArray(“整型数组”类)和CharArray(“字符数组”类)的定义,以及主函数main的定义。在主函数中定义了2个对象,实现了整型数组和字符数组的输入与输出。请在程序中“//**********found**********”下的横线处填写适当的代码,然后删除横线,以实现上述类定义。

此程序的正确输出结果应为(下划线部分为键盘输入内容):

&nbsp;&nbsp;&nbsp; 设置整型数组大小: &nbsp;8

&nbsp;&nbsp;&nbsp; 输入整型数组: 1&nbsp; 2&nbsp; 3&nbsp; 4&nbsp; 5&nbsp; 6&nbsp; 7&nbsp; 8

&nbsp;&nbsp;&nbsp; 整型数组为:1,2,3,4,5,6,7,8

&nbsp;&nbsp;&nbsp; 设置字符数组大小: &nbsp;16

&nbsp;&nbsp;&nbsp; 输入字符数组: I am a student.

&nbsp;&nbsp;&nbsp; 字符数组为:I am a student.

[程序]

//main.cpp

#include&lt;iostream&gt;

#include&lt;cstring&gt;

using namespace std;

class Array{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 数组类

public:

&nbsp;&nbsp;&nbsp; Array(int n):length(n){ }

&nbsp;&nbsp;&nbsp; //**********found**********

&nbsp;&nbsp;&nbsp; ___________________________ ;&nbsp;&nbsp; // 输入数组

&nbsp;&nbsp;&nbsp; virtual void output()const=0;&nbsp;&nbsp; // 输出数组

protected:

&nbsp;&nbsp;&nbsp; int length;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 数组大小(元素个数)

};

class IntArray:public Array{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 整型数组类

public:

&nbsp;&nbsp;&nbsp; IntArray(int n):Array(n)

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr=new int[length];

&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; //**********found**********

&nbsp;&nbsp;&nbsp; ___________________________

&nbsp;&nbsp;&nbsp; void input()

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;输入整型数组:;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;length;i++)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin&gt;&gt;arr[i];

&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; void output()const

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;整型数组为:;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;length;i++)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(i==length-1)cout&lt;&lt;arr[i]&lt;&lt;endl;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //**********found**********

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else ___________________________;

&nbsp;&nbsp;&nbsp; }

private:

&nbsp;&nbsp;&nbsp; int *arr;

};

class CharArray:public Array{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 字符数组类

public:

&nbsp;&nbsp;&nbsp; //**********found**********

&nbsp;&nbsp;&nbsp; CharArray(int n): _______________

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr=new char[length];

&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; ~CharArray(){ delete []arr; }

&nbsp;&nbsp;&nbsp; void input()

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char c;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin.get(c);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 清除缓存中的换行符

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;输入字符数组:;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cin.getline(arr,length);

&nbsp;&nbsp;&nbsp; }

&nbsp;&nbsp;&nbsp; void output()const

&nbsp;&nbsp;&nbsp; {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;字符数组为:;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;arr&lt;&lt;endl;

&nbsp;&nbsp;&nbsp; }

private:

&nbsp;&nbsp;&nbsp; char *arr;

};

void fun(Array *p)

{

&nbsp;&nbsp;&nbsp; p-&gt;input();

&nbsp;&nbsp;&nbsp; p-&gt;output();

}

void fun(Array *p)

{

&nbsp;&nbsp;&nbsp; p-&gt;input();

&nbsp;&nbsp;&nbsp; p-&gt;output();

}

int main(void )

{

&nbsp;&nbsp;&nbsp; int n;

&nbsp;&nbsp;&nbsp; cout&lt;&lt;设置整型数组大小:;

&nbsp;&nbsp;&nbsp; cin&gt;&gt;n;

&nbsp;&nbsp;&nbsp; IntArray test1(n);

&nbsp;&nbsp;&nbsp; fun(&amp;test1);

&nbsp;&nbsp;&nbsp; cout&lt;&lt;设置字符数组大小:;

&nbsp;&nbsp;&nbsp; cin&gt;&gt;n;

&nbsp;&nbsp;&nbsp; CharArray test2(n);

&nbsp;&nbsp;&nbsp; fun(&amp;test2);

&nbsp;&nbsp;&nbsp; system(pause);

&nbsp;&nbsp;&nbsp; return 0;

}

&nbsp;

解题说明:

1、将下列压缩文件“proj3.zip”下载到计算机中,解压后用VC2010对程序进行调试运行,即找到并双击文件“proj3.sln”打开解决方案,然后操作。

(1)源程序文件在解决方案管理器的Source Files文件夹中,头文件在Header Files文件夹中。

(2)为了避免运行结果闪退,方便调试,可在主函数“return 0;”语句前添加语句“system(“pause”);”,调试结束后再删除添加的该语句。

2、操作完成后,将答案(横线处所填写的内容)依次填写到作业系统中。

(含图)<a href=/ueditorupload/read?objectId=ef2702c4669f707a3f2a9214f59e6887&amp;fileOriName=proj3.zip target=_blank type=zip>proj3.zip</a>


1 2