四川大学电子信息学院卓越工程师班高级语言程序设计II..._第1页
四川大学电子信息学院卓越工程师班高级语言程序设计II..._第2页
四川大学电子信息学院卓越工程师班高级语言程序设计II..._第3页
四川大学电子信息学院卓越工程师班高级语言程序设计II..._第4页
四川大学电子信息学院卓越工程师班高级语言程序设计II..._第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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:/ 公有函数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)/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论