C++期末考试题及答案(2)

2019-03-28 15:48

3、 函数重载与函数覆盖有什么不同,它们与多态有什么关系? 解答要点:

函数重载是指函数名相同,而函数的参数个数或类型不同;覆盖是指在派生类中成员函数与基类成员函数的函数名、参数个数、类型与返回值均相同;C++中正是通过虚函数的覆盖,实现多态的功能。

4、 C++继承是如何工作的? 解答要点:

继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成员,也可以隐藏和覆盖基类的成员。对于公有继承,基类成员的访问权限在派生类保持不变。

5、 类与对象有什么区别? 解答要点:

类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。

三、运行结果为: D::virfun() called.

四、填空

① char * ② argv[1] ③ *str++

五、(8分) 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。 const int SIZE=27; class Stack { public:

Stack():tos(0){}; void Push(char ch); char Pop(); private:

char stck[SIZE]; int tos; };

void Stack::Push(char ch) {

if(tos==SIZE)

cout<<\ else{

stck[tos]=ch;tos++; } }

char Stack::Pop() {

if(tos==0){

cout<<\ return 0; } tos--;

return stck[tos]; }

六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。 void inverse(int *a, int n) { }

int i,*p; p=new int[n]; for(i=0;i<=n-1;i++) p[i]=a[i]; for(i=0;i<=n-1;i++) a[i]=p[n-i-1]; delete []p;

七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。请完成该函数。

int str_count(char *substr, char *str) { }

int count=0; char *pChar;

if(substr==NULL||str==NULL) return count; while(*str!='\\0'){ pChar=substr; while(*pChar==*str){ pChar++; if(*pChar=='\\0'){ count++;break; } else str++;

}//Match while(*pCh...) statement str++;

}//Match while(*str...) statement return count;


C++期末考试题及答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:专业技术人员沟通与协调能力的提升

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: