第一范文网 - 专业文章范例文档资料分享平台

2007级计算机科学系程序设计a卷

来源:用户分享 时间:2025/11/7 9:35:11 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

中山大学计算机科学系2007级

计算机科学与技术专业、网络工程专业、信息安全专业(ABCDE班)

程序设计 A卷

学号 ____________ 姓名 ______________ 成绩______________

(试卷共6页,答案全写在答题纸上,交卷时连试卷一同交回) 考试形式:闭卷

任课老师:林瑛、肖菁、杨永红

2008-6

《中山大学授予学士学位工作细则》第六条:“考试作弊不授予学士学位。”

一、 单项选择(每小题1分,共15分) 1. C++源程序文件的扩展名为:

A) lik B) cpp 2. 如果函数A被声明为类B的友元,则: A) A不得访问类B的私有成员 C) A可以访问类B的私有成员

C) obj

D) exe

B) A是类B的成员函数 D) 类B的成员是A的友员

3. 关于虚函数的描述中,正确的是:

A) 派生类的虚函数与基类的同名虚函数具有不同的参数个数和类型 B) 虚函数是一个非成员函数

C) 虚函数是一个static类型的成员函数

D) 基类中说明了虚函数后,派生类中对同名函数的重定义时可不必说明为virtual,其虚特性保持不变 4. 在C++语言中,允许派生类可兼容基类类型,这是类型兼容性规则,但是这样的类型兼容性只适用

于:

A) 公有派生 B) 私有派生 C) 受保护派生 D) 所有类型的派生 5. 函数的引用性声明(函数原型)不包含哪一部分: A) 返回类型 B) 函数名称 C) 形式参数 6. 对以下声明的类A,sizeof(A)的值为: class A { static float std; float max, min; public: float fun(); }; A) 4 B) 8 C) 12

D) 函数体

D) 16

7. 要将一个局部变量的生存期扩展为全局的,则定义它时应加上修饰符: A) register B) extern C) static D) auto 8. 在C++中,什么类只能用作派生其他类的基类,而本身不能创建对象实例: A) 基类 B) 派生类 C) 虚基类 D) 抽象类 9. 友元运算符 @obj 被C++编译器解释为(@表示某种运算符,obj是其操作数): A) operator@(obj) B) operator@(obj,0) C) obj.operator@() D) obj.operator@(0)

1

10. 下列函数中,不能重载的是:

A) 构造函数 B) 析构函数 11. template class APPLE{……};

C) 非类成员的普通函数 D) 类的成员函数

根据上述语句,定义类模板APPLE的成员函数的正确格式是:

A) T APPLE::Push(T obj) {……} B) T APPLE::Push(T obj) {……} C) template D) template

T APPLE::Push(T obj) {……} T APPLE::Push(T obj) {……} 12. 可以用友元方式重载的运算符是:

A) + :: << B) = >> /

C) + & []

D) + || !

13. 编译程序在对函数调用进行静态绑定时,根据以下因素决定调用哪一个函数,不正确的是: A) 函数类型 B) 函数名 C) 实际参数个数 D) 实参相应位置的类型 14. 在C++语言中,以下哪个表达式采用了八进制表示整型常量: A) k = 0123; B) k = 123; C) k = ’\\x23’; D) k = 0x123; 15. 类A中有一成员函数说明如下void A::Set(A & a); 其中A & a的含义是: A) 指向类A的指针为a

B) 将a的地址值赋给变量Set

C) a是类A的对象引用,用作函数Set()的形参 D) 变量A与a按位与作为函数Set()的参数

二、 程序改错(共20分)

1. 指出下列的程序片段的错误(每小题一个错),说明错误原因,并改正:

1) int how_to_do(int x = 0, int y = 0, int z, int w); 2) class CIRCLE {

public: CIRCLE(int x = 0, int y = 0, int radius = 1); ~CIRCLE(); int draw(); private: auto int radius; };

3) char *department = \

cout << \ delete department;

2. 阅读下面的程序,指出在哪些行上有语法错误(共2个错误),说明错误原因,并在不改动类数据成员的访问方式的前提下,改正错误:

1) #include 2) class POINT { 3) public:

4) POINT(int x, int y): x(x), y(y) {} 5) int getX() { return x; } 6) int getY() { return y; } 7) void print()

8) { cout << \9) private: 10) int x = 0, y = 0; 11) }; 12) class LINE { 13) public:

2

14) LINE(int x0, int y0, int x1, int y1) 15) { start.x = x0; start.y = y0; 16) end.x = x1; end.y = y1; 17) } 18) POINT getStart() { return start; } 19) POINT getEnd() { return end; } 20) void print() 21) { cout << \start.print(); 22) cout << \ end.print(); 23) cout << \24) } 25) private: 26) POINT start, end; 27) }; 28) void main() 29) { LINE line(0, 0, 50, 50); 30) line.print(); 31) }

3. 阅读下面的程序,指出在哪些行上有语法错误(共3个错误),说明错误原因,并改正:

1) #include 2) template 3) class BASE { 4) public:

5) void show(TYPE obj) 6) { cout << obj << \7) };

8) template 9) class DERIVED: public BASE { 10) public: 11) void show(TYPE obj1, TYPE1 obj2) 12) { cout << obj1 << \13) BASE::show(obj2); 14) } 15) } 16) void main() 17) { DERIVED obj; 18) BASE *pBase = &obj; 19) DERIVED *pDerived = pBase; 20) obj.show(\21) }

// pDerived指向obj对象

三、 程序填空(共16分,每空2分)

1. 在以下程序中,希望对成员函数void who()实现动态绑定,请填相应的语句

#include class BASE{ public: ① {cout<<”BASE\\n”;} };

class DERIVED:public BASE{ public: void who(){cout<<”Derivation\\n”;} };

void main()

{ ② *p; // 定义指针p DERIVED obj; ③ p->who(); // 此时调用的是DERIVED 类中定义的who() }

2. 要求执行下面的程序输出结果,请填写适当的语句: Calling special version, (10,20) Calling generic version, (A,B)

#include 3

template

TYPE max(TYPE k, TYPE t)

{ cout<< \ return ④ ; }

int max(int k, int t)

{ cout<< \ if (k>t) return k; else return t; }

// 上述两个max版本实现相同功能 void main()

{ ⑤ ; ⑥ ; }

3. 下面程序求正整数a和b之间的奇数之和。

#include

void SumOddEven (int a, int b, ⑦ ) { *odd = 0;

for(; a<=b; a++)

if (a%2) *odd+=a; }

void main()

{ int a, b, sodd;

Cout<<”请输入求和的范围[a,b]:” cin>>a>>b;

while (a<0||b<0||b-a<=10)

{ cout<<”a或b不是正整数,或者不满足b-a<=10的条件,请重新输入a和b的值:”; cin>>a>>b; }

SumOddEven(a, b, ⑧ );

cout<

四、 程序输出(共25分)

1. 给出以下程序的输出结果

#include int fib(int n) { int result;

cout << n << \

if (n < 2) result = 1; else result = fib(n - 1) + fib(n - 2); return result; }

int main()

{ cout << fib(3) << \}

2. 给出以下程序的输出结果

#include #include const int MAXLEN = 20;

class PERSON { public:

PERSON(char* name = \ { strcpy(PERSON::name, name);

cout << \ }

PERSON(const PERSON& other) // 拷贝构造函数

{ strcpy(name,other.name); salary = other.salary;

cout << \ }

4

搜索更多关于: 2007级计算机科学系程序设计a卷 的文档
2007级计算机科学系程序设计a卷.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8xfqv3xhiu4uc568cqjj1x2cx44e3501aca_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top