高级语言程序设计C++复习题及答案Word下载.docx

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

高级语言程序设计C++复习题及答案Word下载.docx

《高级语言程序设计C++复习题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计C++复习题及答案Word下载.docx(34页珍藏版)》请在冰点文库上搜索。

高级语言程序设计C++复习题及答案Word下载.docx

(c<

’B’);

执行该程序段后,x的值为(   )。

①ture②false③0④1

11、下面程序的输出结果是(   )。

#include<

iostream>

usingnamespacestd;

intmain()

{inta=6,b=6;

if(a>

5)

a-=1;

b+=1;

else

a+=1;

b-=1;

cout<

<

”a=”<

endl;

”b”<

b<

return0;

}

①57②a=5b=7③a=5b=6④编译时出错

12、下面程序的输出结果是(   )

{a-=1;

}

{a+=1;

①57②a=5b=7③a=5b=6④a=6b=5

13、下面程序的输出结果是(   )

{intx=6,y=8;

if(x++<

6)

++y<

if(x>

--y<

y++<

return0;

①8②7③9④编译时出错

14、下面程序的输出结果是(   )

if(++x<

①88②97③78④编译时出错

15、下面程序的输出结果是(   )

#include<

usingnamespacestd;

f(inta)

{intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

intmain()

{inta=2,i;

for(i=0;

i<

3;

i++)

cout<

f(a)<

①789②777③71013④7911

16、下面程序的输出结果是(   )

voidfun(intx,inty,intz)

{z=x×

x+y×

y;

{intz=68;

fun(5,2,z);

z;

①0②29③68④无定值

17、下面程序的输出结果是(   )

intfun(inta,intb)

{return(++a×

b++);

intmain()

{intx=3,y=4,z=5,r;

r=fun(fun(x,y),z);

r<

x<

y<

①8534②6034③12645④8545

18、下面的程序中,当输入4、2时,其输出结果是(   )

longfib(intn)

{if(n>

2)return(fib(n-1)+fib(n-2));

elsereturn(n);

{inti;

”请输入一个整数:

”;

cin>

>

fib(i)<

①51②42③52④62

19、下面程序的输出结果为(   )

unsignedfunc(unsignednum)

{unsignedd=1,k;

do{

k=num%10;

num/=10;

}while(num);

return(k);

{unsignedn=26;

func(n);

①2②4③6④5

20、下面程序的输出结果为(   )

func(inta,intb)

{intc;

c=a×

return(c);

{intx=6,y=7,z=8,r;

r=func((x--,y,x×

y),z--);

r;

①294②245③280④416

21、下面程序的输出结果为(   )

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

ints=0;

for(inti=1;

for(intj=0;

j<

=i;

j++)

s+=a[i][j];

s<

①12②14③15④13

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

voidfun(int*x,int*y)

{

*x<

”“<

*y<

”“;

x=3;

y=4;

{intx=1,y=2;

fun(&

y,&

x);

①2143②1212③2112④1234

23、下面程序的输出结果是(   )

{inta[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;

*--p;

① 编译出错 ② a[4]的地址 ③5④3

24、关于类和对象不正确的说法是(   )

1类是一种类型,它封装了数据和操作 ②对象是类的实例

③一个类的对象只有一个       ④一个对象必属于某个类

25、下列的各种函数中,()不是类的成员函数。

①构造函数②析构函数③友元函数④拷贝初始化构造函数

26、作用域运算符的功能是()。

①标识作用域的级别的②指出作用域的范围的

③给定作用域的大小的④标识某个成员是属于哪个类的

27、关于成员函数特征的下述描述中,()是错误的。

①成员函数一定是内联函数②成员函数可以重载

2成员函数可以设置参数的默认值④成员函数可以是静态的

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

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

②派生类至少有一个基类

3派生类的成员除了它自已的成员外,还包含了它的基类的成员

4派生类中继承的基类成员的访问权限在派生类中保持不变

29、对基类和派生类的描述中,()是错的。

①派生类是基类的具体化②派生类是基类的子集

③派生类是基类定义的延续④派生类是基类的组合

30、派生类的构造函数的成员初始化列表中,不能包含()。

①基类的构造函数②派生类中子对象的初始化

③基类的子对象初始化④派生类中一般数据成员的初始化

31、设置虚基类的目的是()。

①简化程序②消除二义性③提高运行效率④减少目标代码

32、定义重载函数的下列要求中,()是错误的。

①要求参数的个数不同②要求参数中至少有一个类型不同

③要求参数个数相同时,参数类型不同④要求函数的返回值不同

33、关于子类型的描述中,()是错的。

①子类型就是指派生类是基类的子类型

②一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型

③在公有继承下,派生类是基类的子类型

④子类型关系是不可逆的

34、下列对重载函数的描述中,()是错的。

①重载函数中不允许使用缺省参数

②重载函数中编译系统根据参数表进行选择

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

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

35、已知一个类A,()是指向类A成员函数的指针。

假设类A有3个公有成员:

Voidf1(int),voidf2(int)和inta。

1A*p;

②intA:

:

*pc=&

A:

a;

③voidA:

*pa();

④A*pp;

36、已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用()是

正确的

1p=f1;

②p=A:

f1;

③p=A:

f1();

④p=f1();

37、已知:

p是一个指向类A数据成员m的指针,a1是类A的一个对象。

如果要给m赋值

为5,()是正确的。

1a1.p=5;

②a1->

p=5;

③a1.*p=5;

④*a1.p=5;

38、已知类A中一个成员函数说明如下:

voidSet(A&

a)

其中,A&

a的含意是()。

1指向类A的指针为a

②将A的地址值赋给变量Set

③a是类A的对象的引用,用来作函数Set()的形参

④变量A与a按位相与作为函数Set()的参数

39、有以下类的说明,请指出错误的地方

classCSample

{

private:

inta=2.5;

(A)

CSample;

(B)

public:

CSample(intval);

(C)

~CSample;

(D)

};

40、下面程序的输出结果是(   )

classpoint

public:

voidpoi(intpx=10,intpy=10)

{x=px;

y=py;

getpx()

{returnx;

getpy()

{returny;

private:

intx,y;

};

pointp,q;

p.poi();

q.poi(15,15);

cout<

“p点的坐标是:

”<

p.getpx()<

“,”;

p.getpy()<

endl;

“q点的坐标是:

q.getpx()<

q.getpy()<

①p点的坐标是:

10,10②p点的坐标是:

0,0

q点的坐标是:

15,15q点的坐标是:

15,15

③p点的坐标是:

0,0④p点的坐标是:

10,10

0,0q点的坐标是:

答案

1.(3)2.(3)3.

(1)4.

(2)5.(3)6.(4)7.(4)(3)8.(3)9.(4)10.(4)

11.(4)12.(4)13.(3)14.

(1)15.

(1)16.(3)17.

(1)18.(3)19.

(1)20.(3)

21.

(1)22.

(1)23.(3) 24.(3)25(3)26(4)27

(1)28(4)29

(2)30(3)

31

(2)32(4)33

(1)34

(1)35(3)36

(2)37(3)38(3)39(A)40

(1)

二、判断题

1、任何字符常量与一个任意大小的整型数进行加减都是有意义的。

(   )

2、在命名标识符中,大小写字母是不加区分的。

3、引用是某个变量的别名。

对引用的操作,实质上就是对被引用的变量的操作。

4、typedef类型定义是原来定义一些C++中所没有的新类型。

5、枚举变量的取值收到该枚举变量所对应的枚举表中枚举常量的局限。

6、已知:

inta(5);

表达式(a=7)+a具有二义性。

7、预处理命令是在进行编译时首先执行的,然后再进行正常编译。

8、条件编译命令只在编译时才有用。

9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。

10、switch语句中必须有break语句,否则无法退出switch语句。

11、while循环语句的循环体最少执行一次。

12、只有for循环的循环体可以是空语句,其它种类循环的循环体不能用空语句。

13、当循环体为空语句时,说明该循环体不做任何工作,只起延时作用。

14、在多重循环中,内重循环的循环变量引用的次数比外重的多。

(  )

15、在C++中,说明函数时要用函数原型,即定义函数时的函数头部分。

16、如果一个函数没有返回值,定义时需用void说明。

17、使用内置函数是以增大空间开销为代价的。

18、返回值类型、参数个数和类型都相同的函数也可以重载。

19、在设置了参数默认值后,调用函数的对应实参就必须省略。

20、函数形参的作用域是该函数的函数体。

21、定义外部变量时,不用存储类说明符extern,而声明外部变量时用它。

22、内部静态类变量与自动类变量作用域相同,但是生存期不同。

23、静态类标识符在它的作用域之外是不存在的。

24、使用关键字class定义的类中默认的访问权限是私有的(private)。

()

25、指向对象的指针和指向类的成员的指针在表达形式上是不相同的。

26、一维对象指针数组的每个元素应该是某个类的对象的地址值。

27、一个类的构造函数中可以不包含对其子对象的初始化。

28、派生类是从基类派生出来,它不能再生成新的派生类。

29、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。

30、单继承情况下,派生类中对基类成员的访问也会出现二义性。

31、构造函数可以被继承。

32、析构函数不能被继承。

33、解决多继承情况下出现二义性的方法之一是使用成员名限定法。

34、子类型是不可逆的。

1.×

2.×

3.√4.×

5.√6.√7.√8.√9.×

10.×

11.×

12.×

13.×

14.√

15.√16.√17.√18.×

19.×

20.√21.√22.√23.×

24√25√26√

27×

28×

29×

30×

31×

32√33√34√

三、填空题

1、下面程序是计算1~10之间偶数之和,请填空:

{inta,b,i;

a=0;

b=0;

①;

{a+=i;

②;

③;

”偶数之和为:

;

2、下面程序是输出100内能被3整除且个位数是6的所有整数,请填空:

{inti,j;

{j=i×

10+6;

if(②)

continue;

④;

3、结构体类型与数组不同,数组中的数据的类型是   的,结构体的成员的数据类型

是    ,共用体类似于结构体,但是共用体的部分成员是          ,枚举类型是      的集合。

4、常量与变量的区别是:

常量在程序运行中值    ,因此它的值在编译时便进

行;

而变量的值是可以    ,    类型的变量存储的是变量的地址,不是变量的   。

5、函数的形参在未被调用前    分配空间,函数的形参的    要和实参相同。

若    不同,则按一般规则转换,若    不同,则      。

6、函数的递归分为      ,     ,递归由     、    两部分

组成。

一般说,一个问题的解决要依靠另一问题的解决,而另一个问题的解决方法与上一问题的解决方法相同,则可用    处理。

7、下面程序的功能是:

求a的b次方,并输出,请填空。

doublefun(doublea,intb)

doublez;

for(i=1,z=1;

=b;

②;

{doublea;

intb;

”请输入a的值:

”;

③;

”请输入b的值:

④;

⑤;

8、下面函数是检验输入的字符是大写还是小写或者不是26个字母,请填空。

①;

fun(charch)

if((ch>

=’a’)&

(ch<

=’z’)

i=1;

else{if(②)

i=2;

elsei=3;

③;

”请输入一个字符:

ch;

i=fun(ch);

if(i==1)

”是小写字母:

ch<

elseif(④)

”是大写字母:

elsecout<

”是其它字符:

}

9、下面是字符串拷贝程序,请填空。

voidccopy()

{charch1[]=”goodmorning!

”,ch2[20];

inti=0,j=0;

while(①)

{ch2[j]=②;

③;

}

10、下面函数是寻找二维数组中每一行的最大值,请填空。

#defineN5

#defineM5

voidmax(inta[N][M])

{inti,j,p;

for(i=0;

N;

{①;

for(j=1;

M;

if(a[i][p]<

a[i][j])

②;

”:

p<

11、下面程序是将字符逆序化,请填空。

{charch[]=”hello,boy!

charc;

inti=0,j=strlen(ch);

for(;

②;

i++,j--)

{c=ch[i];

ch[j-1]=c;

}  

12、下面程序的功能是将矩阵转置,请填空。

#include<

#defineI3

#defineJ4

voidinvert(inta[I][J])

intb[J][I];

”arraya:

I;

{for(j=0;

J;

{cout<

a[i][j]<

①;

”arrayb:

i+=)

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

当前位置:首页 > 农林牧渔 > 林学

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

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