C++复习资料.docx

上传人:b****6 文档编号:5095380 上传时间:2022-12-13 格式:DOCX 页数:34 大小:35.99KB
下载 相关 举报
C++复习资料.docx_第1页
第1页 / 共34页
C++复习资料.docx_第2页
第2页 / 共34页
C++复习资料.docx_第3页
第3页 / 共34页
C++复习资料.docx_第4页
第4页 / 共34页
C++复习资料.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C++复习资料.docx

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

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、6     B、12      C、18     D、10

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

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

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

  A、12      B、3       C、4      D、7

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

   A、while     B、if     C、dowhile    D、for

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

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

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

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

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

  A、5       B、x      C、无输出    D、0

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

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

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

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

10、执行cout<<520<

  A、520endl”520”            B、520endl520    

  C、520                      D、520

   “520”                        520

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

 (   C )

    A、123    B、true C、’c’  D、10.5

12、该for循环语句:

for(i=1;i<11;i++)sum+=i;中循环体的执行次数为 (  C  )

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

13、对程序段:

  if(x>y)  z=1;

                else    z=3;

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

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

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

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

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)D.test(test&)

17.一个const对象(B)。

A.能访问所有成员函数B.只能访问const成员函数

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

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

A.对象之间不可以相互赋值B.不可以说明指向对象的指针

C.对象不能用作数组元素D.一个对象能用作另一个对象的成员

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

    A、.CPP   B、.C   C、.DLL  D、.EXE

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

( C)

A、int BC(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.3            B.2          C.1        D.4

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

  A.3            B。

2              C。

6             D。

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{             B。

structMyStruct{

          intnum;                                intnum;

          charch;                                charch;

       };                                        }my;

 MyStruct my;                              

 C. struct{                      D。

struct{

         intnum;                           intnum;

         charch;                           charch;

}                                    };

my;                                      struct my;                                     

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,20     C。

11,21,40     D。

11,41,21

         12,21,41       12,42,20        11,21,41        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的起始地址             B。

字符a的起始地址

      C.字符o                       D。

afernoon

 

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

(  D)

      #include

      int fun(char*s){

      char*p=s;

      while(*p!

='\0') p++;

      return(p-s);

      }

    voidmain(){

       cout<

     }

   A.0         B。

1         C。

2        D。

3

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

A. _a2 B. 2ai

C. a2_i D. 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和5 B.5和4

C.4和20 D.20和5

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

staticinthot=200;int&rad=hot;

 hot=hot+100;cout<

(C)。

A.0  B.100

C.300  D.200

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

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

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

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

A.返回值  B.this指针

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

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

 

A.public          B.extern 

C.cpu    D. 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.private   B.extern

C.auto   D.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.public B.protected

C.private D.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.2         B.-1 

C.0         D.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:

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

当前位置:首页 > 高等教育 > 军事

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

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