惠州学院C++考试复习题.docx

上传人:b****5 文档编号:30084070 上传时间:2023-08-04 格式:DOCX 页数:15 大小:20.18KB
下载 相关 举报
惠州学院C++考试复习题.docx_第1页
第1页 / 共15页
惠州学院C++考试复习题.docx_第2页
第2页 / 共15页
惠州学院C++考试复习题.docx_第3页
第3页 / 共15页
惠州学院C++考试复习题.docx_第4页
第4页 / 共15页
惠州学院C++考试复习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

惠州学院C++考试复习题.docx

《惠州学院C++考试复习题.docx》由会员分享,可在线阅读,更多相关《惠州学院C++考试复习题.docx(15页珍藏版)》请在冰豆网上搜索。

惠州学院C++考试复习题.docx

惠州学院C++考试复习题

惠州学院C++复习题

一、选择题

1、C++的源文件的扩展名是_____C____。

A、hB、objC、cppD、exe

2、下列选项能够作为C++变量名的是___C____。

A、falseB、1_abcC、_funcD、x*y

3、下列叙述中,错误的是____B____。

A、true是一个逻辑型常量B、"S"是一个字符型常量

C、120是一个整型常量  D、3.1415926是一个实型常量

4、在C++语言中,变量所分配的内存空间大小____C____。

A、均为一个字节B、由用户自己定义C、由变量的类型决定D、是任意的

5、在C++中,对于break和continue说法错误的是__A____。

A、break语句只能用于循环语句中

B、循环语句中的continue语句是结束本次循环

C、continue语句只能用于循环语句中

D、循环语句中的break语句是结束整个循环

6、以下说法中正确的是_____C_____。

A、C++语言程序总是从第一个定义的函数开始执行

B、在C++语言程序中,要调用的函数必须在main()函数中定义

C、C++语言程序总是从main()函数开始执行

D、C++语言程序中的main()函数必须放在程序的开始部分

7、for(intx=0,y=0;!

x&&y<=15;y++)语句执行循环的次数是___C_____

A、0B、15C、16D、无限循环

8、若有以下语句:

charx[]=”abcde”;

chary[]={‘a’,‘b’,‘c’,‘d’,‘e’};

则正确的说法是_____B______。

A、x数组和y数组的元素个数相同B、x数组的元素比y数组的元素多

C、x数组的元素比y数组的元素少D、x数组与y数组等价

9、数组作为函数的形参时,把数组名作为实参,传递给函数的是____A____。

A、该数组的首地址B、该数组的元素个数

C、该数组中的各元素值D、该数组的大小

10、下列运算符中,两个指针变量不可以进行的运算是_____D_____

A、>B、

11、下面有关内联函数的说法,错误的是____C______

A、内联函数主要解决程序的运行效率问题

B、内联函数的定义必须出现在内联函数第一次被调用之前

C、内联函数中可以包括各种语句

D、对内联函数使用inline定义

12、已知intx=20;下列表示引用的方法中,___B____是正确的。

A、int&y=20;B、int&y=x;C、inty=&x;D、int&y=&x;

13、若定义了函数int*function(),则函数function的返回值为____B_____。

A、整型B、整型的地址C、指向函数的指针D、函数的地址

14、关于C++类的说法,正确的是____C_____。

A、只能有一个构造函数和一个析构函数

B、可以有一个构造函数和多个析构函数

C、可以有多个构造函数和一个析构函数

D、可以有多个构造函数和多个析构函数

15、关于类和对象不正确的说法是_____C_____

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

C、一个类的对象只有一个D、一个对象必属于某个类

16、在类的作用域外部,可以直接访问的成员有____C_____

A、所有类成员B、private或protected的类成员

C、public的类成员D、public或private的类成员

17、当一个派生类继承一个基类时,基类中的保护成员成为派生类的____B_____

A、公有成员B、保护成员C、私有成员D、友元

18、假定MyClass为一个类,则执行MyClassa[3],*p[2];语句时,调用该类构造函数______B____次。

A、2B、3C、4D、5

19、下列的各类函数中,____C_____不是类的成员函数。

A、构造函数B、析构函数C、友元函数D、拷贝构造函数

