最新C++复习题库+C++试题库Word格式文档下载.docx

上传人:b****5 文档编号:19070773 上传时间:2023-01-03 格式:DOCX 页数:93 大小:70.40KB
下载 相关 举报
最新C++复习题库+C++试题库Word格式文档下载.docx_第1页
第1页 / 共93页
最新C++复习题库+C++试题库Word格式文档下载.docx_第2页
第2页 / 共93页
最新C++复习题库+C++试题库Word格式文档下载.docx_第3页
第3页 / 共93页
最新C++复习题库+C++试题库Word格式文档下载.docx_第4页
第4页 / 共93页
最新C++复习题库+C++试题库Word格式文档下载.docx_第5页
第5页 / 共93页
点击查看更多>>
下载资源
资源描述

最新C++复习题库+C++试题库Word格式文档下载.docx

《最新C++复习题库+C++试题库Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《最新C++复习题库+C++试题库Word格式文档下载.docx(93页珍藏版)》请在冰豆网上搜索。

最新C++复习题库+C++试题库Word格式文档下载.docx

 

10.在参数传递过程中,对形参和实参的要求是()。

A.函数定义时,形参一直占用存储空间

B.实参可以是常量、变量或表达式

C.形参可以是常量、变量或表达式

D.形参和实参类型和个数都可以不同

11.对数组名作函数的参数,下面描述正确的是()。

A.数组名作函数的参数,调用时将实参数组复制给形参数组

B.数组名作函数的参数,主调函数和被调函数共用一段存储单元

C.数组名作参数时,形参定义的数组长度不能省略

D.数组名作参数,不能改变主调函数中的数据

12.若有语句inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

则()不是对a数组元素的正确引用(其中0≤i<

10)。

A.p[i]   B.*(*(a+i))C.a[p-a]D.*(&

a[i])

13.以下程序的输出结果是()。

#include<

iostream.h>

voidmain()

{chars[]="

12134211"

*p;

intv1=0,v2=0,v3=0,v4=0;

v1v2v3v4

for(p=s;

*p;

p++)2434

switch(*p)

{

case'

1'

:

v1++;

3'

v3++;

2'

v2++;

default:

v4++;

}

cout<

v1<

"

"

v2<

v3<

v4<

endl;

A.4,2,1,1B.4,7,5,8C.7,3,2,1D.8,8,8,8

14.下列声明结构体变量错误的是()。

A.structstudentB.structstudent

  { intno;

{intno;

charname[16];

charname[16];

}st1,st2;

};

structstudentst1,st2;

C.structstudentD.structstudent

{intno;

};

structst1,st2;

studentst1,st2;

15.对类的构造函数和析构函数描述正确的是()。

A.构造函数可以重载,析构函数不能重载

B.构造函数不能重载,析构函数可以重载

C.构造函数可以重载,析构函数也可以重载

D.构造函数不能重载,析构函数也不能重载

16.下面对于友元函数描述正确的是()。

A.友元函数的实现必须在类的内部定义B.友元函数是类的成员

C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员

17.派生类的对象对它的基类成员中()是可以访问的。

A.公有继承的公有成员B.公有继承的私有成员

C.公有继承的保护成员D.私有继承的公有成员

18.C++类体系中,不能被派生类继承的有()。

A.构造函数B.虚函数C.静态成员函数D.赋值操作函数

19.以下()成员函数表示虚函数。

A.virtualintvf(int);

B.voidvf(int)=0;

C.virtualvoidvf()=0;

D.virtualvoidvf(int){};

20.下面对静态数据成员的描述中,正确的是()。

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以在类体内进行初始化

C.静态数据成员不能受private控制符的作用

D.静态数据成员可以直接用类名调用?

21.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。

A.规律性B.传递性C.重复性D.多样性

22.若有以下定义,则释放指针所指内存空间的操作是()。

floatr=newsfloat[10];

A.deleter;

B.delete*r;

C.delete[]r;

D.deleter[];

23.若有以下定义,则对字符串的操作错误的是()。

chars[10]=”Program”,t[]=”test”;

A.strcpy(s,t);

B.cout<

strlen(s);

C.strcat(“this”,t);

D.cin>

>

t;

24.在if语句中的表达式是()。

A.只能是表达式B.只能是关系表达式和逻辑表达式

C.只能是逻辑表达式D.可以是任意表达式

25.在用关键字class定义的类中,以下叙述正确的是()。

A. 

在类中,不作特别说明的数据成员均为私有类型

B. 

在类中,不作特别说明的数据成员均为公有类型

C. 

类成员的定义必须是成员变量定义在前,成员函数定义在后

D. 

类的成员定义必须放在类定义体内部

参考答案:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

B

C

D

A

16

17

18

19

20

21

22

23

24

25

公共基础知识

 

一、选择题

(1)下列关于栈的叙述正确的是

A)栈是非线性结构  B)栈是一种树状结构  

C)栈具有先进先出的特征  D)栈具有后进先出的特征

(2)结构化程序设计所规定的三种基本控制结构是

A)输入、处理、输出  B)树形、网形、环形  

C)顺序、选择、循环  D)主程序、子程序、函数

(3)结构化程序设计的一种基本方法是

A)筛选法  B)递归法  C)归纳法  D)逐步求精法

(4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:

A)选择  B)投影  C)连接  D)并

一:

选择题:

(1)D  

(2)C  (3)D  (4)B

C++语言程序设计

(1)C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()

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

(2)C++语言的跳转语句中,对于break和continue说法正确的是()

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

B)continue语句只应用与循环体中  

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

D)break和continue的跳转范围不够明确,容易产生问题

(3)for(intx=0,y=o;

!

x&

&

y<

=5;

y++)语句执行循环的次数是()

A)0  B)5  C)6  D)无次数

(4)考虑函数原型voidtest(inta,intb=7,char="

*"

),下面的函数调用中,属于不合法调用的是()

A)test(5);

B)test(5,8);

C)test(6,"

#"

)D)test(0,0."

);

(5)下面有关重载函数的说法中正确的是()

A)重载函数必须具有不同的返回值类型;

  B)重载函数形参个数必须不同;

  

C)重载函数必须有不同的形参列表  D)重载函数名可以不同;

(6)下列关于构造函数的描述中,错误的是()

A)构造函数可以设置默认参数;

  B)构造函数在定义类对象时自动执行  

C)构造函数可以是内联函数;

  D)构造函数不可以重载

(7)下面描述中,表达错误的是()

A)公有继承时基类中的public成员在派生类中仍是public的  

B)公有继承是基类中的private成员在派生类中仍是private的  

C)公有继承时基类中的protected成员在派生类中仍是protected的  

D)私有继承时基类中的public成员在派生类中是private的

(8)应在下列程序划线处填入的正确语句是()

#include

classBase

{ public:

  voidfun(){cout<

Base:

fun"

};

classDerived:

publicBase

{ voidfun()

  {_____________file:

//显示调用基类的函数fun()

    cout<

Derived:

  }

A)fun();

B)Base.fun();

C)Base:

fun();

D)Base->

(9)有如下程序:

#include

classBASE{

  charc;

public:

  BASE(charn):

c(n){}

  virtual~BASE(){cout<

c};

classDERIVED:

publicBASE{

  DERIVED(charn):

BASE(n+1),c(n){}

  ~DERIVED(){cout<

intmain()

{ DERIVED("

X"

  return0;

}

执行上面的程序将输出()

A)XYB)YXC)XD)Y

(10)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;

其中只能用于检测输入流状态的操作函数名称是()

A)failB)eofC)badD)good

选择题

1-5:

BBCCC

6-10:

DBCAB

1、下列有关类的说法不正确的是()。

A.对象是类的一个实例

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

C. 

一个类只能有一个对象

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

答案:

分析:

对象是类的一个实例,类与对象的关系和数据与变量的关系相似,所以一个类可以有多个对象。

2、下面()项是对构造函数和析构函数的正确定义。

A.voidX:

X(),voidX:

~X()

B.X:

X(参数),X:

C.X:

~X(参数)

D.voidX:

X(参数),voidX:

分析构造函数无返回类型、可带参数、可重载;

析构函数无返回类型、不可带参数、不可重载。

3、()的功能是对象进行初始化。

A.析构函数B.数据成员C.构造函数D.静态成员函数

当一个对象定义时,C++编译系统自动调用构造函数建立该对象并进行初始化;

当一个对象的生命周期结束时,C++编译系统自动调用析构函数注销该对象并进行善后工作;

4、下列表达方式正确的是()。

A.classP{B.classP{

public:

public:

intx=15;

intx;

voidshow(){cout<

x;

}voidshow(){cout<

};

C.classP{D.classP{

intf;

inta;

f=25;

voidSeta(intx){a=x;

};

在类体内不可对数据成员进行初始化;

类定义结束时需用分号;

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

5、拷贝构造函数具有的下列特点中,()是错误的。

A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的

B.拷贝构造函数只有一个参数,并且是该类对象的引用

C.拷贝构造函数是一种成员函数

D.拷贝构造函数的名字不能用类名

如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;

拷贝构造函数只有一个参数,并且是该类对象的引用;

拷贝构造函数的名字与类同名,并且不被指定返回类型;

拷贝构造函数是一种成员函数。

6、关于静态成员的描述中,()是错误的。

A. 

静态成员可分为静态数据成员和静态成员函数

B.静态数据成员定义后必须在类体内进行初始化

C.静态数据成员初始化不使用其构造函数

D.静态数据成员函数中不能直接引用非静态成员

静态成员可分为静态数据成员和静态成员函数;

静态数据成员被定义后,必须对它进行初始化,初始化在类体外进行,一般放在该类的实现部分最合适,也可以放在其他位置,例如,放在主函数前面等;

静态数据成员初始化与该类的构造函数和析构函数无关;

在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员。

7:

关于友元的描述中,()是错误的。

友元函数是成员函数,它被说明在类体内

B. 

友元函数可直接访问类中的私有成员

友元函数破坏封装性,使用时尽量少用

D. 

友元类中的所有成员函数都是友元函数

8、;

对类的构造函数和析构函数描述正确的是()。

A.构造函数可以重载,析构函数不能重载

B.构造函数不能重载,析构函数可以重载

构造函数可以重载,析构函数也可以重载

D.构造函数不能重载,析构函数也不能重载

9、类的析构函数的作用是()。

A.一般成员函数B.类的初始化C.对象初始化D.删除对象

10、假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。

A.OneClass(OneClassp);

B.OneClass&

(OneClassp);

C.OneClass(OneClass&

p);

D.OneClass(OneClass*p);

11、为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。

A.publicB.protectedC.privateD.static

12、下面对静态数据成员的描述中,正确的是()。

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以在类体内进行初始化

C.静态数据成员不能受private控制符的作用

D.静态数据成员可以直接用类名调用

13、下面对静态数据成员的描述中,正确的是()。

A.静态数据成员是类的所有对象共享的数据

B.类的每一个对象都有自己的静态数据成员

C.类的不同对象有不同的静态数据成员值

D.静态数据成员不能通过类的对象调用

C++试题1

(1)已知下列语句中的x和y都是int型变量,其中不正确的语句是

A)y+=++x;

B)++x+=y;

C)y=x++;

D)x++=y;

