C++复习资料.docx

上传人:b****6 文档编号:13431758 上传时间:2023-06-14 格式:DOCX 页数:43 大小:84.50KB
下载 相关 举报
C++复习资料.docx_第1页
第1页 / 共43页
C++复习资料.docx_第2页
第2页 / 共43页
C++复习资料.docx_第3页
第3页 / 共43页
C++复习资料.docx_第4页
第4页 / 共43页
C++复习资料.docx_第5页
第5页 / 共43页
C++复习资料.docx_第6页
第6页 / 共43页
C++复习资料.docx_第7页
第7页 / 共43页
C++复习资料.docx_第8页
第8页 / 共43页
C++复习资料.docx_第9页
第9页 / 共43页
C++复习资料.docx_第10页
第10页 / 共43页
C++复习资料.docx_第11页
第11页 / 共43页
C++复习资料.docx_第12页
第12页 / 共43页
C++复习资料.docx_第13页
第13页 / 共43页
C++复习资料.docx_第14页
第14页 / 共43页
C++复习资料.docx_第15页
第15页 / 共43页
C++复习资料.docx_第16页
第16页 / 共43页
C++复习资料.docx_第17页
第17页 / 共43页
C++复习资料.docx_第18页
第18页 / 共43页
C++复习资料.docx_第19页
第19页 / 共43页
C++复习资料.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++复习资料.docx

《C++复习资料.docx》由会员分享,可在线阅读,更多相关《C++复习资料.docx(43页珍藏版)》请在冰点文库上搜索。

C++复习资料.docx

C++复习资料

C++复习资料

选择题

1、若X是一个bool型变量,则X&&5<3的值(B)

A、为true

B、为false

C、与X的值相同D、与X的值相反

2、设a=6,执行语句a+=4;得到a的值为(D)

A、6B、12C、18D、10

3、字符串”student占用”(D)个字节的空间。

A、7B、6C、5D、8

4、二维数组intb[][4]={{1,2},{1,2,3},{1,2,3,4}}的元素个数为(A)A、12B、3C、4D、7

5、下列哪个不是用于实现循环结构的语句(B)

A、whileB、ifC、dowhileD、for

6、下列表达式为真的是(B)

A、5<3B、2*3>=6

C、(7==9)&&(4>0)D、(10!

=2+8)||(5<3)

7、设x=5,执行语句if(x<0)cout<

A、5B、xC、无输出D、0

8、执行语句k=30;j=k++;后k和j的值分别为(C)

A、k=30,j=30B、k=30,j=31C、k=31,j=30D、k=31,j=31

9、表达式7%3+5*9-10/2的结果为(D)

A、42B、43C、40D、41

10、执行cout<<520<

C、520

D、520

“520”520

11、下列数据属于字符型的是:

(C)

A、123B、trueC、'c'D、10.5

中循环体的执行次数为

A)。

12、该for循环语句:

for(i=1;i<11;i++)sum+=i;

A、8B、9C、10D、11

13、对程序段:

if(x>y)z=1;

elsez=3;

