C复习题库C试题库_第1页
C复习题库C试题库_第2页
C复习题库C试题库_第3页
C复习题库C试题库_第4页
C复习题库C试题库_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++习题

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

A.switchB.fileC.break

D.do

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

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

3.设变量m,n,a,b,c,d均为0,执行(m=a=b)||(n=c=d)

后,m,n的值是()(,批注[wl]:短路

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

1

4.字符串"vm\x43|\\nR\102yuw的长度是()»

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

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

变量a的值是()o批注[w2]:

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

60

6.voidmain()

{intx=-l;

do

{x=x*x;}

while(!x);}

下列说法正确的是()o

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

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

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

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

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

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

D.for循环的循环体语句中,可以包含多条语句,但必需用

大括号括起来

8.下面程序段().批注[w3]:从右到左x<=2为真1时

x=3;

{y=x—;

if(!y){cout«wx”;continue:)

cout«w#";}

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

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

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

9.以下正确的说法是(

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

B.用户可以干脆调用全部标准库函数

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

系统库函数

D.用户可以通过文件包含叮嘱将系统库函数包含到用户源文件中,

然后调用系统库函数

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

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

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

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

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

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

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

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

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

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

12.若有语句inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a4lJ()

不是对a数组元素的正确引用(其中0WK10)。

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

D.*(&a[i])

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

itinclude<iostream.h>

voidmain()

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

intvl=0,v2=0,v3=0,v4=0;vlv2v3v4

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

switch(*p)

case'I':vl++;

case'3':v3++:

case'2):v2++;

default:v4++:

cout«vl«*,*«v2«*,*«v3«*,*«v4«endl;

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

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

A.structstudentB.structstudent

{intno;{intno;

charname[16];charname[16];

}stl,st2;}:

structstudentstl,st2;

C.structstudentD.structstudent

{intno;{intno;

charname[16];charname[16];

structstl,st2;studentstl,st2;

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

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

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

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

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

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

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){};批注[L6]:纯虚函数,不用定义

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

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.若有以下定义,则对字符串的操作错误的是()o批注[w7J:slrcal(sl,s2):

chars[10]="Program",t[]="test";adds2tosTstail.

A.strcpy(s,t);B.cout«strlen(s);批注[L8J:Copyttos

C.strcat("this",t);D.cin»t;

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

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

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

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

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

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

C.类成员的定义必需是成员变量定义在前,成员函

数定义在后

D.类的成员定义必需放在类定义体内部

参考答案:

123456789111111

012345

BCCBDCDCDBBBBCA

1111222222

6789012345

CAADBBCCDA

公共基础学问

一、选择题

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

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

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

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

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

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

(3)结构化程序设计的一种基本方法是批注[w9]:

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)0B)5C)6D)无次数

(4)考虑函数原型voidtest(inta,intb=7,char="*"),下批注[L10]:默认参数格式

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

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)应在下列程序划线处填入的正确语句是()

ttinclude

classBase

{public:

voidfun(){cout«"Base::fun”<};

classDerived:publicBase

{voidfun()

{file:〃显示调用基类的函数fun()

cout«zrDerived::fun”<}

A)fun();B)Base,fun();C)Base::fun();D)Base->fun();

(9)有如下程序:

#include

classBASE{

charc;

public:

BASE(charn):c(n){}

virtuaPBASEO{cout<c};

classDERIVED:publicBASE{

charc;

public:

DERIVED(charn):BASE(n+l),c(n){}

"DERIVED(){cout<c};

intmain()

{DERIVED("X");

return0;

)

执行上面的程序将输出()批注[wll]:

A)XYB)YXC)XD)Y

(10)在进行完任何C++流的操作后,都可以用C++流的有关成

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

是()

A)failB)eofC)badD)good

-:选择题

1-5:BBCCC

6-10:DBCAB

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

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:rX(参数)

答案:B

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

不行带参数、不行重载。

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

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

答案:C

分析:当一个对象定义时,C++编译系统自动调用构造函数建立该对

象并进行初始化;当一个对象的生命周期结束时,C++编译系统自动

调用析构函数注销该对象并进行善后工作;

4、下列表达方式正确的是()0批注[wl2]:

A.classP{B.classP{

public:public:

intx=15;intx;

voidshow(){cout«x;}void

show(){cout«x;}

C.classP{D.classP{

intf;public:

};inta;

f=25;voidSeta

(intx){a=x;};

答案:D

分析;在类体内不行对数据成员进行初始化;类定义结束时需用分号;

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

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

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

个默认的

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

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

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

答案: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.OneClassfe

(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、下面对静态数据成员的描述中,正确的是()o

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的值[]o

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

(3)执行语句序列

intn;

cin»n;

switch(n){

case1:

case2:cout<〈'X';

case3:

case4:cout«,;break;

default:cout«,Z*;}

时,不行能出现的状况是[]o

A)显示:XB)显示:YC)显示:ZD)显示:

