郑州大学自考网欢迎您!                找不到合适的文章请单击此处搜索 >>
网站首页 >> 考试真题 >> 文章内容

自考本科《04737 C++程序设计》考试真题二

[日期:2020-01-15]   来源: www.zhengdazikao.net  郑州大学自考  作者:郑州大学自考网   阅读: 60[字体: ]

 

(1)下面是重载为非成员函数的运算符的函数原型,其中错误的是( )

A)Fraction operator+(FractionFraction);

B)Fraction operator(Fraction);

C)Fraction&operator=(Fraction&Fraction);

D)Fraction&operator+=(Fraction&Fraction);

答案:C

(2)有如下程序:

int x=3

do{

x-=2;

COU[<<X< p>

}while(!(--X));

执行这个程序的输出结果是( )

A)1

B)3 0

C)1—2

D)死循环

答案:C

(3)有如下程序:

nclude

using namespace std;

int main()

{

int*P;

*P=9

cout<<”The value at p”<< *p;

return 0;

}

编译运行程序将出现的情况是( )

A)编译时出现语法错误,不能生成可执行文件

B)运行时一定输出:l'lle value at P9

C)运行时一定输出:llle value at P*9

D)运行时有可能出错

答案:D

(4)if语句的语法格式可描述为:

格式lif(<条件>)<语句>

格式2if(<条件>)<语句l>

else<语句2>

关于上面的语法格式,下列表述中错误的是( )

A)<条件>部分可以是一个if语句,例如if(if(a==0)…)…

B)<语句>部分可以是一个if语句,例如if(…)if(…)…

C)如果在<条件>前加上逻辑非运算符!并交换<语句l><语句2>的位置,语句功能不变

D)<语句>部分可以是一个循环语句,例如if(…)while(…)…

答案:A

(5)下列符号中,正确的c++标识符是( )

A)enum

B)2b

C)f009

D)_32

答案:D

(6)下列关于c++函数的说明中,正确的是( )

A)内联函数就是定义在另一个函数体内部的函数

B)函数体的后一条语句必须是return语句

C)标准c++要求在调用一个函数之前,必须先声明其原型

D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

答案:C

(7)运算符重载是对已有的运算符赋予多重含义,因此( )

A)可以对基本类型(int类型)的数据,重新定义“+”运算符的含义

B)可以改变一个已有运算符的优先级和操作数个数

C)只能重载c++中已经有的运算符,不能定义新运算符

D)C++中已经有的所有运算符都可以重载

答案:C

(8)下列有关内联函数的叙述中,正确的是( )

A)内联函数在调用时发生控制转移

B)内联函数必须通过关键字inline来定义

C)内联函数是通过编译器来实现的

D)内联函数函数体的后一条语句必须是return语句

答案:C

(9)下列运算符不能重载为友元函数的是( )

A)=()( )->

B) + - ++ --

C)> < >= <=

D)+= -= *=/=

答案:A

(10)有如下程序:

#include

using namespaee std;

int main()

{

void function(double val);

double val

function(val);

eout<<VAL< p>

return 0;

}

void function(double val)

{

val=3;

}

编译运行这个程序将出现的情况是( )

A)编译出错,无法运行

B)输出:3

C)输出:3.0

D)输出一个不确定的数

答案:D

(11)下列关于成员函数特征的描述中,错误的是(  )

A)成员函数一定是内联函数

B)成员函数可以重载

C)成员函数可以设置参数的默认值

D)成员函数可以是静态的

答案:A

(12)有如下类定义:

class MyClass

{

public

private

______________________________________

int data;

};

若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的

对象0bj中数据成员data的值,则横线处的声明语句应为( )

A)friend istream& operator>>(istream&isMyClass&a);

B)friend istream&operator>>(istream&isMyClass a);

C)istream&operator>>(istream&isMyClass&a);

D)istream&operator>>(istream&isMyClass a);

答案:A

(13)由于常对象不能被更新,因此( )

A)通过常对象只能调用它的常成员函数

B)通过常对象只能调用静态成员函数

C)常对象的成员都是常成员

D)通过常对象可以调用任何不改变对象值的成员函数

答案:A

(14)有如下类定义:

class AA

