教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 高等教育> 院校资料> C++期末考试题

C++期末考试题

上传者:罗延科
|
上传时间:2015-04-24
|
次下载

C++期末考试题

C++期末考试题及答案

一、 填空题(25小题,共50分)

(以下每小题1分,共10分)

1. 在C++中,函数的参数有两种传递方式,它们是值传递和 地址或指针或引用传递 。

2. 当一个成员函数被调用时,该成员函数的 this指针 指向调用它的对象。

3. 在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对两个有相同名字的数据成员进行访问时,如果没有 作用域分隔符限定时 ,对此数据成员的访问将出现歧义。

4. 拷贝构造函数使用 引用 作为参数初始化创建中的对象。

5. 在公有继承的情况下,基类数据成员在派生类中的访问权限 保持不变 。

6. 描述命题"A小于B或小于C"的表达式为 A<B||A<C 。

7. 用new申请某一个类的动态对象数组时,在该类中必须能够匹配到 没有形参的或缺省参数 构造函数,否则应用程序会产生一个编译错误。

8. 静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象 共享 。

9. 为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与 与最近的if 配对。

10. 设"int a=3,b=4,c=5;",表达式"(a+b)>c&&b==c"的值是 0 。

(以下每小题2分,共20分)

11. 面向对象的程序设计有四大特征,它们是抽象、封装、 继承 、 多态 。

12. 在Visual C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型 不同 ;在基类和派生类中,成员函数的覆盖是指 派生类成员函数与在基类被覆盖的成员函数名、参数个数、参数类型和返回值类型均相同 。

13. 构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与类名相同,而析构函数名是在类名前加一个~、 析构函数没有参数 、 析构函数可以定义为虚函数 。

14. 动态联编要满足两个条件,它们是 被调用的成员函数是虚函数 、 用指针或引用调用虚函数 。

15. 在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为 抽象类 ,定义该类至少具有一个 纯虚函数 。

16. 在C++类中,const关键字可以修饰对象和成员函数,const对象不能 被修改 ,const成员函数不能 修改类数据成员 。

17. 举出C++中两种用户自定义的数据类型: 类 、 枚举 。

18. C++中没有字符串类型,字符串是通过 字符数组 来表示的,每一个字符串都有一个结尾字符 \0 。

19. C++中没有输入输出语句,输入输出是通过 输入输出库 实现的, 写出一条打印整型变量n的输出语句:cout<<n;

20. 举出C++中两种代码复用的方式: 继承 、 复用 。

(以下每小题4分,共20分)

21. 下面程序的运行结果是 3 。

#include <stdio.h>

void main()

{

char a='a',b='j';

float x;

x=(b-a)/('F'-'A');

printf("%d\n",(int)(3.14*x));

}

22. 下面程序的运行结果是2 5 8 11 14。

#include "iostream.h"

void main( )

{

int i=1;

while (i<=15){

i++;

if (i%3!=2) continue;

else cout <<"i="<<i<<endl;

}

}

23. 下面程序的运行结果是________。

#include "iostream.h"

class test

{

private:

int num;

float fl;

public:

test( );

int getint( ){return num;}

float getfloat( ){return fl;}

~test( );

};

test::test( )

{

cout << "Initalizing default" << endl;

num=0;fl=0.0;

}

test::~test( )

{

cout << "Desdtructor is active" << endl;

}

void main( )

{

test array[2];

cout << array[1].getint( )<< " " << array[1].getfloat( ) <<endl;

}

Initalizing default

Initalizing default

0 0

Desdtructor is active

Desdtructor is active

24. 下面程序的运行结果是________。

#include <iostream.h>

class A

{

public:

A(){cout<<"A::A() called.\n";}

virtual ~A(){cout<<"A::~A() called.\n";}

};

class B:public A

{

public:

B(int i){

cout<<"B::B() called.\n";

buf=new char;}

virtual ~B()

{

delete []buf;

cout<<"B::~B() called.\n";

}

private:

char *buf;

};

void fun(A *a)

{

delete a;

}

void main()

{

A *a=new B(15);

fun(a);

}

A::A() called.

B::B() called.

B::~B() called.

A::~A() called.

25. 下面程序的运行结果是________。

#include <stdio.h>

int a[ ]={1,3,5,7,9};

int *p[ ]={a,a+1,a+2,a+3,a+4};

void main( )

{

printf("%d\t%d\t%d\n",a[4],*(a+2),*p[1]);

printf("%d\t%d\t%d\n",**(p+1)+a[2],*(p+4)-*(p+0),*(a+3)%a[4]);

}

9 5 3

8 4 7

