- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c复习试卷1
课程名称: 面向对象程序设计 ( A卷 闭卷)
适用专业年级:计算机科学与技术07级 考试时间: 100分钟
一、判断题,正确的打√,错误的打×(每小题1分,共10分)
1.在C++中,也可使用struct来声明类,但在该类中不能声明成员函数。( × )
2.在定义二维数组时,语句“int a[][4]={{1,2,3},{4}};”是不正确的。
( × )
3.采用 inline 定义内联函数时,在对于函数代码少、频繁调用的情况下特别有效。(√ )
4.类中的静态成员数据为该类的所有对象所共享,并且,在该类对象被撤销时,静态成员并没有撤销。( √ )
5.构造函数和析构函数均不能被说明为虚函数。(× )构造函数不能申明为虚函数
6.char *const p 表明p是一个指针,它只能指向一个字符串常量。( × )
7.如果派生类的继承方式是protected的,则在main( )函数中,可以通过派生类对象来访问基类的公有的成员。( × )
8.在C++中,可以通过ofstream类对象来建立一个输出文件流。( √ )
9.在C语言中,不使用命名空间,但在C++程序中,一定要使用命名空间。( × )
10.在MFC编程中,通过Invalidate(TRUE)可以发出重绘视图的消息。( √ )
二、简答题(每小题8分,共24分)
1.什么是面向对象的程序设计?什么是简单继承?什么是多重继承?
面向对象的程序设计:它的整个程序由一系列相互作用的对象构成,对象之间的交互通过发送消息来实现,对象通过响应消息来实现程序的功能。(4分)
简单继承:派生类的基类只有一个的继承方法。(2分)
多重继承:派生类的基类同时有多个时的继承方法。(2分)
什么是多态性?C++中,多态性是如何实现的?
多态性是指:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法).
C++中,多态性是通过指针和虚函数来实现的。
c++中,什么是函数重载?什么是运算符重载?什么是构造函数?什么是析构函数?
函数重载:函数的名称相同,参数的个数或类型不同的函数。
运算符重载:对运算符赋予新的含义,使之一名多用(主要是指运算对象包含类对象)。
构造函数:构造函数的名字必须与类名同名,它不具有任何类型,不返回任何值,主要用于对象初始化。
析构函数:函数名与类名相同,只是在前边加“~”符号,它不具有任何类型,不返回任何值,主要用于对象撤销后的清理工作。
三、填空题(每空2分,共10分)
下面程序中的Create函数根据table数组中的前n个元素建立一个表头指针为Head的链表,链表中结点值的顺序与数组元素值的顺序相同。填充程序中不完整的部分,使程序完整正确。
#includeiostream.h
#includestring.h
struct NODE{int data;NODE * next;};
void Create(NODE * Head,int table[ ],int n)
{
int i;
NODE *p;
if(n=0){ ___(1)_Head=NULL__;return;}//没有元素时,链表指向空。
Head=new NODE; //生成第一个结点
Head-data = ___(2)__ table[0]_;
i=1;
p=Head;
while( in )
{
p=___(3)_ p-next __ =new NODE ;
p-data= table[i] ;
___(4)_i++__;
}
___(5)_ p-next=NULL__; //把最后一个结点的指针域置空
return;
}
void main()
{
int a[10]={1,2,3,4,5};
NODE *H;
Create(H,a,5);
}
四、阅读下面的程序,写出程序运行的结果。(共26分)
1.程序1(6分)
#include iostream.h
class CStr
{ int n;
char str[50];
public:
CStr( char *p,int len=0)
{ int i; n=len;
for (i=0;in;i++) str[i]=*p++;
}
friend void GetChar(CStr a);
};
void GetChar(CStr a)
{
int i;
char ch;
for (i=0;ia.n;i++)
{
if (a.str[i]==!)
文档评论(0)