C++选择题题库.docx

上传人:b****4 文档编号:12337042 上传时间:2023-04-18 格式:DOCX 页数:50 大小:37.24KB
下载 相关 举报
C++选择题题库.docx_第1页
第1页 / 共50页
C++选择题题库.docx_第2页
第2页 / 共50页
C++选择题题库.docx_第3页
第3页 / 共50页
C++选择题题库.docx_第4页
第4页 / 共50页
C++选择题题库.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

C++选择题题库.docx

《C++选择题题库.docx》由会员分享,可在线阅读,更多相关《C++选择题题库.docx(50页珍藏版)》请在冰豆网上搜索。

C++选择题题库.docx

C++选择题题库

一二章

1.下列C++标点符号中表示行注释开始的是C。

A)#B);C)//D)}

2.下列字符串中可以用作C++标示符的是A。

A)_256B)classC)deleteD)5char

3.下列关于C++函数的描述中正确的是C。

A)主函数是程序的入口,它是由用户定义的函数调用。

B)函数是C++中面向对象程序设计框架的基本组成元素。

C)函数在调用前必须先被声明。

D)每个用户定义函数只能被其他函数调用一次。

4.下列关于C++关键字的说法中正确的是D。

A)关键字是用户为程序中各种需要命名的“元素”所起的名字。

B)关键字是对程序中的数据进行操作的一类单词。

C)关键字是在程序中起分割内容和界定范围作用的一类单词。

D)关键字是C++中预先定义并实现一定功能的一类单词。

5.每个C++程序都必须有且仅有一个B。

A)预处理命令B)主函数C)函数D)语句

6.下面关于对象概念的描述中,A是错误的。

A)对象就是C语言中的结构变量B)对象代表着正在创建的系统中的一个实体

C)对象是一个状态和操作(或方法)的封装体D)对象之间的信息传递是通过消息进行的

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

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

C)规定函数说明必须用原型D)引进类和对象的概念

8.下面关于类概念的描述中,D是错误的。

A)类是抽象数据类型的实现B)类是具有共同行为的若干对象的统一描述体

C)类是创建对象的样板D)类就是C语言中的结构体类型

9.C++语言是以B语言为基础逐渐发展而演变而成的一种程序设计语言。

A)PascalB)CC)BasicD)Simula67

10.C++语言中规定函数的返回值的类型是由D。

A)return语句中的表达式类型所决定的B)调用该函数式的主调用函数类型所决定的

C)调用该函数式系统临时确定的D)在定义该函数式所指的数据类型所决定的

11.下列关于C++与C语言关系的描述中错误的是C。

A)C++是C语言的超集B)C++是C语言进行了扩充

C)C++和C语言都是面向对象的程序设计语言D)C++包含C语言的全部语法特征

12.下列字符串中可以用做C++标示符的是A。

A)_521B)computer~1C)caseD)3var

13.面向对象程序设计思想的主要特征中不包括D。

A)封装性B)多态性C)继承性D)功能分解,逐步求精

14.下列C++标点符号中表示一条预处理命令开始的是A。

A)#B)//C)}D);

15.下列关于C++类的描述中错误的是C。

A)类与类之间可以通过一些手段进行通信和联络

B)类用于描述事物的属性和对事物的操作

C)类与类之间必须是平等的关系,而不能组成层次关系

D)类与类之间可以通过封装而具有明确的独立性

16.下列C++标点符号中表示一条语句结束的是A。

A);B)//C)#D){

17.下列C++标点符号中表示复合语句结束的标记符是C。

A)#B)//C)}D);

18.下列C++标点符号中表示复合语句开始的标记符是A。

A){B)//C)}D);

19.下列关键字中,B即在C语言中使用,又在C++语言中使用。

A)inlineB)breakC)privateD)public

20.下列字符串中不可以用作C++标示符的是C。

A)_521B)computer123C)intD)flower

21.下列不正确的选项是D。

A)C++语言是一种面向对象的程序设计语言,它支持面向对象思想中的3个主要特征