XY

(4)执行语句序列

intx;

cin»x;

if(x>250)cout«,X*;

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

elsecout«,X';

时,不行能出现的状况是[]o

A)显示:XB)显示:YC)显示:XYD)显示:XX

(5)要定义一个具有5个元素的一维数组,并使其各元素的初值依

次是30,50,-88,0和0,则下列定义语句中不正确的是[]0

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

vect[]={30,50,-88,0,0};

C)intvect[5]={30,50,-88}:D)int

vect[5]={30,50,-88,0,0};

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

fun(char='A,);则下列函数中,可以在同一系统中加以重载的是

[]0

A)intfun();B)intfun(char);

C)intfun(char,int);D)intfun(char,double=0.0);

(7)若指针p定义为constchar*p="Luchy!";贝!j[

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

B)p所指向的数据不行变更,p在定义时必需初始化。

0p本身不行变更,p在定义时可以不初始化。

D)p本身不行变更,p在定义时必需初始化。

(8)已知数组A和指针p定义为:intA[20][10],*p;,要使p指向

A的首元素,正确的赋值表达式是[]«

A)p=&A或p=A[O][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,正确的调

用语句是[]o

A)func(x,&y);B)func(&x,y);C)func(&x,&y);D)

func(x,y);

(10)要使字符串变量str具有初值"Lucky”,正确的定义语句是

[批注〔W13J:debug.A)没有休止符

A)charstr[]={'L','u','c','k','y'};B)char

str[5]={'L','u','c','k','y'};

C)charstr[]=*Lucky*:D)charstr[5]=*Lucky*;

(11)已知某函数的一个形式参数被说明为MAT[3][10],在下列说

明中,及此等效的形参说明是[]o

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

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

(12)若指针p定义为char*="Luchy!”;则[]。

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

B)p所指向的数据不行变更,p在定义时必需初始化。

0p本身不行变更,p在定义时可以不初始化。

D)p本身不行变更,p在定义时必需初始化。

(13)在下列表达式中,及下标引用不等效的是[]o

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

(*(A+i))[j]

(14)要使语句p=newdouble[20];能够正常执行,变量p应定义为

[]o

A)doublep[20];B)doublep;

C)double(*p)[20];D)double*p;

(15)执行下列语句序列批注[wl4J:

structAA{intival;chareval;};

structBB{intival;AAra;};

structCC{intival;AAra;BBrb;};

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

cout«rc.ival«,,,«rc.ra.ival«*,,«rc.rb.ra.ival;

后,显示在屏幕上的是1]o

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

67,69,70

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

A)在任何状况下都存在

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

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

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

(17)语句ofstreamf("SALARY.DAT",ios::noreplace|

ios::binary);的功能是建立流对象f,并试图打开文件SALARY.DAT

并及之连接,而且[

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

个新文件。

B)若文件存在,将其截为空文件;若文件不存在,打开失败。

0若文件存在,将文件指针定位于文件首;若文件不存在,建立一

个新文件。

D)若文件存在,打开失败;若文件不存在,建立一个新文件。

(18)执行下列语句序列

structAA{intival;chareval;};

structBB{intival;AAra;};

structCC{intival;AA*ra;BBrb;};

CCrc={66,newAA,{69,{70,71}}};

rc.ra->ival=rc.ival+1;

rc.ra->cval=rc.ra->ival+l;

cout«rc.ival«*,,«rc.ra->ival«*,'«rc.rb.ra.ival:

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

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

66,67,68

(19)类的默认的拷贝构造函数[]o

A)在任何状况下都存在

B)仅当未定义拷贝构造函数时存在

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

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

(20)语句ofstreamf(*SALARY.DAT*,ios::nocreate|

ios::trunc);的功能是建立流对象f,并试图打开文件SALARY.DAT

并及之连接,而且[]o

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

个新文件。

B)若文件存在,将其截为空文件;若文件不存在,打开失败。

0若文件存在,将文件指针定位于文件首;若文件不存在,建立一

个新文件。

D)若文件存在,打开失败;若文件不存在,建立一个新文件。

答案:/5:DDACA6〜10:CADBC

H〜15:ADADC16〜20:DDBBB

C++试题2

1.下列变量名中,()是合法的。

