C++程序设计基 整理 题库.docx

上传人:b****8 文档编号:9354770 上传时间:2023-02-04 格式:DOCX 页数:23 大小:25.92KB
下载 相关 举报
C++程序设计基 整理 题库.docx_第1页
第1页 / 共23页
C++程序设计基 整理 题库.docx_第2页
第2页 / 共23页
C++程序设计基 整理 题库.docx_第3页
第3页 / 共23页
C++程序设计基 整理 题库.docx_第4页
第4页 / 共23页
C++程序设计基 整理 题库.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C++程序设计基 整理 题库.docx

《C++程序设计基 整理 题库.docx》由会员分享,可在线阅读,更多相关《C++程序设计基 整理 题库.docx(23页珍藏版)》请在冰豆网上搜索。

C++程序设计基 整理 题库.docx

C++程序设计基整理题库

《C++程序设计基础》题库

一、选择题

1.下面不属于面向对象语言的特征的是___B___。

A.继承性B.兼容性C.多态性D.封装性

2.C++语言是从早期的C语言发展演变而来的,与C语言相比,它在求解问题上进行的最大改进是___B___。

A、面向过程  B、面向对象  C、安全性  D、复用性

3.C++的基本数据类型中,用来判断真假的数据类型为B。

A、intB、boolC、charD、float

4.关于字符常量的写法,错误的是__A____。

A、'/'B、"a"C、'\t'D、'\0'

5.下面C++标识符命名正确的是:

___D___。

A、classB、@mailC、1varD、_inline

6.下面基本数据类型初始化表达式错误的是___C___。

A、inti(5);B、floatf=3.56f;C、charc='ab'D、doublef=3.56;

7.C++对C语言作了很多改进,下列描述中___D___使得C语言发生了质变,从面向过程变成了面向对象。

A、增加了一些新的运算符;

B、允许函数重载,并允许设置缺省参数;

C、规定函数说明必须用原型;

D、引进了类和对象的概念;

8.在C++中,关于下列函数参数的描述中,__B____是正确的。

A、C++语言中,实参是按照自左至右的顺序求值的;

B、若一个参数设置了默认值,则其右边的所有参数都具有默认值;

C、函数参数的默认值不允许是表达式;

D、设置参数默认值时,应该全部参数都设置;

9.重载函数在调用时选择的依据中,___D___是错误的。

A、参数个数;B、参数的类型;

C、函数名字;D、函数的类型。

10.已知程序中已经定义了函数test,其原型是inttest(int,int,double);,则下列重载形式中不正确的是____A__。

A、chartest(int,int,int);B、doubletest(int,int,double);

C、inttest(int,int,float);D、inttest(int,double);

11.关于类的概念下列说法正确的是___C___。

A、类和结构体是同一个概念B、类的数据成员外界都不可访问

C、类可以没有显式的构造函数D、类一定要有显式的析构函数

12.关于类和对象的说法正确的是______。

A、面向对象程序设计方法通过数据抽象和行为抽象,封装形成了“类”B、类具有的行为由变量表示。

C、类的属性一般由函数表示,且定义为public的D、类是具体的,对象是抽象的

13.关于类和对象不正确的说法是___C___。

A、类是一种类型,它封装了数据和操作B、对象是类的实例

C、一个类的对象只有一个D、一个对象必属于某个类

14.已知A是一个类,则执行语句“Aa;”时,将自动调用该类的__A____。

A、构造函数  B、拷贝构造函数C、析构函数  D、数据成员

15.在下列关键字中,用于说明类中公有成员的是__A____。

A.public;B.private;C.protected;D.friend

16.__D____是析构函数的特征。

 A、析构函数可以有一个或多个参数;

 B、析构函数名与类名不同;

 C、析构函数的定义只能在类体内;

D、一个类中只能定义一个析构函数;

17.如果类的成员在定义时使用关键字public来设置访问权限,则该成员是__A____。

A.公有类型B.私有类型C.受保护类型D.任意类型

18.关于成员函数特征的下列描述中,___A___是错误的。

 A、成员函数一定是内联函数;

 B、成员函数可以重载;

 C、成员函数可以设置缺省参数值;

D、成员函数可以是静态的;

19.下列描述中,___D___是不正确的。

A、面向对象程序设计可重用性较好;

B、对象之间通过消息进行信息传递;

C、多态性体现了行为共享;

D、面向对象方法的核心是继承;

20.派生类的对象对它的基类成员中A是可以访问的。

 A、公有继承的公有成员;

 B、公有继承的私有成员;

 C、公有继承的保护成员;

D、私有继承的公有成员;

21.下列标识符的定义中合法的是(A/C)。

A.-abcB.forC.intlD.”how”

22.执行下列语言后,i和j的值分别为(C)。

inti=5,j=8,t;