B)标点符号是在程序中起分割内容和界定范围作用的一类单词

C)iostream是一个标准的头文件,定义了一些输入输出流对象

D)类与类之间不可以进行通信和联络

22.下列不正确的选项是B。

A)封装是一种信息隐藏技术

B)标识符是由字母、数字、下划线组成的字符串,必须以数字或下划线开头

C)编译是由源程序文件转换到目标文件的过程

D)一个C++程序可以认为是函数串

23.下列与流程控制有关的关键字是A。

A)gotoB)staticC)intD)sizeof

24.下列正确的选项是A。

A)继承是创建一个具有别的类的属性和行为的新类的能力

B)C语言支持面向对象的程序设计

C)空白符是一种可以被编译的符号

D)标示符不宜过长,一般设定为16个字符

25.下列关于C++语言的发展说法错误的是C。

A)C++语言起源于C语言B)C++语言最初被称为“带类的C”

C)在1980年C++被命名D)在1983年C++被命名

27.下列表示引用的方法中,A是正确的。

已知:

intk=1000;

A)int&x=k;B)char&y;C)int&z=1000;D)float&t=&k;

28.下列程序的执行结果为A。

#include

voidmian()

{

intn=10;

int*pn=&n;

int*&rn=pn;

(*pn)++;

cout<<"n="<

(*rn)++;

cout<<”n=”<

}

A)n=11n=12B)n=11n=11

C)n=10n=11D)n=11n=10

29.下列引用的定义中,B是错误的。

A)inti;int&j=i;B)inti;int&j;j=i;

C)floati;float&j=i;C)chard;char&k=d;

30.B是给对象取了一个别名,他引入了对象的同义词。

A)指针B)引用C)枚举D)结构

31.下列表示引用的方法中,A是正确的。

已知:

intm=10;

A)int&x=m;B)int&y=10;C)int&z;D)float&t=&m;

32.下面程序的运行结果是A。

#include

voidfun(int&a,int&b)

{intp;

p=a;a=b;b=p;

}

voidexchange(int&a,int&b,int&c)

{

if(a

if(a

if(b

}

voidmain()

{

inta,b,c;

a=12;

b=639;

c=78;

exchange(a,b,c);

cout<<"a="<

}

A)a=639,b=78,c=12B)a=12,b=639,c=78C)a=639,b=12,c=78D)a=78,b=12,c=639

33.下面的程序输出结果为C。

#include

voidmain()

{

int*ir;

inti;

ir=&i;

i=17;

cout<<"inti="<

cout<<"intir="<<*ir<

}

A)inti=17intir=0B)inti=0intir=17

C)inti=17intir=17D)程序语法错误,没有输出结果

34.对定义重载函数的下列要求中,D是错误的。

A)要求参数的个数不同B)要求参数中至少有一个类型不同

C)要求参数个数相同时,参数类型不同D)要求函数的返回值不同

35.下面函数调用语句中实参的个数是A。

xxx((v1,v2),(v3,v4,v5),v6);

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

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

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

37.若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是D。

A)externB)registerC)autoD)static

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

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

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

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

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

39.若有下面函数调用语句:

fun(a+b,(x,y),fun(n+k,d,(a+b)));

在此函数调用语句中实参的个数是A。

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

40.下列对重载函数的描述中,A是错误的。

A)重载函数中不允许使用默认参数

B)重载函数中编译时根据参数表进行选择

C)不要使用重载函数来描述毫无相干的函数

D)构造函数重载将会给初始化带来多种方式

41.在函数声明时,下列D项是不必要的。

A)函数的类型B)函数参数类型C)函数的名字D)返回值表达式

42.在函数的返回值类型与返回值表达式的类型的描述中,错误的是B。

A)函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的

B)函数返回值的类型就是返回值表达式的类型

C)函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型

D)函数返回值类型确定了返回值表达式的类型

43.下面变量和函数说明:

#include

charch='*';

voidsub(intx,inty,charch,double*z)

{

switch(ch)

{

case'+':

*z=x+y;break;

case'-':

*z=x-y;break;

case'*':

*z=x*y;break;

case'/':

*z=x/y;break;

}

}

下面合法的函数调用语句是B。

A)sub(10,20,ch,y);B)sub(1.2,3.2,'+',&z);

C)sub(sub(1,2,'+',&y),sub(3,4,'+',&x),'-',&y);D)sub(a,b,&x,ch);

44.下列程序的输出结果是B。

#include

voidsub1(chara,charb)

{charc;

c=a;a=b;b=c;

}

voidsub2(char*a,charb)

{

charc;

c=*a;*a=b;b=c;

}

voidsub3(char*a,char*b)

{

charc;

c=*a;*a=*b;*b=c;

}

voidmain()

{

chara,b;

a='A';

b='B';

sub1(a,b);

putchar(a);

putchar(b);

a='A';

b='B';

sub2(&a,b);

putchar(a);

putchar(b);

a='A';

b='B';

sub3(&a,&b);

putchar(a);

putchar(b);

putchar('\n');

}

A)ABABABB)ABBBBAC)ABBABAD)ABABBA

45.下面程序的正确执行结果为D。

#include

intf(int);

voidmain()

{

inta=2,i;

for(i=0;i<3;i++)

cout<

cout<

}

intf(inta)

{

intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

}

A)777B)71013C)7911D)789

46.下面程序的正确执行结果为C。

#include

voidfun(char**m)

{

m++;

cout<<*m<

}

voidmain()

{

staticchar*a[]={"MORNING","AFTERNOON","EVENING"};

char**n;

n=a;

fun(n);

}

A)为空B)MORNINGC)AFTERNOOND)EVENING

47.下面程序的输出结果B。

#include

intfun(char*s)

{

char*p=s;

while(*p!

='\0')

p++;

return(p-s);

}

voidmain()

{

cout<

}

A)3B)6C)8D)0

48.当一个函数无返回值时,函数的类型应定义为A。

A)voidB)任意C)intD)无

49.下面叙述中不正确的是D。

A)在函数中,通过return语句传回函数值

B)在函数中,可以有多条return语句

C)主函数名main()后面的一对圆括号中也可以带有形参

D)调用函数必须在一条独立的语句中完成

50.下列D的调用方式是引用调用。

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

C)形参是数组,实参是变量D)形参是引用,实参是变量

51.在C++中,函数原型不能标识D。

A)函数的返回类型B)函数参数的个数C)函数参数类型D)函数的功能

52.下列标识符中,C是文件级作用域的。

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

53.在传值调用中,要求C。

A)形参和实参类型任意,个数相等B)实参和形参类型都完全一致,个数相等

C)实参和形参对应的类型一致,个数相等D)实参和形参对应的类型一致个数任意

54.有一个int型变量,在程序中频繁使用,最好定义它为A。

A)registerB)autoC)externD)static

55.考虑下面的函数原型:

voidtestDefaulParam(inta,intb=7,charz='*');

下面函数调用中不合法的C。

A)testDefaulParam(5);B)testDefaulParam(5,8);

C)testDefaulParam(5,'#');D)testDefaulParam(0,0,'*');

56.采用函数重载的目的在于D。

A)实现共享B)减少空间C)提高速度D)使用方便,提高可靠性

57.要求通过函数来实现一种不太复杂的功能,并且要加快执行速度,选

用A。

A)内联函数B)重载函数C)递归函数D)嵌套函数

58.下面程序的输出结果是D。

#include

voidfun(inti);

intmain()

{

intn=2;

fun(n);

return0;

}

voidfun(inti)

{

staticintx=1;

inty=1;

if(i>0)

{

++x;

++y;

cout<

fun(i-1);

}

}

A)语法错误,不能输出正确结果B)2222C)2233D)2232

59.下面程序的输出结果为B。

#include

voidprt(int*x,int*y,int*z)

{

cout<<++*x<<","<<++*y<<","<<*(z++)<

}

inta=10;

intc=20;

intb=40;

voidmain()

{

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

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

}