A.56AB._abcC.d-PtrD.while

2.下列各种运算符市,()优先级最高。

批注[W15J:

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.字符串“\t\v\\\0which\n”的长度是()o

A.4B.10C.9D.字符串有非法字符,输出值

不确定

5.设a=2,b=3,c=2;计算a+=b*=(++b-c++)中a、b、c的值()。

A.8、6、2B.2、4、2C.10、8,3D.5、

3、3

6.已知:inti=5,下列do-while循环语句的循环次数为(

do{cout«i—«endl;

i—;

}while(i!=0);

A.0B.1C.5D.无限

7.下面关于循环语句的描述中,()是错误的。

A.循环体内可以包含有循环语句

B.循环体内必需同时出现break语句和continue语句

C.循环体内可以出现选择语句

D.循环体内可以是空语句

8.下面程序段()»批注[W16J:

x=3;

do

{y=x—;

if(!y){cout«wx”;continue;}

cout«w#";}

while(x>=l&&x<=2);

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

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

9.在函数的定义格式中,下面各组成部分中,()是可以省略的。批注[W17]:

A.函数名B.函数体C.函数数据类型说明D.函

数参数

10.在函数的引用调用时,实参和形参应当是运用()。

A.变量值和变量B.地址值和指针C.变量值和引用D.地

址值和引用

11.以下关于文件操作的叙述中,不正确的是()»

A.打开文件的目的是使文件对象及磁盘文件建立联系

B.文件读写过程中,程序将干脆及磁盘文件进行数据交换

C.关闭文件的目的之一是保证将输出的数据写入硬盘文件

D.关闭文件的目的之一是释放内存中的文件对象

12.若有语句inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a4!)()

不是对a数组元素的正确引用(其中0Wi<10)。批注[W181:

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

D.*(&a[i])

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

itinclude<iostream.h>

voidmain()

{chars[]="abcdefbcde",*p=s;

intvl=0,v2=0,v3=0,v4=0;

for(p:*p;p++)

switch(*p)

case'a':vl++;break;

case'b':v3++;break;

case'e':v2++;break;

default:v4++;

cout«vl«*,"«v2«*»"«v3«*,"«v4«endl;

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

14.下列结构体定义,正确的是0批注[W19J:

A.record{B.structrecord

(

intno;intno;

charnum[16];charnum[16];

floatscore;floatscore;

C.structrecord{D.structrecord(

intno;intno

charnum[16];charnum[16]

floatscore;floatscore

15.下列是构造函数的特点,()是错误的。批注[w20]:

A.构造函数是一种成员函数,它具有一般成员函数的特点

B.构造函数的名称及其类名相同

C.构造函数必需指明其类型

D.一个类中可定义一个或多个构造函数

16.关于友元函数的描述中,()是错的。批注[w21J:

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

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

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

D.友元类中的全部成员函数都是友元函数

17.下列对派生类的描述中,()是错误的。

A.一个派生类可以作为另一个派生类的基类

B.派生类至少应有一个基类

C.基类中成员访问权限继承到派生类中都保持不变

D.派生类的成员除了自己定义的成员外,还包含了它的基类

成员

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

A.构造函数B.虚函数C.友元函数D.析构函

19.关于下列虚函数的描述中,()是正确的。

A.虚函数是一个static存储类的成员函数

B.虚函数是一个非成员函数

C.基类中说明白虚函数后,派生类中将其对应的函数可不必

说明为虚函数

D.派生类的虚函数及基类的虚函数应具有不同的类型或个数

批注

20.以下有关静态数据成员函数的叙述不正确的是()o[w22]:

A.静态成员函数属于整个类

B.对静态成员函数的引用不允许运用对象名

C.在静态成员函数中不能干脆引用类的非静态成员

D.运用类名可以干脆调用其静态成员函数

21.下列有关运算符重载的描述中,()是正确的。批注[w23]:

A.运算符重载可变更其优先级B.运算符重载不变更其

语法结构

C.”甚算符重载可变更其结合性

D.运算符重载可变更其

操作数的个数

22.对new运算符的下列描述中,()是错误的。

A.它可以动态创建对象和对象数组

B.用它创建对象数组时必需指定初始值

C.用它创建对象时要调用构造函数

D.用它创建的对象可以运用运算符delete来释放

23.下列是为字符数组赋字符串的语句组,其中错误是()。

w

A.chars[10];s="program”;B.chars[]==program;批注[L24]:数组名字是指针常量,不行变更

C.chars[10]=wHello!w;D.chars[10];strcpy(s,99

hello!”);

24.当调用函数时,实参是一个一维数组名a,则向函数传送的是

()o

A.数组的长度B.数组全部元素的值

C.数组元素a[0]的值D.数组元素a[0]的地址

25.下列有关类的说法不正确的是()o

A.对象是类的一个实例

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

C.一个类只能有一个对象

D.类及对象的关系和数据类型及变量的关系相像

答案:1〜5:BADBC6~10:D即DC

11〜15:BBACC16〜20:ACBCB

21〜25:BBADC

1:指出下列对定义重载函数的要求中,哪些是错误的提法。

A.要求参数的个数相同。B.要求参数中至少有一个

类型不同。

C.求函数的返回值不同。D.要求参数的个数相同时,

参数类型不同。

答案:C

2:下列运算符中,()运算符在C++中不能重载。

A.?:B.[]C.newD.&&

答案:A

3:下面关于友元的描述中,错误的是()»

A.友元函数可以访问该类的私有数据成员

B.一个类的友元类中的成员函数都是这个类的友元函数

C.友元可以提高程序的运行效率

D.类及类之间的友元关系可以继承

答案:D

4:下述静态成员的特性中,()是错误的。

A.静态成员函数不能利用this指针

B.静态数据成员要在类体外进行初始化

C.引用静态数据成员时,要在静态数据成员名前加<

类名〉和作用域运算符

D.静态数据成员不是全部对象所共有的

答案:D

5:关于虚函数的描述中,()是正确的。

A.虚函数是一个静态成员函数

B.虚函数是一个非成员函数

C.虚函数既可以在函数说明时定义,也可以在函数实

现时定义

D.派生类的虚函数及基类中对应的虚函数具有相同的

参数个数和类型

答案:D

6:下列关于动态联编的描述中,错误的是。。

A.动态联编是以虚函数为基础

B.动态联编是运行时确定所调用的函数代码的

C.动态联编调用函数操作是指向对象的指针或对象引用

D.动态联编是在编译时确定操作函数的

答案:D

8:下面4个选项中,()是用来声明虚函数的。

A.virtualB.publicC.usingD.false

答案:A

9:编译时的多态性可以通过运用()获得。

A.虚函数和指针B.重载函数和析构函数C.虚函数和对象

D.虚函数和引用

答案:A

10:关于纯虚函数和抽象类的描述中,错误的是()o

A.纯虚函数是一种特别的虚函数,它没有具体的实现

B.抽象类是指具体纯虚函数的类

C.一个基类中说明有纯虚函数,该基类派生类确定不再是抽象类

D.抽象类只能作为基类来运用,其纯虚函数的实现由派生类给出

答案:B

11:下列描述中,()是抽象类的特征。

A.可以说明虚函数B.可以进行构造函数重载C.可以定义

友元函数D.不能说明其对象

答案:D

12:以下()成员函数表示虚函数。

A.virtualintvf(int);B.voidvf(int)=0;

C.virtualvoidvf()=0;D.virtualvoidvf(int){);

答案:D

13:假如一个类至少有一个纯虚函数,那么就称该类为(A

A.抽象类B.虚函数C.派生类D.以上都不对

答案:A

14:要实现动态联编,必需通过()调用虚函数。

A.对象指针B.成员名限定C.对象名

D.派生类名

答案:A

15:下面描述中,正确的是()o

A.virtual可以用来声明虚函数

B.含有纯虚函数的类是不行以用来创建对象的,因为它是虚基类批注[L25]:抽象类不能创建对象,只能运用该类作为

C.即使基类的构造函数没有参数,派生类也必需建立构造函数其他类的基类

D.静态数据成员可以通过成员初始化列表来初始化

答案:A

16:已知inta,*pa=&a;输出指针pa十进制的地址值的方法是

()o

批注[w26J:

A.cout«pa;B.cout«*pa;

C.cout«&pa:D.cout«long(&pa);

答案:D

17:关于read。函数的下列描述中,()是对的。

A.函数只能从键盘输入中获得字符串

B.函数所获得的字符多少是不受限制的

C.该函数只能用于文本文件的操作中

D.该函数只能按规定读取所指定的字符数

答案:D

18:下列一维数组定义正确的是()o批注件27]:数组维数只能包含整形字面值常量、枚举

A.x=6;intnum[x];B.constintx=6;float常量或者常量表达式

a[x]:

B.constfloatx=6;intb[x];D.constintx=6;intc[x];

答案:B,

19:下面选项中等价的是()o

A.inta[2][3]={l,0,2,2,4,5}及inta[2][]={1,0,2,2,4,5};

B.inta[][3]={1,0,2,2,4,5}及inta[2][3]={1,0,2,2,4,5};

C.inta[2][3]={3,4,5}及inta[][3]={3,4,5};

D.inta[2][3]={0,1}及inta[2][3]={{0},{1}};

答案:B,

20:下面程序的输出结果是()o

#include<iostream.h>

voidmain()

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

intsum=0;

for(intI=1;I<3;I++)

for(intj=0:j<=I;j++)

sum+=a[I][j];

cout«sum«endl;

A.12B.14C.15D.13

答案:A

21:下列数组的定义中,()是错误的。

A.charcal[]={'m','n'};B.char

ca2="name";

C.charca3[4]=wyour";D.int

array[]={1,2,3,4);

答案:C

22:下面程序的输出结果是()o

#include<iostream.h>

#includewstring.hw

voidmain()

{chara口="welcome",b[]="well";

strcpy(a,b);

cout«a«endl;

A.weHomeB.wellomC.well

D.wellwe

答案:C

23:下面关于数组的说法正确的是()o

A.它及一般变量没什么区分B.它的元素的数据类型可以相同,

也可以不同

C.它用数组名标识其元素D.数组的元素的数据类型是相同

D

24:下列说法正确的是()。

A.字符型数组及整型数组可通用

B.字符型数组及字符串其实没什么区分

C.当字符串放在字符数组中,这时要求字符数组长度比字符

串长1个单元,因为要放字符串终结符'\0,

D.字符串的输出可以用它所存储的数组来输出,也可以字符

串的形式整体输出,结果没区分

C

25:给出下面定义:

chara[]="abed";

charb[]={&b'c'd'};

则下列说法正确的是()。

A.数组a及数组b等价B.数组a和数组b的长度

相同

C.数组a的长度大于数组b的长度D.数组a的长度小于数组

b的长度

A

26:下面程序的输出结果为()=批注1»'28):

#include<iostream.h>

#include<string.h>

voidmain()

{charst[20]="hello\0\t\\w;

cout«strlen(st);

cout«sizeof(st)«endl;

cout«st;

A.520B.1220C.520

D.1120

Hellohello\0\t\\hello\t

hello\

A

27:下面程序的输出结果是()。

#include"iostream,h”

voidmain()

{intn[2],I,j,k=2;

for(>0;I<k;I++)

for(j=0;j<k;j++)

n[j]=n[I]+l;

cout«n[j-2];

A.不确定的值B.3C.2D.1

A

(1)下面概念中,不属于面对对象方法的是.

A)对象、消息B)继承、多态C)类、封装D)过程调用

答案:D

学问点:面对对象的程序设计方法、对象、方法、属性及继承及多态

评析:面对对象方法是一种运用对象、类、封装、继承、多态和消息

等概念来构造、测试、重构软件的方法。面对对象方法从对象动身,

发展出对象、类、消息、继承等概念。

(2)下列描述中不正确的是o批注lw29]:

A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出

C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋

答案:C

学问点:对数组的理解

评析:C语言规定只能逐个引用数组元素而不能一次引用整个数组。

字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选

项C的说法是不正确的。

(3)以下程序的输出结果是o

main()

{inti,x[3][3]={9,8,7,6,5,4,3,2,1),*p=&x[l][1];

for(i=0;i<4;i+=2)printf(*%d\p[i]);

A)52B)51C)53D)97

答案C

学问点:通过指针引用数组元素

评析:题中*是指将数组x的数组元素的地址

赋值给指针变量P,使P指向这个数组元素,那么p[0]

即为指针变量P当前所指向的数组元素的值。具体执行时

如下所示:

i=0时,输出p[0],也就是x[l][l],输出是5;

i=2时,输出p[2],即p[2+0],也就是x[2][0],输出是3o

批注(

(4)以下程序的运行结果是。W30]:

ttinclude"stdio.h"

main()

inta[]={1,2,3,4,5,6,7,8,9,10,11,12);

int*p=a+5,*q=NULL;

*q=*(p+5);

printf("%d%d\n*,*p,*q);

A)运行后报错B)66C)612D)55

答案:A

学问点:通过指针引用数组

评析:题目中没有给q支配存储单元,只是简洁地给它赋了一个值,

所以程序的运行结果是611NULLpointerassignment,也就是运

行后报错。

(5)若已定义:inta[9],*p=a;并在以后的语句中未变更p的值,

不能表示a[l]地址的表

达式是。批注(w31):

A)p+1B)a+1C)a++D)++p

答案C

学问点:数组地址的表示

评析:数组名是指针常量,是个固定的指针,不能对数组名赐予一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论