二、 问答题(每小题5分,共20分)

1. 若程序员没有定义拷贝构造函数,则编译器自动生成一个缺省的拷贝构造函数,它可能会产生什么问题?

解答要点:当对象含有指针数据成员,并用它初始化同类型的另一个对象时,缺省的拷贝构造函数只能将该对象的数据成员复制给另一个对象,而不能将该对象中指针所指向的内存单元也复制过去。这样,就可能出现同一内存单元释放两次,导致程序运行出错。

2. 简述成员函数、全局函数和友元函数的差别。

解答要点:以下几点必须说清楚:

成员函数是在类内部定义的,作用域在类的内部,成员函数可以访问类的数据成员(公有、保护和私有数据成员),可以调用该类的其它成员函数(公有、保护和私有成员函数),可以调用全局函数。如果友元函数是另一个类的公有成员函数,则该类的成员函数也只能通过那个类的对象调用,不能调用那个类的保护和私有成员函数。非本类成员函数(其它类成员函数或全局函数)可以通过该类的对象访问该类的公有数据成员和调用该类的的公有成员函数。

不是在类中定义的成员函数都是全局函数。

如果某一个函数(全局函数或类的成员函数)定义为另一个类的友元函数,需要在那个类中用friend关键字声明,友元函数并不是类的成员,它的定义自然是在那个类的外面。

3. 简述结构化的程序设计、面向对象的程序设计的基本思想。

解答要点:结构化的程序设计将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。

4. 结构struct和类class有什么异同?

解答要点:struct和class都可以定义类,但是缺省访问权限说明时,struct的成员是公有的,而class的成员是私有的。在C++中,struct可被class代替。

三、找出下面程序(或程序段)中的语法错误,并予以纠正(每小题4分,共8分)

(1)程序功能是倒序输出各给定的字符串。

#include <stdio.h>

void main()

{

char str[5][ ]={"First","Second","Third","Forth","Fifth"};

char *cp[ ]={str[4],str[3],str[2],str[1],str[0]};

int i;

while(i<=5)

{

printf("%c ",*(cp+i));

i++;

}

}

① "char str[5][ ]={"First","Second","Third","Forth","Fifth"};"应为

"char str[5][10 ]={"First","Second","Third","Forth","Fifth"};"

② "while(i<=5)"应为"while(i<5)"

③ "printf("%c ",*(cp+i));"应为"printf("%s",*(cp+i));"

④ "int i;"应为"int i=0;"

(2)程序功能是将各个平方根值放入数组中。

#include <stdio.h>

void main()

{

int max,a,i;

scanf("%d%d",max,a);

double x[max];

for (i=0;i<max;i++)

x=sqrt(a*i);

}

① 增加"#include <math.h>"

② "scanf("%d%d",max,a);"应为"scanf("%d%d",&max,&a);"

③ "double x[max];"改为:

"double *x=new double[max];"

"delete [ ]x;"

四、(8分)下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数

class shape{

public:

virtual float area( )=0;

};

float total(shape *s[ ],int n)

{

float sum=0.0;

for(int i=0;i<n;i++)

sum+=s->area( );

return sum;

}

class Triangle:public Shape

{

public:

Triangle(double h,double w){H=h;W=w;}

double Area() const{return H*W*0.5;}

private:

double H,W;

};

class Rectangle:public Shape

{

public:

Rectangle(double h,double w){H=h;W=w;}

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注视频

七年级英语下册 上海牛津版 Unit9
冀教版小学数学二年级下册第二单元《有余数除法的简单应用》
冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
沪教版牛津小学英语(深圳用)五年级下册 Unit 1
小学英语单词
冀教版小学英语四年级下册Lesson2授课视频
苏科版数学 八年级下册 第八章第二节 可能性的大小
北师大版数学 四年级下册 第三单元 第二节 小数点搬家
第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
化学九年级下册全册同步 人教版 第22集 酸和碱的中和反应(一)
外研版英语七年级下册module3 unit2第二课时
冀教版小学英语五年级下册lesson2教学视频(2)
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
《空中课堂》二年级下册 数学第一单元第1课时
《小学数学二年级下册》第二单元测试题讲解
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
河南省名校课堂七年级下册英语第一课(2020年2月10日)
冀教版英语五年级下册第二课课程解读
外研版英语三起5年级下册(14版)Module3 Unit1
冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
二年级下册数学第一课
苏科版数学七年级下册7.2《探索平行线的性质》
外研版英语七年级下册module3 unit2第一课时
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,辽宁省
沪教版八年级下册数学练习册一次函数复习题B组(P11)
七年级英语下册 上海牛津版 Unit5