A)11,42,3112,21,41B)11,41,2012,42,20

C)11,21,4011,21,41D)11,41,2112,42,22

60.下面程序的正确运行结果为C。

#include

fun(inta,intb)

{

staticintm=1,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

voidmain()

{

intk=5,m=2,p;

p=fun(k,m);

cout<

p=fun(k,m);

cout<

}

A)11,22B)12,23C)11,23D)10,23

61.下面程序的输出结果是D。

#include

voidfun(int*s,int*y)

{

staticintt=3;

*y=s[t];

t--;

}

voidmain()

{

inta[]={1,2,3,4};

inti,x=10;

for(i=0;i<4;i++)

{

fun(a,&x);

cout<

}

cout<

}

A)1,2,3,4B)0,0,0,0C)4,4,4,4D)4,3,2,1

62.下面程序的输出结果是A。

#include

intfun(char*s)

{

char*p=s;

while(*p!

='\0')

p++;

return(p-s);

}

voidmain()

{

cout<

}

A)20B)6C)19D)0

63.下面程序的输出结果是C。

#include

intx=10;

voidfun(intc);

voidmain()

{

fun(x);

cout<<"x="<

}

voidfun(intx)

{

x=1;

}

A)x=0B)x=1C)x=10D)语法错误,不能输出正确结果

64.下面程序的执行结果是B。

#include

voidmain()

{

voidswap();

externinta,b;

a=3;

b=10;

swap();

cout<<"a="<

}

inta,b;

voidswap()

{

inttemp;

temp=a;

a=b;

b=temp;

}

A)a=3,b=10B)a=10,b=3C)a=temp,b=tempD)语法错误,不能输出正确结果

65.下列程序的输出结果是A。

#include

voidf()

{

staticinti=15;

i++;

cout<<"i="<

}

voidmain()

{

for(intk=0;k<2;k++)

f();

}

A)i=16i=17B)i=16i=15C)i=15i=16D)i=15i=17

66.在横线处填上适当的语句C,使下面程序执行结果是13,18,23。

#include

intadd(intx,inty=8);

voidmain()

{

;

cout<

cout<

cout<

}

intadd(inta,intb)

{

ints=a+b;

returns;

}

A)inta=3B)intb=3C)inta=5D)intb=5

67.在横线处填上适当的语句A,使下面的程序的执行结果是1924303745。

#include

intfun(inta)

{

staticintx=10;

inty=1;

x+=a;

a++;

y++;

return(x+y+a);

}

voidmain()

{

inti=3;

while(i<8)

;

cout<

}

A)cout<

C)cout<

68.在C++语言中,局部变量的隐含存储类型是D。

A)autoB)staticC)externD)无存储类型

69.下面程序的输出结果为D。

#include

intfun(char*s);

intmain()

{

cout<

return0;

}

intfun(char*s)

{

char*t=s;

while(*t!

='\0')

t++;

return(t-s);

}

A)语法错,不能输出正确结果B)0C)6D)5

第三章一、选择题

1.有关类的说法不正确的是D。

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

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

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

D)在类中,如果不做特别说明,所指的成员函数均为公有类型。

2.类A是类B的友元,类B是类C的友元,则____D______是正确的.

A)类B是类A的友元B)类C是类A的友元

C)类A是类C的友元D)以上都不对

3.有下面类的说明,有错误的语句是____A______。

classX

{

A)inta=2;

B)X();

public:

C)X(intval):

D)~X();

};

4.有关析构函数的说法不正确的是_____B_____。

A)析构函数有且仅有一个

B)析构函数和构造函数一样可以有形参

C)析构函数的功能是用来释放一个对象

D)析构函数无任何函数类型

5.已知一个类X,_____C_____是定义指向类X成员函数的指针,假设类有3个公有成员:

voidf1(int),voidf2(int)和inta.

A)X*PB)intX:

:

*pc=&X:

:

aC)void(X:

:

*pa)()D)X*p[10]

6.下列的各类函数中,____C______不是类的成员函数

A)构造函数B)析构函数C)

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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