C++语言程序设计练习题.docx

上传人:b****1 文档编号:1218792 上传时间:2023-04-30 格式:DOCX 页数:33 大小:26.82KB
下载 相关 举报
C++语言程序设计练习题.docx_第1页
第1页 / 共33页
C++语言程序设计练习题.docx_第2页
第2页 / 共33页
C++语言程序设计练习题.docx_第3页
第3页 / 共33页
C++语言程序设计练习题.docx_第4页
第4页 / 共33页
C++语言程序设计练习题.docx_第5页
第5页 / 共33页
C++语言程序设计练习题.docx_第6页
第6页 / 共33页
C++语言程序设计练习题.docx_第7页
第7页 / 共33页
C++语言程序设计练习题.docx_第8页
第8页 / 共33页
C++语言程序设计练习题.docx_第9页
第9页 / 共33页
C++语言程序设计练习题.docx_第10页
第10页 / 共33页
C++语言程序设计练习题.docx_第11页
第11页 / 共33页
C++语言程序设计练习题.docx_第12页
第12页 / 共33页
C++语言程序设计练习题.docx_第13页
第13页 / 共33页
C++语言程序设计练习题.docx_第14页
第14页 / 共33页
C++语言程序设计练习题.docx_第15页
第15页 / 共33页
C++语言程序设计练习题.docx_第16页
第16页 / 共33页
C++语言程序设计练习题.docx_第17页
第17页 / 共33页
C++语言程序设计练习题.docx_第18页
第18页 / 共33页
C++语言程序设计练习题.docx_第19页
第19页 / 共33页
C++语言程序设计练习题.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++语言程序设计练习题.docx

《C++语言程序设计练习题.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计练习题.docx(33页珍藏版)》请在冰点文库上搜索。

C++语言程序设计练习题.docx

C++语言程序设计练习题

C++语言程序设计练习题

一、填空题

1、C++预言中的每条基本语句以__________作为结束符,每条复合语句以_________作为结束符。

2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入值的标准输入流对象______。

3、当不需要函数返回值时,则应把该函数类型定义为_____。

4、执行”cout<<143<<’+’<<18<<’=’<<143+18<

5、执行”coun<<”ning”<<”chen”<<38<

6、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为。

7、C++源程序文件的缺省扩展名为,由C++源程序文件编译而成的目标文件的缺省扩展名为由C++目标文件连接而成的可执行文件的缺省扩展名为。

8、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用或符号作为分隔符。

9、十进制数25表示成符合C++八进制和十六进制数分别为和。

10、在C++语言中,用转义字符序列或操纵符表示输出一个换行符。

11、执行”cout<

12、执行”cout<

13、已知’A’~’Z’的ASCII码为65~90,当执行”intx=’H’+5;”语句后x的值为。

14、已知’A’~’Z’的ASCII码为65~90,当执行”charch=16*5+2;cout<

15、假定一个枚举型的定义为”enumRA{xa,xb,xc,xd};”,则执行”cout<<”xc=”<

16、假定一个枚举型的定义为”enumRB{ab,ac=3,ad,ae}x=ad;”,则x的值为。

17、char、short和int类型的大小分别为、和。

18、float和double类型的大小分别为和。

19、十进制数128和-3.26的类型分别为和。

20、若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字。

21、使用const语句定义一个标识符常量时,则必须对它同时进行。

22、执行”intx=45,y=16;cont<

23、假定x=10,y=6,则表达式2+x++和++y*3的值分别为和。

24、算术表达式

对应的C++表达式为。

25、算术表达式

+4b-1对应的C++表达式为。

26、表达式float(25)/4和int(14.6)%5的值分别为和。

27、表达式a=a+b表示成复合赋值表达式为。

28、表达式a=a+1表示成增量表达式为。

29、增量表达式++y表示成赋值表达式为。

30、关系表达式(x==0)的等价表达式为。

31、关系表达式(x!

=0)的等价表达式为。

32、关系表达式x+y>z的相反表达式为。

33、逻辑表达式x>5&&x<10的相反表达式为。

34、逻辑表达式a>b||b==5的相反表达式为。

