信计专业《面向对象程序设计》模拟题
- 格式:doc
- 大小:69.50 KB
- 文档页数:6
面向对象程序设计模拟题一、简答题:1. 什么是对象?什么是对象的事件和方法?试列举几个常用的事件和方法?答:对象是代码和数据的组合,可以作为一个单位来处理。
对象可以使应用程序的一部分,也可以是整个应用程序。
对象事件是对象可以识别的动作,即窗体、控件和其他对象可以识别的动作。
常用的事件有Click事件、Paint事件、Load事件等。
方法是对象要执行的动作,常见的有Clear、AddIRem、RemoveITem等。
2.VB有几种类型的表达式?请举例说明。
答:VB有5中类型的表达式,它们是算术表达式(例2*Pi*r*r)、字符串表达式(例“欢迎您”)、日期型表达式(例#11/22/98)、关系表达式(”abc”>”abcd”)和布尔表达式(2<=4AND6>3)。
二、填空题:1.单选按钮用于建立一组多选一的选项供用户选择,即在这些选项中,用户一次只能选择其中的一个选项选项,并且必须选择其中一个选项。
同时,当一个单选钮被选中时,其他选项自动关闭。
2.列表框是以列表形式显示一系列项目和信息,用户可通过单击其中某一项来选择的自己所需项目或信息。
在Windows中,使用列表框输出数据是保证数据标准化的重要手段,它是一个重要的输出控件。
在工具栏中它是一个标着带有滚动条的列表图案的按钮。
3.MsgBox 函数用来在对话框中显示消息,等待用户单击按钮,并返回一个整数,告诉程序用户单击了哪一个按钮。
4.在VB中有三种形式的数组,静态数组、动态的数组和控件数组。
静态数组就是指数组元素的个数在程序运行时保持不变,动态数组是指数组中的元素个数在程序运行时可以变化的数组,控件数组是使用VB中某些常用控件创建的数组。
使用静态数组、动态数组前必须要先声明,才能在程序中使用。
5.VB提供了图形控件,如Shape控件和Line控件。
它们提供一定的绘图样式,虽比较简单,但是使用非常方便,不需要编写代码,只要设置相应的属性即可。
《面向对象程序设计》模拟题(补)一.单项选择题1.面向对象程序设计思想的主要特征不包括【】。
A)继承性B)功能分解,逐步求精C)封装性和信息隐藏D)多态性2.已知数组定义,int array[8];【】是非法的数组元素访问。
A)array[8] B)array[1]C)array[0] D)array[3]3.关键字【】禁止在类外部使用成员数据和成员函数。
A)public B)classC)virtual D)private4.下面语句中,【】包含语法错误。
A)int *p=new int(2); B)int *p=new int[2](0);C)int *p=new int; D)int *p=new int[2]; 5.ASCII值与0相等的字符是【】。
A)‘0’B)“0”C)‘\0’D)‘ ’( 表示空格)6.下列的符号常量定义中,正确的是【】。
A)const int M; B)int M const =10;C)int M=10 const; D)const int M=10;7.若有类Test,该类的复制构造函数声明为【】。
A)Test(); B)Test(const CTest& t);C)void Test(const CTest& t); D)Test(const CTest *t);8.以下选项中,【】不是类的成员函数。
A)构造函数B)析构函数C)友元函数D)复制构造函数9.如果一个类中包含纯虚函数,则该类称为【】。
A)派生类B)虚基类C)抽象类D)子类10.在类中将show声明为不带返回值的纯虚函数,则正确的写法是【】。
A)virtual void show()=0; B)virtual show()=0;C)virtual void show(); D)void show()=0 virtual;11.类中每个静态数据成员有【】个拷贝。
A)0 B)每个对象1个C) 1 D)不确定12.构造函数在【】时被调用。
面向对象程序设计模拟题一、简答题:1. 在用Visual Basic开发应用程序时,一般分为几步进行?每一步需要完成什么操作?答:在用Visual Basic开发应用程序时,一般分为6步进行。
1、创建工程,设计界面2、设置属性3、编写代码4、运行程序5、保存工程6、编译程序,生成.EXE文件。
2.按作用范围划分,变量分为几类?在什么位置以及如何声明各类变量?答:按作用范围划分,变量分为3类:过程内部使用的变量、模块内部使用的变量和所有模块使用的公用变量。
过程内部使用的变量只在声明它们的过程中才能识别。
这样的变量为局部变量,用Dim或者Static关键字声明它们;模块内部使用的变量使用Private关键字声明模块级变量;用Public关键字声明模块级的变量为公用变量,公用变量中的值可用于应用程序中的所有过程,应在模块顶部的声明段来声明公用(全局)变量。
二、填空题:1.窗体是设计工程的主界面。
用户在这个窗体上设计应用程序的界面。
窗体有自己的属性、事件和方法。
当窗体被装载时运行Load 事件。
当窗体被卸载时运行Unload 事件。
每当鼠标单击对象就会发生Click事件。
每当鼠标双击事件就会发生DblClick事件。
2.计时器控件是一个用来进行定时触发事件的控件,通常用计时器控件来设计与时间有关的应用程序。
在工具箱中它是一个标有秒表图案的工具按钮。
3.标签,是提供在窗体的相对位置上输出文本的的区域,但该区域不能进行编辑。
因而,常用来标识没有标题属性的控件,例如给文本框控件(TextBox)加标题。
标签控件也常用来输出文本。
4.InputBox函数用来在对话框中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的String 。
5.VB里有三种坐标系:屏幕坐标系、窗体坐标系以及窗体内部对象坐标系,这三种坐标系都是以其左上角为坐标原点。
6.对话框不是模式的就是无模式的。
对于模式对话框,只有关闭该对话框以后才能继续操作应用程序的其他部分。
《面向对象程序设计》模拟试题及答案一、单项选择题(每小题2分,共20分)1. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符2. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。
A. 内联函数B.重载函数C.递归函数D.函数模板3. 将两个字符串连接起来组成一个字符串时,选用()函数。
A. strlen()B. strcap()C. strcat()D. strcmp()4. 用new运算符创建一维整型数组的正确语句是__________。
A. int *p=new a[10];B.int *p=new float[10];C. int *p=new int[10];D.int *p=new int[5]={1,2,3,4,5}5. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为()。
A. pb=b;B. pb=&b[0];C. pb=new int;D. pb=b[5];6. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A. x(a)B. x[a]C. x->aD. x.a7. 假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( )。
A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数8. 对于任一个类,用户所能定义的析构函数的个数至多为( )。
A. 0B. 1C. 2D. 任意个9. 对类中引用成员的初始化是通过构造函数中给出的( )实现的。
A. 函数体B. 参数表C. 初始化表D. 初始化表或函数体10. 如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A. a.operator==(b)B. b.operator==(a)C. operator==(a,b)D. operator==(b,a)二、填空题(每小题2分,共20分)1. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。
《面向对象程序设计》课程模拟测试一、选择题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A.面向过程B.面向对象C.安全性D.复用性2、关于虚函数的描述中,正确的是()A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型3、下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载4、在以下关于C++语言的注释的叙述中,不正确的是()A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度5、C++语言的跳转语句中,对于break和continue说法正确的是()A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue不是D.break和continue的跳转范围不够明确,容易产生问题6、下列关于C++函数的说明中,正确的是()A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式7、在下面的一维数组定义中,哪一个有语法错误。
()A.int a[ ]={1,2,3} B.int a[10]={0}C.int a[ ] D.int a[5]8、面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性9、下列静态数据成员的特性中,错误的是()A.说明静态数据成员前边加staticB.静态数据成员要在类体外初始化C.引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D.静态数据成员不是一个类所有对象共享的10、若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数二、填空题1、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。
面向对象程序设计模拟试卷一一. 单选题(15)。
1. 关于构造的叙述_____正确:A. 最先构造虚基类B. 最先构造基类C. 最先构造派生类的对象成员D. 都不对2. 关于静态数据成员的叙述_____正确:A. 公有的可在类体外初始化B. 私有的不能在类体外初始化C. 私有和保护的不能在类体外初始化D. 都能够且必须在体外初始化3. 若派生类函数不是基类的友元, 关于该函数访问基类成员_____正确:A. 公有的可被派生类函数访问B. 都能够被派生类函数访问C. 公有和保护的可被派生类函数访问D. 都不对4. 关于函数的所有缺省参数的叙述_____正确:A. 只能出现在参数表的最左边B. 只能出现在参数表的最右边C. 必须用非缺省的参数隔开D. 都不对5. 使用friend、 virtual、 static说明函数的叙述_____正确:A. 必须同时使用三个B. 只能同时用其中两个C.只能独立单个地使用 D. 都不对二. 指出各类的成员及其存取属性(20) 。
class A{int a; protected:int b; public:int c;};class B: protected A{int d; protected:int e; public:A::c;int f;}; class C: A{int g; protected:int h; public:int i; };class D: B, C{int j; protected:B::b;int k; private:int n; };三. 指出main中每行的输出结果(20) 。
#include <iostream.h>struct A{A( ){ cout<<'A';}};struct B{B( ){ cout<<'B';}};struct C: A{C( ){ cout<<'C';}};struct D: virtual B, C{D( ){ cout<<'D';}};struct E: A{C c;E( ): c( ){ cout<<'E';}};struct F: virtual B, C, D, E{F( ){ cout<<'F';}};void main( ){A a; cout<<'\n';B b; cout<<'\n';C c; cout<<'\n';D d; cout<<'\n';E e; cout<<'\n';F f; cout<<'\n';}四. 指出以下程序的语法错误及其原因(15) 。
面向对象程序设计模拟试题(3)一、单选题:12分,每题02分1、循环语句“for(int i=0; i<n; i++) cout<<i*i<<’’;”中循环体执行的次数为( )。
A: 1B: n-1C: nD: n+12、在下面循环语句中循环体执行的次数为()。
int i=0; do i++; while(i*i<10);A: 4B: 3C: 5D: 23、软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的()。
A: 可维护性B: 可复用性C: 兼容性D: 正确性4、假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的( )。
A: 无参构造函数B: 带参构造函数C: 赋值重载函数D: 拷贝构造函数5、当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B 的()。
A: 只能是公有成员B: 只能是保护成员C: 只能是除私有成员之外的任何成员D: 具有任何权限的成员6、一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明()。
A: 需加上类域的限定B: 不需加上类域的限定C: 类域的限定可加可不加D: 不需要任何限定二、编程综合题:32分,每题08分7、#include<iostream.h>void main(){int a=2,b=5,c=0;if(a+b>10) c=a*b; else c=3*a+b;if(c<=20) cout<<c*c; else cout<<4+c-5;cout<<endl;a=a+b; b=a+b;c+=a+b;cout<<"a,b,c="<<a<<','<<b<<','<<c<<endl;}参考答案:121 //3分a,b,c=7,12,30 //3分8、#include<iostream.h>#include<string.h>class CD {char* a;int b;public:void Init(char* aa, int bb){a=new char[strlen(aa)+1];strcpy(a,aa);b=bb;}char* Geta() {return a;}int Getb() {return b;}void Output() {cout<<a<<' '<<b<<endl;} } dx;void main(){CD dy;dx.Init("abcdef",30);dy.Init("shenyafen",3*dx.Getb()+5);dx.Output();dy.Output();}参考答案:abcdef 30 //3分shenyafen 95 //3分9、#include<iostream.h>class Franction { //定义分数类int nume; //定义分子int deno; //定义分母public://把*this化简为最简分数,具体定义在另外文件中实现void FranSimp();//返回两个分数*this和x之和,具体定义在另外文件中实现Franction FranAdd(const Franction& x);//置分数的分子和分母分别0和1void InitFranction() {nume=0; deno=1;}//置分数的分子和分母分别n和dvoid InitFranction(int n, int d) {nume=n; deno=d;}//输出一个分数void FranOutput() {cout<<nume<<'/'<<deno<<endl;}};void main(){Franction a,b,c,d;a.InitFranction(6,15);b.InitFranction(3,10);c.InitFranction();c=a.FranAdd(b);d=c.FranAdd(a);cout<<"a: "; a.FranOutput();cout<<"b: "; b.FranOutput();cout<<"c: "; c.FranOutput();cout<<"d: "; d.FranOutput();}参考答案:a: 6/15b: 3/10c: 7/10d: 11/1010、#include<iostream.h>class A {int a,b;public:A(int aa, int bb) {a=aa; b=bb;}float Multip(char op) {switch(op) {case '+': return a+b;case '-': return a-b;case '*': return a*b;case '/': if(b!=0)return float(a)/b;else {cout<<"除数为0!"<<endl; return 0;} default: cout<<'\n'<<op<<"非法运算符!"<<endl;return 0;}}};void main() {A x(10,4);char a[6]="+-*/@";int i=0;while(a[i]) {float k=x.Multip(a[i]);if(k!=0) cout<<k<<' ';i++;}cout<<endl;}参考答案:14 6 40 2.5 //5分,每个数据占1分@非法运算符! //1分三、简答题:32分,每题08分11、指出程序或函数的功能#include<iostream.h>void main(){int i,p=1,s=0;int N;cout<<"输入一个正整数:";cin>>N;for(i=1;i<=N;i++) {p*=i;s+=p;}cout<<s<<endl;}参考答案:计算并输出的值,其中N值由键盘输入。
封面作者:PanHongliang仅供个人学习二、填空题(每小题1分,共10分.)1.C++通过和类模板来支持泛型程序设计.2.定义重载函数时,应至少使重载函数参数地类型或不同.3.封装是面向对象程序设计地基本特性,把数据和合成一个整体.4.可以在具有类型转换功能地构造函数地声明前面加上关键字,禁止隐式类型转换.5.类中成员地访问权限可以分为公有、和私有.6.如果类地定义中没有显式初始化对象成员,则系统将调用该对象地以实现初始化.7.如果一个派生类只有唯一地基类,这种继承关系称为.8.用new动态创建对象,用删除该对象.9.在C++类中,有一种不能定义对象地类,这样地类只能被继承,称为.10.在STL中,如同一个特殊地指针(用以指向容器中某个位置地数据元素).三、单项选择题(每小题2分,共30分.)1.基于面向对象程序设计地软件系统应该具有( ).A、高内聚、低耦合地特征B、低内聚、低耦合地特征C、高内聚、高耦合地特征D、低内聚、高耦合地特征2.假定AB为一个类,则该类地拷贝构造函数地声明语句为( ).A、AB(AB x)B、AB(AB * x)C、AB&(AB x)D、AB(AB &)3.假定Matrix是名称空间osg地一个类,则下列语句错误地是( ).A、using osg::Matrix。
Matrix m。
B、using namespace osg::Matrix。
Matrix m。
C、using namespace osg。
Matrix m。
D、osg::Matrix m。
4.静态成员函数没有( ).A、返回值B、this指针C、指针参数D、返回类型5.类模板地实例化( ).A、属于动态联编B、在连接时进行C、在编译时进行D、在运行时进行6.能用友元函数重载地运算符是( ).A、->B、=C、+D、[]7.派生类地对象对它地基类成员中( )是可以访问地.A、公有继承地私有成员B、私有继承地公有成员C、公有继承地公有成员D、公有继承地保护成员8.如果要禁止对象之间地赋值运算,应该把operator=声明为( )成员.A、privateB、friendC、publicD、protected9.若要打开一个用于输入地文本文件file.txt,下列操作错误地是( ).A、ifstream inFile。
《面向对象程序设计》模拟试题及答案一、单项选择题(每小题2分,共20分)1. C++程序的基本功能模块为()。
A. 表达式B. 标识符C. 语句D. 函数2. 当处理特定问题的循环次数已知时,通常采用()来解决。
A. for循环B. while循环C. do循环D. switch语句3. 下面函数原型语句正确的是()。
A. int Function(void a);B. void Function (int);C. int Function(a);D. int(double a);4. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为()。
A. int p=&m;B. int *p=&m;C. int &p=*m;D. int *p=m;5. 假定变量a和pa定义为“double a[10], *pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是()。
A. pa[5]=12.35;B. a[5]=12.35;C. *(pa+5)=12.35;D. *(a[0]+5)=12.35;6. 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A. x.aB. x.a()C. x->GetValue()D. x.GetValue()7. 类的构造函数是在定义该类的一个( )时被自动调用执行的。
A. 成员函数B. 数据成员C. 对象D. 友元函数8. 假定AB为一个类,则执行“AB x;”语句时将自动调用该类的( )。
A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数9. 假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为( )。
A. AB() {a=0;}B. AB(int aa=0): a(aa) {}C. AB(int aa): a(aa) {}D. AB() {}10. 如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
信计专业《面向对象程序设计》模拟题一、填空题(每空2分,共20分)1、类的成员的可访问性可分为三类:、、。
答案:public 、protected 、private2、析构函数在对象的时被自动调用,全局对象和静态对象的析构函数在调用。
答案:生命期结束 main函数运行结束之后3.要在类的对象上使用运算符,除了运算符和外,都须被重载4. 运算new分配的内存要用运算符 __________ 回收。
答案:delete5. 参数 __________ 表示重载后缀 ++ 运算符函数。
答案:int6.联编是指将函数调用与相应函数体代码彼此关联的过程。
若此过程在程序开始运行前的编译时完成,则称之为联编。
静态或早期7.在说明引用时用const修饰的引用为常引用,它所引用的对象不允许更改。
8.一个非成员函数必须声明为一个类的 friend 才有可能存取该类的私有数据成员。
9、类和对象的关系可表述为:类是对象的抽象,而对象则是类的实例。
二、单项选择题(10小题,每小题2分,共20分)每小题列出的选项中只有一个是正确的,请选择正确的选项前的字母填在题后的括号内。
1. 关于虚函数,正确的描述是( A )A) 构造函数不能是虚函数B) 析构函数不能是虚函数C) 虚函数可以是友元函数D) 虚函数可以是静态成员函数2. 类的构造函数的作用是( C )A) 一般成员函数 B) 类的初始化C) 对象的初始化 D) 删除对象3. 有关运算符重载正确的是( D )A)C++语言允许在重载运算符时改变运算符的操作个数B)C++语言允许在重载运算符时改变运算符的优先级C)C++语言允许在重载运算符时改变运算符的结合性D) C++语言允许在重载运算符时改变运算符的原来的功能4. 可以被对象之外访问的成员是( B )A) 私有成员函数B) 公有成员函数 C) 常量成员函数D) 所有成员函数5. 类的析构函数的作用是( D )A)一般成员函数B)类的初始化C)对象的初始化D)删除类创建的所有对象6. 什么样的成员函数不能修改数据成员?( C )A) 私有成员函数B)公有成员函数C)常量成员函数 D)所有成员函数7、下面关于对象概念的描述中,错误的是( C )。
A对象就是C语言中的结构变量B 对象代表着正在创建的系统中的一个实体C 对象是一个属性和操作(或方法)的封装体D 对象之间的信息传递是通过消息进行的8、下面关于类概念的描述中,错误的是( D )。
A类是抽象数据类型的实现B 类是具有共同行为的若干对象的统一描述体C 类是创建对象的样板D 类就是C语言中的结构体类型9、面向对象程序设计思想的主要特征中不包括( D )。
A封装性 B 多态性 C 继承性 D 功能分解,逐步求精10、在函数的返回值类型与返回值表达式的类型的描述中,错误的是( B )。
A函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的B 函数返回值的类型就是返回值表达式的类型C 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型D 函数返回值类型确定了返回值表达式的类型三、阅读并分析下列程序,写出程序运行结果(共6小题,每小题6分,共36分)阅读下列程序,分析程序的输入(如果有)、运行过程及功能,写出程序的输出结果.1.#include <iostream.h>class Myclass { public:Myclass(int x, int y) {A=x; B=y;Sum+=A+B;}void PrintNum() { cout<<"Number="<<A<<","<<B<<endl;}void PrintSum() { cout<<"Sum="<<Sum<<endl;}private:int A, B;static int Sum;};int Myclass::Sum=0;int main(){ Myclass A(2005,12), B(12,26);A.PrintNum();B.PrintNum();B.PrintSum();}2.#include <iostream.h>class A{public:A(){a=0; cout<<"A's default constructor called.\n";}A(int i){a=i; cout<<"A's constructor called.\n";}~A(){cout<<"A's destructor called.\n";}void Print() const { cout<<a<<",";}int Geta(){ return a;}private:int a;};class B:public A{public:B(){b=0; cout<<"B's default constructor called.\n";}B(int i,int j,int k): A(i), aa(j){b=k; cout<<"B's constructor called.\n";}~B(){cout<<"B's destructor called.\n";}void Print(){A::Print();cout<<b<<","<<aa.Geta()<<endl;}private:int b;A aa;};void main(){B bb;bb=B(05, 12, 26);bb.Print();}3.#include <iostream.h>class Shape{ public:virtual double Area(){ return 0;}virtual void print()=0;};class Rectangle: public Shape{ public:Rectangle(double h, double w) {H=h; W=w;}double Area() { return H*W; }void print() { cout<<"Rectangle Area:";}double H,W;};class Circle: public Shape{ public:Circle(double r) {R=r;}double Area() { return 3.14*R*R; }void print() { cout<<"Circle Area:";}double R;};void PrintArea(Shape & s){s.print();cout<<s.Area()<<endl;}int main(){ Rectangle Rec(6.0,7.0);Circle Cir(10.0);PrintArea(Rec);PrintArea(Cir);}4.#include <iostream.h>void fun(){static int a=2;int x(3);cout<<(a+=5,a+x)<<',';}int main(){fun(); fun(); fun();fun(); fun();}5.#include<iostream.h>class TestB {public:TestB(int a1,int a2){ v[0]=a1;v[1]=a2;}int& operator[] (int bi);private: int v[2];};int& TestB::operator[](int bi) {if (bi<0||bi>=2){ cout<<“Bad subscript!\n”;exit(1); } return v[bi]; }int main ( ) {TestB v(11,22); cout<<"Begin:v[1]= "<<v[1]<<endl;v[1]=33; cout<<"End:v[1]= "<<v[1]<<endl;return 0;}6.#include<iostream.h>class A{public:A(int a,int b):x(a),y(b){ cout<<"A constructor..."<<endl; }void Add(int a,int b){ x+=a;y+=b;}void display(){ cout<<"("<<x<<","<<y<<")";}~A(){cout<<"destructor A..."<<endl;}private:int x,y;};class B:private A{private:int i,j;A Aobj;public:B(int a,int b,int c,int d):A(a,b),i(c),j(d) ,Aobj(1,1){cout<<"B constructor..."<<endl;}void Add(int x1,int y1,int x2,int y2){A::Add(x1,y1);i+=x2; j+=y2;}void display(){A::display();Aobj.display();cout<<"("<<i<<","<<j<<")"<<endl;}~B(){cout<<"destructor B..."<<endl;}};int main(){B b(1,2,3,4);b.display();b.Add(1,3,5,7);b.display();return 0;}7.#include<iostream.h>class ABC{int a,b,c;public:ABC(int x,int y,int z):a(x),b(y),c(z){}friend ostream &operator<<(ostream &out,ABC& f);};ostream &operator<<(ostream &out,ABC& f){out<<"a="<<f.a<<endl<<"b="<<f.b<<endl<<"c="<<f.c<<endl;return out;}int main(){ABC obj(10,20,30);cout<<obj;return 0;}8.#include<iostream.h>class Sample{int A;static int B;public:Sample(int a){A=a,B+=a;}static void func(Sample s);};void Sample::func(Sample s){cout<<"A="<<s.A<<",B="<<B<<endl;}int Sample::B=0;int main(){Sample s1(2),s2(5);Sample::func(s1);Sample::func(s2);}四、程序设计题(共3小题, 每小题8分,共24分)。