c面向对象程序设计试题和答案经典题目
- 格式:doc
- 大小:46.00 KB
- 文档页数:17
《面向对象程序设计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.37、有关析构函数的说法,不正确的是()。
A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是()。
A.private 部分B.protected 部分C.public 部分D.以上都不对9、关于常数据成员的说法,不正确的是()。
c面向对象考试题及答案一、选择题(每题2分,共10分)1. 在C++中,以下哪个关键字用于定义类的成员函数?A. staticB. virtualC. friendD. public答案:B2. 以下哪个选项不是C++中的访问修饰符?A. privateB. protectedC. publicD. global答案:D3. 在C++中,哪个关键字用于创建类的实例?A. classB. newC. structD. enum答案:B4. C++中的继承默认使用的是哪种继承方式?A. 公有继承B. 私有继承C. 保护继承D. 无继承答案:A5. 以下哪个不是C++中的多态性实现方式?A. 函数重载B. 函数覆盖C. 运算符重载D. 模板答案:D二、填空题(每题2分,共10分)1. 在C++中,类的构造函数可以有参数,也可以没有参数,没有参数的构造函数称为_________构造函数。
答案:默认2. C++中,析构函数的名称是在类名前加上一个_________符号。
答案:~3. 当一个类的对象被销毁时,会自动调用该对象的_________函数。
答案:析构4. 在C++中,如果一个类继承自另一个类,那么被继承的类称为_________类。
答案:基类5. C++中,如果一个类继承自多个类,这种继承方式称为_________继承。
答案:多重三、简答题(每题5分,共20分)1. 简述C++中类的封装性。
答案:类的封装性是指将数据(属性)和行为(方法)捆绑在一起,并对外部隐藏其内部实现细节,只提供有限的接口与外部交互。
2. 描述C++中类的继承机制及其作用。
答案:C++中的继承机制允许一个类(派生类)继承另一个类(基类)的属性和方法,从而实现代码的重用和扩展。
继承可以是公有的、保护的或私有的,分别对应不同的访问权限。
3. 解释C++中的多态性及其应用场景。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。
c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。
面向对象程序设计C++期末考试题及答案一、选择题(每题5分,共40分)1. 下面哪个不是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 顺序结构答案:D2. C++中,构造函数的名称与类名相同,下列关于构造函数的说法错误的是:A. 构造函数可以重载B. 构造函数不能有返回值C. 构造函数可以没有参数D. 构造函数的参数列表中不能有默认参数答案:D3. 在C++中,析构函数的名称是:A. ~类名B. 类名~C. 析构函数D. ~析构函数答案:A4. 关于静态成员的说法,下列正确的是:A. 静态成员函数不能访问非静态成员B. 静态成员函数只能访问静态成员C. 静态成员变量在类的每个对象中都有独立的副本D. 静态成员变量在类的所有对象中共享一个副本答案:D5. 下面哪个操作符不能用于重载?A. =B. +C. []D. :答案:D6. 关于虚函数的说法,下列错误的是:A. 虚函数可以是构造函数B. 虚函数可以是析构函数C. 虚函数必须有函数体D. 虚函数的返回类型可以是void答案:A7. 在C++中,纯虚函数的定义是:A. virtual 返回类型函数名(参数列表) = 0;B. virtual 返回类型函数名(参数列表) {}C. 返回类型函数名(参数列表) = 0;D. 返回类型函数名(参数列表) {}答案:A8. 下面哪个关键字用于定义模板类?A. templateB. typenameC. classD. template class答案:A二、填空题(每题5分,共30分)1. 面向对象程序设计中的三大特性是:________、________、________。
答案:封装、继承、多态2. 在C++中,构造函数的调用顺序是:先调用基类的构造函数,再调用________的构造函数。
答案:派生类3. 在C++中,析构函数的调用顺序是:先调用________的析构函数,再调用基类的析构函数。
c面向对象程序设计考试试卷(详细讲解).docC++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20 题,每题 1 分,共 20 分)1、下列关于 C++标识符的命名不合法的是C与 C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:() Dint x=2;char w='a';float y=23.45f;double z=45.6712;则表达式 w*x+y-z 的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型(构造函数特点是无返回类型)B.构造函数的名字与该类的类名相同C.一个类中可定义0 至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D.构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< bdsfid="108" p=""></add(x,y)<<endl;<>}int x=20,y=5;int add(int a,int b){int s=a+b;- 1 -return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA.常成员包含常数据成员和常成员函数两种B.常数据成员必须是公有的C.常数据成员要使用构造函数成员初始化列表进行初始化D.常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend14、如果有 int x,*p; float y,*q; 则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用 new 运算符分配的内存空间的长度必需是常量B.delete 运算符可以释放动态的存储空间和静态的存储空间C.由 new 分配的内存空间是不连续的D.delete 运算符只能释放由new 分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtualD.public20、在 C++中串流类是在头文件 strstrea.h 中定义的,下列不属于串流类的是) CA.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9 题 16 空,每空 1 分,共 16 分)1、函数重载时,编译系统会根据 __形参的类型 __或__形参的个数__来区分。
一、单选题1. C++源程序文件的缺省扩展名为( A )。
A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。
A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是()。
A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是()。
A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12。
”,则执行完语句”a+=a*a。
”后,a的值是( )。
A. 12B. 144C. 156D. 28813. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( )。
选择题1.在C++中,函数原型不能标识( D )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过( B )A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为( B )A.0B.1C.2D.34.友元关系不能( A )A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率5.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且( A )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件6.下面说法正确的是( B )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline 定义7.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是( D )A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员8.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C )A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针9. 派生类对象可访问基类中的什么成员( A )A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员10. 定义析构函数时,应该注意(C)A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句11. 如果类A被说明成类B的友元,则( D )。
一、单选题1、面向对象思想的三大基本特征是A.对象,属性,方法B.类,对象,方法C.抽象,继承,派生D.继承,封装,多态正确答案:D2、以下描述中,错误的是A.继承可使派生类继承基类的属性和方法。
B.封装隐藏了实现细节,使代码模块化。
C.继承就是派生类继承了基类的所有方法。
D.多态是通过继承实现的不同对象调用相同的方法,表现出不同的行为。
正确答案:C3、关于类成员的访问修饰符,描述错误的是A.在类前添加访问修饰符,声明了类内部成员对该类的访问权限。
B.在类声明时,访问修饰符是可选部分。
C.public修饰的方法,在类实例化调用时,可用“类名.方法名()”调用。
D.private私有成员和私有字段成员只能被类内部的方法使用和修改。
正确答案:A4、下面关于var关键字的描述,错误的是A.只能在变量声明中包含初始化时使用。
B.一旦编译器推断出变量的类型,它就是固定且不能改变的。
C.能用于局部变量和全局变量。
D.var关键字并不是某种特别类型的符号,它只是句法上的速记,表示任何可以从初始化的右边推断出的类型。
正确答案:C5、关于静态字段的描述,错误是A.一个类的所有对象共享静态字段。
B.如果静态字段的值被一个实例改变,所有实例都可见。
C.静态函数成员能访问实例成员和静态成员。
D.static修饰符声明的字段为静态字段。
正确答案:C6、关于属性的使用正确的是A.private int num;public int Num{get{return num;}set{num=value;}}B.private int num;private int Num{get{return num;}set{num=value;}}C.private int num;public int Num{get{num=value;}set{return num;}}D.private int num;public string Num{get{return num;}set{num=value;}}正确答案:A7、C#中的数据类型的描述,错误的是A.类类型属于引用类型,默认值是null。
一、选择题:1、下列关于类的描述中,错误的是( A )。
A.类就是C语言中的结构类型B.类是创建对象的模板C.类是抽象数据类型的实现D.类是具有共同行为的若干对象的统一描述体2、下列常量中,不是字符常量的是( B )。
A.'\n' B."y"C.'x' D.'\7'3、下列表达式中,其值为0的是( A )。
A.5/10 B.!0C.2>4?0:1 D.2&&2||04、下列关于数组维数的描述中,错误的是( C )。
A.定义数组时必须将每维的大小都明确指出B.二维数组是指该数组的维数为2C.数组的维数可以使用常量表达式D.数组元素个数等于该数组的各维大小的乘积5、下列关于字符数组的描述中,错误的是( D )。
A.字符数组中的每一个元素都是字符B.字符数组可以使用初始值表进行初始化C.字符数组可以存放字符串D.字符数组就是字符串6、已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。
A.a[0] B.a[1]C.a[2] D.a[3]7、下列while循环语句的循环次数是( A )。
while(int i(0)) i--;A.0 B.1C.2 D.无限8、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( C )。
A.&(a+1) B.&(p+1)C.&p[2] D.*p++9、已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。
A.p=&a B.p=&bC.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};10、当一个函数没有返回值时,该函数类型应说明为( A )。
A.void B.intC.无D.任意11、下列关于类的定义格式的描述中,错误的是( C )。
《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第8页上)】一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。
A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,(A )是正确的。
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='*');下面函数调用中,不合法的是( C )。
>A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( A )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的^D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了(D )次构造函数。
A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是( B )。
A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型。
一、填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;______p1.show()_________//通过对象p1访问show函数_______p.show()_______//通过指针p访问show函数}2、在C++类中可以包含___公共___、___保护_____和___私有__三种具有不同访问控制权的成员。
3、定义类时,在类头中将使用关键字__class _____来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为_______抽象类_________。
5、C++类的组成包括数据成员和______成员函数________,友元__是___(是、不是)该类的成员函数。
6、友员函数是用关键字_____friend_______修饰的非成员函数。
7、若有:int i;int &j=i;i=10;j=i+1;则i=____11_____,j=___11______。
1 / 178、 new的功能是_______分配内存空间______,delete的功能是______释放内存空间______________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是( D )。
(A)数据封装(B)继承(C)多态性(D)模板2、( B )是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share (B)public (C)private (D)protected4、关于构造函数,下列说法不正确的是()。
(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.protectedC.private D.static9、下面有关重载函数的说法中正确的是()(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.312、每个类()构造函数。
(A)只能有一个(B)只可有公有的(C)可以有多个(D)只可有缺省的13、在一个类中可以对一个操作符进行()重载。
(A)1 种(B)2 种以下(C)3 种以下(D)多种3 / 1714、在公有继承的情况下,基类非私有成员在派生类中的访问权限()(A)受限制(B)保持不变(C)受保护(D)不受保护15、应在下列程序划线处填入的正确语句是()#include <iostream.h>class Base{public:void fun(){cout<<"Base::fun"<<ENDL;}};class Derived:public Base{ void fun(){_____________//显示调用基类的函数fun()cout<<"Derived::fun"<<ENDL;}};(A)fun(); (B)Base.fun(); (C)Base::fun(); (D)Base->fun();16、执行下面的程序将输出()#include <iostream.h>class BASE{char c;public:BASE(char n):c(n){}virtual ~BASE(){cout<<c;}};class DERIVED:public BASE{char c;public:DERIVED(char n):BASE(n+1),c(n){}~DERIVED(){cout<<c;}};int main(){DERIVED a('X');return 0;}(A)XY (B)YX (C)X (D)Y17、下面描述中,表达错误的是()(A)公有继承时基类中的public成员在派生类中仍是public 的(B)公有继承是基类中的private成员在派生类中仍是private的(C)公有继承时基类中的protected成员在派生类中仍是protected的(D)私有继承时基类中的public成员在派生类中是private 的18、定义析构函数时,应该注意()(A)其名与类名完全相同(B)返回类型是 void 类型(C)无形参,也不可重载(D)函数体中必须有delete 语句19、对于在类中定义的静态数据成员,下面正确的说法是()A.该类的每个对象中都有一个静态数据成员B.对象创建时产生5 / 17C.在类外进行初始化D.既可以在类外初始化,也可以在类内初始化20、C++中声明常量的关键字是()。
A. constB. externC. publicD. enum三、改错题(每处2分,共6分)1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main 函数中的错误,使程序的输出结果为:member=0member=5menber=10源程序文件main.cpp清单如下:#include <iostream.h>class MyClass{public:MyClass(int i){member=i;}void SetMember(int m){member=m;}int GetMember()const{return menber;}void print()cont{cout<<"member="<<MEMBER<<ENDL;} private:int member;};voed main(){MyClass obj1; //更正_____________________________obj1.print();MyClass obj2(3);obj1.member=5; //更正__________________________MyClass.SetMember(10); //更正_______________________obj1.print();obj2.print();}四、写出下列程序的执行结果(每小题5分,共20分)1、#include<iostream.h>class Sample{ int n;public:Sample(int i){n=i;}friend int add(Sample &s1,Sample &s2);};int add(Sample &s1,Sample &s2){return s1.n+s2.n;}void main(){Sample s1(10),s2(20);cout<<add(s1,s2)<<endl;}执行结果是:2、#include<iostream.h>int add(int x,int y){return x+y+1;7 / 17}double add(double x,double y){return x+y-1;}void main(){int a=2,b=4;double c=2.6,d=7.4;cout<<add(a,b)<<","<<add(c,d)<<endl; }执行结果是:3、#include<iostream.h>class A{public:int n;};class B:virtual public A{};class C:virtual public A{};class D:public B,public C{int getn(){return B::n;}};void main(){D d;d.B::n=10;d.C::n=20;cout<<d.B::n<<","<<d.C::n<<endl;}执行结果是:4、#include <iostream.h>class myclass{int a,b;static int s;public:myclass(int x,int y){a=x;b=y;s++;}void print(){cout<<s<<endl;}};int myclass::s=0;void main(){myclass m1(1,2),m2(4,5),m3(6,7);m1.print();m2.print();m3.print();9 / 17}执行结果是:五、编程题(每题10分、共30分)1、测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。
(10分) 2、定义一boat与car两个类,二者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。
(10分)3、设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。
小车类car是它的派生类,其中包含载人数passenger_load。
每个类都有相关数据的输出方法。
在主程序中定义一个car类对象,对其车轮个数、车重、载人数进行设置并显示。