{

im a

public

int getRef()const{return&a;}//

int getValue()const{return a;}//

void set(int n)const{a=n;}//

friend void show(AA aa)const{cout<<A;} p <>

};

其中四个函数的定义中正确的是( )

A)

B)

C)

D)

答案:B

(15)下列关于this指针的描述中,正确的是( )

A)类的成员函数都有this指针

B)类的友元函数都有this指针

C)任何与类相关的函数都有this指针

D)类的非静态成员函数都有this指针

答案:D

(16)下列关于虚函数的说明中,正确的是( )

A)从虚基类继承的函数都是虚函数

B)虚函数不得是静态成员函数

C)只能通过指针或引用调用虚函数

D)抽象类中的成员函数都是虚函数

答案:B

(17)下列关于基类和派生类关系的叙述中,正确的是( )

A)每个类多只能有一个直接基类

B)派生类中的成员可以访问基类中的任何成员

C)基类的构造函数必须在派生类的构造函数体中调用

D)派生类除了继承基类的成员,还可以定义新的成员

答案:D

(18)有如下类定义:

class B

{

publicvoid funl(){}

privatevoid fun2(){}

protectedvoid fun3(){}

};

class Dpublic B

j

protectedvoid fun4(){}

};

obj是类D的对象,则下列语句中不违反访问控制权限的是( )

A)obj.funl();

B)obj.fun2();

C)obj.tim3();

D)ohj.fun4();

答案:A

(19)有如下类定义:

class Foo

{

public

Foo(int v)value(V){}//

Foo(){}//

private

Foo(){}//

int value=0//

};

其中存在语法错误的行是( )

A)

B)

C)

D)

答案:D

(20)有如下类定义:

class Point

{

int xx.yy;

public

Point()xx(0)yy(0){}

Point(int xint Y=0)xx(X)YY(Y){}

};

若执行语句

Point a(2)b[3],幸c[4];

Point类的构造函数被调用的次数是( )

A)2

B)3

C)4

D)5

答案:C

 

二、综合应用题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。

(1)定义类CPoint的带有两个参数的构造函数,两个变量为xy,都为int型,且缺省值为0。请在注释1后添加适当的语句。

(2)完成类CRectangle的构造函数,给pointlpoint2赋值。请在注释2后添加适当的语句。

(3)完成类CRectangle的函数GetArea,用来计算矩形面积。请在注释3后添加适当的语句。

(4)定义CRectangle类,它拥有两个私有对象pointlpoint2,类型为Point,请在注释4后添加适当的语句。

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

试题程序:

#include(iostream.h)

#include<CMATH)< p>

classCPoint

{

public

//********1********

{

x=i

y=j;

}

intGetX()

{

returnX;

}

intGetY()

{

returny;

}

private

intXY;

};

classCRectangle

{

public

//********2********

{

}

intGetArea()

//********3********

intheight=point1.GetY()point2.GetY();

return(width*height)?width*height:一width*

height;

}

private

//********4********

CPointpoint2;

};

intmain()

{

CRectanglerect(0011);

cout<<RECT.GETAREA()<<ENDL;< p>

return0;

}

答案:(1)应添加“CPoint(inti=0intj=O)”

(2)应添加“CRectangle(inttopintleftintrightintbottom)pointl(topleft)point2(rightbottom)”

(3)应添加“intwidth=point1.GetX()-point2.GetX();”

 

 

报名方式
1.直接来我处咨询、报名。报名时请携带身份证及正反面复印件2张、2寸蓝底彩照4张 。 (毕业生应交毕业证复印件)
2.学生选择网上或电话报名,学员可以电话、QQ、电子邮件报名或者索取招生简章,在指定时间内来校报到入学。
3.业余学生准备好个人资料和第一年学费,直接到校报名。
4.咨询电话: 0371 - 56756528 18939255817 徐老师 李老师 5.咨询QQ: 点击这里给我发消息 点击这里给我发消息

版权声明: 本站所有文字、图片、音视频、美术设计和程序等作品,版权均属自考司或相关权利人专属所有或持有所有。未经本网书面授权,不得进行一切形式的下载、转载或建立镜像。否则以侵权论,依法追究相关法律责任。

微信交谈