南邮面向对象程序设计及期末试卷
(完整word版)面向对象程序设计期末复习题及答案

(完整word版)面向对象程序设计期末复习题及答案C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15题,每小题2分,共30分) [主要从作业题目中抽出来]2。
填空题。
(10题,每小题3分,共30分)3、阅读程序,写出程序运行结果。
【也称计算题】(3题,每小题5分,共15分)4、程序编制题【也称综合分析题】. (第1、2题每题8分,第3题9分,共25分)重点复习内容打*号是重点,打▲号是编程题出题范围*基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性.*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套.静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数* 基类与派生类的定义。
*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类.*多态性与虚函数.纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题填空题1。
假定AB为一个类,则执行“AB a[10];"语句时,系统自动调用该类的构造函数的次数为_________。
答案:102。
可以用p。
a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:公有继承的公有成员3.能作为重载函数的调用的依据是_________。
答案:参数个数、参数类型4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________答案:eof5。
函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同(完整word版)面向对象程序设计期末复习题及答案6。
在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。
答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include〈iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout〈〈“x=y”〈<endl;elsecout〈〈“x!=y"〈〈endl;}void disp(){cout〈〈“x=”<〈x〈<“,y”=<<y<<endl; }};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0x=2,y=3x!=y x=y2.分析以下程序的执行结果#include〈iostream。
《面向对象程序设计》期末考核试题样例及解答

《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题1分,12小题,共12分)1. 源程序文件的缺省扩展名为( )。
A. B. C. D.2. x>0 5的相反表达式为()。
A. x<=0 5B. x<=0 5C. x>0 5D. x>0 53. 在下面的字符数组定义中,有语法错误的是( )。
A. a[20]=“”;B. a[]=“55.”;C. a[15];D. a[10]=’5’;4. 以下正确的函数原型语句是( )。
A. ( y)B. ( y)C. ();D. ( );5. 在下面存储类中,()的对象不是局部变量。
A. 外部静态类B. 自动类C. 函数形参D. 寄存器类6. 假定有“ { [40]; ;}; * ;”,则正确的语句是()。
A. (>,””);B. (,””);C. (*,””);D. ((*)->,””);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。
A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有()函数的文件称为()。
A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用表示,包含的指针域用表示,链队的队首指针用表示,队尾指针用表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。
A. B.C. 和D. 或10. 假定为一个类,则执行“ a, b(2), c[3], *;”语句时共调用该类无参构造函数的次数为( )。
A. 5B. 6C. 3D. 411. 引入友元的主要目的是为了()。
A. 增强数据安全性B. 提高程序的可靠性C. 提高程序的效率和灵活性D. 保证类的封装性12. 如果是类B在类A的基础上构造,那么,就称()。
A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类二、填空(每空1分,15小题,共18分)1. 语言是在语言的基础上发展起来的。
面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案资料

