C++面向对象程序设计复习题集.docx

上传人:b****6 文档编号:7443182 上传时间:2023-01-24 格式:DOCX 页数:42 大小:42.39KB
下载 相关 举报
C++面向对象程序设计复习题集.docx_第1页
第1页 / 共42页
C++面向对象程序设计复习题集.docx_第2页
第2页 / 共42页
C++面向对象程序设计复习题集.docx_第3页
第3页 / 共42页
C++面向对象程序设计复习题集.docx_第4页
第4页 / 共42页
C++面向对象程序设计复习题集.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C++面向对象程序设计复习题集.docx

《C++面向对象程序设计复习题集.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计复习题集.docx(42页珍藏版)》请在冰豆网上搜索。

C++面向对象程序设计复习题集.docx

C++面向对象程序设计复习题集

C++面向对象程序设计复习题集

一、单项选择题

21.假定下列x和y均为int型变量,则不正确的赋值为(B)。

A.x+=y++B.x++=y++C.x=++yD.++x=++y

23.循环语句“for(inti=0;i

A.1B.n-1C.nD.n+1

25.在下面循环语句中内层循环体S语句的执行总次数为(D)。

for(inti=0;i

for(intj=i;j

A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2

26.在下面循环语句中循环体执行的次数为(C)。

inti=0,s=0;while(s<20){i++;s+=i;}

A.4B.5C.6D.7

27.在下面循环语句中循环体执行的次数为(A)。

inti=0;doi++;while(i*i<10);

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

37.若定义了函数double*function(),则函数function的返回值为(B)。

A.实数型B.实数的地址C.指向函数的指针D.函数的地址

38.以下说法中正确的是(B)。

A.C++程序总是从第一个定义的函数开始执行

B.C++程序总是从main函数开始执行

C.C++函数必须有返回值,否则不能使用函数

D.C++程序中有调用关系的所有函数必须放在同一个程序文件中

40.函数重载是指(A)。

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

D.两个以上的函数取相同的函数名,并且函数的返回类型相同

41.以下关于函数模板叙述正确的是(C)。

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数

D.用函数模板定义的函数没有类型

42.下列(C)的调用方式是引用调用。

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

C.形参是引用,实参是变量D.形参是变量,实参是地址值

43.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(A)。

A.内联函数B.重载函数C.递归函数D.函数模板

44.函数原型语句正确的是(B)。

A.intFunction(voida);B.voidFunction(int);

C.intFunction(a);D.voidint(doublea);

45.C++中函数返回值的类型是由(B)决定的。

A.return语句中表达式的类型B.该函数定义时的类型

C.调用函数时的调用语句D.系统根据结果

46.以下函数的返回结果是(A)。

intfunction(char*x){

char*p=x;while(*p++);return(p-x-1);}

A.求字符串的长度B.将字符串x连接到字符串p后面

C.将字符串x复制到字符串p中D.将字符串x反向存放

48.设有如下函数定义

intf(char*s){

char*p=s;

while(*p!

=’\0’)p++;

return(p-s);}

在主函数中用cout<

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

49.以下正确的函数原型语句是(C)。

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(int,int);

D.doublefun(intx,y);

50.以下正确的说法是(B)。

A.用户调用标准库函数前,必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C.系统不允许用户重新定义标准库函数

D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中

51.函数调用不可以(D)。

A.出现在一个表达式中

B.出现在执行语句中

C.作为一个函数的实参

D.作为一个函数的形参

55.以下正确的描述是(C)。

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

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

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

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

56.采用重载函数的目的是(D)。

A.实现共享B.减少空间

C.提高速度D.使用方便,提高可读性

58.以下叙述中正确的是(B)。

A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值

B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的

C.在程序中使用内联函数使程序的可读性变差

D.在定义函数时可以在形参表的任何位置给出缺省形参值

59.下面的标识符中,(C)是文件级作用域。

A.函数形参B.语句标号C.外部静态类标识符D.自动类标识符

60.以下叙述不正确的是(D)。

A.宏替换不占用运行时间B.宏名无类型

C.宏替换只是字符替换D.宏名必须用大写字母表示

61.C++语言的编译系统对宏命令的处理是(D)。

A.在程序运行时进行

B.在程序连接时进行

C.和C++程序的其它语句同时进行编译

D.在对源程序中其它成分正式编译之前进行

62.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是(B)。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录

C.仅仅搜索源程序所在目录

D.搜索当前逻辑盘上的所有目录

63.当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是(A)。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录

C.仅仅搜索源程序所在目录

D.搜索当前逻辑盘上的所有目录

64.在下面存储类中,(C)对象的可见性与生存期不一致。

A.外部类B.自动类C.内部静态类D.寄存器类

65.在下面存储类中,(A)的对象不是局部变量。

A.外部静态类B.自动类C.函数形参D.寄存器类

66.关于局部变量,下面说法正确的是(C)。

A.定义该变量的程序文件中的函数都可以访问

B.定义该变量的函数中的定义处以下的任何语句都可以访问

C.定义该变量的复合语句中的定义处以下的任何语句都可以访问

D.定义该变量的函数中的定义处以上的任何语句都可以访问

69.设array为一个数组,则表达式sizeof(array)/sizeof(array[0])的结果为(B)。

A.array数组首地址

B.array数组中元素个数

C.array数组中每个元素所占的字节数

D.array数组占的总字节数

70.用new运算符创建一个含10个元素的一维整型数组的正确语句是(C)。

A.int*p=newa[10];B.int*p=newfloat[10];

C.int*p=newint[10];D.int*p=newint[10]={1,2,3,4,5}

71.下列给字符数组赋初值时,正确的是(A)。

A.chars1[]=”abcdef”;B.chars2[4]=”abcd”;

C.chars3[2][3]={“abc”,”xyz”};D.chars4[4][]={‘a’,’x’,’s’,’t’};

72.设有定义“staticintdata[5][6];”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data[2][3]的地址为(D)。

A.115B.124C.130D.160

73.假定变量m定义为“intm=7;”,则定义变量p的正确语句为(B)。

A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;

74.假定k是一个double类型的变量,则关于变量p的正确定义语句为(D)。

A.doublep=&k;B.int*p=&k;

C.double&p=*k;D.char*p=”Thankyou!

”;

75.变量s的定义为“char*s=”Helloworld!

”;”,要使变量p指向s所指向的同一个字符串,则应选取(A)。

A.char*p=s;B.char*p=&s;C.char*p;p=*s;D.char*p;p=&s;

76.关于void指针,下列说法正确的是(C)。

A.void指针就是未指向任何数据的指针

B.void指针就是已定义而未初始化的指针

C.指向任何类型数据的指针可直接赋值给一个void指针

D.void指针值可直接赋给一个非void指针

77.假定一条定义语句为“inta[10],x,*pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(D)。

A.x=pa[3];B.x=*(a+3);C.x=a[3];D.x=*pa+3;

78.假定有定义“intb[10];int*pb;”,则不正确的赋值语句为(D)。

A.pb=b;B.pb=&b[0];C.*pb=newint;D.pb=b[5];

79.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(C)。

A.1B.4C.sizeof(double)D.sizeof(p)

80.假定p指向的字符串为”string”,则cout<

A.stringB.ringC.ingD.i

81.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用(D)。

A.cout<<*p;B.cout<

82.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。

A.int*p=newint[30];B.int*p=newint(30);

C.int*p=new[30];D.*p=newint[30];

83.假定p是具有int**类型的指针变量,则给p赋值的正确语句为(B)。

A.p=newint;B.p=newint*;C.p=newint**;D.p=newint[10];

84.要使语句“p=newint[10][20];”能够正常执行,p应被事先定义为(D)。

A.int*p;B.int**p;C.int*p[20];D.int(*p)[20];

85.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book=newBOOK;”,则正确的语句为(A)。

A.strcpy(book->title,”WangTao”);B.strcpy(book.title,”WangTao”);

C.strcpy(*book.title,”WangTao”);D.strcpy((*book)->title,”WangTao”);

86.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book;”,则不正确的语句为(A)。

A.BOOK*x=newbook;B.BOOKx={"C++Programming",27.0};

C.BOOK*x=newBOOK;D.BOOK*x=book;

87.假定有“structBOOK{chartitle[40];floatprice;}book;”,则正确的语句为(B)。

A.BOOK&x=&book;B.BOOK&x=book;

C.BOOK&x=newBOOK;D.BOOK&x=BOOK;

88.下列对引用的陈述中不正确的是(C)。

A.每一个引用都是其所引用对象的别名,因此必须初始化

B.形式上针对引用的操作实际上作用于它所引用的对象

C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行

D.不需要单独为引用分配存储空间

89.假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值给a中的下标为5的元素,不正确的语句是(D)。

A.pa[5]=12.35;B.a[5]=12.35;

C.*(pa+5)=12.35;D.*(a[0]+5)=12.35;

90.假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[1]元素中,不正确的语句是(C)。

A.*(pb+1)=24;B.*(b+1)=24;C.*++b=24;D.*++pb=24;

91.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句(A)。

A.deletep;B.delete*p;C.delete&p;D.delete[]p;

92.假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态内存,应使用语句(D)。

A.deletep;B.delete*p;C.delete&p;D.delete[]p;

93.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(D)。

A.intrx=x;B.intrx=&x;C.int*rx=&x;D.int&rx=x;

94.关于消息,下列说法中不正确的是(B)。

A.发送消息的对象请求服务,接受消息的对象提供服务

B.消息的发送者必须了解消息的接收者如何相应消息

C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用

D.每个对象只能接收某些特定格式的消息

95.关于封装,下列说法中不正确的是(D)。

A.通过封装,对象的全部属性和操作结合在一起,形成一个整体

B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)

C.通过封装,每个对象都成为相对独立的实体

D.通过封装,对象的属性都是不可见的

96.面向对象方法的多态性是指(C)。

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的

二、填空题

2.C++语言的编译单位是扩展名为___.cpp_____的__程序_____文件。

4.多行注释的开始标记符和结束标记符分别为_/*________和___*/_____。

8.一个函数的函数体就是一条__复合_____语句。

10.在C++程序中包含一个头文件或程序文件的预编译命令为__#include______。

13.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___用户(或编程者)____定义的头文件。

14.使用#include命令可以包含一个头文件,也可以包含一个_程序___文件。

15.一个函数定义由_函数头____和__函数体____两部分组成。

16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型(或声明)____语句。

18.程序文件的编译错误分为___警告(warning)____和__致命(error)___两类。

21.从一条函数原型语句“intfun1(void);”可知,该函数的返回类型为__int____,该函数带有_0___个参数。

22.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到_____下一行___的开始位置。

23.假定x=5,y=6,则表达式x++*++y的值为____35______。

24.假定x=5,y=6,则表达式x--*--y的值为_____25_____。

25.假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为___6_______和___30_______。

26.假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为____4______和____11______。

31.signedchar类型的值域范围是__-128______至__+127______之间的整数。

34.bool和char类型的数据分别占用____1_____和_____1___个字节。

35.unsignedshortint和int类型的长度分别为_____2____和___4_____。

36.字符串”This\’sabook.\n”的长度为_____15_____。

37.字符串”\nThis\’sapen\n\n”的长度为_____15_____。

40.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为____1____和___3_____。

41.假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为____3______和_____3.2____。

42.假定x是一个逻辑量,则x&&true的值为____x_____。

43.假定x是一个逻辑量,则x||true的值为_____true(或1)____。

44.假定x是一个逻辑量,则x&&false的值为_____false(或0)____。

45.假定x是一个逻辑量,则x||false的值为____x______。

46.假定x是一个逻辑量,则!

x||false的值为____!

x______。

47.假定x是一个逻辑量,则x&&!

x的值为_____false(或0)_____。

48.假定x是一个逻辑量,则x||!

x的值为____true(或1)_____。

52.设enumPrintstatus{ready,busy,error};则cout<

53.设enumPrintstatus{ready=2,busy,error};则cout<

54.常数-4.205和6.7E-9分别具有____4______和_____2_____位有效数字。

55.枚举类型中的每个枚举值都是一个_____枚举常量_____,它的值为一个___整数______。

56.常数100和3.62的数据类型分别为____int____和___double_____。

57.若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为_6___和___60___。

58.假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为___4___和__1____。

59.假定x=10,则表达式x<=10?

20:

30的值为__20____。

60.表达式sqrt(81)和pow(6,3)的值分别为___9___和__216____。

61.含随机函数的表达式rand()%20的值在__0___至__9____区间内。

62.在switch语句中,每个语句标号所含关键字case后面的表达式必须是整型_常量______。

63.在if语句中,每个else关键字与它前面同层次并且最接近的____if____关键字相配套。

64.作为语句标号使用的C++保留字case和default只能用于____switch____语句的定义体中。

65.执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时__不停止______执行。

66.若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行____11__次后正常结束。

67.若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改I的值,则循环体将被重复执行___10___次后正常结束。

70.在程序中执行到___return__语句时,将结束所在函数的执行过程,返回到调用该函数的位置。

71.在程序执行完___主(或main)__函数后,将结束整个程序的执行过程,返回到操作系统下的C++集成开发窗口。

72.元素类型为int的数组a[10]共占用__40_____字节的存储空间。

73.元素类型为double的二维数组a[4][6]共占用_192__字节的存储空间。

74.元素类型为char的二维数组a[10][30]共占用__300___字节的存储空间。

75.存储字符’a’和字符串”a”分别需要占用___1___和__2____个字节。

76.空串的长度为__0___,存储它需要占用____1___个字节。

77.字符串”\’a\’xy=4\n”的长度为__8____。

78.字符串”a:

\\xxk\\数据”的长度为_11___。

79.用于存储一个长度为n的字符串的字符数组的长度至少为___n+1___。

80.若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为___cin>>a___。

81.若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为____cout<

82.一个二维字符数组a[10][20]能够存储_____10___个字符串,每个字符串的长度至多为___19_____。

83.对一个二维字符数组a进行初始化

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

当前位置:首页 > 高等教育 > 理学

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

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