南京信息工程大学滨江学院C++面向对象程序设计期末复习资料

南京信息工程大学滨江学院C++面向对象程序设计期末复习资料
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料

+++ 面向对象程序设计复习资料

一、概念、填空题

1.面向对象的四大特性是:抽象、封装、继承、多态

2.构造函数的作用是创建对象时为对象赋初值,析构函数的作用是释放对象占用的资源

3.根据继承的基类的多少,C++将继承分为:单继承和对继承

4.C++进行动态内存分配的一对运算符是new和delete

5.抽象类、纯虚函数:…..P153

纯虚函数是一个在基类中说明的虚函数,它在该类基类中没有定义,但要求在它的派生类中必须定义自己的版本,或重新说明为纯虚函数。

如果一个类至少有一个纯虚函数,那么就称该类为抽象类。

6.对象拷贝有两种方式:浅拷贝和深拷贝

7.变量的生存期分为:动态生存期和静态生存期

8.C++里的逻辑值:非0表示真,0表示假

9.C++里函数参数传递方式有:值传递、地址传递和引用传递(P35例2-13程序1程序2程

序3)

10.静态成员变量属于类,所有的对象共享。........静态成员变量的使用

11.根据访问控制,C++将继承分为:公有继承、私有继承和保护继承

12.用const修饰的对象,其意思是:对象的状态不能被修改

13.拷贝构造函数被调用的场合有3种,分别是:用对象作参数构造对象时、为函数实参对

象赋值时、函数返回对象时

14.C++里的模版包括:函数模版和类模版

15.命名空间及其作用

名字空间就是一个由程序设计者命名的内存区域,名字空间的作用类似于操作系统中的目录和文件的关系。名字空间建立了一些相互分隔的作用域,把全局标识符分隔开,避免产生名字冲突。(P48)

16.类的访问属性包括:公有、私有、继承

17.虚基类的作用 P124

如果一个派生类有多个直接基类,而这些基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类成员的多份同名成员。但由于保留共同基类的多份成员,不仅占用较多的存储空间,还增加了访问这些成天元时的困难,容易出错。C++提供了

虚基类的方法,使得在继承间接共同基类时只保留其一份成员。

18.多态及其分类P145

多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。

参数多态,包含多态,重载多态,强制多态,前两种称为通用多态,后两种称为专用多态

19.虚函数与重载函数的比较 ....P153

(1)函数重载处理的是同一层次上的同名函数问题,而虚函数处理的是同一类族中不同派生层次上的同名函数问题,前者是横向重载,后者可以理解为纵向重载。但与重载不同的是:同一类族的虚函数的首部是相同的,而函数重载时函数的首部是不同的。(2)重载函数可以是成员函数或普通函数,而虚函数只能是成员函数。(3)重载函数调用是以所传递参数序列的差别作为调用不同函数的依据;虚函数是根据对象的不同去调用不同类的虚函数。(4)虚函数在运行时表现出多态功能,这是C++精髓,而重载函数则在编译时表现出多态性。

20,一个类的函数是否是虚函数的条件是:.....P151

判断该函数与基类的虚函数有相同的名称;该函数与基类的虚函数有相同的参数个数及相同的对应参数类型;该函数与基类的虚函数有相同的返回类型或者满足赋值兼

容规则的指针、引用型的返回函数。

21,c in cout >> <<

22,根据文件中数据的组织,文件分为ascII文件和二进制文件

23,强制类型转换:(int)3.5 int(3.5)

24,内联函数inline P62

该方法的思想是在编译时将调用函数的代码直接嵌入到调用函数处。INLINE函数的机制兼顾了函数和效率两个方面的有点。

二、看程序结果

1、以下程序的结果是_____5,7 5,10 5,7_________________(全局变量与局部变量问题)

viod myfunction( )

