问答题使用VC++6.0打开下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)在类TC中定义name为字符串类型,age为int型,请在注释1之后添加语句。
(2)设置类TC0的基类为TC类的定义,请在注释2后添加语句。
(3)在类TC的派生类TC0的公有成员中定义析构函数TC0,请在注释3后添加语句。
(4)设置类TC1的基类为TC类的定义,请在注释4后添加语句。
程序输出结果为
TC class constructor
TC0 class constructor
TC on class constructor
TC1 class constructor
TC1 class constructor
TC class constructor
TC0 class constructor
TC class constructor
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include<iostream.h>
class TC
{
//********1********
public:
TC(){cout<<"TC class constructor"<<endl;}~
TC(){cout<<"TC class constructor"<<endl;}
};
//********2********
{
char*departmert;
int level;
public:
TC0()
{cout<<"TC0 class constructor"<<endl;}
//********3********
{cout<<"TC0 class constructor"<<endl;}
};
//********4********
{
char*major;
float salary;
public:
TC1(){cout<<"TC1 class constructor"<<endl;}~
TC1(){cout<<"TC1 class constructor"<<endl;}
};
void main()
{
TC0 s1;
TC1 t1;
}
问答题请使用VC6或使用【答题】菜单打开
proj3下的工程proj3,其中定义了MyString类,一个用于表示字符串的类。成员函数reverse的功能是将字符串进行“反转”。例如,将字符串ABCDEF“反转”后,得到字符串FEDCBA;将字符串ABCDEFG“反转”后,得到字符串GFEDCBA。请编写成员函数reverse。在main函数中给出了一组测试数据,此时程序运行中应显示:
读取输入文件...
---反转前---
STR1=ABCDEF
STR2=ABCDEFG
---反转后---
STR1=FEDCBA
STR2=GFEDCBA
要求:
补充编制的内容写在“// *******333*******”与“// *******666*******”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中,输出函数WriteToFile已经编译为obj文件,并且在本程序中调用。
//mgsering.h
#include <iostream>
#include <cstring>
using namespace std;
class MyString {
public:
MyString(const char * s)
{
str = new char[strlen (s) + 1];
strcpy(str, s);
}
~MyString() {delete[] str;}
void reverse();
friend ostream
return os;
}
private:
char * str;
};
void writeToFile(char *, const MyString
//main.cpp
#include "mystring.h"
#include <fstream>
void MyString::reverse()
{
// ********333********
// ********666********
}
int main ()
{
char inname[128], pathname[80];
strcpy(pathname, " ");
sprintf(inname, "in.dat", pathname);
cout << "读取输入文件... /n/n";
ifstream infile(inname);
if(infile.fail()) {
cerr << "打开输入文件失败!";
exit(1);
}
char buf[4096];
infile.getline(buf, 4096) ;
MyString str1("ABCDEF"), str2("ABCDEFG"), str3(buf);
cout << "---反转前---/n";
cout << "STR1 =" << str1 << endl;
cout << "STR2 =" << str2 << endl << endl;
str1.reverse();
str2.reverse();
str3.reverse();
cout << "---反转后---/n";
cout << "STR1 =" << str1 << endl;
cout << "STR2 =" << str2 << endl << endl;
writeToFile (pathname, str3);
return 0;
}
问答题使用VC6打开考生文件夹下的源程序文件modi3.cpp。通过继承完成输入到屏幕指定的信息: TestClassA TestClassB TestClassC 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成类B虚继承于A,请在注释//********1********后添加适当的语句。 (2)完成类C虚继承于A,请在注释//********2********后添加适当的语句。 (3)完成类D继承于B,C,请在注释//********3********后添加适当的语句。 (4)函数fun通过调用基类的fun,完成所输出的内容,请在注释//********4********后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。#include<iostream.h>Class TestClassA{public: void fun(){ cout<<"TestClassA"<<endl; }};//********1********class TestClassB{public: void fun() { cout<<"TestClassB"<<endl; }};//********2********class TestClassC{public: void fun() { cout<<"TestClassC"<<endl; }};//********3********class TestClassD{public: Void fun() { //********4******** }};Void main(){ TestClassD test; test.fun(); return;};
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。程序的功能是寻找1~500以内的亲和数并显示出来,函数amicableNum(int m,int n)判定两个数是否是亲和数。
亲和数的定义为:两个数m和n,如果n的所有因子之和(因子除掉自身)等于m,且m的所有因子等于n,则m、n是互为亲和数。
注意:不能修改程序的其他部分,只能补充amicableNum(int m,int n)函数。
#include
int amicableNum(int n)
{
int sum=0;
for(int i=1;i
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des*char*str,char c,char*str2)的功能是:
如果str中包含字符“!”,则替换成'a';
如果str中包含字符“&”,则替换成'b';
如果str中包含字符“*”,则替换成str2。
并用函数返回目标转换后的指针。
注意:只能补充函数convert(char*des.char*str,char*str2)。
#include
#include
#define MAXLEN 1024
void convert(char*des,char*
str,char*str2)
{
}
Void main()
{
char dest[MAXLEN];
char*str="!&cefghi*!&";
char*str2="jklm";
convert(dest,str,str2);
cout<
问答题请使用VC6或使用【答题】菜单打开
proj2下的工程proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了Stack类和ArrayStack类。
Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示:
公有成员函数 功能
push 入栈:在栈顶位置添加—个元素
pop 退栈:取出并返回栈顶元素
ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的入栈和退栈操作。
请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为:
a,b,c
c,b,a
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“// ****found****”。
// proj2.cpp
#include <iostream>
using namespace std;
class Stack {
public:
virtual void push(char c) = 0;
virtual char pop() = 0;
};
class ArrayStack : public Stack {
char * p;
int maxSize;
int top;
public:
ArrayStack(int s)
{
top = 0;
maxSize = s;
// ********found********
p =______;
}
~ArrayStack()
{
// ********found********
______;
}
void push (char c)
{
if (top == maxSize) {
cerr << "Overflow! /n";
return;
}
// ********found********
______;
top ++;
}
char pop()
{
if (top == 0) {
cerr << "Underflow! /n"; return "/0";
}
top --;
// ********found********
______;
}
};
void f(Stack
cout << ch[0] << "," << ch[1] << "," << ch[2] << endl;
sRef.push(ch[0]); sRef.push(ch[1]); sRef.push(ch[2]);
cout << sRef.pop() << ",";
cout << sRef.pop() << ",";
cout << sRef.pop() << endl;
}
int main()
{
ArrayStack as(10);
f(as);
return 0;
}
问答题用VC6打开下的源程序文件modi3.cpp,这个程序完成输出到屏幕一些特定的信息,但工程有错误或者不完整,请完成以下功能:(1)初始化m_Num2的值为j,请在注释//*********1*********后添加适当的语句。(2)补充全局函数fun()使之能够调用类TestClass的成员变量,请在注释//********2********后添加适当的语句。(3)初始化静态变量,请在注释//********3********后添加适当的语句。(4)修改注释//********4********后的语句。使得程序输出以下内容:m_Num1=1m_Num2=2m_Num3=1m_Num1=4m_Num2=2m_Num3=7注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。#include<iostream.h>classTestClass{public://********1********TestClass(inti,intj){m_Numl=i;m_Num3+=i;}voidPrint(){cout"m_Num1="m_Num1endl;cout"m_Num2="m_Num2endl;}voidAdd(inti){m_Num3+=i;}private:intm_Num1;constintm_Num2;staticintm_Num3;//********2********};//********3********voidfun(){TestClassNum(1,2);Num.m_Num1=4;//********4********Num.Add();Num.Print();}voidmain(){TestClassNum(1,2);Num.Print();fun();return;}
问答题使用VC6打开考生文件夹下的源程序文件modil.epp,该程序运行时有错误,请改正错误,使得程序输出:
Hello
test
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
#inelude
//********error********
template
void fun(T t)
{
std∷cout
void fun(bool t)
{
std∷cout<<(t?"Hello":"Hi")<
问答题使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*data),此函数的功能是找出字符串数组中最大的ASCIl值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。
注意:不能修改函数的其他部分。计算数字如果第一个字母最大,则返回0。依次增加。
试题程序:
#include
intfun(char*data)
{
}
voidmain()
{
charsource[1024];
cout<<"请输入一行英文字符串:\n";
cin.getline(source,1024);
cout<<"最大的字母出现在距离头部"< <<"个字母处"< }
问答题使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)完成类Rect的构造函数,实现对变量left、right、top、bottom的初始化,缺省值都为0,请在注释∥********1********后添加适当的语句。
(2)完成类Rectangle的构造函数,请在注释∥********2********后添加适当的语句。
(3)完成计算矩形对角线长度函数Diagonal(),请在注释∥********3********后添加适当的语句。
(4)完成计算周长函数Girth(),请在注释∥********4********后添加适当的语句。
程序输出:
50
140
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
#include
class Rectangle
{
public:
int left,right t top , bottom;
∥********1********
{
left=i;
right=r;
top=t;
bottom=b;
}
∥********2********
{
left=rc.left;
right=rc.right;
top=rc.top;
bottom=rc.bottom;
}
float Diagonal()
{
∥********3********
return
}
int Girth()
{
∥********4********
return
}
};
int main()
{
Rectangle rect(20,50,40,80);
Rectangle rect2(rect);
cout<
问答题使用VC6打开考生文件夹下的源程序文件modi2.clap。完成函数fun(int a口,int n),实现递归函数fun(hat a[],int n)的返回值是数组a[]的前n个元素之和。 注意:不能修改程序的其他部分,只能修改fun()函数。#include<iostream.h>int fun(int a[],int n){}void main(){ int A[]={1,2,3,4); cout<<fun(A,Sizeof(A)/iZeof(int))<<end1; return; }
问答题使用VC6打开
下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能:
(1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释//******1******后添加适当的语句。
(2)完成类CBooks的析构函数,释放申请的内存,请在注释//********2********后添加适当的语句。
(3)完成类CBooks的AddBookMember函数,请在注释//********3********后添加适当的语句。
(4)完成CBooks类,用于由书的ID检索到作者的函数char* GetBookAuthor(int nID),请在注释//********4********后添加适当的语句。
(5)程序的输出结果为:
Tom
Harry
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include<iostream.h>
#include <cstring>
class CBook
{
public:
int ID;
char Author[32];
public:
CBook(int ID_Number, char*Author_Name)
this->ID = ID_Number;
//********1********
}
};
class CBooks
{
private:
class Node
{
public:
Node* next;
CBook* book;
}*m_pBook;
public:
CBooks()
{
m_pBook = NULL;
}
~CBooks()
{
//********2********
while( )
{
Node* p=m_pBook->next;
delete m_pBook->book;
delete m_pBook;
m_pBook=p;
}
}
int AddBookMenber(int nID, char* Author)
{
Node* p=m_pBook;
Node* q=NULL;
//********3********
while( )
{
if(nID==p->book->ID)
{
return 0;
}
q=p;
p=p->next;
}
if(p==NULL)
{
p=new Node;
p->next=NULL;
p->book=new CBook (nID, Author);
}
if(q==NULL)
{
m_pBook =p;
}
else
{
q->next=p;
}
return i;
}
char* GetBookAuthor (int nID)
{
Node* p=m_pBook;
//********4********
while()
{
if(p->book->ID==nID)
{
return p->book->Author;
}
p = p->next;
}
return 0;
}
};
int main()
{
CBooks books1;
books1.AddBookMenber (1,"Tom");
books1.AddBookMenber (3,"Lee");
books1.AddBookMenber (4,"Lily");
books1.AddBookMenber (5,"Harry");
cout
books1.GetBookAuthor (1)
endl;
cout
books1.GetBookAuthor (5)
endl;
return 0;
}
问答题改错题
使用VC6打开考生文件夹下的工程test15_1,此工程包含一个源程序文件test15_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
My object has member 7
源程序文件test15_1.cpp清单如下:
#include
class MyClass
{
public:
MyClass(int mem){member=mem;}
~MyClass(){}
int GetAge() const{ return member;}
private:
int member;
};
/***************** found *****************/
void main()
{
int mem=7;
/***************** found *****************/
MyClass myObj=MakeObject(mem);
coutGetAge()<
问答题使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字x1,x2(例如x1=4,x2=2); (2)输出两个中较小的一个(例如输出2); (3)计算x1/x2如果x2等于0,返回.1(输出结果2); (4)输出x1+x2的结果(输出结果6); (5)输出x1+1的结果(输出结果5); (6)输出x2-1的结果(输出结果1)。 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。#include<iostream.h>void main(){ int x1; int x2; int x3; cout<<"please input two number:"<<endl; Cin>>x1>>x2; //********error******** x3=(x1>x2)?x1:x2; cout<<"Min number is :"<<x3<<endl;//计算x1/x2如果x2等于0,返回-1 //********error******** x3=(x2)?x1\x2=-1; cout<<"xl/x2= "<<x3<<endl; //********error******** x3= (--x1) + (x2++); cout<<"xl+x2= "<<x3<<endl; cout<<"xl+1= "<<x1<<endl; cout<<"x2—1= ”<<x2<<endl; return;}
问答题使用VC6打开考生文件夹下的工程MyProj11。此工程包含一个源程序文件 MyMain11.cpp。程序中定义了3个类A、B和C,但类C的定义并不完整。 请按要求完成下列操作,将类的定义补充完成: ①类C是基类A和B公有派生来的。请在注释“//* *1* *”之后添加适当的语句。 ②完成构造函数C(int k)定义,采用初始化列表的方式使基类A私有成员a初始化为k-2,基类B的私有成员b初始化为k+2,类C的私有成员c初始化为k。请在注释“//* *2* *”之后添加适当的语句。 ③完成类Derived的成员函数disp()的类体外的定义。函数disp()中要分别显式调用基类A、B的disp()函数,然后要输出私有成员c的值。请在注释“//* *3* *”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件MyMain11.cpp清单如下; //MyMain11.cpp #include <iostream> using namespace std; class A private: int a; public: A(int i) a=i; void disp() cout<<a<<" , " ; class B private: int b; public: B(int j) b=j; disp ( ) cout<<b<<", "; ; //* * *1* * * private: int c; public: //* * *2* * * void disp(); ; void c::disp() //* * *3* * * int main ( ) C obj(10); obj.disp(); return 0;
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成空出的函数fun(int a[],int*index),使函数输入n(<100)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参带回调用函数。要求函数实现以下的功能:(1)获得输入的n个整数;(2)把最大的数字的下标在第二个参数中输出;(3)把最大的数字作为返回值。注意:不能修改程序的其他部分,只能修改fun()函数。#include<iostream.h>#define MAXLINE100int fun(int a[],int*index){}void main(){int A[MAXLINE];int index;int maxdata;maxdata=fun(A,&index);cout<<"the max data is:"<<maxdata<<" "<<"the posion is:"<<index<<endl;return;}
问答题使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型。请在注释∥********1********之后添加适当的语句。
(2)定义类CEarth的构造函数CEarth(double d,int r),并在其中计算地球绕太阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释∥********2********之后添加适当的语句。
(3)定义类Earth的成员display(),用于显示所有信息。包括地球距太阳的距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释∥********3********之后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
us ing namespace std;
C1ass CPIanet
{
protected:
∥********1********
public:
CPlanet(double d,int r)
{
distance=d;
revolveperiod= r;
}
};
class CEarth:public CPlanet(
double c i rcumf erence,
public:
∥********2********
CEarth(double d,int r)
{
circumference=2*d*3.1416,
}
∥********3********
{
cout<<”distance=
”<
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和C代码,完成空出部分的程序,实现函数fun(char*s1,char*s2)将字符串s2连接在字符串s1之后,构成一个首指针为s1的字符串。
注意:不能修改函数的其他部分。
#include
#define MAXLINE 1000
Void fun(char*s1,char*s2)
{
}
Void main()
{
char s1[MAXLINE];
char s2[256];
cout<<"please input a string:
"<
问答题使用VC++6.0打开下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使得程序通过运行。
程序输出结果为
5
a
1
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#included<iostream>
template<class T>
//********error********
t min(t x, t y)
{
return(x>y)? y:x;
}
void main()
{
int n=5;
//********error********
char c="a";
int d=1;
//********error********
cout<<min(n, n)<<endl;
cout<<min(c, c)<<endl;
cout<<min(d, d)<<endl;
}