面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2、单选择题(每小题2分,共10分1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y + = z ——/+ + x的值是(A。
A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的(D 方法来完成一些画图操作。
A. start(B. stop(C. i nit(D. paint(4、不允许作为类及类成员的访问控制符的是(C。
A. P ublicB. P rivateC. staticD. p rotected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A。
A. static void method(B. p ublic void method(C. final void method(D. abstract void method(、填空题(每空格1分,共20 分)1、开发与运行Java 程序需要经过的三个主要步骤为 编辑源程序、编译生成 字节码、和解释运行字节码。
2、如果一个Java Applet 源程序文件只定义有一个类,该类的类名为MyApplet ,则类MyApplet 必须是Applet 、类的子类并且存储该源程序文件的文 件名为 MyA PP let 。
3、如果一个Java Applet 程序文件中定义有3个类,则使用Sun 公司的JDK 编译器javac.exe 编译该源程序文件将产生 3个文件名与类名相同而扩展名为. class 的字节码文件。
4、在Java 的基本数据类型中,char 型采用Uni code 编码方案,每个Uni code 码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
《面向对象的程序设计》期末试卷(A)答案汇总

电子系计控专业《面向对象的程序设计》期末试卷(A)答案一、选择题(每题1分,共20分)1、如果要改变窗体的标题,则需要设置的属性是 A 。
A. CaptionB. NameC. BackColorD. BorderStyle2、工程文件的扩展名是_C_。
A. frx B. bas C. vbp D.frm3、初始状态下,VB工具箱的控件称为_A_。
A. 标准控件(或内部控件)B. 外部控件C. ActiveX控件D. 可插入对象4、将命令按扭Command1设置为不可见,应修改命令按钮的 A 属性。
A. VisibleB. ValueC. CaptionD. Enable5、在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。
用于标识各个控件数组元素的参数是 B 。
A. TagB. IndexC. ListIndexD. Name6、要改变控件的高度,应修改控件的_D_属性。
A. Top B. Left C. Width D. Height7、只能用来显示字符信息的控件是 B 。
A. 文本框 B. 标签 C. 图片框 D. 图象框8、InputBox$(函数返回值的类型为 B 。
A. 数值B. 字符串C. 变体D. 数值或字符串(视输入的数据而定)9、确定复选框是否选中,可访问的属性是_A_。
A. Value B. CheckedC. SelectedD. Caption10、选中复选框时,Value的值为 B 。
A. 0 B.1 C. True D. False11、添加列表框中的项目,应该用列表框的 C 属性。
A. Selected B. Value C. List D. Text12、若要在同一窗体中安排两组单选按扭,可用_D_控件来分隔。
A. 列表框B. 组合框C. 图片框D. 框架13、用户可以通过设置菜单项的_C_属性的值为False来使该菜单项失效。
A. HideB. VisibleC. EnableD. Checked14、在程序运行期间,如果拖动滚动条上的滚动块,则触发的滚动事件是 C 。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案3.doc

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2一、单选择题(每小题2分,共10分)1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 ,y = 2,z = 3,则表达式y + =z--/++ x 的值是(A )。
A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户口定义的Applet子类中,一般需要重载父类的(D )方法來完成一些画图操作。
A. start()B. stop()C. init()D. paint()4、不允许作为类及类成员的访问控制符的是(C )。
A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法melhod书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A. static void method()B. public void method()C. final void method()D. abstract void method()二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主耍步骤为编辑源程序、编译生成字节码、和解释运行字节码。
2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为My Applet,则类MyApplet必须是Applet. 类的子类并且存储该源程序文件的文件名为MyApplet 。
3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为.class 的字节码文件。
4、在Java的基木数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
南京邮电大学《C语言程序设计》2023-2024学年第一学期期末试卷

南京邮电大学《C语言程序设计》2023-2024学年第一学期期末试卷《C语言程序设计》考试内容:《C语言程序设计》;考试时间:120分钟;满分:100分;姓名:——;班级:——;学号:——一、选择题(每题2分,共20分)1. 下列哪个选项是C语言合法的标识符?A. `2number`B. `_var`C. `int`D. `if`2. 下列关于C语言数据类型的说法中,哪个是错误的?A. `char` 类型用于存储单个字符。
B. `float` 和`double` 都是浮点型数据类型,但`double` 的精度高于 `float`。
C. `void` 类型用于表示无类型,不能用于声明变量。
D. `int` 类型的变量占用4个字节的内存空间(注:此选项可能因编译器和平台而异,但在此上下文中作为示例)。
3. 下列哪个语句能够正确地从标准输入读取一个整数并存储在变量`num`中?A. `scanf("%f", &num);`B. `scanf("%d", num);`C. `printf("%d", &num);`D. `scanf("%d", &num);`4. 下列哪个循环结构在条件表达式为真时至少执行一次循环体?A. `for` 循环B. `while` 循环C. `do-while` 循环D. 以上都是,取决于条件表达式5. 假设有数组定义`int arr[5] = {1, 2, 3, 4, 5};`,则`arr[2]`的值是?A. 1B. 2C. 3D. 46. 在C语言中,关于函数返回值的说法错误的是?A. 函数可以没有返回值,此时返回类型应为`void`。
B. 函数只能返回一个值,且该值的类型必须与函数声明的返回类型一致。
C. 函数返回的值可以通过赋值语句赋给另一个变量。
D. 函数返回的值类型必须是`int`。
面向对象程序设计期末复习题及答案

C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15题,每小题2分,共30分) [主要从作业题目中抽出来]2. 填空题。
(10题,每小题3分,共30分)3、阅读程序,写出程序运行结果。
【也称计算题】(3题,每小题5分,共15分)4、程序编制题【也称综合分析题】。
(第1、2题每题8分,第3题9分,共25分) 重点复习内容打*号是重点,打▲号是编程题出题范围* 基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性。
*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。
静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数* 基类与派生类的定义。
* 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类。
*多态性与虚函数。
纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。
答案:102.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:公有继承的公有成员3.能作为重载函数的调用的依据是_________。
答案:参数个数、参数类型4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________答案:eof5.函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。
答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include<iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout<<“x=y”<<endl;elsecout<<“x!=y”<<endl;}void disp(){cout<<“x=”<<x<<“,y”=<<y<<endl;}};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0x=2,y=3x!=yx=y2.分析以下程序的执行结果#include<iostream.h>int add(int x,int y){return x+y;}int add(int x,int y,int z){return x+y+z;}void main(){int a=4,b=6,c=10;cout<<add(a,b)<<,<<add(a,b,c)<<endl; }解:10,20 3.分析以下程序执行结果#include<iostream.h>int add(int x,int y){return x+y;}double add(double x,double y){return x+y;}void main(){int a=4,b=6;double c=2.6,d=7.4;cout<<add(a,b)<<","<<add(c,d)<<endl; }解:10,104.分析以下程序执行的结果#include<iostream.h>class Sample{int x,y;public:Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1,s2(1,2),s3(10,20);Sample *pa[3]={&s1,&s2,&s3};for(int i=0;i<3;i++)pa[i]->disp();}解:x=0,y=0x=1,y=2x=10,y=20 5. 分析以下程序的执行结果:#include<iostream.h>class base{int n;public:base(){};base (int a){cout << "constructing base class" << endl; n=a;cout << "n= "<< n << endl;}~base() { cout << "destructing base class" << endl; }};class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class "<< endl; m=b;cout << "m= "<< m << endl;}~subs() { cout << "destructing sub class "<< endl; }};void main (){subs s(1,2);}解:constructing base classn= 1constructing sub classm= 2destructing sub classdestructing base class6.分析以下程序的执行结果:#include <iostream.h>class Sample{protected:int x;public:Sample() { x=0; }Sample(int val) { x=val; }void operator++() { x++; }};class Derived:public Sample{int y;public:Derived():Sample(){ y=0; }Derived(int val1,int val2):Sample(val1){ y=val2; }void operator--(){ x--;y--;}void disp(){cout<<"x="<< x << ",y=" << y << endl; }};void main (){Derived d(3,5);d.disp();d++;d.disp ();d--;d--;d.disp();}解:x=3,y=5x=4,y=5x=2,y=37 分析以下程序执行结果:#include <iostream.h>class A{public:A(char *s) { cout << s << endl; }~A() {}};class B:public A {public:B(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class C:public A{public:C(char *sl,char *s2) :A(sl){cout << s2 << endl;}};class D:public B,public C{public:D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3){cout << s4 << endl;}};void main (){D d("class A","class B","class C","class D");}解:class Aclass Bclass Aclass Cclass D 补充例题1.分析以下程序的执行结果#include<iostream.h>template <class T>T max(T x,T y){ return (x>y?x:y); }void main(){ cout<<max(2,5)<<“,”<<max(3.5,2.8)<<endl; }解答:5,3.5 2.分析以下程序的执行结果#include<iostream.h>void main(){int a[]={10,20,30,40},*pa=a;int *&pb=pa;pb++;cout<<*pa<<endl;}解答:输出为:20 3.分析以下程序的执行结果#include<iostream.h>template <class T>T abs(T x){ return (x>0?x:-x); }void main(){ cout<<abs(-3)<<“,”<<abs(-2.6)<<endl; }解答:输出为:3,2.64.分析以下程序的执行结果#include<iostream.h>class Sample{char c1,c2;public:Sample(char a){c2=(c1=a)-32;}void disp(){ cout<<c1<<“转换为”<<c2<<endl; } };void main(){Sample a('a'),b('b');a.disp();b.disp();}解答:a转换为Ab转换为B 5.分析以下程序的执行结果#include<iostream.h>void main(){int a;int &b=a; // 变量引用b=10;cout<<“a=”<<a<<endl;} 解答:输出为:a=10 6.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x++ +10;}void disp(){cout<<“x=”<<x<<endl; }};void main(){ Sample s1(2),s2(s1);s1.disp();s2.disp();}解答:x=3 // ++运算的结果x=12 // 2+107.分析以下程序的执行结果#include<iostream.h>class Sample{int x;public:Sample(){};Sample(int a){x=a;}Sample(Sample &a){x=a.x+1;}void disp(){cout<<“x=”<<x<<endl; } };void main(){ Sample s1(2),s2(s1);s2.disp();}解答:输出为:x=3。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京邮电大学 学年第 二 学期《面向对象程序设计及C++》(期末)试卷1院(系) 班级 学号 姓名 (★温馨提醒:① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来一、填空题(共10分,每空1分)1、开发C++程序与开发其他高级语言的程序一样,包括编辑、编译、 ① 和② 四个步骤。
2、C++语言中的标准输出流对象是 ③ ,在程序中用于代表标准输出设备。
3、对于已存在的定义“int *ptr=new int [10] ;”,应该用 ④ 语句释放动态内存空间。
4、C++语言提供了处理异常的有效机制,通过 ⑤ 抛出异常,通过 ⑥ 检测异常、通过catch 捕捉并处理异常。
5、类的成员有3种访问属性,其默认的访问属性为 ⑦ ;访问属性为___⑧ 的成员既可被派生类继承又保持了封装和信息隐藏性。
(请填关键字)6、C++支持两种多态性,其中函数重载和运算符重载用于实现 ⑨ ,而虚函数用于实现 ⑩ 。
二、单选题(共20分,每题2分)1、假设已有定义:const char *name="chen";下面语句中错误的是 。
A 、name[3]= 'a'; B 、name="lin"; C 、name=new char[5]; D 、cout<<name[3];2、设有语句void f(int a[10],int &x); int y[10],*py=y,n=10;则对函数f 的正确调用语句是 。
A 、f(py[10],n);B 、f(py,n);C 、f(*py,&n);D 、f(py,10); 3、下列不正确的重载函数是 。
A 、int print(int X); 和 void print(float X);B 、int disp(int X); 和 char disp(int Y) const;C 、void disp(char * str,int Y);和 int disp(char * s,int X);D 、int view(int X , int y); 和 int view(int X);装 订 线 内不 要 答 题自觉 遵 守考 试 规 则,诚 信 考 试,绝 不 作 弊4、有关this指针的描述中,错误的是。
A、this指针可以在程序中显式使用B、this指针是在使用对象时由系统自动生成C、this指针是指向当前对象的指针D、this指针是指向成员函数的指针5、关于成员函数特征的下列描述中,是错误的。
A、成员函数一定是内联函数B、成员函数可以重载C、成员函数可以设置缺省参数值D、成员函数可以是静态的6、以下关于构造函数的叙述不正确的是。
A、构造函数名必须和类名一致B、构造函数在定义对象时自动执行C、构造函数无任何函数类型D、一个类的构造函数有且仅有一个7、下列哪一项不能访问基类的保护成员。
A、基类的友元函数B、派生类的对象C、基类的成员函数D、公有派生类的成员函数8、下面有关基类与公有派生类的赋值兼容原则,正确的是。
A、公有派生类对象不能赋给基类对象B、基类对象能赋给其公有派生类的引用C、基类对象不能赋给公有派生类对象D、公有派生类对象地址不能赋给基类指针变量9、______是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
A、虚析构函数B、虚构造函数C、纯虚函数D、静态成员函数10、假定要对类AB以友元函数形式重载加号运算符,实现两个AB类对象的加法,并返回相加结果,则该函数的声明语句为:。
A、friend AB operator+(AB & a , AB & b);B、friend operator+(AB a);C、friend AB operator+(AB & a);三、读程题(共30分,每空2分)1、以下程序运行后的输出结果第一行是 (1) ,第二行是 (2) 。
#include <iostream>using namespace std;int i=0;void main(){ int i=5;cout<<i<<endl;::i=i*20;cout<<::i<<endl;}2、以下程序运行后的输出结果第一行是 (3) ,第二行是 (4) ,第三行是(5) 。
#include<iostream>using namespace std;class base{int n;public:base(int i) { n=i; }int getn( ) {return n;}friend int add(base &s1,base s2);};int add(base &s1,base s2){int result= +;int t=; =; =t;return result;}void main( ){base A(29),B(11);cout<<add(A,B) <<endl;cout<<()<<endl;cout<<()<<endl;}3、以下程序运行后的输出结果第一行是 (6) ,第二行是 __(7)_ 。
#include <iostream>using namespace std;template<class T>T fun(T x[],int n){int i;T value=x[0];for (i=1;i<n;i++)if (value<x[i])value=x[i];return value;}void main(){ int arrayA[]={5,8,2,9,1,7};double arrayB[]={,,,,};cout<<fun(arrayA,6)<<endl;cout<<fun(arrayB,5)<<endl;}4、以下程序运行后的输出结果第一行是 (8) ,第二行是 (9) 。
#include <iostream>装订线内不要答题自觉遵守考试规则,诚信考试,绝不作弊using namespace std; class base {public: virtual void fun(void){ cout<<"base::fun"<<endl; } };class divide:public base {public:void fun(void){ cout<<"divide::fun"<<endl;} };void main(void) { divide d; base b1; base & b2=d; (); (); }5、以下程序运行后有多行输出结果,其中第一行是 (10) ,第二行是 (11) 第三行是 (12) ,第四行是 (13) 。
#include<iostream> using namespace std; class A {int n; public: A( ){ cout<<"constructing A"<<endl; } ~A( ){ cout<<"destructing A"<<endl; } };class B:public A {int n; A a; public: B( ){ cout<<"constructing B"<<endl; } ~B( )装 订 线 内不 要 答 题自觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊{ cout<<"destructing B"<<endl; }};void main( ){ B b;}6、以下程序运行后的输出结果第一行是 (14) ,第二行是 (15) 。
#include<iostream>using namespace std;const double PI=;class Shape //定义抽象基类 Shape{public:virtual void display( ) =0; //声明纯虚函数};class Rectangle:public Shape //定义派生矩形类Rectangle{public:Rectangle(double h,double w):hight(h),width(w){ }void display( ) //纯虚函数的实现代码{ cout<<hight*width<<endl;}private:double hight,width;};class Circle:public Shape //定义派生圆类Circle{public:Circle(double r):radius(r){ }void display( ) //纯虚函数的实现代码{ cout<<PI*radius*radius<<endl;}private:double radius;};void main( ){Shape *ptr[2]; //定义抽象类的指针数组ptr[0]=new Rectangle(15, 2); //创建Rectangle类的对象ptr[1]=new Circle(1); //创建Circle类的对象ptr[0]->display( ); //调用Rectangle类的display函数ptr[1]->display( ); //调用Circle类的display函数delete []ptr[0];delete ptr[1];}四、程序填空题(共10分,每空2分)当前文件夹下存在文本文件,现将该文件打开并将该文件内容原样复制到同一文件夹下新的文本文件中,请完善程序: #include <iostream> #include < ① > using namespace std; void main(){ ② ifile(""); if(!ifile){ cout<<" cannot be openned!"<<endl; return; }③ ofile(""); if(!ofile){ cout<<" cannot be openned!"<<endl; return; } char ch;while( ④ )⑤( ); (); }五、编程题1(共15分)定义学生类Student ,该类包括私有数据成员char *name ,int age ,分别表示学生的姓名和年龄。