




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1改错题使用VC6翻开考生文件夹下的工程test1_1,此工程包含一个源程序文件,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果如下:Constructor called.Default constructor called.Area is 6Area is 0Area is 6源程序文件清单如下:#includeclass RectAngleprivate:double ledge,sedge;public:RectAngle()coutDefault constructor called.n;RectAngle(double l,double s)ledge=l;sed
2、ge=s;coutConstructor called.n;void Set(double l,double s)ledge=l;sedge=s;void Area()coutArea is ledge*sedgeendl; ;void main()/* found */RectAngle Rect1(2,3);RectAngle Rect2(1);/* found */RectAngle Rect3;Rect1.Area();/* found */dge=0;Rect2.Area();Rect3.Area();【答案】1错误:Rect2(1)正确:Rect22错误:Rect3正确:Rect3
3、(Rect1)3错误:Rect2.ledge=0;Rect2.sedge=0;正确:Rect2.Set(0,0); 2简单应用题请编写一个函数long Fibo(int n),该函数返回n的Fibonacci数,规那么如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为其前两个数之和,即:F(n)=F (n-1)+F(n-2)。注意:请使用递归算法实现该函数。局部源程序已存在文件中。请勿修改主函数main和其他函数中的任何内容,仅在函数Fibo的花括号中填写假设干语句。如n=8时,结果是21。文件清单如下:#includeconst int N=8;long Fi
4、bo(int n);void main()long f=Fibo(N);coutfendl;long Fibo(int n)【答案】long Fibo(int n)if(n=1) return 1L;else if(n=2) return 1L;elsereturn Fibo(n-1)+Fibo(n-2);3综合应用题使用VC6翻开考生文件夹下的工程test1_3。此工程包含一个,其中定义了类circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成以下操作,将程序补充完整。1定义类circle的保护数据成员r和area,它们都是
5、double型的数据。请在注释/ * 1 * 之后添加适当的语句。2添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在注释/ * 2 * 之后添加适当的语句。3添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将其分别赋值给数据成员h和基类的r,请在注释/ * 3 * 之后添加适当的语句。4完成派生类column的成员函数print的定义,使其以格式r=_area=_先输出半径r和底面积area,再以格式h=_vol=_输出高h和体积vol的值,请在注释/ * 4 * 之后添加适当的语句。输出结果如下:注意:除在指定的位置
6、添加语句外,请不要改动程序中的其他语句。源程序文件清单如下:#includeconst double pi=3.1416;class circle protected: / * 1 *public: / * 2 *circle(double radius) r=radius; void print()area=r*r*pi;coutr=r area=areaendl;class column: protected circleprotected:double h;public: / * 3 * void print() / * 4 * ;void main()column Col(1.0,2.
7、0);Col.print();【答案】1double r;double area;2circle( ) r=0; 3column(double radius, double height):circle(radius) h=height;4circle:print( );couth=h vol=area*hendl;1改错题使用VC6翻开考生文件夹下的工程test2_1,此工程包含一个源程序文件,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:调用基类BASE的构造函数:1调用基类BASE的构造函数:2调用派生类A的构造函数:3调用派生类A的析构函数调用基类BASE的析构函数调
8、用基类BASE的析构函数源程序文件清单如下:#includeclass BASEpublic:BASE(int i)cout调用基类BASE的构造函数:iendl;BASE()cout调用基类BASE的析构函数endl;/*found*/class A: public BASEpublic:/*found*/A(int a,int b):i(a),b(b)cout调用派生类A的构造函数:a+bendl;A()cout调用派生类A的析构函数endl;private:BASE b;void main()/*found*/BASE obj(1,2);【答案】1错误:类BASE的定义缺少;正确:;2错
9、误:A(int a,int b):i(a),b(b)正确:A(int a,int b):BASE(a),b(b) 3错误:BASE obj(1,2);正确:A obj(1,2); 2简单应用题请编写两个函数void sort(int &x, &y)和void sort(int x,int y,int z),实现对2个和3个元素的排序并在屏幕上输出排序结果数字之间使用跳格。注意:局部源程序已存放在文件中。请勿修改主函数main和其他函数中的任何内容,仅在函数的花括号中填写假设干语句。输出结果如下:3 42 3 4文件的内容如下:#includevoid sort(int &x,int &y) /
10、*1*/void sort(int x,int y,int z)/*2*/void main()int a=4,b=3,c=2;sort(a,b);sort(a,b,c);【答案】1void sort(int &x,int &y)int t;if (xy)t=x;x=y;y=t;coutxtyy) t=x; x=y; y=t;if(xz) t=x; x=z; z=t;if(yz) t=y; y=z; z=t;coutxtytzendl;3综合应用题使用VC6翻开考生文件夹下的工程test2_3。此工程包含一个,其中定义了类Stud,但类的定义并不完整。请按要求完成以下操作,将程序补充完整。1定
11、义类的公有数据成员no,name10,其中no是int型的数据,name10是字符型一维数组。请在注释/ * 1 * 之后添加适当的语句。2完成函数set的定义,分别将参数n,na的值赋给数据成员no,name。注意:请使用this指针完成对no的赋值,使用字符串函数实现对name和cname的赋值。请在注释/ * 2 * 之后添加适当的语句。3完成类的成员函数disp的定义,使其按no,deg,name和cname的顺序输出类的数据成员的值,中间使用跳格符分隔,请在注释/ * 3 * 之后添加适当的语句。输出结果如下:1 李华 95 9907012 王东 83 990702注意:除在指定的位
12、置添加语句外,请不要改动程序中的其他语句。源程序文件清单如下:#include#includeclass Studpublic: / * 1 * int deg; char cname10;Stud()void set(int n,char na,int d,char cn)/ * 2 * deg=d;strcpy(cname,cn);void disp()/ * 3 *;void main()Stud obj2;obj0.set(1,李华,95,990701);obj1.set(2,王东,83,990702);obj0.disp();obj1.disp();【答案】1int no; char
13、 name10; 2this-no=n;strcpy(name,na);3coutnotnametdegtcnameendl;1改错题使用VC6翻开考生文件夹下的工程test3_1,此工程包含一个源程序文件,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:A:a=5display1:a=6display2:a=5源程序文件清单如下:#includeclass Apublic:/*found*/A()void printa()coutA:a=aendl;private:int a;/*found*/class B; ;class Bpublic:/*found*/void disp
14、lay1(A t)(*t).a+;coutdisplay1:a=(*t).aendl;void display2(A t)t.a-;coutdisplay2:a=t.aendl;void main()A obj1;B obj2;obj1.printa();obj2.display1(&obj1);obj2.display2(obj1);【答案】1错误:A() 正确:A()a=5;2错误:class B;正确:friend class B;3错误:void display1(A t)正确:void display1(A *t)2简单应用题请编写函数fun,其功能是将两个两位数的正整数a,b合并形
15、成一个整数放在c中。合并的方式是将a数的个位和十位数依次在c数千位和十位上,b数的十位和个位数依次放在c数的个位和百位。注意:局部源程序以存在文件中。请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写假设干语句。文件的内容如下:#includevoid fun(int a ,int b,long *c)void main()int a,b; long c;coutInput a,b;ab;fun(a,b,&c);coutThe result is:ncendl;【答案】void fun(int a, int b , long *c)*c=(a%10)*1000+(b%1
16、0)*100+(a/10)*10+b/10; 3综合应用题使用VC6翻开考生文件夹下的工程test3_3,此工程包含一个源程序文件,其中建立了普通的基类base用于存储边的信息,建立派生类triangle和square,用于存储三角形和正方形的信息。请按要求完成以下操作,将类定义补充完整。1定义基类base的保护数据成员x和y用于记录边的长度,它们都是int型的数据。请在注释/*1*之后添加适当的语句。2完成基类base默认构造函数的定义,把数据成员x和y分别初始化为参数a和b的值,要求使用作用域符:。请在注释/*2*之后添加适当的语句。3完成派生类triangle函数disp的定义,使其以三
17、角形面积:的格式将三角形的面积输出到屏幕上。请在注释/*3*之后添加适当的语句。4添写派生类square的默认构造函数的定义,使其调用基类的构造函数,记录下正方形的边长信息a,其缺省值为0。请在注释/*4*之后添加适当的语句。输出结果如下:三角形面积:200正方形面积:400注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件清单如下:#includeclass baseprotected:/*1*public:base(int a,int b)/*2*virtual void disp()cout调用base基类endl;class triangle:public base
18、public:triangle(int a,int b):base(a,b); void disp()/*3*;class square:public basepublic:/*4*void disp()cout正方形面积:x*ydisp();p=&s;p-disp();【答案】1int x;int y;2base:x=a;base:y=b;3cout三角形面积:x*y*0.5endl;4square(int a=0):base(a,a);1改错题使用VC6翻开考生文件夹下的工程test4_1,此工程包含一个源程序文件,但该程序在类的定义中存在问题,请改正类定义中的错误,使程序的输出结果如下:
19、a=3 b=13a=5 b=13注意:请勿修改主函数main中的任何内容。源程序文件清单如下:#includeclass Tpublic:/*found*/T(int x)a=x; b+=x; /*found*/void display(T c) couta=c.atb=c.bendl;private:const int a;static int b;/*found*/int b=5; void main()T A(3),B(5);T:display(A);T:display(B);【答案】1错误:T(int x)a=x; b+=x; 正确:T(int x):a(x)b+=x;2错误:void
20、 display(T c)正确:static void display(T c)3错误:int b=5;正确:int T:b=5;2简单应用题常用字符串函数strcat(s1,s2)可将字符串s2添加到字符串s1的末端,但其使用必须保证字符串s1足够大,以便保存它自己的内容和字符串s2中的内容。请编写一个函数char *append(char *s1,char *s2),其可将字符串s2添加到字符串s1的末端,而且不受s1空间大小的限制。请利用常用字符串函数实现。常用字符串函数说明:strcpy(to,form):将form字符串复制到to字符串;strcat(s1,s2):将字符串s2添加到
21、字符串s1的末端,但必须保证字符串s1足够大;strlen(s):返回字符串s的长度;注意:局部源程序已存在文件中。请勿修改主函数main和其他函数中的任何内容,仅在函数append的花括号中填写假设干语句。输出结果如下: this is a string.文件的内容如下:#include#includechar *append(char *s1,char *s2)void main()char *s,*s1,*s2;s1=this is ;s2=a string.;s=append(s1,s2);coutsendl;【答案】char *append(char *s1,char *s2)cha
22、r *tmp;int length;length=strlen(s1)+strlen(s2);tmp=new charlength+1;strcpy(tmp,s1);strcat(tmp,s2);return tmp;3综合应用题使用VC6翻开考生文件夹下的工程test4_3。此工程包含一个源程序文件,其对一个学校的教师和考生情况进行了描述。由于教师和考生之间有相同的信息,如姓名、年龄等,所以可抽象出一个基类person,考生类student和教师类teacher作为person类的派生类。请按要求完成以下操作,将程序中的类定义补充完整。1定义基类person的私有数据成员name和age,分
23、别用于表示姓名和年龄,name为字符指针,age为int型的数据。请在注释/*1*之后添加适当的语句。2完成基类person的重载构造函数person(char *n,int a)的定义,把数据成员name,age分别初始化为参数n,a的值,请在注释/*2*之后添加适当的语句。3根据主函数main中对s1的声明,定义派生类student的构造函数。在注释/*3*之后添加适当的语句。4完成派生类teacher成员函数void setinf(char *n,int a,char *d,char *l)的定义,其功能为记录教师的姓名、年龄、院系与职称信息。请在注释/*4*之后添加适当的语句。输出结果
24、如下:刘雷45destructor蒋军23destructor注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件清单如下:#includeclass person/*1*public:person()person(char *n,int a)/*2*void setname(char *n)name=n;void setage(int a)age=a;person()coutname(age)destructorendl;class student:public personchar *department;int code;public:/*3*department=d;
25、 code=c;class teacher:public personchar *department;char *level;public:teacher()void setinf(char *n,int a,char *d,char *l)/*4*department=d;level=l;void main()student s1(蒋军,23,计算机学院,2);teacher t1;t1.setinf(刘雷,45,计算机学院,教授);【答案】1char *name;int age;2name=n;age=a;3student(char *n,int a,char *d,int c):per
26、son(n,a)4setname(n);setage(a);1改错题使用VC6翻开考生文件夹下的工程test5_1,此工程包含一个源程序文件,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:x=3 y=5 z=08 源程序文件清单如下:#includestatic int x=5;int z=0;int *add(int x,int y) coutx=x y=y z=zendl;z=z+x+y;/*found*/return z;/*found*/;void main()int y=5;int x=3;/*found*/cout&(add(x,y)endl; 【答案】1错误:re
27、turn z;正确:return &z;2错误:;正确:3错误:cout&(add(x,y)endl;正确:cout*(add(x,y)endl;2简单应用题请编写函数void swap(int *px,int *py) 与void swap(int &px,int &py),实现主程序中变量a和b值的交换。输出结果如下:3 22 3注意:局部源程序已存在文件中。请勿修改主函数main和其他函数中的任何内容,仅在函数相应的花括号中填写假设干语句。文件的内容如下:#includevoid swap(int *px,int *py)/*1*/void swap(int &px,int &py)/*
28、2*/void main()int a=2,b=3;swap(a,b);couta bendl;swap(&a,&b);couta bendl;【答案】1void swap(int *px,int *py)int temp;temp=*px;*px=*py;*py=temp;2void swap(int &px,int &py)int temp;temp=px;px=py;py=temp;3综合应用题使用VC6翻开考生文件夹下的工程test5_3。此工程包含一个源程序文件,其中定义了一个类Fn,用于求n!。请按要求完成以下操作,将程序补充完整。1定义私有数据成员value存放n和fact存放n
29、!,它们都是int型的数据。请在注释/*1*之后添加适当的语句。2完成默认构造函数Fn的定义,使Fn对象的数据成员value值为i,fact值为1。请在注释/*2*之后添加适当的语句。3完成函数Cal的定义,该函数计算value的阶乘,并将运算结果保存在fact中,要求使用while循环实现。请在注释/*3*之后添加适当的语句。4将主函数补充完整,直接调用类的成员函数,在界面上输出value的阶乘值。请在注释/*4*之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件清单如下:#includeclass Fn /*1*public:Fn(int i);vo
30、id Cal();void disp(); ;Fn:Fn(int i)/*2*void Fn:Cal()/*3*fact*=i-;void Fn:disp()coutvalue!=factendl;void main()int value;coutvalue;Fn A(value);/*4*【答案】1int value;int fact;2value=i;fact=1;3int i=value;while(i1)4A.Cal();A.disp();1改错题使用VC6翻开考生文件夹下的工程test6_1,此工程包含一个源程序文件,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:Co
31、nstructor2Constructor1i=0i=10Destructor源程序文件清单如下:#includeclass CSampleint i;public:CSample()coutConstructor1endl; i=0;CSample(int val)coutConstructor2endl; i=val;CSample()coutDestructorendl;void disp();/*found*/void disp() couti=idisp();/*found*/b-disp();【答案】1错误:void disp()正确:void CSample:disp()2错误:
32、a-disp();正确:a=new CSample; a-disp();3错误:b-disp();正确:b.disp();2简单应用题编写函数fun(),它的功能是利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。xn+1 =cos(xn)迭代步骤如下:(1)取x1初值为。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)假设x0-x1的绝对值小于0.000001, 那么执行步骤(5),否那么执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,做为函数值返回。程序输出结果。注意:局部源程序已存在文件中。请勿改动主函数mai
33、n和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的假设干语句。文件test6_2的内容如下:#include#include#includefloat fun() void main() coutRoot=fun()=1e-6); return x1; 3综合应用题使用VC6翻开考生文件夹下的工程test6_3,此工程包含一个源程序文件,其中定义了用于表示考生的类Student,请按要求完成以下操作,将程序补充完整。1定义私有数据成员code、english分别用于表示考生的编号、英语成绩、它们都是int型的数据。请在注释/*1*之后添加适当的语句。2完成成员函数void Stud
34、ent:inputinformation()的定义,该函数用于用户输入一个考生对象的信息,输入格式如下所示:输入编号: 英语成绩: 计算机成绩: 请在注释/*2*之后添加适当的语句。3利用已实现的类Student的成员函数,完成函数void firstname(Student *A,int num)的定义,该函数根据考生信息A,输出num个考生中总分最高者的编号及其相应的总分,在此不考虑总分相同的情况。请在注释/*3*之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件清单如下:#includeclass Student/*1* int computer;
35、int total;public:void getinformation();void computesum();int getcode();int gettotalscore();Student();void Student:getinformation()/*2* coutenglish;coutcomputer;void Student:computesum()total=english+computer;cout编号code总分:totalendl;int Student:getcode()return code;int Student:gettotalscore()return to
36、tal; void firstname(Student *A,int num)/*3* tempsum=(*A0).gettotalscore();for(int i=1;itempsum)tempcode=(*Ai).getcode();tempsum=(*Ai).gettotalscore();cout总分最高者-tempcode: tempsumendl;void main()Student *A3;int i,n=3;for(i=0;igetinformation();for(i=0;icomputesum();firstname(A,3);【答案】1int code;int engl
37、ish;2coutcode;3int tempcode,tempsum;tempcode=(*A0).getcode();1改错题使用VC6翻开考生文件夹下的工程test7_1,此工程包含一个源程序文件,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:Constructor1Constructor1Constructor1DestructorConstructor2Destructorx=0x=5DestructorDestructor源程序文件清单如下:#includeclass Bint x;public:B()x=0;coutConstructor1endl;B(int i
38、)x=i;coutConstructor2endl;B()coutDestructorendl;/*found*/B(int i)couti be Destructorendl;void print() coutx=xendl;void main()B *ptr;ptr=new B2;/*found*/ptr0=B(0); ptr1=B(5);/*found*/for(int i=0;i2;)ptri.print();delete ptr;【答案】1错误:B(int i)couti be Destructorendl;正确:应将其删除2错误:ptr0=B(0);正确:ptr0=B();3错误:
39、for (int i=0;i2;)正确:for(int i=0;i2;i+)2简单应用题编写一个函数int charnum(char fn10),该函数以只读方式翻开文件fn,,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。注意:局部源程序已存在文件test中。请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写假设干语句。文件的内容如下:#include#include#includeint charnum(char fn10);void main()int num;num=charnum(abc.txt);coutnum=numendl;i
40、nt charnum(char fn10)【答案】int charnum(char fn10)fstream file;file.open(fn,ios:in);if(!file)coutabc.txt cant openendl;abort();char ch;int i=0;while(!file.eof()file.get(ch);i+;file.close();return i-1;3综合应用题使用VC6翻开考生文件夹下的工程test7_3,此工程包含一个源程序文件,其中含有一个类Circle的定义,但该类的定义并不完整。请按要求完成以下操作,将类Circle的定义补充完整。1为类Ci
41、rcle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。请在注释/*1*之后添加适当的语句。2为类Circle增加一个成员函数print(),使得可以输出有关圆的信息,比方以下程序Circle c;c.SetRadius(5);c.Print();将输出:The circle has radius of 5!请在注释/*2*之后添加适当的语句。3完成友元函数void CompareR(Circle *c1,Circle *c2)的定义,在屏幕中输出c1与c2比拟radius大小结果,要求使用if-e
42、lse结构完成。请在注释/*3*之后添加适当的语句。输出结果如下:The circle has radus of 5!The circle has radius of 10!c1c2注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件清单如下:#includeclass Circlepublic:Circle():radius(5)/*1*void SetRadius(int r) radius=r; int GetRadius() return radius; /*2* friend void CompareR(Circle *c1,Circle *c2);private:
43、int radius; ;void CompareR(Circle *c1,Circle *c2)/*3*coutc2GetRadius()=(c2-GetRadius()coutc1=c2GetRadius()GetRadius()coutc1c2endl;void main()Circle c1;c1.SetRadius(5);c1.Print();Circle c2(10);c2.Print();CompareR(&c1,&c2);【答案】1Circle(int rad):radius(rad)2void Print()coutThe circle has radius of radiusGetRadius()(c2-GetRadius()1改错题使用VC6翻开考生文件夹下的工程test8_1,此工程包含一个源程序文件,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:f1 f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国企园林景观试题及答案
- 2025年大学化学备考方法试题及答案
- 了解新能源汽车技术的考试试题及答案
- 农业电商消费者行为分析考题及答案
- 中国金属门窗制造行业市场发展前景及发展趋势与投资战略研究报告2025-2028版
- 厂房预算面试题及答案
- 2025年音乐符号识记试题及答案
- 关于乐理考试的深度解析与试题及答案
- 中国精炼核桃油行业市场发展现状及发展趋势与投资策略研究报告2025-2028版
- 中国混凝土行业市场深度调研及发展趋势与投资前景研究报告2025-2028版
- 2025年吉林省民航机场集团长白山机场公司招聘笔试参考题库附带答案详解
- 汉语方言与地方文化认同的关系研究论文
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 读书分享读书交流会《你当像鸟飞往你的山》课件
- 自制饮品操作流程
- TSG Z7002-2022 特种设备检测机构核准规则
- 茶叶中微量元素的鉴定与定量测定
- T∕ACSC 01-2022 辅助生殖医学中心建设标准(高清最新版)
- 预防性侵教育简报(修订版)
- 链路聚合的配置
- 国家开放大学《理工英语1》边学边练参考答案
评论
0/150
提交评论