35、若x=15,y=40,则x>y和x<=y的逻辑值分别为和。

36、假定x=5,则执行”a=(x?

10:

4*2);”语句后a的值为。

37、假定a=5,则条件表达式”a==0?

10:

20”的值为。

38、执行”typedefDataType;”语句后,在使用int定义整型变量的地方都可以使用来定义整型变量。

39、设x和y均为bool量,则x&&y为真的条件是。

40、设x和y均为bool量,则x||y为假的条件是。

1.假定一个一维数组的定义为“char*a[5];”,则该数组所含元素的个数为_____,所占存储空间的字节数为______。

2.假定一个二维数组的定义为“inta[4][6];”,则该数组所含元素的个数为_____,所占存储空间的字节数为______。

3.假定一个二维数组的定义为“chara[8][8];”,则该数组所含元素的个数为_____,所占存储空间的字节数为______。

4.执行“typefloatABC[10];”语句把ABC定义为具有10个单精度元素的______。

5.在函数外定义的变量称为______变量,若没有被初始化则系统隐含对它赋初值_____。

6.函数中的形参变量的初值由_____该函数时获得。

7.函数调用时,实参向形参的传送分为____和____两种传送方式。

8.变量分为全局和局部两种,_______变量没有赋初值时,其值是不确定的。

1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为。

2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为。

3、假定p所指对象的值为25,p+1所指对象的值为50,则执行”(*p)++;”语句后,p所指对象的值为。

4、假定p所指对象的值为25,p+1所指对象的值为50,则执行”*(p++);”语句后,p所指对象的值为。

5、假定a是一个指针数组,则a+I所指对象的地址比a地址大字节。

6、假定a是一个一维数组,则a[i]的指针访问方式为。

7、假定a是一个二维数组,则a[i][j]的指针访问方式为。

8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为。

9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为。

10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为。

11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大字节。

12、假定a为一个字符数组名,则元素a[8]的字节地址为。

13、假定a为一个整型数组名,则元素a[4]的字节地址为。

14、假定一个结构类型的定义为”structA{inta,b;shortc;A*d;};”,则该类型的大小为字节。

15、假定一个结构类型的定义为”structB{inta[8];char*b;};”,则该类型的大小为字节。

16、假定一个结构类型的定义为”structD{inta;union{intb;doublec;};D*d[3];};”,则该类型的大小为字节。

17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为。

18、假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为。

19、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为。

1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的使其初始化。

2、当一个类对象被撤消时将自动调用该类的。

3、对基类数据成员的初始化是通过执行派生类构造函数中的来实现的。

4、对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的实现。

5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先,后,最后为。

6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成的析构函数定义体的执行,接着完成的析构函数定义体的执行,最后完成的析构函数定义体的执行。

7、设px是指向一个类动态对象的指针变量,则执行”deletepx;”语句时,将自动调用该类的

8、当一个类对象离开它的作用域时,系统将自动调用该类的。

9、假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为。

10、假定AB为一个类,则执行”ABa[10];”语句时,系统自动调用该类构造函数的次数为

11、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为。

12、假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为。

13、若需要把一个函数”voidF();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:

14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:

15、假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为。

16、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为。

17、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为。

18、假定AB为一个类,则该类的拷贝构造函数的声明语句为。

19、对类对象成员的初始化是通过执行构造函数中的完成的。

20、对于类中定义的成员,其隐含访问权限为,对于结构中定义的成员,其隐含访问权限为。

21、一个类的友元函数或友元类能够通过成员操作符访问该类的。

22、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:

23、在C++流类库中,根基类为。

24、在C++流类库中,输入流类和输出流类的名称分别为和。

25、若要在程序文件中进行标准输入输出操作,则必须在开始的#inlude命令中使用头文件。

26、若要在程序文件中进行文件输入输出操作,则必须在开始的#inlude命令中使用头文件。

27、当从字符文件中读取回车和换行两个字符时,被系统看作为一个。

28、当使用ifsream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为,当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为。

29、当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含文件。

二、选择题

(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(double*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);

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

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

C)charstr[]="Lucky";D)charstr[5]="Lucky";

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

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

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

