C++复习题库+C++试题库.doc

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

C++复习题库+C++试题库.doc

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

C++复习题库+C++试题库.doc

C++习题

1.下列字符列中,可作为C++语言程序自定义标识符是()。

A.switchB.fileC.breakD.do

2.运算符+、<=、=、%中,优先级最低的运算符是()。

A.+B.<=C.=D.%

3.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是短路

()。

A.0,0B.0,1C.1,0D.1,1

4.字符串”vm\x43\\\np\102qu”的长度是()。

A.8B.9C.16D.17

5.设有代码“inta=6;”,则执行了语句“a+=a-=a*a;”后,变量a的值是

()。

A.0B.-24C.-40D.–60

6.voidmain()

{intx=-1;

do

{x=x*x;}

while(!

x);}

下列说法正确的是()。

A.是死循环B.循环执行两次

C.循环执行一次D.有语法错误

7.下面有关for循环的正确描述是()。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

8.下面程序段(从右到左x<=2为真1时

)。

x=3;

do

{y=x--;

if(!

y){cout<<”x”;continue;}

cout<<”#”;}

while(1<=x<=2);(1<=x)=1,0bool型

A.将输出##B.将输出##*

C.是死循环D.含有不合法的控制表达式

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

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

B.用户可以直接调用所有标准库函数

C.用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数

D.用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数

 

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

voidmain()

{ chars[]="12134211",*p;

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

for(p=s;*p;p++)2434

switch(*p)

{

case'1':

v1++;

case'3':

v3++;

case'2':

v2++;

default:

v4++;

}

cout<

}

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

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

A.structstudentB.structstudent

  { intno;{intno;

charname[16];charname[16];

}st1,st2;};

structstudentst1,st2;

C.structstudentD.structstudent

{intno;{intno;

charname[16];charname[16];

};};

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.若有以下定义,则对字符串的操作错误的是(strcat(s1,s2):

adds2tos1’stail.

)。

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

A.strcpy(s,t);Copyttos

B.cout<

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

C

B

D

C

D

C

D

B

B

B

B

C

A

 

16

17

18

19

20

21

22

23

24

25

C

A

A

D

B

B

C

C

D

A

公共基础知识

  一、选择题

 (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:

:

fun"<  }

};

A)fun();B)Base.fun();C)Base:

:

fun();D)Base->fun();

(9)有如下程序:

#include

classBASE{

  charc;

public:

  BASE(charn):

c(n){}

  virtual~BASE(){cout<c};

classDERIVED:

publicBASE{

  charc;

public:

  DERIVED(charn):

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

  ~DERIVED(){cout<c};

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.类与对象的关系和数据类型与变量的关系相似

答案:

C

分析:

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

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

A.voidX:

:

X(),voidX:

:

~X()

B.X:

:

X(参数),X:

:

~X()

C.X:

:

X(参数),X:

:

~X(参数)

D.voidX:

:

X(参数),voidX:

:

~X(参数)

答案:

B

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

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

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

答案:

C

分析:

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

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

)。

A.classP{B.classP{

public:

public:

intx=15;intx;

voidshow(){cout<

};}

C.classP{D.classP{

intf;public:

};inta;

f=25;voidSeta(intx){a=x;};

答案:

D

分析:

在类体内不可对数据成员进行初始化;类定义结束时需用分号;只有类中的成员函数才能存取类中的私有数据。

 

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

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

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

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

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

答案:

D

分析:

如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;拷贝构造函数只有一个参数,并且是该类对象的引用;拷贝构造函数的名字与类同名,并且不被指定返回类型;拷贝构造函数是一种成员函数。

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

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

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

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

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

答案:

B

分析:

静态成员可分为静态数据成员和静态成员函数;静态数据成员被定义后,必须对它进行初始化,初始化在类体外进行,一般放在该类的实现部分最合适,也可以放在其他位置,例如,放在主函数前面等;静态数据成员初始化与该类的构造函数和析构函数无关;在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员。

 

7:

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

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

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

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

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

答案:

A

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

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

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

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

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

答案:

A

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

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

答案:

D

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

A.OneClass(OneClassp);B.OneClass&(OneClassp);

C.OneClass(OneClass&p);D.OneClass(OneClass*p);

答案:

C

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

A.publicB.protectedC.privateD.static

答案:

A

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

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

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

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

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

答案:

B

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

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

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

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

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

答案:

A

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:

cout<<'X';

case3:

case4:

cout<<'Y';break;

default:

cout<<'Z';}

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

A)显示:

XB)显示:

YC)显示:

ZD)显示:

XY

(4)执行语句序列

intx;

cin>>x;

if(x>250)cout<<'X';

if(x<250)cout<<'Y';

elsecout<<'X';

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

A)显示:

XB)显示:

YC)显示:

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=&A[0][0]

(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,&y);D)func(x,y);

(10)

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

当前位置:首页 > 工程科技 > 能源化工

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

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