欢迎来到天天文库
浏览记录
ID:37914963
大小:72.50 KB
页数:12页
时间:2019-06-02
《C++面向对象程序设计复习资料》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、选择题(15分)1、____D_____语言是面向过程的语言。A.C++B.EiffelC.SmalltalkD.Pascal2、下列引用的定义中____B_____是错误的。A.inti;B.inti;C.floati;D.chard;int&j=i;int&j;float&j=i;char&k=d;j=i;3、假定AB是一个类,则该类的拷贝构造函数的声明语句为_____C_____。A.AB&(ABx)B.AB(ABx)C.AB(AB&)D.AB(AB*x)4、一个类的友元函数或友元类能够通过成员操作符访问该类的____D______。A.公有成员B.私有成员
2、C.保护成员D.所有成员5、对基类和派生类的关系描述中,____B_____是错误的。A.派生类是对基类的具体化B.派生类是基类的子集C.派生类是基类定义的延续D.派生类是基类的组合6、在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则____A_____。A.完全相同B.完全不同C.部分相同,部分不同D.以上都不对7、设置虚基类的目的是____B_____。A.简化程序B.消除二义性C.提高运行效率D.减少目标代码8、下列有关运算符重载的描述中,____B_____是正确的。A.运算符重载可改变其优先级B.运算符重载不改变其语法结构C.运
3、算符重载可改变其结合性D.运算符重载可改变其操作数的个数9、下列运算符中,____A_____运算符在C++中不能重载。A.?:B.+C.-D.>=10、下列对模板的声明,正确的是____C_____。A.templateB.templateC.templateD.template二、填空题(20分)1、C源程序的扩展名为.C,C++源程序文件的扩展名为____.CPP______。2、多行注释的开始标记符和结束标记符分别为____/*______和____*/_____
4、_。123、从一条函数原型语句“floatfun1(void);”可知,该函数的返回类型为__float____,该函数带有___0___个参数。4、在C++语言中输入、输出操作是通过 I/O流类库 来实现的。5、当一个类对象撤销时将自动调用该类的_____析构函数_______。6、对于类中定义的成员,其隐含的访问权限是_____私有(private)_______。7、在一般情况下,用点运算符(.)来引用对象成员,当用指向对象的指针来引用对象成员时,要用____->______操作符。8、假定AB为一个类,若用户没有给其定义构造函数,则系统自动为其隐含
5、定义的构造函数为______AB::AB{}________。9、若需要把intF(void)函数定义为类A的友元函数,则应在类A的定义中加入一条语句_____friendintF(void);___________。10、类模板的使用实际上是将类模板实例化成一个具体的类,它的格式为____类名<实际类型>对象名_____________。三、程序分析题(20分)1、下面是一个C程序,改写它,使它采用C++风格的I/O语句。#includemain(){inta,b,d,min;printf("Entertwonumbers:");scanf("%d
6、%d",&a,&b);min=a>b?b:a;for(d=2;dmain(){inta,b,d,min;cout<<”Entertwonumbers:";cin>>a>>b;min=a>b?b:a;for(d=2;d7、d==0)&&(b%d==0))break;if(d==min){cout<<"Nocommondenominators<classA{inti,j;public:A(inta,intb){i=a;j=b;}voidadd(intx,inty){i+=x;j+=y;}voidprint(){cout<<”i=”<
7、d==0)&&(b%d==0))break;if(d==min){cout<<"Nocommondenominators<classA{inti,j;public:A(inta,intb){i=a;j=b;}voidadd(intx,inty){i+=x;j+=y;}voidprint(){cout<<”i=”<
此文档下载收益归作者所有