20、下列关于虚函数的说法,错误的是_____C______。

A、定义虚函数的关键字是virtual

B、派生类可以重定义基类的虚函数

C、构造函数可以定义为虚函数

D、析构函数可以定义为虚函数

二、判断题

1、C++规定,在编写代码时不能将几条语句写在同一行。

(×)

2、在C++中,每条语句必须用分号结尾。

(√)

3、不同类型的数据在运算时会自动将级别低的类型转换为级别高的类型,然后再进行运算。

(√)

4、主函数不能带有参数。

(×)

5、在C++中,数组的下标一定是从0开始。

(√)

6、如果某个函数有返回值,那么在函数体内一定有return语句。

(√)

7、函数的形式参数和实际参数不可以同名。

(×)

8、构造函数在创建类对象时自动调用执行。

(√)

9、派生类对象不可以访问基类的私有成员。

(√)

10、抽象类是指包含纯虚函数的类。

(√)

三、填空题

1、如果一个函数没有返回值时,需要用关键字____void_____说明。

2、定义静态变量需要使用关键字____static______。

3、x≠y且i≤j的C++表达式为________x!

=y&&i<=j_______。

4、在C++中参数传递除了采用值传递方式,还可以使用___引用______传递方式和_____地址_______传递方式。

5、动态内存分配机制使用new申请存储空间,使用___delete____释放存储空间。

6、用class定义一个类时,类成员默认访问权限是_____私有的____。

7、面向对象的基本特征是抽象、__封装___、___继承___和____多态_____。

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

第1题#include

usingnamespacestd;

voidmain()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=15)break;

if(b%3==1)

b+=3;

}

cout<

}

第2题

#include

usingnamespacestd;

#defineN10

voidfun(char*str1,char*str2)

