四川大学电子卓越班高级语言程序设计II考试试题A(2011)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机学院2010级高级语言程序设计II计期末试题

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.关于函数重载,下列叙述中错误的是( )。

A)重载函数的函数名都相同

B)重载函数必须在参数个数或类型上有所不同

C)重载函数的返回值类型必须不相同

D)重载函数的函数体可以相同,也可以不相同

参考答案:C

2.下列关于模板的叙述中,错误的是( )。

A)模板声明中的第一个符号总是关键字template

B)在模板声明中用“<”和“>”括起来的部分是模板的类型形参表

C)类模板的数据成员的类型只能是类型参数

D)通常不写函数模板的类型实参

参考答案:C

3.下列选项中,不属于面向对象程序设计特征的是( )。

A)继承性B)多态性

C)可比性D)封装性

参考答案:C

4.派生类的成员函数不能访问基类的( )。

A)保护成员B)公有成员

C)私有成员D)前面各选项都正确

参考答案:C

5.由一个类派生出来的类称为( )。

A)新生类B)父类

C)基类D)子类

参考答案:D

6.一个全局函数要访问某个类的所有私有和保护成员,只能将此函数声明为这个类的( )。

A)虚函数B)纯虚函豢

C)重载函数D)友元函数

参考答案:D

7.在语句“cout << data;”中,cout是( )。

A)C++的关键字B)类名

C)对象名D)函数名

参考答案:C

8.运算符重载只能改变运算符原有的( )。

A)操作数类型B)操作数个数

C)优先级D)结合性

参考答案:A

9.下列关于类和对象的叙述中,错误的是( )。

A)一个类只能有一个对象B)对象是类的具体实例

C)类是某一类对象的抽象D)类和对象的关系就像数据类型和变量的关系

参考答案:A

10.为取代C中带参数的宏,在C++中使用( )。

A)重载函数B)内置函数

C)递归函数D)友元函数

参考答案:B

二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。

1.一个函数名为TestFun,返回值类型为int,没有参数的纯虚函数可以定义为()。

参考答案:virtual int TestFun () = 0;

2.运算符重载使用的关键字是()。

参考答案:operator

3.采用struct定义的类中数据成员和成员函数的默认访问权限是()。

参考答案:public或公有

4.派生类中的成员不能直接访问基类中的()成员。

参考答案:私有

5.声明类的友元函数的关键字为( )。

参考答案:friend

三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。

1.阅读下面程序,写出输出结果。

#include // 编译预处理命令

using namespace std; // 使用命名空间std

class A

{

public:

A() { cout << "A"; } // 构造函数

~A() { cout << "~A"; } // 析构函数

};

int main(void) // 主函数main()

{

A *p = new A; // 定义指针

delete p; // 释放动态空间

cout << endl; // 换行

return 0; // 返回值0, 返回操作系统}

上面程序的输出结果为:

参考答案:

A~A

2.阅读下面程序,写出输出结果。

#include // 编译预处理命令

using namespace std; // 使用命名空间std

class Test

{

private:

static int n; // 静态成员

public:

Test() { n += 6; } // 构造函数

~Test() { n -= 8; } // 析构函数

static int GetNum() { return n; } // 返回n

};

int Test::n = 2; // 初始化n

int main(void) // 主函数main()

{

Test *p = new Test; // 定义指针p

delete p; // 释放p指向的动态对象cout << "n=" << Test::GetNum() << endl; // 输出n

return 0; // 返回值0, 返回操作系统}

上面程序的输出结果为:

参考答案:

n=0

3.阅读下面程序,写出输出结果。

#include // 预处理命令

using namespace std; // 使用标准命名空间std

template

ElemType f(ElemType x)

{

ElemType y; // 临时变量

y = x * (ElemType)5.8;

return y;

}

int main() // 主函数main()

{

cout << f(5) << endl; // 输出f(5)

cout << f(5.0) << endl; // 输出f(5.0)

return 0; // 返回值0, 返回操作系统

}

上面程序的输出结果为:

参考答案:

25

29

4.阅读下面程序,写出输出结果。

#include // 预处理命令

using namespace std; // 使用标准命名空间std

double Division(double a, double b) // 除法函数

{

if (b == 0) throw "除数为0"; // 抛出异常

else return a / b; // 返回a/b

}

int main() // 主函数main()

{

try // 用try封装可能出现异常的代码{

double a = 1, b = 0; // 局部变量

cout << "a/b" << Division(a, b) << endl; // 显示a/b

}

catch(char message[]) // 捕捉并处理异常

{

cout << "异常信息:";

相关文档
最新文档