四川大学电子信息学院卓越工程师班高级语言程序设计II....doc

上传人:仙人指路1688 文档编号:2385847 上传时间:2023-02-17 格式:DOC 页数:12 大小:45.50KB
返回 下载 相关 举报
四川大学电子信息学院卓越工程师班高级语言程序设计II....doc_第1页
第1页 / 共12页
四川大学电子信息学院卓越工程师班高级语言程序设计II....doc_第2页
第2页 / 共12页
四川大学电子信息学院卓越工程师班高级语言程序设计II....doc_第3页
第3页 / 共12页
四川大学电子信息学院卓越工程师班高级语言程序设计II....doc_第4页
第4页 / 共12页
四川大学电子信息学院卓越工程师班高级语言程序设计II....doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《四川大学电子信息学院卓越工程师班高级语言程序设计II....doc》由会员分享,可在线阅读,更多相关《四川大学电子信息学院卓越工程师班高级语言程序设计II....doc(12页珍藏版)》请在三一办公上搜索。

1、计算机学院2010级高级语言程序设计II计期末试题一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1下列语句中,错误的是( )。A)const int buffer = 256;B)const int tem;C)const double *point;D)double * const pt = new double(5.5);参考答案:B2有以下函数模板:template Type Area(const Type &size) return size * size; 其中Typ

2、e是( )。A)函数形参B)函数实参C)模板类型形参D)模板类型实参参考答案:C3由于常对象不能被更新,因此( )。A)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数参考答案:A4如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是( )。A)public和publicB)public和protectedC)protected和publicD)protected和protected参考答案:C5下列关于this指针的叙述中,正确的是( )。

3、A)与类相关的所有函数都含有this指针B)所有类的成员函数都有this指针C)类的所有友元函数都有this指针D)只有类的非静态成员函数才有this指针参考答案:D6.在C+中,用于实现编译时多态性的是( )。A)友元函数B)重载函数C)静态成员函数D)虚函数参考答案:B7在下列函数原型中,可以作为类AA构造函数的是( )。A)void AA(int);B)int AA();C)AA(int); D)AA(int);参考答案:D8使用ifstream流类定义流对象并打开磁盘文件时,文件的默认打开方式为( )。A)ios:inB)ios:outC)ios:in | ios:outD)没有默认的

4、打开方式参考答案:A9在下面4个关键字中,用于说明虚基类的是( )。A)virtual B)publicC)protected D)private参考答案:A10在面向对象方法中,实现信息隐蔽是依靠( )。A)对象的继承B)对象的多态C)对象的封装D)对象的分类参考答案:C二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1含有纯虚函数的类称为( )。参考答案:抽象类2若将一个二元运算符重载为类的成员函数,其形参个数应该是( )个。参考答案:13一个全局函数应声明为类的( )函数才能访问这个类的private成员。参考答案:友元4

5、重载运算符“”的函数名为( )。参考答案:operator5定义模板的关键字为( )。参考答案:template三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include / 编译预处理命令using namespace std;/ 使用命名空间std class CTestprivate:int n;/ 数据成员public:CTest(int i = 16): n(i)/ 构造函数int Get() return n; / 返回nint Get() const return n - 2; / 返回n-2;int main(

6、)/ 主函数main()CTest a;/ 定义对象aconst CTest b(8);/ 定义对象bcout a.Get() , b.Get() endl;/ 输出信息return 0; / 返回值0, 返回操作系统上面程序的输出结果为:参考答案:16,62阅读下面程序,写出输出结果。#include / 编译预处理命令using namespace std;/ 使用命名空间std class Apublic:A() cout A endl; / 构造函数A() cout A endl; / 析构函数;class Bprivate:A a;/ 数据成员public:B() cout B en

7、dl; / 构造函数B() cout B endl; / 析构函数;int main(void)/ 主函数main()B obj;/ 定义对象return 0; / 返回值0, 返回操作系统上面程序的输出结果为:参考答案:ABBA3阅读下面程序,写出输出结果。#include / 编译预处理命令using namespace std;/ 使用命名空间std template T Max(const T &a, const T &b) return a b ? b : a; int main()/ 主函数main()cout Max(1.8, 5.18) endl Max(1.8, 5.18)

8、endl;/ 输出信息return 0; / 返回值0, 返回操作系统上面程序的输出结果为:参考答案:5.1854阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdnamespace ns/ 命名空间ns int x = 10;/ 命名空间ns中的变量xint y = 100;/ 命名空间ns中的变量ynamespace/ 无名命名空间 int x = 20;/ 命名空间中的变量xint y = 300;/ 全局变量yint main(void)/ 主函数main(void)cout x ns:x endl;/ 显示变

9、量x的值cout ns:y y endl;/ 显示变量y的值return 0; / 返回值0, 返回操作系统上面程序的输出结果为:参考答案:20 10100 3005阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 基类class Basepublic:/ 公有函数:virtual void Show() const cout Base:Show() endl; / 虚函数;/ 派生类class Derived: public Basepublic:/ 公有函数:void Show() const cout Der

10、ived:Show() endl; / 虚函数;void Refers(const Base &obj)/ 基类引用obj.Show();/ 调用函数Show()int main()/ 主函数main()Base obj1;/ 定义对象Derived obj2;/ 定义对象Refers(obj1);/ 调用函数Refers()Refers(obj2);/ 调用函数Refers()return 0; / 返回值0, 返回操作系统上面程序的输出结果为:参考答案:Base:Show()Derived:Show()6阅读下面程序,写出输出结果。#include / 预处理命令using namespa