{int y=10; cout<

int x=5 ,y=7 ;

int main( )

{ cout<

myfunction( );

cout<

2、以下程序的结果是___2,12 2,14_____________________________(静态变量应用)

int ret(int a)

{ static int c=10;

a=a+c ; c=a ; return c; }

int main()

{ int a=2;

for(int i=0; i<2; i++) cout<

3、以下程序的结果是________________3________________(指针)

int main( )

{ int a=2 ; Int *b=&a ; a=3 ; cout<<*b ; }

4、以下程序的结果是________________3________________(引用)

int main( )

{ int a=2 ; int &b=a ; a=3 ; cout<

5、以下程序的结果是________________________________________(参数传递)

int main( )

{ int x(3) , y(8) ;

Swap(x , y) ;

cout<< “x=“<

void Swap(int &a ,int &b)

{ int t ; t=a ;a=b ; b=t ; }

6、以下程序的结果是________________________________(参数传递)

int main( )

{ int x(3) , y(8) ;

Swap(&x , & y) ;

cout<< “x=“<

void Swap(int * a ,int * b)

{ int t ; t=*a ;*a=*b ; *b=t ; }

7、以下程序的结果是________________4________________(引用)

int main( )

{ int a=2 ; int &b=a ; a=a+b ; cout<

8、以下程序的结果是_________________5_______________(数组)

int main( )

{ int a[5]={2,3,4,5,6} ; Int *b=a ; cout<<*(b+3); }

三、程序填空

1、输入一个整数,将各位数字反转后输出(利用运算符/ 和 %)

int main( ){

int n ,rd ,newnum ;

cin>>n ;

do{ rd=____n%10_______; cout<

cout<

2、输入一系列整数,统计出正整数个数和负整数个数,读入0结束

int main( ){

int i=0 ,j=0 ,n ;

cin>>n ;

while(n!=0){if(n>0)___i++______; if(n<0)__j++______ cin>>n ;}

cout<<”正整数个数:“<

3、用户输入考试分数(0~100),输出考试等级。

int main( ){

int m ; _cin>>m>>endl_____________ ;

switch(____m/10_____) {

case 10:

case 9: cout<<”优秀” ; break ;

case 8: cout<<”良好” ; break ;

case 7: cout<<”中等” ; break ;

case 6: cout<<”及格” ; break ;

default: cout<<”不及格”; }

4、交换两个整数

int main( )

{ int x(5) , y(10) ;

cout<< “x=“<

Swap(x , y) ;

cout<< “x=“<

void Swap(int _&a______ ,int ____&b_____)

{ int t ; t=a ;a=b ; b=t ; }

5、查找数组中元素值为5的元素,返回其序号

int main( ){

int n ,a[10] , i=0 ;

for(i=0 ; i<10 ; i++ ) cin>>a[i] ;

for(i=0 ; i<10 ; i++ ) if(____a[i]==5______) __count<

if(i==10)cout<<”no find”; else cout<

}

6、查找数组中元素值为’b’的元素,将其替换为‘B’

int main( ){

char a[10] ; int i=0 ,j=0 ,n ;

cin>>a ;

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

if(______a[i]=='b'_______________) {______a[i]='B'_____; cout<<”ok” ;} 7、交换两个整数

int main( )

{ int x(5) , y(10) ;

cout<< “x=“<

Swap(_int &x______ , _int &y__________) ;

cout<< “x=“<

void Swap(int *a ,int *b)

{ int t ; ___t=*a_________ ; ____*a=*b ; _____*b=t________ }

四、编程题

2、定义一个复数类,实现两个复数类相加和相减。P206

要求:(1)将运算符函数重载为成员函数;(2)将运算符函数重载为友元函数#include

using namespace std;

class Complex

{public:

Complex(){real=0;imag=0;}

Complex(double r,double i){real=r;imag=i;}

Complex operator + (Complex &c2);

Complex operator - (Complex &c2);

void display();

private:

double real;

double imag;

};

void Complex::display()

{cout<<"("<

Complex Complex::operator + (Complex &c2)

{

Complex c;

c.real=real+c2.real;

c.imag=imag+c2.imag;

return c;

}

Complex Complex::operator - (Complex &c2)

{

Complex c;

c.real=real-c2.real;

c.imag=imag-c2.imag;

return c;

}

int main()

{

Complex c1(3,4),c2(5,-10),c3,c4;

c1.display();

c2.display();

c3=c1+c2;

cout<<"c3=c1+c2=";

c3.display();

c4=c1-c2;

cout<<"c4=c1-c2=";

c4.display();

return 0;

}#include

class Complex

{public:

Complex(){real=0;imag=0;}

Complex(double r,double i){real=r;imag=i;}

friend Complex operator + (Complex &c1, Complex &c2); friend Complex operator - (Complex &c1, Complex &c2);

void display();

private:

double real;

double imag;

};

void Complex::display()

{cout<<"("<

Complex operator + (Complex &c1, Complex &c2)

{

Complex c;

c.real=c1.real+c2.real;

c.imag=c1.imag+c2.imag;

return c;

}

Complex operator - (Complex &c1, Complex &c2)

{

Complex c;

c.real=c1.real-c2.real;

c.imag=c1.imag-c2.imag;

return c;

}

int main()

{

Complex c1(3,4),c2(5,-10),c3,c4; c1.display();

c2.display();

c3=c1+c2;

cout<<"c3=c1+c2=";

c3.display();

c4=c1-c2;

cout<<"c4=c1-c2=";

c4.display();

return 0;

}

5-7

#include

using namespace std;

class Cat { public: Cat(int age){numOfCats++; }

virtual ~Cat() { numOfCats--; }

static int getnumOfCats() { return numOfCats; } private: static int numOfCats; };

int Cat::numOfCats = 0; void telepathicFunction() { cout << "There are " << Cat::getnumOfCats() << " cats alive!\n"; } int main() {

const int maxCats = 5;

Cat *catHouse[maxCats]; int i;

for (i = 0; i < maxCats; i++) { catHouse[i] = new Cat(i); tele pathicFunction(); }

for (i = 0; i < maxCats; i++) { delete catHouse[i]; telepathi cFunction(); }

return 0; }

4-11

#include

class Rectangle

{

public:

Rectangle(float len, float width)

{

Length = len;

Width = width;

}

~Rectangle(){};

float GetArea() { return Length * Width; }

float GetLength() { return Length; }

float GetWidth() { return Width; }

private:

float Length;

float Width;

};

void main()

{

float length, width;

cout << "请输入矩形的长度:";

cin >> length;

cout << "请输入矩形的宽度:";

cin >> width;

Rectangle r(length, width);

cout << "长为" << length << "宽为" << width << "的矩形的面积为:"

<< r.GetArea () << endl;

}

3、编写一个类,其成员函数包括:1)接受键盘输入的英文句子;2)实现一条英文句子中字母的个数统计并输出;3)输出英文句子。主函数里进行测试。

#include

using namespace std;

class Char

{

public:

Char(){count=0;}

void Input();

void show();

void GetCount()

{

cout<<"字母个数为:"<

}

private:

char a[100];

int count;

};

void Char::Input()

{

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

{

count++;

cin>>a[i];

if(a[i]=='@') //当输入的符合为@是退出循环 break;

}

}

void Char::show()

{

for(int i=0;i

cout<

cout<

}

int main(){

Char a;

a.Input();

a.show();

a.GetCount();

return 0;}

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

南京信息工程大学学位规定

南京信息工程大学 成人高等教育学士学位授予实施细则(修订) 一、总则 第一条根据国务院学位委员会《中华人民共和国学位条例》、《关于授予成人高等教育本科毕业生学士学位暂行规定》等文件的要求,为保证学位授予质量和授予工作的正常进行,特制定本细则。 二、学位授予对象 第二条凡经国家教育部批准并列入国家招生计划、承认其学历的我校成人高等教育本科毕业生,以及由我校主考的高等教育自学考试本科毕业生,符合以下条件,均可向校学位评定委员会申请授予学士学位。 三、学位授予条件 第三条拥护中国共产党的领导,拥护社会主义制度,热爱祖国,遵守法律,遵守校规校纪。 第四条完成本专业教学计划规定的各项要求,取得规定学分,经审核准予毕业,较好地掌握本门学科的基础理论、专门知识和基本技能,并具有从事与本专业相关工作的基本能力。 具体要求如下: 1.在校学习期间,成人函授教育、业余教育学生通过本专业规定的学位课程考试,且平均成绩达到70分(含70分)以上,自学考试学位课程成绩达标; 2.成人函授教育、业余教育学生必须参加江苏省成人学士学位英语课程考试,成绩合格。自学考试非英语类专业英语(二)(英语专业第二外语)成绩60分(含60分)以上,或参加江苏省成人学士学位英语考试,成绩合格,或就读期间在本校参加大学英语四级考试,成绩425分以上(含425分)。 第五条凡属下列情况之一者,不授予学士学位:

1.在校期间,违反第三条的规定,经教育仍不悔改,受记过以上(含记过)处分; 2.因各种原因不能在规定的修业年限内毕业; 3.学位英语、学位课程、毕业论文(毕业设计或其他实践环节)成绩未达到要求者; 4.自学考试学员考试作弊。 第六条对于在校期间累计受一次记过处分、之后有较好表现、成绩有明显进步、其他方面均符合学士学位授予条件的学生,可以由本人申请,经继续教育学院初审,教务处审查,主管校长同意,校学位评定委员会讨论通过,可授予学士学位。 四、学位授予程序 第七条本学士学位授予工作程序如下: 1.继续教育学院对学生成绩、毕业鉴定等材料进行初审,提出授予学士学位推荐名单,并随同相关材料报学校教务处; 2.教务处对推荐名单、材料进行复审,提出拟授予学位建议名单,报学校学位评定委员会; 3.学校学位评定委员会对拟授予学士学位的名单进行全面审议,确定授予学士学位的学生名单; 4.继续教育学院填写、颁发学士学位证书(证书上需注明学习形式和学科门类)。 五、附则 第八条学士学位一律不予补授。 第九条本细则自学考试学员从2008级开始执行,成人函授教育、业余教育学生从2010级开始执行,校学位评定委员会授权教务处负责解释。 南京信息工程大学学位评定委员会 二○一一年六月十六日

《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

南京信息工程大学教授资格评审条件(修订)

南京信息工程大学教授资格评审条件(修订) 第一章总则 第一条资格标准 具有本学科广博、坚实的理论基础和专业基础,具有较高的理论研究水平,能及时掌握国内外本学科及相关学科发展前沿的动态,具有稳定的研究方向和系统的研究成果,具有深厚的学术造诣,具有提出本专业新的研究方向和开拓新研究领域的能力。具有较强的教学能力,教学业绩突出,教书育人;具有外语和计算机信息技术应用的能力;具有良好的职业道德和敬业精神。 第二条适用范围 本资格条件适用于本校在职教师。 第二章申报条件 第三条政治素质、职业道德要求 遵守国家法律和法规,热爱祖国,拥护中国共产党的领导,热爱人民的教育事业,贯彻国家的教育方针;具有良好的职业道德和敬业精神,学风端正,教书育人,敬业爱岗,为人师表。任现职期间,综合考核在合格(称职)以上。 任现职期间,在规定的任职年限基础上,出现下列情况之一的,从下年起延迟申报: (一)年度考核基本合格(基本称职)及以下或受警告处分者,延迟1年以上。 (二)受记过以上处分者,延迟2年以上。 (三)谎报资历、业绩,剽窃他人成果等弄虚作假行为者,延迟3年以上。对伪造学历、学位等情节特别严重者,取消其现任专业技术职务资格。 第四条学历、资历要求 具备大学本科以上学历或学士以上学位(45岁以下须具备博士学位,从事英语、日语及其他小语种、体育、艺术类教师申报教授职务资格者,须具备硕士研究生学历或硕士学位),取得副教授资格,并受聘副教授职务5年及以上。 第五条外语要求 熟练掌握一门外语(从事外语教学工作的教师须熟练掌握第二外国语)。参加国家或全省统一组织的职称外语考试,取得合格证书。具备下列条件之一者,可免试:

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

南京信息工程大学学生考试违纪或考试作弊处理程序

附件 南京信息工程大学学生考试违纪或考试作弊处理程序 一、发现学生考试违纪或考试作弊的,由教务处认定其考试违纪或考试作弊性质,并及时将学生考试违纪或考试作弊情况以书面形式通报学生所在学院和校学生违纪处理委员会。 二、学院及时召开党政联席会议,根据学生考试违纪或作弊事实及教务处认定的性质,结合学生的认错态度,依据《南京信息工程大学学生违纪处分规定》,作出相应处理: 1.对于考试违纪的学生,一般作出警告或严重警告处理决定,将处理决定书送达学生本人,并报校学生违纪处理委员会备案;对违纪后拒不承认错误、态度恶劣者,学院可以提出记过处分的建议,报校学生违纪处理委员会审批;对于在本校曾经受到过处分的学生,学院提出处理建议,报校学生违纪处理委员会审批。 2.对于考试作弊的学生,学院提出处分建议,报校学生违纪处理委员会审批。 三、学院提出处理建议报校学生违纪处理委员会审批时,需填写《南京信息工程大学学生处分呈办单》,连同所有证据,报校学生违纪处理委员会审查,经审查对证据不充分、程序不完备等不符合规范的,应作退回处理。符合规范的,校学生违纪处理委员会召集会议讨论。 学院对学生作出处理决定或提出处理建议前,应当告知学生拟处分的事实、理由和依据,听取学生的陈述和申辩,填写《南京信息工程大学学生陈述(申辩)表》。对学生陈述和申辩提出的事实、理由和证据,学院应当进行复核。学生提出的事实、理由、证据成立的,应当采纳并根据学校相关规定重新提出处理意见。 四、对学生作出警告、严重警告处分的,处分意见经学院主管领导批准签发后,由学院行文,以学校规范性文件制作出处分决定书。对学生作出记过、留校察看处分的,处分意见经校学生违纪处理委员会主任签发后,由学校统一行文,以学校规范性文件制作出处分决定书。对学生作出开除学籍处分的,校学生违纪处理委员会提出处理建议,提交校长办公会讨论,经校长办公会批准、校领导签发后,由学校统一行文,以学校规范性文件制作出处分决定书。 五、处分决定书应当针对每个被处分的学生分别制定,处分决定书应当载明下列事项:被处分学生的学号、姓名、性别、出生年月、所属学院、年级、专业

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

面向对象程序设计课后答案(完整版)

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

南京信息工程大学教授资格评审条件(试行)

南京信息工程大学教授资格评审条件(试行) 第一章总则 第一条资格标准 具有本学科广博、坚实的理论基础和专业基础,具有较高的理论研究水平,能及时掌握国内外本学科及相关学科发展前沿的动态,具有稳定的研究方向和系统的研究成果,具有深厚的学术造诣,具有提出本专业新的研究方向和开拓新研究领域的能力。具有较强的教学能力,教学业绩突出,教书育人;具有外语和计算机信息技术应用的能力;具有良好的职业道德和敬业精神。 第二条适用范围 本资格条件适用于本校在职教师。 第二章申报条件 第三条政治素质、职业道德要求 遵守国家法律和法规,热爱祖国,拥护中国共产党的领导,热爱人民的教育事业,贯彻国家的教育方针;具有良好的职业道德和敬业精神,学风端正,教书育人,敬业爱岗,为人师表。任现职期间,综合考核在合格(称职)以上。 任现职期间,在规定的任职年限基础上,出现下列情况之一的,从下年起延迟申报: (一)年度考核基本合格(基本称职)及以下或受警告处分者,延迟1年以上。 (二)受记过以上处分者,延迟2年以上。 (三)谎报资历、业绩,剽窃他人成果等弄虚作假行为者,延迟3年以上。对伪造学历、学位等情节特别严重者,取消其现任专业技术职务资格。 第四条学历、资历要求

具备大学本科以上学历或学士以上学位(45岁以下须具备博士学位,从事英语、日语及其他小语种、体育、艺术类教师申报教授职务资格者,须具备硕士研究生学历或硕士学位),取得副教授资格,并受聘副教授职务5年及以上。 第五条外语要求 熟练掌握一门外语(从事外语教学工作的教师须熟练掌握第二外国语)。参加国家或全省统一组织的职称外语考试,取得合格证书。具备下列条件之一者,可免试:(一)已取得硕士及以上学历(学位)的; (二)年龄满50周岁的; (三)取得外语专业大学专科及以上学历(学位)的; (四)因公出国且出国前已通过国家出国人员外语水平考试并在国外学习或工作1年以上的; (五)市(厅)级以上科技进步三等奖(及相应奖项)以上获奖项目的主要完成人(以个人奖励证书为准)。 第六条计算机应用能力要求 具有开展教学、科研工作所需的运用计算机信息技术能力。参加省人事厅组织的全省专业技术人员信息化素质培训考核,取得《信息化素质培训考核合格证》;或参加省教育厅组织的职称计算机信息技术应用能力考核,并取得省职称办、省教育厅统一颁发的合格证书。具备下列条件之一者,可免试。 (一)取得计算机专业专科以上学历。 (二)参加全国计算机软件专业技术资格(水平)考试,成绩合格。 (三)非计算机专业毕业的、现从事计算机专业教学工作,申报计算机学科教授资格的人员。 第七条继续教育要求 任现职以来,按照《江苏省专业技术人员继续教育暂行规定》等相关要求,结合

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

面向对象程序设计笔记

undeclared identifier “未声明的标识符” (1) 十进制整数:在一个整型常量后面加一个字母 l 或 L,则认为是 long int 型常量? (2) 八进制整数?在常数的开头加一个数字 0,就表示这是以八进制数形 式表示的常数? (3)十六进制整数?在常数的开头加一个数字0和一个英文字母X(或x), 就表示这是以十六进制数形式表示的常数? 2. 浮点数的表示方法 如果在实数的数字之后加字母 F 或f,表示此数为单精度浮点数,如1234F,-43f,占 4 个字节?如果加字母 L 或 l,表示此数为长双精度数(long double), 在Visual C++ 6.0 中占 8 个字节. (2) 指数形式(即浮点形式):用字母 e 表示其后的数是以 10 为底的幂,如 e12 表示 1012? 1.普通的字符常量:用单撇号括起来的一个字符就是字符型常量如′a′,′ #′,′%′,′D′都是合法的字符常量,在内存中占一个字节?“cout<<′\n′; ”将输出一个换行,其作用与“cout<

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

面向对象程序设计期末复习分析

一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1 分,共20 分) 3.下列不属于面向对象技术的基本特征的是(B)。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与(C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C )。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 8. 下列不属于类的成员函数的是( C )。 A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 9. 继承机制的作用是( C )。 A. 信息隐藏 B. 数据封装 C. 派生新类 D. 数据抽象 14. (D )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 15. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作 图和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 16.(D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对 象之间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 17.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示 系统中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 18. 在用UML进行数据库的分析与设计过程中,( B ) 就是进行数据库的需求分析,使用用 例图、类图、顺序图、活动图等建立业务模型。 A. 逻辑数据模型设计 B 业务Use Case模型设计 C. 物理数据模型设计 D. 物理实现设计 19. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 20. UML的动态建模表示包含(C )种图。 A. 9 B. 5 C. 4 D. 2 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以_功能分析,面向过程_为基础的_对象_的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

相关文档
最新文档