问答题使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:i=5i=10i=15i=20注意:错误的语句在//******error******的下面,修改该语句即可。#include<iostream.h>class CMyClass{public:template<class T>void func(T x,T y){//********error********T i=0;if(x>=i){i=i+x:}else{i=i+y;}cout<<"i="<<i<<endl;}};void main(){CMyClass t;t.func(5,0);//********error********t.func(68,(char)1);float i=10.0;//********error********t.func(i,1);t.func(5,5);}
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数fun(int n)的功能是实现对一个整数的加密,具体的加密方法是:一个四位长的整数,每位数字加上3然后除以9的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,然后返回得到的密码。
程序输出:
7654
2108
注意:不能修改其他部分的代码。
#include
#include
int fun(int n)
{
}
int msin()
{
int i=1 2 3 4;
cout<
问答题请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中含有一个源程序文件proj2.cpp。函数char*GetNum(char*8re,char*buf)从src开始扫描下一个数字字符序列,并将其作为一个字符串取出放入字符串空间bur中。函数返回扫描的终止位置,如果返回NULL表示没有扫描到数字字符序列。运行程序时,如果输入的一行字符序列是ABC012XYZ378MN274WS则输出为:Digitstring1is012Digitstring2is378Digitstring3is274注意:只在横线处编写适当代码,不要删除或移动“//****found****”。//proj2.cpp#include<iostream>usingnamespacestd;char*GetNum(char*src,char*buf){while(*src!='\0'){if(isdigit(*src))break;Src++;}if(*src='\0')//********found********________;:while(*src!=!\'0'&&isdigit(*src)){//********found********________;buf++;Src++;}*buf='\0';returnsrc;}intmain(){charstr[i00],digits[20];cin.getline(str,100);char*P:str;inti=1;while((p=GetNum(p,digits))!=NULL){cout<<"Digitstring"<<i<<"is"<<digits<<end1;//********found********________;}return0;}
问答题请使用VC6或使用【答题】菜单打开考生文件夹pmj2下的工程pmj2,该工程中包含程序文件main.epp,其中有类Mammal(“哺乳动物”)、类Elephant(“大象”)、类Nouse(“老鼠”)的定义和主函数main的定义。请在横线处填写适当的代码并删除横线,以实现上述定义。此程序的正确输出结果应为:ELEPHANTMOUSE注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//:****found****”。#include<iostream>usingnamespacestd;enHMcategory{ENPTY,ELEPHANT,NOUSE};char*output[]={"ENPTY","ELEPHANT","NOUSE");classMammal{public:Nammal(char*str){//**********found**********name=new________strcpy(name,str);}virtualchar*NhoAmI()=0;virtual—Nammal(){delete[]name;}voidPrint(){cout<<WhoAmI()<<end1;}private:char*name;};classElephant:publicNammal{public://**********found**********Elephant(char*str):________{}char*WhoAml(){returnoutput[ELEP[-IANT];}};classNouse:publicNammal{public:Nouse(char*sir):Nammal(sir){}//**********found**********char*WhoAml(){________}};intmain(){//**********found**********Nammal*pm=new________("Huanhuan");pm->Print();deletepm;pm=newNouse("Nicky");pm->Print();deletepm;return0;}
问答题请使用【答题】菜单命令或直接用VC6打开考生文件夹下的工程proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang 20 Tsinghua。
注意:只能在函数address_change的“// ********333********”和“// ********666********”之间填入若干语句,不要改动程序中的其他内容。
程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//proj3.h
#include <iostream>
#include <string>
using namespace std;
class Person{
char name[20];
int age;
char * address;
public:
Person(){ age = 0;address = 0;}
void name_change (char *_name);
//名字修改函数
void age_change(int_age);
//年龄修改函数
void address_change (char *_add);
//地址修改函数
void info_display();
//人员信息显示
~Person();
//析构函数
};
void writeToFile(const char * path);
proj3.cpp
#include <iostream>
#include <string>
#include "proj3.h"
using namespace std;
void Person::name_change(char*_name)
{
strcpy(name, _name);
}
void Person::age_change(int _age)
{
age = _age;
}
void Person::address _change (char * add)
{
if (address!=NULL) delete[]address;
// ********333********
// ********666********
}
void Person::info_display(){
cout << name << "/t"
<< age << "/t";
if(address!=NULL)
cout << address << endl;
cout << endl;
}
Person::~Person(){
if(address!=NULL)
delete[] address;
}
void main()
{
Person p1;
p1.name_change("Zhang");
p1.age_change(20);
p1.address_change("Tsinghua University");
p1.address_change("Tsinghua");
p1.info_display();
writeToFile(" ");
}
问答题使用VC++6.0打开考生文件夹下的源程序文件2.cpp,请实现函数fun(double a[],int len)的如下功能: (1)a[]是一个数组,长度为len。 (2)a[0]=0,a[1]=1。 (3)a[i+2]=a[i]+a[i+1]。 注意:不能修改函数的其他部分。 试题程序: #include<iostream> void fun(double a[],int len) void main() double a[20]; fun(a,20); for(int i=0;i<20;i++) std::cout<<a[i]<<''; if(i%6==5) std::cout<<std::end1; return;
问答题使用VC++6.0打开
下的源程序文件2.cpp。阅读下列函数说明和代码。
函数func(int d[],int n)的功能是将长度为num的数组d中的奇数扩大1倍,并存储到数组d中。
例如:2,15,6,-3,8,-11,9,24,50
返回4,30,12,-6,16,-22,18,48,100
将func(int d[],int num)函数补充完整。
注意:请勿改动主函数main。
试题程序:
#include<iostream.h>
void func(int d[],int num)
{
}
int main()
{
int Data[]={2,15,6,3,8,-11,9,24,50);
func(Data,9);
for(int i=0;i<sizeof(Data)/sizeof(int);i++)
{
cout<<Data[i]<<"";
}
cout<<endl;
return 0;
}
问答题使用VC6打开考生文件夹下的工程MyProj1。此工程包含千个源程序文件 MyMainl.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成: ①定义私有数据成员year、month和day分别用于表示年、月、日,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。 ②完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1, day=1,请在注释“//**2**”之后添加适当的语句。 ③完成重载构造函数Date(int y, int m, int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值,请在注释“//**3**”之后添加适当的语句。 ④完成成员函数print的类外定义,使其以“年-月-日”的格式将Date对象的值输出到屏幕上。请在注释“//**4**”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件MyMain1.cpp清单如下: //MyMainl. cpp #include <iostream> using namespace std; class Date public: //* * 2 * * Date(int y, int m, int d) //* * 3 * * void print() const; private: //data member //* * 1 * * ; void Date: :print () const //* * 4 * * int main ( ) Date national_day(1949,10,1); national_day.print(); return 0;
问答题请使用VC6或使用[答题]菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元素之和。请编写这个operator+函数。程序的正确输出应该是: 两个数据表: 1,2,3,4,5,6 3,4,5,6,7,8 两个数据表之和: 4,6,8,10,12,14 要求: 补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 //DataList.h #include <iostream> using namespace std; class Datalist //数据表类 int len; double*d; public: DataList(int len,double data[]= DataList(Datalist int length () constreturn len; double getElement(int i)const return d[i]; Datalist operator+(const DataList //两个数据表求和 void show () const; //显示数据表void writeToFile(char*,constDataList //main.cpp #include"Datalist.h" DataList::DataList(int len,doubledata[]):len(len) d=new double[len]; for(int i=0;i<len;i++) d[i]=(data==NULL?0.0:data[i]); DataList::Datalist(Datalist for(int i=0;i<len;i++) d[i]=data.d[i]; DataList DataList::operator+(const Datalist //********333******** //********666******** return DataList(list.length(),dd); void DataList::show()const(//显示数据表 for(int i=0;i<len-1;i++) cout<<d[i]<<","; cout<<d[len-1]<<endl; int main() double s1[]=1,2,3,4,5,6; double s2[]=3,4,5,6,7,8; DataList list1(6,s1),list2(6,s2); //定义两个数据表对象 cout<<"两个数据表:"<<endl; list1.show(); list2.show(); cout<<endl<<"两个数据表之和:"<<endl; (list1+list2).show(); writeToFile(" ",list1+list2); return 0;
问答题请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了DataList类,这是一个用于表示数据表的类。sort成员函数的功能是将当前数据表排序,使得表中的元素呈升序排列。请编写这个sort函数。程序的正确输出应该是: 排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:1,2,3,4,5,6,7,8,9,10,11,12 要求:补充编制的内容写在//********333********与********666********两行之间,不得修改程序的其他部分。 注意:程序最后已经将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 //源程序 #include"DataList.h" DataList:: DataList(int len, double data[]):len(len) d=new double[len]; for(int i=0; i<len; i++) d[i]=(data==NULL?0.0:data[i]); void DataList::sort()//数据表排序 //********333******** //********666******** void DataList::show() const//显示数据表 for(int i=0; i<len-1,i++) cout<<d[i]<<","; cout<<d[len-1]<<endl; int main() double s[]=7,1,3,11,6,9,12,10,8,4,5,2; DataList list(12,s); cout<<"排序前:"; list.show(); list.sort(); cout<<endl<<"排序后:"; list.show(); //writeToFile("K://b10//61000102//",list); return 0:
问答题请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件pmj3,该工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类NyPoint和表示圆形的类NyCircle;程序应当显示:(1,2),5,31.4159,78.5398但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在“//**1******found****”的下方是构造函数的定义,它用参数提供的圆心和半径分别对cen和rad进行初始化。(2)在“//**2******found****”的下方是非成员函数perimeter的定义,它返回圆的周长。(3)在“//**3******found****”的下方是友元函数area的定义,它返回圆的面积。注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。//proj3.cpp#include<iostream>#include<cmath>usingnamespacestd;classMyPoint{//表示平面坐标系中的点的类doublex;doubley;public:MyPoint(doublex,doubley){this->x=x;this->y=y;}doublegetX()const{returnx;}doublegetY()const{returny;}voidshow()const{cout<<'('<<x<<','<<y<<')';}};classMyCircle{//表示圆形的类MyPointcen;//圆心doublerad;//半径public:MyCircle(MyPoint,double);MyPointcenter()const{returncen;}//返回圆心doubleradius()const{returnrad;}//返回圆半径frienddoublearea(MyCircle);//返回圆的面积},//**1************found**********MyCircle::MyCircle(MyPointp,doubler):cen(p),________{}#definePI3.1415926535doubleperimeter(MyCirclec)//返回圆c的周长{//**2************found**********returnPI*________;}//**3************found**********doublearea(________)//返回圆a的面积{returnPI*a.rad*a.rad;}intmain(){MyCircleC(MyPoint(1,2),5.0);C.center().show();cout<<','<<C.radius()<<','<<perimeter(c)<<','<<area(c)<<end1;return0;}
问答题使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)完成CMyClass的构造函数,请改正注释//********1********后的错误。 (2)完成fun()函数定义,请改正注释//********2********后的错误。 (3)初始化CmyClass的成员变量Number3为4,请改正注释//********3********后的错误。 (4)完成func()函数,请改正注释//********4********后的错误。 输出的结果为: Number1=12 Number2=18Number3=16 Number1=4 Number2=2 Number3=19 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#include<iostream.h>class CMyClass{public: //********1******** CMyClass(int i,int j) { Number1=i; Number3+=i; } void display() { cout<<"Number1="<<Number1<<end1; cout<<"Number2="<<Number2<<end1; cout<<"Number3="<<Number3<<end1; } void AddNum(int i) { Number3+=i; }private: int Number1; const int Number2; static int Number3; //********2******** }; //********3******** void func() { CMyClass obj(1,2); obj.Number1=4; //********4******** obj.AddNum(); obj.display(); } void main() { CMyClass myObj(12,18); myObj.display(); func(); return;}
问答题使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义私有常量PI,请在注释//********1********后添加适当的语句。 (2)完成类的私有常量PI的赋值,以及完成对半径radius的赋值。请在注释//********2********后添加适当的语句。 (3)完成计算圆面积的函数GetArea()。请在注释//********3********后添加适当的语句。 (4)完成计算圆周长的函数GetGirth()。请在注释//********4********后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#include<i0stream.h>#define CONST PI 3.141592Class CCircle{private: double radius; //********1********public: //********2******** CCircle(int radius) {this->radius=radius; } double GetArea() { //********3******** } double GetGirth() { //********4******** } void SetRadius(int m) radius=m; )};int main(){ CCircle circle(5); cout<<circle.GetArea()<<endl; cout<<circle.GetGirth()<<endl; circle.SetRadius(10); cout<<circle.GetArea()<<endl; cout<<circle.GetGirth()<<endl; return 0;}
问答题使用VC++6.0打开
下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行,并且使程序输出的结果为
OK
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include<iostream.h>
class TC
{
public:
TC()
{
a=b=0;
}
private:
int a,b;
};
class TC1:public TC
{
public:
TC1()
{
}
//******error******
virtual void func();
};
class TC2:public TC1
{
public:
TC2()
{
a=0;
b=0;
}
void func()
{
//******error******
cout<<"OK"<endl;
}
private:
int a;
int b;
};
void main()
{
TC2 obj;
//******error******
TC1 * p=(TC1 *)obj;
p->func();
}
问答题使用VC++6.0打开
下的源程序文件2.cpp。请完成函数fun(int n),使其实现以下功能:当i等于3时,则打印如下内容。
A
AA
AAA
注意:不能修改程序的其他部分,只能修改fun()函数。
试题程序:
#include <iostream.h>
void fun(int n)
{
}
void main()
{
int n;
cout<<"请输入打印的行数: "<<endl;
cin>>n;
if( n < 1)
{
cout<<"输入的行数必须大于0"<<endl;
return;
}
fun(n);
return;
}
问答题使用VC6打开考生文件夹下的工程test29_3。此工程包含一个test29_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类ThreeDCoord,其中ThreeDCoord类由Coordinate类public派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义类Coordinate的保护数据成员x和y,它们都是int型的数据,代表二维坐标的横纵坐标值。请在注释“//**1 **”之后添加适当的语句。 (2)根据类Coordinate定义后的成员函数Display的实现,补充该函数在类Coordinate定义体内的声明,Display为二维坐标类的虚函数。请在注释“//**2**。”之后添加适当的语句。 (3)完成二维坐标类Coordinate的构造函数,将参数a和b分别赋值给数据成员x和y。请在注释“//**3**”之后添加适当的语句。 (4)根据ThreeDCoord类构造函数的声明,补充ThreeDCoord构造函数的实现,参数a和b通过调用基类的构造函数来初始化基类的数据成员x和y,c赋值给数据成员2。请在注释“//**4**”之后添加适当的语句。输出结果如下;[1,2][3,4,5]注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件tese9_3.cpp清单如下: #include<iostream.h> class Coordinate protected: //** 1 ** public: Coordinate(int a=0, int b=0); //** 2 ** ; Coordinate::Coordinate(int a, int b) //** 3 ** void Coordinate::Display() const cout << '[' << x << ", "<< y << ']' << end1; class ThreeDCoord:public Coordinate int z; public: ThreeDCoord(int a=0, int b=0, int c=0); virtual void Display() const; ; //** 4 ** void ThreeDCoord::Display() const cout << '[' << x << ", "<< y << ", "<< z << ']' << end1; void main ( ) Coordinate c(1, 2); ThreeDCoord t(3, 4, 5); c.Display (); t.Display ();
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des.char*str,char c,char*str2)的功能是:
如果s仃中包含字符“!”,则替换成“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打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数MergeAndSort(int s[],int e[],int a[],int m,int n)实现将两个数组合并。这两个数组已经有序,按照由小到大的顺序排列。
例如:
e[]={1,3,5,6},m是数组e的长度,即为4。
a[]={2,4,5,7,11,13},n是数组a的长度,即为6。
则执行的结果为:s[]={1,2,3,4,5,6,7,11,13}
补充函数fun(int s[],int e[],hat a口,int m,int n),使之实现上述要求。
注意:请勿改动主函数。
#include
void MergeAndSort(int S[],
int e[],int a[],int m,int n)
{
}
int main()
{
int data[2 0],i;
int a[]={1,3,5,6);
int b[]={2,4,5,7,11,13);
cout<<”a[]=”;
for(i=0;i<4; i++)
cout<
问答题请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程中包含一个源程序文件main.cpp,其中有坐标点类Point、线段类Line和矩形类Rectangle的定义,还有main函数的定义。程序中两点间的距离的计算是按公式d=实现的。请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为:Width:4Height:6Diagonal:7.2111are,a:24注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。#include#includeusingnamespacestd;classPoint{//坐标点类public:constdoublex,y;Point(doublex=0.0,doubley=0.0):x(x),y(y){)//**********found**********doubledistanceTo(________)const{//到指定点的距离returnsqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}};classLine{//线段类public:constPointp1,p2;//线段的两个端点Line(Pointp1,Pointp2):p1(p1),p2(p2){)//**********found**********doublelength()const{returnp1.________;)//线段的长度};classRectangle{//矩形类public:constPointupper_left;//矩形的左上角坐标constPointdown_right;//矩形的右下角坐标Rectangle(Pointpl,Pointp2):upperleft(p1),down_right(p2){}doublewidth()const{//矩形水平边长度//**********found**********returnLine(upperLleft,________).length();}doubleheight()const{//矩形垂直边长度returnLine(upperleft,Point(upperleft.x,down_right.y)).length();ldoublelengthOfDiagonal()const{//矩形对角线长度returnLine(upperleft,down_right).length();}doublearea()const{//矩形面积//**********found**********return________;}};intmain(){Rectangler(Point(1.0,8.0),Point(5.0,2.0));cout
问答题使用VC++6.0打开下的源程序文件1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
TC1: 0
TC2
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include<iostream.h>
struct TC1
{
TC1(int i=0)
{
m_i=i;
}
void print()
{
cout<<"TC1:"<<m_i<<endl;
}
int m_i;
};
class TC2
{
public:
TC2()
{
}
void print()
{
cout<<"TC2"<<endl;
}
//********error********
private:
~TC2()
{
}
};
int main()
{
//********error********
TC1 obj1();
//********error********
TC2 obj2();
obj1.print();
obj2.print();
return 0;
}