要得到z=3的结果,满足条件的一组数是(

A、x=﹣1,y=﹣2B、x=1,y=0

C、x=2,y=1D、x=2,y=3

14.下面是关于构造函数的说法,不正确的是(

A.C++规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象

B.如果没有提供一个类的构造函数(一个都未提供),则C++提供一个默认的构造函数,该默认构造函数是个无参构造函数,它仅仅负责创建对象

C.虽然一个类定义了一个构造函数(不一定是无参构造函数),C++仍然提供默认的构

造函数

D.与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,

则对象的位模式全为0,否则,对象值是随机的

15.在下列说法中,不正确的是(B)。

A.静态成员函数不能利用this指针

B.只有非静态成员才可以使用this关键字,因为静态成员没有this指针

C.析构函数不接受任何参数,也不带有任何类型的返回值

D.虚机制在构造函数和析构函数中仍然可以很好地工作,以实现多态性16.声明类test的拷贝构造函数的正确形式是(D)。

A.inttestB.voidtestC.test(void)17.一个const对象(B)。

A.能访问所有成员函数

C.也能访问volatile成员函数

D.test(test&)

B.只能访问const成员函数

D.能访问const和volatile成员函数

18.下面关于类的对象性质的描述,正确的是(

D)。

 

A.对象之间不可以相互赋值

B.不可以说明指向对象的指针

C.对象不能用作数组元素

19、C++源程序文件的扩展名为(A)

D.一个对象能用作另一个对象的成员

A、.CPPB、.CC、.DLL

D、.EXE

 

20、下面的函数声明中,哪一个是”voidBC(inta,intb);”的重载函数?

(C)

A、intBC(inta,intb)B、voidBC(inta,charb)

C、floatBC(inta,intb,intc=0)D、voidBC(inta,intb=0)

21.如果a=1,b=2,c=3,d=4,则条件表达式“a>b?

a:

c

c:

d的”值为(D)

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

22.在inta[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是(C)

A.3B。

2C。

6D。

4

23.已知charc;char*constpc="asdf",(B)是正确的。

A.pc="dfgh"

B.*pc=‘b'

C.*pc++=‘y'

D.pc=&c

24.执行下列语句后的输出结果是(C)。

inthot=100;

int&rad=hot;

hot+=100;

cout<

A.0;B。

100;

C.200;D。

300;

25.下列对结构及其变量定义错误的是:

(D)

A.structMyStruct{intnum;charch;

};

MyStructmy;C.struct{intnum;charch;

B。

structMyStruct{

intnum;

charch;

}my;

D。

struct{

intnum;

charch;

}};

my;structmy;

26.下列关于指针运算的描述错误的是:

(A)

A.在一定条件下,两个指针可以相加

B.在一定条件下,两个指针可以进行关系运算C.在一定条件下,指针可以为空

D.在一定条件下,两个指针可以相互赋值

27.在C++语言中,对函数参数默认值描述正确的是:

(D)A.函数参数的默认值只能设定一个

B.一个函数的参数若有多个,则参数默认值的设定可以不连续

C.函数参数必须设定默认值

D.在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值

28.不能作为函数重载判断依据的是:

(D)

A.参数个数B。

参数类型C。

函数名字D。

返回类型

29.以下程序的输出结果是:

(B)

#include

voidprt(int*x,int*y,int*z){cout<<++*x<<","<<++*y<<","<<*z++<

}

inta=10,c=20,b=40;

voidmain(){

prt(&a,&b,&c);}

prt(&a,&b,&c);

A.11,42,31

B。

11,41,20C。

11,21,40

12,21,4112,42,2011,21,41

D。

11,41,21

12,42,22

30.以下程序的输出结果是:

(D)

#include

voidfunc(char**m){++m;cout<<*m<

}voidmain(){staticchar*a[]={"morning","afternoon","evening"};

char**p;

p=a;

func(p);

}

A.字符o的起始地址

C.字符o

B。

字符a的起始地址

D。

afernoon

31.以下程序的输出结果是:

(D)#includeintfun(char*s){char*p=s;

 

while(*p!

='\0')p++;

return(p-s);

}

voidmain(){

cout<

}

A.0B。

1C。

2D。

3

32.不正确的标识符是(B)

A._a2B.2ai

C.a2_iD.INt

33.在(C)情况下适宜采用inline定义内联函数。

A.函数体含有循环语句B.函数体含有递归语句

C.函数代码少、频繁调用D.函数代码多、不常调用

34.通过(A)调用虚函数时,采用动态绑定(binding)。

A.对象指针B.对象名

C.成员名限定D.派生类名

35.

则执行

假定一个类的构造函数为A(intaa,intbb){a=aa++;b=a*bb++;}

Ax(4,5);语句后,x.a和x.b的值分别为(C)。

A.4和5B.5和4

C.4和20D.20和5

36.在C++中有以下4条语句:

staticinthot=200;int&rad=hot;hot=hot+100;cout<

(C)

A.0B.100

C.300D.200

37.对do-whie语言错误的说法是(C)

A.可构成多重循环结构B.循环次数不可能为0

C.循环次数可能为0D.先执行后判断

38.静态成员函数没有(B)

A.返回值B.this指针

C.指针参数D.返回类型

39.在类中说明的成员可以使用关键字(A)进行修饰。

A.publicB.extern

C.cpuD.register

40.下列不是描述类的成员函数的是(C)

A.构造函数

B.析构函数

C.友元函数

D.拷贝构造函数

41.若inta[3]=

{1,2,3},*p

;则下列赋值语句中

正确的是(

D)

A.p=&a;

B.*p=a;

C.*(a+1)=a;

D.p=a+1

42.若p1、p2

都是指向整型的指针,

p1已经指向数量x

要使p2也指向

x,正确的是(A

A.p2=p1;

B.p2=**p1;

C.p2=&p1;

D.p2=*p1;

43.在类中说明的成员可以使用关键字(A)进行修饰。

A.privateB.extern

C.autoD.register

44.在inta=3,*p=&a;中,*p的值是(D)。

A.变量a的地址值B.无意义

C.变量p的地址值D.3

45.假定AB为一个类,则执行ABx;语句时将自动调用该类的(B)。

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

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

46.如果class类中的所有成员在定义时都没有使用关键字pubilc,private,protected,则所有成员缺省定义为:

(C)。

A.publicB.protected

C.privateD.static

47.语句int(*p)();的含义是(A)

A.p是一个指向函数的指针变量,该函数的返回值是一个整型数据

B.p是指针变量,指向一个整型数据

C.p是一个指向一维数据的指针变量

D.p是指针函数

48.在C++中实现封装是借助于(B)

A.枚举B.类

C.数组D.函数

49.设inta=3,b=4,c=5;表达式(a+b)>c&&b==c的值是(C)。

A.2B.-1

C.0D.1

50.设intx[]={1,2,3,4,5,6},*p=x;则值为3的表达式是

(B)

A.p+=2,*++p

B.p+=2,*p++

C.p+=3,*p

D.p+=2,++*p

51.关于类概念的描述中,(D)是错误的。

A.类是抽象数据类型的实现;B.类是具有共同行为的若干对象的统一描述体C.类是创建对象的样板;D.类不是C++中的一种数据类型;

52.在32位机中,double型字宽为(D)字节。

A.2;B.4;C.6;D.8

53.在inta[][3]={{1,0},{3,2},{4,5,6},{0}};中a[2][2]的值是(C)。

A.0;B.5;C.6;D.2

54.对于double(*p)[10];的描述,(A)是正确的。

A.p是一个指向数组的指针,所指向的数组是10个double型元素;

B.p是一个指向某个数组中第10个元素的指针,该元素是double型变量;

C.p[5]表示某个数组的第10个元素的值;

D.p是一个具有10个元素的指针数组,每个元素是一个double型指针;

55.下述关于开关语句的描述中,(A)是正确的。

A.开关语句中default子句可以没有,也可以有一个

B.开关语句中每个语句序列中必须有break语句;

C.开关语句中default子句只能放在最后;

D.开关语句中case子句后面的表达式可以是整形表达式。

56.下列(D)是引用调用;

A.形参是指针,实参是地址值;B.形参和实参都是变量;

C.形参是数组名,实参是数组名;D.形参是引用,实参是变量。

57.(A)是析构函数的特征。

A.一个类中只能定义一个析构函数;B.析构函数与类名不同;

C.析构函数的定义只能在类体内;D.析构函数可以有各个或多个参数。

;

58.关于new运算符的下列描述中,(D)是错的。

A.它可以用来动态创建对象和对象数组;

B.使用它创建的对象或对象数组可以使用运算符delete删除;

C.使用它创建对象时要调用构造函数;

D.使用它创建对象数组时必须指定初始值。

59.已知fun(int)是类Test的公有成员函数,p是指向成员函数fun()的指针,采用(D)是正确的:

A.p=fun;B.p=Test:

:

fun();C.p=fun();D.p=Test:

:

fun;

60.关于对象概念的描述中,(A)是错误的。

A.对象就是C语言中的结构变量;

B.对象代表着正在创建的系统中的一个实体;

C.对象是一个状态和操作(或方法)的封装体;

D.对象之间的信息传递是通过消息进行的;

61.下列给字符数组进行初始化中,(A)是正确的。

A.chars1[]="12345abcd";B.chars2[3]="xyz";

C.chars3[][3]={'a','x','y'};D.chars4[2[3]={"xyz","mnp"};

62.对于int*pa[5];的描述,(D)是正确的。

A.pa是一个指向数组的指针,所指向的数组是5个int型元素;

B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;

C.pa[5]表示某个数组的第5个元素的值;

D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;

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

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

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

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

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

64、下列的各类函数中,(C)不是类的成员函数。

A.构造函数;B.析构函数;C.友元函数;D.拷贝构造函数

二、填空题

1、一个基本语句的最后一个字符是(;).

2、与intx=100;while(x>0){cout<<'P';-x-;}等效的for语句是(for(x=100;x>0;x--))。

3、执行for(inti=1;i<30;i++)cout<<”*”将;输出(29)个*号。

4、数学函数sqrt(49)的结果为(7),pow(3,3)的结果为:

(27)。

5、C++程序主要有三种基本控制结构,分别是顺序结构、条件分支结构和

(循环结构)。

6.在c++中,除具有循环、switch语句的函数不能说明为内联函数外,其它函

数都可以说明为内联函数。

7.在c++中,封装可以由public、private和protect等关键字提供。

8.若example是已定义的类,在程序结束之前,共计存在2个对象。

#include”example”

main()

{exampleX(0);

X=5;X.print();

X=example(10);

X.print();

}

9.在c++中,如果在多条继承路径有一个公共的基类,如果想使这个公共的基类只产生一个拷贝,则可以将这个基类说明为虚基类。

使用关键字virtual说明。

10.静态成员为该类的所有对象共享,它们被存储于一个中。

15在C语言中,编程的单位是__函数___;在C++语言中,编程的单位是_对象。

16类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的

__数据成员___,共同行为被描述为类中的___函数成员___。

17类的具体表现是通过定义_成员函数来操作的。

18对类中的成员函数和属性的访问是通过__①public___、__②private和__③protect___

这3个关键字来控制的。

19一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为__private___权

限,而把成员函数(方法)定义为__public____权限。

20)在类定义中,数据和成员函数默认权限是___private。

21类中构造函数有___一个或多__个,析构函数有一__个。

22类中的构造函数是一个特殊的成员函数,它由类的对象___生成时__调用,它的作用是___初始化___。

23在定义类的对象时,C++程序将自动调用该对象的_构造函数_函数初始化对象自身。

24在撤销类的对象时,C++程序将自动调用该对象的__析构函数。

25___new__运算符对指定类型对象动态分配内存并返回____true或false___。

26____delete运算符删除(25)题中的运算符所动态分配的内存空间。

27假定用户没有给一个名为MyClass的类定义构造函数,则系统为其定义的默认构造函数形式为__MyClass(){};____。

28假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数形式为_~MyClass(){};_。

29在类中定义和实现的函数称为__内联函数。

30非成员函数应声明为类的_友元函数(friend)__才能访问这个类的private成员。

31若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入语句__friendFriendClass;。

32若要把函数voidFriendFunction()定义为类MyClass的友元函数,则应在类MyClass的定义中加入语句__friendFriendFunction();。

33下面的类中定义了一个关于星期的枚举类型,请完成下面的程序。

classMyClass

{

public:

enumWeek{Sun,Mon,Tue,Wed,Thur,Fri,Sat};

Weekweek;

}

voidfun(MyClass&my)

{

___my.week____=__wed;//将对象my的week赋值为所定义的枚举类型

//值为3的枚举量

}

34在下面程序的横线处填上适当的语句,使该程序执行结果为10。

#includeclassMyClass

{

public:

___voidsetx(inta){x=a;}__或_MyClass(intx){this.x=x;};_//为x置值

intgetx(){returnx;}___//取x值

private:

intx;

};

voidmain()

{

MyClassmy(10);

cout<

}

35完成下面的类定义。

classMyClass

{

public:

MyClass(){x=0;}

___friend__intGetNum(_MyClassmy);

private:

intx;

};

intGetNum(___MyClass___my)

{

returnmy.x;}

1.在C++中,函数的参数有两种传递方式,它们是值传递和引用传递。

2.当一个成员函数被调用时,该成员函数的this指针指向调用它的对象。

3.在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。

对两个有相同名字的数据成员进行访问时,如果没有作用域说明符,对此数据成员的访问将出现歧义。

4.拷贝构造函数使用&作为参数初始化创建中的对象。

5.在公有继承的情况下,基类数据成员在派生类中的访问权限不变。

6.描述命题"A小于B或小于C"的表达式为A

7.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到构造函数,否则应

用程序会产生一个编译错误。

9.为了避免可能出现的歧义,C++对if⋯else语句配对规则规定为:

else总是与最接近的还未配对的if配对。

10.设"inta=3,b=4,c=5;",表达式"(a+b)>c&&b==c"的值是false。

11.面向对象的程序设计有四大特征,它们是抽象、封装、继承、多态。

12.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型;

13.构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与类名相同,而析构函数名是在类名前加一个~。

16.在C++类中,const关键字可以修饰对象和成员函数,const对象不能被更新,const成员函数不能更新对象的数据成员。

17.举出C++中两种用户自定义的数据类型:

结构体、枚举类型。

18.C++中没有字符

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2