(13)若指针p定义为char*constp="Luchy!

";则[]。

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

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

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

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

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

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

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

A)doublep[20];B)doublep;

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

(16)执行下列语句序列

structAA{intival;charcval;};

structBB{intival;AAra;};

structCC{intival;AAra;BBrb;};

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

cout<

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

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

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

A)在任何情况下都存在

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

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

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

(18)语句ofstreamf("SALARY.DAT",ios:

:

noreplace|ios:

:

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

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

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

C)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。

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

(19)执行下列语句序列

structAA{intival;charcval;};

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+1;

cout<ival<<','<

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

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

(20)类的默认的拷贝构造函数[]。

A)在任何情况下都存在

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

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

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

(21)语句ofstreamf("SALARY.DAT",ios:

:

nocreate|ios:

:

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

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

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

C)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。

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

22.由C++目标文件连接而成的可执行文件的缺省扩展名为_______。

AcppBexeCobjDlik

23.在下面的一维数组定义中,哪一个有语法错误。

________

Ainta[]={1,2,3};Binta[10]={0};Cinta[];Dinta[5];

24.在下面的函数声明中,存在着语法错误的是__D_____。

AvoidBC(inta,int);BvoidBD(int,int);

CvoidBE(int,int=5);DintBF(intx;inty);

25.假定AB为一个类,则该类的拷贝构造函数的声明语句为_______。

AAB&(ABx);BAB(ABx)CAB(AB&);DAB(AB*x)

26.对于结构中定义的成员,其隐含访问权限为________。

ApublicBprotectedCprivateDstatic

27.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方

式为_______。

Aios:

:

inBios:

:

outCios:

:

in|ios:

:

outD没有

28、设a和b均为bool型变量,则a||b为假的条件是()

A)它们均为真B)其中一个为真C)其中一个为假D)它们均为假

29、声明或定义一个内联函数时,必须在函数开始使用保留字()

A)staticB)constC)inlineD)extern

30、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为()

A)n-2B)n-1C)nD)n+1

31、对于类中定义的成员,其隐含访问权限为()

A)staticB)publicC)protectedD)private

32、当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为()

A)ios:

:

inB)ios:

:

outC)ios:

:

in|ios:

:

outD)ios:

:

binary

33、下面的函数声明中,哪一个”voidBC(inta,intb);”是的重载函数?

A)intBC(inta,intb)B)voidBC(inta,charb)

C)floatBC(inta,intb,intc=0)D)voidBC(inta,intb=0)

34、假定a为一个数组名,则下列的哪一种表示有错误()

A)a[i]B)*a++C)*aD)*(a+1)

35、假定AB为一个类,px为指向该类动态对象数组的指针,该数组的长度为n,则执行”delete[]px;”语句时,自动调用该类的析构函数的次数为()

A)0B)1C)nD)n+1

 

三、写出下列程序运后的输出结果

1.

#include

voidSB(charch){

switch(ch){

case'A':

case'a':

cout<<"well!

";break;

case'B':

case'b':

cout<<"good!

";break;

case'C':

case'c':

cout<<"pass!

";break;

default:

cout<<"bad!

";break;

}

}

voidmain(){

chara1='b',a2='C',a3='f';

SB(a1);SB(a2);SB('A');

cout<

}

2.

#include

#include

doubleSD(inta,intb,charop){

doublex;

switch(op){

case'+':

x=double(a)+b;break;

case'-':

x=double(a)-b;break;

case'*':

x=double(a)*b;break;

case'/':

if(b)x=double(a)/b;

elseexit

(1);

break;

default:

exit

(1);

}

returnx;

}

voidmain(){

intx=20,y=12;

cout<

cout<

cout<

}

3.

#include

voidmain(){

ints=0;

for(inti=1;i<6;i++)

s+=i*i;

cout<<"s="<

}

4.

#include

voidmain(){

ints=0;

for(inti=1;;i++){

if(s>50)break;

if(i%3==0)s+=i;

}

cout<<"i,s="<

}

5.

#include

voidmain(){

ints1=

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

当前位置:首页 > 人文社科 > 法律资料

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

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