int&ri=i;

int&rj=j;

t=ri;ri=rj;rj=t;

A.5和5B.5和8C.8和5D.8和8

23.下列关于C++函数的叙述中正确的是(D)。

A.函数在调用之前必须先声明B.每个函数都必须返回一个值

C.每个函数至少要有一个参数D.函数可以自己调用自己

24.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B)。

A.地址传递B.单向值传递C.双向值传递D.不确定

25.系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中不能被作为依据的是(D)。

A.参数个数B.参数类型C.函数名称D.函数类型

26.标志着C++从面相过程变成面相对象的主要措施是(D)。

A.增加了新的运算符B.允许函数重载,设置默认参数

C.规定函数声明必须用原型D.引用了类和对象的概念

27.有关类和对象的说法错误的是(C)。

A.对象是类的一个实例

B.任何一个对象只能属于一个具体的类

C.一个类只能有一个对象

D.类与对象的关系和数据类型与变量的关系相似

28.对任意一个类,析构函数的个数最多为(B)个。

A.0.B.1C.2D.4

29.已知A是一个类,则执行语句Aa;时,将自动调用该类的(B)。

A.有参构造函数B.无参构造函数

C.拷贝构造函数D.赋值构造函数

30.下述静态数据成员的特性中,(D)是错误的。

A.说明数据成员时前边要加修饰符static

B.静态数据成员要在类体外进行初始化

C.引用静态数据成员时,要在静态数据成员名前加“类名”和作用域运算符

D.静态数据成员不是所有对象所共有的。

31.下面有关C++构造函数和析构函数说法正确的是D。

A、如果不声明任何构造函数,系统会赋给一个默认(无参)的构造函数。

如果自定义了构造函数,系统也会赋给默认的构造函数。

B、析构函数是用来完成对象被删除前的清理工作,它可以接受参数。

C、构造函数和析构函数都可以是虚函数。

D、构造方法是与类同名的方法,它可以重载。

32.已知类D继承类B,且有声明语句Bb,*p;Dd;下面赋值语句错误的是___C___。

A、d=b;B、p=&d;C、b=d;D、p=&b;

33.下列有关继承和派生的叙述中,正确的是______。

A、如果一个派生类私有继承其基类,则该派生类中的成员不能访问基类的保护成员

B、派生类的成员函数可以访问基类的所有成员

C、在创建派生类对象时,先调用派生类构造函数,再调用基类的构造函数。

D、在销毁派生类对象时,先调用派生类析构函数,再调用基类的析构函数。

34.C++语言的跳转语句中,对于break和continue说法正确的是_B

A、break语句只应用与循环体中

B、continue语句只应用于循环体中

C、break是无条件跳转语句,continue不是

D、break和continue都可以用于跳出if条件分支。

35.下面是关于派生类声明的开始部分,其中正确的是___D___。

A、classvirtualB:

publicAB、virtualclassB:

publicA

C、classB:

publicAvirtualD、classB:

virtualpublicA

36.对基类和派生类的关系描述中,B是错的。

A、派生类是基类的具体化;B、派生类是基类的子集;

C、派生类是基类定义的延续;D、派生类是基类的组合。

37.下列运算符中,不能被重载的是C。

A.&&B.-C..*D.++

38.静态数据成员的初始化必须在B。

A、类内B、类外C、在构造函数内D、静态成员函数内

39.关于虚函数与抽象类,下列表述正确的是__D____。

A、虚函数声明可以同时出现在类定义中的函数原型声明中,和成员函数的实现的时候。

B、虚函数不能声明为静态函数。

C、抽象类可以实例化。

D、派生类必须重新定义基类的虚函数。

40.设置虚基类的目的是B。

A.简化程序;B.消除二义性;C.提高运行效率;D.减少目标代码。

41.执行语句:

inta=5,*pa;pa=&a;后,下面描述错误的是(A)。

A.pa的值为5B.pa指向整形变量a

C.*pa表示变量a的值D.pa的值是变量a的地址

42.假设a=5,执行下列语句后,a的值为(D)。

switch(a)

{case4:

a++;

case5:

a--;

case6:

++a:

break;

case7:

--a;

default:

a++;}

A.2B.3C.4D.5

43.有函数原型声明语句如下:

voidfun(intx,inty=10,charz=’#’);下面调用语句中不合法的是(C)。

A.fun(5)B.fun(5,8)C.fun(6,’*’)D.fun(10,10,’*’)

44.调用函数时,如果实参是一个数组名,则向函数传递的是(B)。

A.数组的长度B.数组的首地址

C.数组中每个元素的地址D.数组中每个元素的值

45.在C++中,关于下列设置参数默认值的描述中,正确的是(C)。

A.不允许设置参数的默认值

B.设置参数默认值只能在定义函数时设置

C.设置参数默认值时,应该是先设置右边的,再设置左边的

D.设置参数默认值时,应该全部参数都设置

46.有关类的说法错误的是(D)。

A.类是一种用户自定义的数据类型

B.只有类中的成员函数才能存取类中的私有数据

C.在类中如果不作特殊说明,所指的数据均为私有类型

D.在类中如果不作特殊说明,所指的成员函数均为公有类型

47.下列关于构造函数的描述中,错误的是(D)。

A.构造函数的函数名与类名相同B.构造函数可以重载

C.构造函数可以设置默认参数D.构造函数必须指定类型说明

48.通常拷贝构造函数的参数是(D)。

A.某个对象名B.某个对象的成员名

C.某个对象的指针名D.某个对象的引用名

49.已知A是一个类,则执行语句Aa;时,将自动调用该类的(B)。

A.有参构造函数B.无参构造函数

C.拷贝构造函数D.赋值构造函数

50.关于友元,下面说法中正确的是(A)。

A.一个类的成员函数可以说明为另一个类的友元

B.当一个类说明为另一个类的友元时,这个类中的第一个成员可以访问另一个类

C.如果类A是类B的友元,类B又是类C的友元,则类A是类C的友元

D.如果类A是类B的友元,类B也是类A的友元

二、填空题

1.在面向对象的程序设计中,将一类对象的公共性质进行数据抽象和行为抽象,然后将抽象得到的数据和行为进行封装,形成了_类,它的实例称为_对象。

2.C++基本数据类型中,布尔类型只有两个值false和true。

3.函数形参和实参结合的方式有值调用、传地址调用、引用调用,其中,传地址调用方式和引用调用方式形参的改变能引起实参的改变。

4.默认形参值必须按照___从右向左的顺序声明。

5.在C++程序中,同名函数如果形参的参数类型或个数不同,可以重载。

6.面向对象程序设计主要的特性是_封装、_继承和抽象性、_多态。

7.在面向对象的程序设计中,把对象的一组属性和操作组装在一起,形成一个独立的实体,体现了面向对象方法的_封装特征;而同一个消息被不同类型的对象接收时产生不同的行为,体现的是面向对象方法的_多态特征。

8.C++中定义“类”的关键字是_class__。

9.类的访问权限共有三种,分别为public_、private_和protected。

类中被说明为_public__访问权限的成员,可以被该类的对象访问到。

private__访问权限和protected__访问权限的成员,类外的函数和对象不能访问。

10.类的构造函数的函数名与_类名相同。

类的析构函数的函数名与_相同。

11.C++中动态内存分配的的操作符是。

运算符用于撤销由new建立的对象,释放对象指针所指向的内存空间。

12.一个类继承自多个父类,称为多继承。

13.在类中,使用static关键字进行静态成员的声明。

友元函数是用关键字friend__修饰的成员函数。

C++中使用关键字const__定义符号常量。

14.基类中被说明为_private__的成员只能被其派生类的成员函数访问,不能被外界函数访问。

带有纯虚函数的类是抽象类。

15.常用的C++标准输入输出流对象是cin和cout。

16.类的构造函数的函数名与类名相同。

17.在类中,使用static关键字进行静态成员的声明。

18.常用的C++标准输入输出流对象是cin和cout。

19.一个完整程序中必须有一个名为main的函数。

20.在C++的一个程序中可以定义多个同名的函数,称为重载。

21.友元函数是用关键字_friend__修饰的成员函数。

22.在面向对象的程序设计中,将一类对象的公共性质进行数据抽象和行为抽象,然后将抽象得到的数据和行为进行封装,形成了_类,它的实例称为_对象。

23.面向对象程序设计主要的特性是封装性、继承和多态、抽象性。

24.一个完整程序中必须有一个名为mian的函数。

25.在C++的一个程序中可以定义多个同名的函数,称为重载。

26.在一个函数的定义或声明前加上关键字inline,该函数就声明为内联函数。

27.在C++中,类成员有3种访问权限,其中public成员提供给用户的接口功能。

28.被声明为const的数据成员只允许声明为的成员函数访问。

29.在类的派生与继承中,可以中断派生链的继承方式是私有继承。

30.在面向对象的程序设计中,将一类对象的公共性质进行数据抽象和行为抽象,然后将抽象得到的数据和行为进行封装,形成了_类,它的实例称为_对象。

三、判断题

1.在C++中,标识符Max和MAX是一样的。

×

2.被定义为bool类型的变量,取值即为真或假。

3.对象是属性和行为的封装体。

×

4.在C++语言中,使用struct(结构体)定义的类与使用class定义的类是一样的。

5.如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。

×

6.构造函数和析构函数都不能重载。

×

7.派生类是从基类派生出来,它不能再生成新的派生类。

×

8.派生类的继承方式中有两种:

公有继承和私有继承。

×

9.在私有继承中,基类中所有成员对派生类都是不可见的。

×

10.参数个数和类型都相同的函数也可以重载。

×

11.C++中标识符内的大小写字母是没有区别的。

×

12.C++中只能使用注释符号(//),不能使用注释符号(/*…*/)。

×

13.常量87.363的数据类型是float。

14.引用是某个变量的别名,对引用的操作就是对被引用变量的操作。

15.同一程序中局部变量和全局变量不可以同名。

×

16.在C++程序中,循环体中可以出现break语句或continue语句。

17.switch语句中可以没有default子句。

×

18.没用参数的两个函数是不能重载的。

19.使用关键字class定义的类中缺省的访问权限是私有(private)的。

20.返回值类型、参数个数和类型都相同的函数也可以重载。

×

21.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。

×

22.构造函数可以声明为虚函数。

×

23.析构函数是一种函数体为空的成员函数。

×

24.构造函数和析构函数都不能重载。

×

25.可以在类的构造函数中对静态数据成员进行初始化。

×

26.一个函数功能不太复杂,但被频繁调用,可以声明为内联函数。

27.类的访问权限主要有public、protected和private。

28.类的构造函数名与类名相同。

29.类的析构函数名与类名相同。

×

30.保护继承方式下基类的保护成员在派生类中仍是保护成员。

四、程序题

1.填空完成下面对Point类的定义。

Class___①__Point//声明Point类

{

public:

Point(intxx=0,intyy=0){X=xx;Y=yy;}

Point(Point&p);//复制构造函数

intGetX(){returnX;}

intGetY(){returnY;}

Private___②__:

intX,Y;//X,Y为私有成员

};

2.填空完成下面对Time类的定义。

_class__①__Time//声明Time类

{

_public__②__:

voidsetTime(inth,intm,ints)//setTime()为公有的成员函数

{hour=h;minute=m;second=s}

voidshowTime()

{

cout<

”<

”<

}

private:

inthour,minute,second;//hour,minute,second为私有成员

};

3.填空完成下面对Time类的定义。

classTime//声明Time类

{

_public__①__:

voidsetTime(inth,intm,ints)//setTime()为公有的成员函数

{hour=h;minute=m;second=s}

voidshowTime()

{

cout<

”<

”<

}

_private__②__:

inthour,minute,second;//hour,minute,second为私有成员

};

4.定义一个时钟类Clock,有私有数据成员:

时(hour)、分(minute)、秒(second),有公有成员函数setTime()实现对时钟的设置,以及公有成员函数showTime()实现时间的输出。

class__Clock//声明clock类

{

_public__:

voidsetTime(inth,intm,ints)//setTime()为公有的成员函数

{hour=h;minute=m;second=s}

voidshowTime()

{

cout<

”<

”<

}

private:

inthour,minute,second;//hour,minute,second为私有成员

};

5.有如下程序

classBase{

protected:

Base(){cout<<'A';}

Base(charc){cout<

};

classDerived:

publicBase{

public:

Derived(charc){cout<

};

voidmain(){

Derivedd1('B');

}

执行这个程序屏幕上将显示输出___c___。

6.有如下代码

classBase{

private:

voidfun1()const{cout<<"fun1";}

protected:

voidfun2()const{cout<<"fun2";}

public:

voidfun3()const{cout<<"fun3";}

};

classDerived:

protectedBase{

private:

voidfun4()const{cout<<"fun4";}

public:

voidfun(){

fun1();//①

fun2();//②

fun3();//③

fun4();//④

}

};

其中有语法错误的语句是______。

7.定义一个哺乳动物类Mammal,有私有数据成员age,有公有成员函数SetAge()和GetAge()实现age的赋值和输出。

要求代码书写规范。

8.定义一个类Score,它包含私有数据成员english_score(英语分数),公有成员函数setScore()和printScore(),其中,setScore()用来设置english_score的值,printScore()用来输出english_score的值。

在主程序中定义类Score的两个对象stu1和stu2,其英语成绩分别为80.5和90.5。

9.声明一个Dog类,包含age、weight等属性,以及对这些属性操作的方法。

实现并测试这个类。

10.定义一个Circle类,有数据成员radius(半径),成员函数getArea(),计算圆的面积,构造一个Circle的对象进行测试。

#include

usingnamespacestd;

constdoublePI=3.14159265;

classcircle

{public:

circle(doubler){radius=r;}

virtualdoublearea(){return0.0;}

virtualdoublevolume(){return0.0;}

protected:

doubleradius;

};

classcolumn:

publiccircle

{public:

column(doubler,doubleh):

circle(r)

doublearea()

{returnPI*radius*radius;}

};

intmain()

{circle*p;

p=&cobj;

cout<<"圆:

"<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1