1、结束 B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类 D)上面都是错误的 9( C )解决二义性问题。A)只能使用作用域分辨操作符 B)只能使用虚基类C)使用作用域分辨操作符或虚基类 D)上面都不能10实现编译时的多态性要使用( A )。A)重载函数 B)析构函数 C)构造函数 D)虚函数二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是( )。2定义静态成员函数应使用关键字( )。3在C+中,如果类的名称是CTest,则此类的构造函数名称为( )。
2、4在类的对象被创建时,( )函数会被自动调用。5用class声明的类中数据成员和成员函数的默认访问级别为( private )。三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include using namespace std;class Apublic: A() cout A() endl; A() cout A() ;int main() A a, *p = new A; delete p; cout end return 0;上面程序的输出结果为:/自己再做一次2阅读下面程序,写出输出结果。class Arraypriv
3、ate: int *elem; int size; Array(int a, int sz): elem(a), size(sz) int GetSize() const return size; int &operator(int pos) return elempos - 1; int a = 1, 2, 3, 4, 5; Array ar(a, 5); ar1 = 8; for (int i = 1; i = ar.GetSize(); i+) cout ari ; 8 2 3 4 53阅读下面程序,写出输出结果。 virtual void Show() const cout Aclas
4、s B: public A void Show() const cout A:Show();卧槽 我已经乱了ABB /尼玛为啥4阅读下面程序,写出输出结果。template ElemType f(ElemType x) return x * (ElemType)5.1;void f(ElemType x, ElemType y) x = x * 1.1; y = y * 1.1; x y f(3) f(1, 2); f(1.0, 2.0);5阅读下面程序,写出输出结果。 int a; A(int m = 1): a(m) void Show() cout a a + 5 int main()
5、A a, b(8); a.Show(); b.Show(); const A c, d(8); c.Show(); d.Show();18613 /嗯(_)为毛6阅读下面程序,写出输出结果。class Test static int n; Test() n += 6; Test() n -= 8; static int GetNum() return n;int Test:n = 2;int main() Test:GetNum() Test *p = new Test;四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。1请完成下面的程序 stat
6、ic int count; / 对象数 /耶猜对了 Test() count+; static void Show() cout 共有 count 个对象! 数count = 0; Test obj1, obj2, obj3;2请完成下面的程序class Integer Integer(int x = 0) a = x; operator int() return a; Integer operator+(const Integer &i) const return a+i.a ; / 返回和 Integer a(2), b(3), c; c = a + b; c 3请完成下面的程序class
7、 A ElemType a; A(ElemType x): a(x) int main() A obj(Hello, world!); obj.Show();4下列程序的输出结果为“B”,试将程序补充完整。 virtual void Show() const cout T Average(T a, int n) / 求数组a各元素之平均值2定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类TeacherCadre(教师兼干部)类,各类之间的继承关系如下图所示。要求:(1)
8、在Person类中包含的数据成员有姓名(name)、年龄(age)、性别(sex)。在Teacher类还包含数据成员职称(title),在Cadre类中还包含数据成员职务(post),在TeacherCadre类中还包含数据成员工资(wages)。(2)在类体中定义成员函数。(3)每个类都有构造函数与显示信息函数(Show)。C+面向对象程序设计模拟试题三参考答安全1C) 2D) 3A) 4B) 5D)6A) 7C) 8C) 9C) 10A)1参考答案:int fun() = 0;2参考答案:static3参考答案:CTest 4参考答案:构造函数 5参考答案:private或私有A()A()
9、end1521.12.2136参考答案:1 static2 a + i.a或this-a + i.a 3 char *4 virtual1参考程序:T Average(T a, int n) T s = 0; for (int i = 0; n; s = s + ai; return s / n; double a = 11.8, 2, 3, 4, 5.5, 6.8, 7, 8, 9; Average(a, 9) 2参考程序:class Personprotected: char name18; int age; char sex3; Person(char nm, int ag, char
10、sx) strcpy(name, nm); age = ag; strcpy(sex, sx); void Show() const 姓名: name 年龄: age 性别: sex class Teacher: virtual public Person char title18; Teacher(char nm, int ag, char sx, char tl): Person(nm, ag, sx) strcpy(title, tl); void Show() const Person:职称: title class Cadre: char post18; Cadre(char nm,
11、 int ag, char sx, char pt): strcpy(post, pt);职务: post class TeacherCadre: public Teacher, public Cadre double wages; TeacherCadre(char nm, int ag, char sx, char tl, char pt, double wg) : Person(nm, ag, sx), Teacher(nm, ag, sx, tl), Cadre(nm, ag, sx, pt) wages = wg; 工资: wages 元 Teacher objTeacher(文冠杰, 48, 男, 教授 Cadre objCadre(周杰, 56, 院长 TeacherCadre objTeacherCadre(李靖, 50, 女, 6890); objTeacher.Show(); objCadre.Show(); objTeacherCadre.Show();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1