11、ce std;/ 使用标准命名空间stdclass Aprotected:/ 数据成员:int a;/ 数据成员public:/ 公有函数:A(int x): a(x) / 构造函数void Show() const cout a endl; / 显示a之值;class B protected:/ 数据成员:int b;/ 数据成员public:/ 公有函数:B(int x): b(x) / 构造函数void Show() const cout b endl; / 显示a与b之值;class C: public A, public B public:/ 公有函数:C(int x, int y)

12、: A(x), B(y) / 构造函数void Show() const/ 显示b之值 cout a , b endl; ;int main()/ 主函数main()C obj(5, 18);/ 定义对象obj.Show();/ 显示相关信息obj.A:Show();/ 显示相关信息obj.B:Show();/ 显示相关信息return 0; / 返回值0, 返回操作系统上面程序的输出结果为:参考答案:5,18518四、程序填空题(本大题共4小题,每小题3分,共12分)1将如下程序补充完整。#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 测

13、试静态成员类class Testprivate:/ 数据成员:static int count;/ 对象数public:/ 公有函数:Test() count+; / 构造函数, 实现对对象进行计数static void Show() cout 共有 count 个对象! endl; / 显示对象数; 0;/ 为静态数据成员赋初值int main()/ 主函数main()Test obj1, obj2, obj3;/ 定义对象Test:Show();/ 显示对象数return 0; / 返回值0,返回操作系统参考答案:int Test:count =2下列程序的输出结果为“B”,试将程序补充完

14、整。#include / 编译预处理命令using namespace std;/ 使用命名空间std class Apublic: void Show() const cout A endl; / 输出信息;class B: public Apublic:void Show() const cout B Show();/ 输出信息delete p;/ 释放空间return 0; / 返回值0, 返回操作系统参考答案:virtual3将如下程序补充完整。#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 基类class Baseprivate:

15、/ 数据成员:int m;/ 数据成员public:/ 公有函数:Base(int a): m(a) / 构造函数virtual void Show() const cout m endl; / 虚函数;/ 派生类class Derived: public Baseprivate:/ 数据成员:int n;/ 数据成员public:/ 公有函数:Derived(int a, int b): Base(a), n(a) / 构造函数void Show() const/ 虚函数 cout n Show();/ 调用Show()return 0; / 返回值0, 返回操作系统参考答案:Base:4将

16、如下程序补充完整。#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 整型类class Intprivate:/ 数据成员:int i;/ 数据成员public:/ 公有函数:Int(int x = 0): i(x) / 构造函数,将基本类型int转换为整型类Int() return i; / 类类型转换函数, 将类Int转换为基本类型int;int main()/ 主函数main()Int a;/ 定义整型对象cout a endl;/ 显示areturn 0; / 返回值0, 返回操作系统参考答案:operator int五、编程题(本大题

17、共2小题,第1小题12分,第2小题16分,共28分)1试使用函数模板实现求一个数组各元素的最小值,要求编写测试程序。函数模板声明如下:template Type Min(Type a, int n)/ 求数组a各元素的最小值参考程序: #include / 编译预处理命令using namespace std;/ 使用命名空间std template Type Min(Type a, int n)/ 求数组a各元素的最小值Type m = a0;/ 用m表示当前所求的最小值for (int i = 1; i n; i+)if (ai m) m = ai;/ 比较求出当前的最小值return m

18、;/ 返回最小值int main()/ 主函数main()int a = 1, 2, 3, 4, 5, 6, 7, 8, 9;/ 定义数组cout Min(a, 9) endl;/ 输出各元素的最小值return 0; / 返回值, 返回操作系统2定义复数类Complex,并重载加法运算符“+”、重载输出运算符“”,要求编写测试程序。参考程序: #include / 编译预处理命令using namespace std;/ 使用命名空间std / 声明复数数class Complexprivate:/ 数据成员double real;/ 实部double image;/ 虚部public:/

19、公有函数Complex(double r = 0, double i = 0): real(r), image(i) / 构造函数double GetReal() const return real; / 返回实部double GetImage() const return image; / 返回虚部void SetReal(double r) real = r; / 设置实部void SetImage(double i) image = i; / 设置虚部;Complex operator+(const Complex &a, const Complex &b)/ 重载加法运算符+retur

20、n Complex(a.GetReal() + b.GetReal(), a.GetImage() + b.GetImage(); / 返回和istream &operator(istream &in, Complex &z)/ 重载输入运算符double r, i;/ 表示实部(r)和虚部(i)cout r;/ 输入实部cout i;/ 输入虚部z.SetReal(r);/ 设置实部z.SetImage(i);/ 设置虚部return in;/ 返回输入流对象ostream &operator(ostream &out, const Complex &z)/ 重载输出运算符if (z.Get

21、Image() 0) cout z.GetReal() z.GetImage() i;/ 虚部为负else if (z.GetImage() = 0) cout z.GetReal();/ 虚部为0else cout z.GetReal() + z.GetImage() i;/ 虚部为正return out;/ 返回输出流对象int main()/ 主函数main()Complex a, b, c;/ 定义复数对象cout 输入复数a: a;/ 输入acout 输入复数b: b;/ 输入bc = a + b;/ 求和cout ( a )+( b )= c endl;/ 输出相关信息return 0; / 返回值0, 返回操作系统

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号