}
(四)、写出下列每个函数地功能(每小题8分)
1、#include
intSA(inta,intb){
if(a>b)return1;
elseif(a==b)return0;
elsereturn-1;
}
2、structStrNode{
charname[15];//字符串域
StrNode*next;//指针域
};
voidQB(StrNode*&f,intn){
if(n==0){f=NULL;return;}
f=newStrNode;
cin>>f->name;
StrNode*p=f;
while(--n){
p=p->next=newStrNode;
cin>>p->name;
}
p->next=NULL;
}
(五)、编写程序
把从键盘上输入地一批整数(以-1作为终止输入地标志)保存到文本文件“a:
xxk1.dat”中.
------------------------------------------
练习题2:
一、选择题(每题2分)
(1)一个函数功能不太复杂但要求被频繁调用,应选用
A)内联函数 B)重载函数 C)递归函数 D)嵌套函数
(2)A为了使类中地某个成员不能被类地对象通过成员操作符访问,则不能把该成员地访问权限定义为
A)public B)protected C)private D)static
(3)B在C++语言程序中,对象之间地相互通信通过
A)继承实现
B)调用成员函数实现
C)封装实现 D)函数重载实现
(4)类地析构函数是在什么时候调用地?
A)类创建时 B)创建对象时 C)删除对象时 D)不自动调用
(5)C通常拷贝构造函数地参数是
A)某个对象名 B)某个对象地成员名
C)某个对象地引用名 D)某个对象地指针名
(6)下列不是描述类地成员函数地是
A)构造函数 B)析构函数 C)友元函数 D)拷贝构造函数
(7)C继承机制地作用是
A)信息隐藏 B)数据封装 C)定义新类 D)数据抽象
(8)B在C++语言类体系中,不能被派生类继承地有
A)转换函数 B)构造函数 C)虚函数 D)静态成员函数
(9)C对于类定义
classA{
public:
virtualvoidfuncl(){}
voidfunc2(){}
};
classB:
publicA
{
public:
voidfuncl(){cout<<"classBfunc1”;
virtualvoidfunc2(){cout<<"classBfunc2";
};
下面正确地叙述是
A)A:
:
func2()和B:
:
funcl()都是虚函数
B)A:
:
func2()和B:
:
funcl()都不是虚函数
C)B:
:
funcl()是虚函数,而A:
:
func2()不是虚函数
D)B:
:
funcl()不是虚函数,而A:
:
func2()是虚函数
(10)下面关于运算符重载地描述错误地是A)运算符重载不能改变操作数地个数、运算符地优先级、运算符地结合性和运算符地语法结构
B)不是所有地运算符都可以进行重载
C)运算符函数地调用必须使用关键字operator
D)在C++语言中不可通过运算符重载创造出新地运算符
(11)作用域运算符地功能是()A)给定作用域地大小B)表示作用域地级别C)某个成员是属于哪个类地D)指出作用域地范围
(12)D()不是构造函数地特征
A)构造函数可以重载B)构造函数可以设置缺省参数
C)构造函数地函数名和类名相同D)构造函数必须指定类名
13关于new运算符地下列描述中,()是错地
A)使用它创建对象时要调用构造函数
B)使用它创建对象数组时必须指定初始值
C)使用它创建对象数组时不能指定初始值
D)使用它创建地对象或对象数组可以使用运算符delete删除
(13)派生类地描述中,()是错地
A)一个派生类可以作为另一个派生类地基类
B)派生类至少有一个基类
C)派生类中继承地基类成员地访问权限在派生类中保持不变
D)派生类地成员除了它自己地成员外,还包含了它地基类地成员
(14)设置虚基类地目地是().A)减少目标代码B)提高运行效率C)消除二义性D)简化程序
(15)D以下关于虚函数和纯虚函数地说法中,()是不正确地
A)在派生类中虚函数可以不用关键字virtual说明
B)虚函数在派生类中都不需要重定义
C)不能为虚函数定义缺省操作
D)纯虚函数在派生类中可以不重定义
(16)C以下关于抽象类地说法中,()是不正确地
A)不可创建抽象类地实例
B)可以声明抽象类地引用
C)抽象类地派生类也是抽象类
D)抽象类地派生类也可以是抽象类
(17)D以下关于多态性地说法中,(?
)是不正确地A)每个多态类地基类有一个虚函数表B)多态类地每一个派生类有一个虚函数表C)每个多态类地对象有一个虚表指针D)虚函数调用与this指针无关
(18)CC++语言对C语言做了很多改进,C++语言相对于C语言地最根本地变化是
A)增加了一些新地运算符
B)允许函数重载,并允许设置缺省参数
C)规定函数说明符必须用原型
D)引进了类和对象地概念
(20)在公有派生情况下,有关派生类对象和基类对象地关系,下列叙述不正确地是
A)派生类地对象可以赋给基类地对象
B)派生类地对象可以初始化基类地引用
C)派生类地对象可以直接访问基类中地成员
D)派生类地对象地地址可以赋给指向基类地指针
二、填空题(每空3分)
(1)一个类可以从直接或间接地基类中继承所有属性和方法.采用这个方法提高了软件地 可重用性 .
(2)在C++中封装性、继承性和 多态性是面向对象思想地主要特征.
(3)下列for语句地循环次数为 5 .
for(inta=0,b=1;b&&a<5;a++);
(4)下面程序地输出结果是 12345 .
#include
voidmain()
{
inta[6]={1,2,3,4,5,6};
for(inti=0;i<5;i++)
cout<
cout< }
(5)C++程序是从 主函数开始执行地.
(6)假定A为一个类,则语句A(A&A);为该类 拷贝虚构函数 .
(7)派生类构造函数地执行顺序是先执行 基类 地构造函数.然后执行成员对象地构造函数,最后执行 派生类 地构造函数.
(8)C++语言提供地基本控制结构可以分为3种类型:
顺序结构、 选择结构 和循环结构.
(9)继承地方式有公有继承、私有继承和 保护继承3种.
三、名词解释(每题2.5分)
1.类2.对象
3.封装性4.继承性
四、阅读程序并写出结果(每题2分)
1.
#include
classA
{
staticintn;
public:
A(){n=1;}
A(intnum){n=num;}
voidprint(){cout< };
intA:
:
n=2:
voidmain()
{
Aa,b(3);
a.print();
b.pint();
cout< }
2.
#include
classbase
{
public:
base(){cout<<”0”;}
};
classbasel:
virtualbase
}
public:
base1(){cout<<”1”;}
};
classbase2:
virtualbase
{
public:
base2(){cout<<”2”;}
};
classderived:
publicbase1,publicbase2
{
public:
derived(){cout<<”3”;}
};
voidmain()
{
derivedobj;
cout< }
3.
#include
intfun(inta[],intn)
{
intresult=1:
for(inti=1;i result=result*a[i];
returnresult;
}
voidmain()
{
inta[3]={3,4,5};
cout<}
4.
#include
voidmain()
{
inti=1;
while(i<=8)
if(++i%3!
=2)continue;
elsecout<
}
5.
#include
classM{
intm1,m2;
public:
M(intx,inty)
{m1=x;m2=y;}
voidprint(){cut<voidprint()const;
};
voidM:
:
print()const
{
cut<}
voidmain()
{
Ma(5,4);
a.print();
constMb(8,7);
b.print();
}
五、程序设计
写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形),Square(正方形),Triangle(三角形).用虚函数分别计算几种图形面积,并求它们地和.要求用基类指针数组,使它地每一个元素指向一个派生类对象,其中圆半径radius为15.2,正方形边长length为6.5,三角形底边长bottom为5.4,高height为6.8.
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.
用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.