网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

2017计算机二级C++综合应用题训练

栏目: 计算机二级 / 发布于: / 人气:2.97W

很多时候计算机等级证书是我们找工作的敲门砖,因此,计算机等级证书也是有一定的含金量的。以下是小编为大家整理的2017计算机二级C++综合应用题训练,希望对大家有帮助!

2017计算机二级C++综合应用题训练

  综合应用题一

使用VC6打开考生文件夹下的工程kt8_3,此工程包含一个源程序文件kt8_,该文件设计了用于输出乘法九九表的类。请认真阅读已有的代码,按要求完成下列操作,将程序补充完整。

(1)定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。请在注释“//**1**”之后添加适当的语句;

(2)完成类Table的成员函数print()的定义,该函数以"x*y=z"的格式打印出九九表中的一个乘法算式,请使用格式化输出函数printf实现,在注释“//**2**”之后添加适当的语句;

(3)完成类Table9的'成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕,请在注释“//**3**”之后添加适当的语句;

(4)补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。请在注释“//**4**”之后添加适当的语句。

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

源程序文件kt8_清单如下:

#include

#include

classTable

{//**1** 考试大论坛

intz;

public:

voidprint(intx,inty,intz);};

voidTable::print(intx,inty,intz)

{//**2**}

classTable9:publicTable

{public:

voidprint();};

voidTable9::print()

{//**3**

intx,y,z;

for(i=1;i<10;i++)

{for(j=1;j   {x=i;

y=j;

z=i*j;

Table::print(y,x,z);}

printf("n");}}

main()

{//**4**

return0;}

【参考答案】

(1)int x;

int y;

(2)printf( "%d*%d=%d ",x,y,z);

if(z<10) printf(" ");

(3)int i,j;

(4)Table9 t_9;

t_t();

【试题解析】

主要考查将具体问题抽象为类,将类的定义补充完整,并进行类定义测试的能力。

  综合应用题二

使用VC6打开考生文件夹下的工程kt7_3,此工程包含一个源程序文件kt7_,其中含有一个类Circle的定义,但该类的定义并不完整。请按要求完成下列操作,将类Circle的定义补充完整。

(1)为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。请在注释“//**1**”之后添加适当的语句。

(2)为类Circle增加一个成员函数print(  ),使得可以输出有关圆的信息,比如下列程序

Circlec;

adius(5);

t(  );

将输出:Thecirclehasradiusof5!

请在注释“//**2**”之后添加适当的语句。

(3)完成友元函数voidCompareR(Circle*c1,Circle*c2)的定义,在屏幕中输出c1与c2比较radius大小结果,要求使用if-else结构完成。请在注释“//**3**”之后添加适当的语句。

输出结果如下:

Thecirclehasradusof5!

Thecirclehasradiusof10!

c1

注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

源程序文件kt7_清单如下:

#include

classCircle{

public:

Circle(  ):radius(5){}

//**1**

voidSetRadius(intr){radius=r;}

intGetRadius(  ){returnradius;}

//**2**

friendvoidCompareR(Circle*c1,Circle*c2);

private:

intradius;};

voidCompareR(Circle*c1,Circle*c2)

{//**3**

cout<<"c1>c2"<

else

if((c1->GetRadius(  ))==(c2->GetRadius(  )))

cout<<"c1=c2"<

else

if((c1->GetRadius(  ))<(c2->GetRadius(  )))

cout<<"c1

voidmain(  )

{Circlec1; 来源:考试大

adius(5);

t(  );

Circlec2(10);

t(  );

CompareR(&c1,&c2);}

【参考答案】

(1)Circle(intrad):radius(rad){}

(2)voidPrint(  ){cout<<"Thecirclehasradiusof"<

(3)if((c1->GetRadius(  ))>(c2->GetRadius(  )))

【试题解析】

本题考查成员函数的定义与实现,友元函数,if分支语句等知识点。友元函数的类体外的定义与一般函数一样,其中if-else的使用,else总是与其最近的那个if配对使用的,书写时最好使用缩进格式,将配对的if-else对齐,以免出错。