{

inti;

charsource[N];

intj=0;

while(str1[j]!

='\0')

{

source[j]=str1[j];

j++;

}

source[j]='\0';

for(i=0;i

{

str2[i]=str1[j-i-1];

}

str2[i]='\0';

}

voidmain(){

chars1[N]="ABCDEFGH";

chars2[N];

fun(s1,s2);

cout<

}

第3题

#include

classP{

inta,b;

public:

P(inti=0,intj=0){a=i;b=j;}

voidprint(){cout<

};

voidmain()

{

Pp1(10,20),p2;

p1.print();

p2.print();

}

第4题

#include

usingnamespacestd;

classtest

{

private:

intnum;

floatf1;

public:

test();

test(int,float);

intgeti(){returnnum;}

floatgetf(){returnf1;}

~test(){cout<<"Destructoriscalled!

"<

};

test:

:

test(){

cout<<"defaultconstructoriscalled!

"<

num=0;f1=0.0;

}

test:

:

test(intn,floatf){

cout<<"constructoriscalled!

"<

num=n;f1=f;

}

voidmain()

{

test*p=newtest(5,3.6);

cout<geti()<<"\t"<getf()<

deletep;

}

第5题

#include

#include

classBase{

private:

charmsg[30];

intn;

public:

Base(chars[],intm=0){

n=m;

strcpy(msg,s);

}

voidoutput(void){cout<

};

classDerived:

publicBase

{private:

intn;

public:

Derived(intm=1):

Base("Base",m)

{n=m;}

voidoutput(void)

{cout<

Base:

:

output();

}

};

voidmain(){

BaseB("BaseClass",1);

DerivedD;

B.output();

D.output();

}

五、根据要求完成程序

1、下面函数的功能是求数组中最大元素和数组的平均值,请填写完整。

#include

usingnamespacestd;

voidmain()

{

inta[10]={2,5,4,9,12,8,7,15,6,10};

intmax=a[0];

intsum=a[0];

____doubleavg_____

for(inti=1;___i<10__;i++)

{

sum=sum+a[i];

if(a[i]>max)

_____max=a[i]_______

}

avg=sum/10.0;

cout<<"最大的数是:

"<

cout<<"平均值是:

"<

}

2、下面函数是对整型数组进行递增排序(采用冒泡排序),请填写完整。

voidbubble_up(intlist[],intcount)//count是数组需要排序的元素个数

{

for(inti=0;i

for(intj=0;___j

if(list[j]>list[j+1])

{

inttmp=list[j+1];

__list[j+1]=list[j]___

list[j]=tmp;

}

}

3、下面程序的功能是去掉字符串的前后空格,请填写完整。

#include

usingnamespacestd;

char*mytrim(_char*s__)

{

char*p=s;

//去掉字符串前面的空格

while(*p=='')

p++;

char*q=s;

//将p指向的字符串赋值给q

while(*p!

='\0')

{

__*q=*p__

q++;

__p++__

}

//去掉字符串后面的空格

while(*q=='')

{

__q--___

}

*(++q)='\0';

return__s_;

}

voidmain()

{

charstr[]="hello,welcometoc++!

";

cout<<"去掉空格字符之前的字符串为:

["<

cout<<"去掉空格字符之后的字符串为:

["<

}

程序的运行结果如下:

去掉空格字符之前的字符串为:

[hello,welcometoc++!

]

去掉空格字符之后的字符串为:

[hello,welcometoc++!

]

六、程序设计

设有D3Point类声明如下:

classD3Point

{

public:

D3Point();//D3Point类的缺省构造函数

D3Point(intx,inty,intz);//D3Point类的有参构造函数

D3Point(D3Point&p);//D3Point类的拷贝构造函数

~D3Point(){cout<<"destructoriscalled!

"<

voidMove(intdx,intdy,intdz);

voidShow();

private:

intX,Y,Z;//D3Point类的私有数据成员

};

在类的声明外完成各个成员函数的定义,要求如下:

(1)缺省构造函数初始化X,Y,Z为0,并输出defaultconstructoriscalled!

(2)有参构造函数使用形参x,y,z初始化X,Y,Z,并输出constructoriscalled!

(3)拷贝构造函数使用形参p初始化X,Y,并输出copyconstructoriscalled!

(4)Move函数的功能是修改Point的X,Y,Z的值,X加dx,Y加dy,Z加dz

(5)Show函数的功能是显示Point的X,Y,Z的值,以X=?

Y=?

Z=?

形式显示。

参考答案

一.单选题

1

2

3

4

5

6

7

8

9

10

C

C

B

C

A

C

C

B

A

D

11

12

13

14

15

16

17

18

19

20

C

B

B

C

C

C

B

B

C

C

二.判断题

1

2

3

4

5

6

7

8

9

10

×

×

×

三.填空题

(1)

(2)

(3)

(4)

(5)

void

static

x!

=y&&i<=j

引用

地址

(6)

(7)

(8)

(9)

(10)

delete

Private(私有的)

封装

继承

多态

四.阅读程序,写出程序运行结果

1

2

6

HGFEDCBA

3

4

10,20

0,0

constructoriscalled

53.6

destructoriscalled

5

1baseclass

1

1base

五.程序填空

(1)

floatavg;或者doubleavg;

(2)

i<10或i<=9

(3)

max=a[i];

(4)

j

(5)

list[j+1]=list[j];

(6)

char*s

(7)

*q=*p;

(8)

p++

(9)

q--;

(10)

s

六、编程题

D3Point:

:

D3Point()//定义D3Point类的缺省构造函数

{

X=0;

Y=0;

Z=0;

cout<<"defaultconstructoriscalled!

"<

}//3分

D3Point:

:

D3Point(intx,inty,intz)//定义D3Point类的有参构造函数

{

X=x;

Y=y;

Z=z;

cout<<"constructoriscalled!

"<

}//3分

D3Point:

:

D3Point(D3Point&p)//定义D3Point类的拷贝构造函数

{

X=p.X;

Y=p.Y;

Z=p.Z;

cout<<"copyconstructoriscalled!

"<

}//3分

voidD3Point:

:

Move(intdx,intdy,intdz)

{//公有成员函数Move的定义

X+=dx;

Y+=dy;

Z+=dz;

}//3分

voidD3Point:

:

Show()

{//公有成员函数Show的定义

cout<<"X="<

}//3分

 

WelcomeTo

Download!

!

!

 

欢迎您的下载,资料仅供参考!

 

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

当前位置:首页 > 小学教育 > 数学

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

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