(2)若x是一个bool型变量,y是一个值为100的int型变量,则表达式!

x&

&

y>

0的值[]。

A)为trueB)为falseC)与x的值相同D)与x的值相反

(3)执行语句序列

intn;

cin>

n;

switch(n){

case1:

case2:

'

X'

;

case3:

case4:

Y'

break;

default:

Z'

}

时,不可能出现的情况是[]。

A)显示:

XB)显示:

YC)显示:

ZD)显示:

XY

(4)执行语句序列

intx;

x;

if(x>

250)cout<

if(x<

elsecout<

XYD)显示:

XX

(5)要定义一个具有5个元素的一维数组,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中不正确的是[]。

A)intvect[]={30,50,-88};

B)intvect[]={30,50,-88,0,0};

C)intvect[5]={30,50,-88};

D)intvect[5]={30,50,-88,0,0};

(6)已知某应用系统中已经定义了函数fun,其原形是intfun(char='

A'

则下列函数中,可以在同一系统中加以重载的是[]。

A)intfun();

B)intfun(char);

C)intfun(char,int);

D)intfun(char,double=0.0);

(7)若指针p定义为constchar*p="

Luchy!

则[]。

A)p所指向的数据不可改变,p在定义时可以不初始化。

B)p所指向的数据不可改变,p在定义时必须初始化。

C)p本身不可改变,p在定义时可以不初始化。

D)p本身不可改变,p在定义时必须初始化。

(8)已知数组A和指针p定义为:

intA[20][10],*p;

,要使p指向A的首元素,正确的赋值表达式是[]。

A)p=&

A或p=A[0][0]B)p=A或p=&

A[0][0]

C)p=&

A[0]或p=A[0][0]D)p=A[0]或p=&

(9)已知函数func的原形是

doublefunc(doouble*pd,int&

ri);

变量x和y的定义是

doublex;

inty;

把x和y分别作为第一参数和第二参数来调用函数func,正确的调用语句是[]。

A)func(x,&

y);

B)func(&

x,y);

C)func(&

x,&

D)func(x,y);

(10)要使字符串变量str具有初值"

Lucky"

,正确的定义语句是[]。

A)charstr[]={'

L'

'

u'

c'

k'

y'

};

B)charstr[5]={'

C)charstr[]="

D)charstr[5]="

(11)已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是[]。

A)intMAT[][10]B)intMAT[3][]

C)intMAT[10][3]D)intMAT[][]

(12)若指针p定义为char*="

(13)在下列表达式中,与下标引用A[i][j]不等效的是[]。

A)*(A+i+j)B)*(A[i]+j)C)*(*(A+i)+j)D)(*(A+i))[j]

(14)要使语句p=newdouble[20];

能够正常执行,变量p应定义为[]。

A)doublep[20];

B)doublep;

C)double(*p)[20];

D)double*p;

(15)执行下列语句序列

structAA{intival;

charcval;

structBB{intival;

AAra;

structCC{intival;

BBrb;

CCrc={66,{rc.ival+1,rc.ra.ival+1},{69,{70,71}}};

rc.ival<

rc.ra.ival<

rc.rb.ra.ival;

后,显示在屏幕上的是[]。

A)66,67,68B)67,68,69C)66,67,70D)67,69,70

(16)类的默认的无参构造函数[]。

A)在任何情况下都存在

B)仅当未定义无参构造函数时存在

C)仅当未定义有参构造函数时存在

D)仅当未定义任何构造函数时存在

(17)语句ofstreamf("

SALARY.DAT"

ios:

noreplace|ios:

binary);

的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[]。

A)若文件存在,将文件指针定位于文件尾;

若文件不存在,建立一个新文件。

B)若文件存在,将其截为空文件;

若文件不存在,打开失败。

C)若文件存在,将文件指针定位于文件首;

D)若文件存在,打开失败;

(18)执行下列语句序列

structCC{

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

当前位置:首页 > 外语学习 > 日语学习

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

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