版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中山大学计算机科学系2006级计算机科学与技术专业、网络工程专业、信息安全专业(ABCDE班)程序设计A卷学号 姓名 成绩(试卷共6页,答案全写在答题纸上,交卷时连试卷一同交回)考试形式:闭卷任课老师:林瑛、肖菁、杨永红2007-6中山大学授予学士学位工作细则第六条:考试作弊不授予学士学位。”一、单项选择(每小题1分,共15分)1.2.C+语言新引入了在一种 C语言中没有的参数传递方式是: A)按指针调用在C+语言中,A)k=0123;B)按名调用C)按值调用以下哪个表达式采用了八进制表示整型常量:B) k=123;C) k= x23;3.4.下面对结构或类中成员的访问不正确的是:A). *p
2、.salary(p为指向类对象的指针C) (*p).salary(p为指向类对象的指针类A中有一成员函数说明如下A)指向类A的指针为aC)将a的地址值赋给变量SetD)按引用调用D)k=0x123;B) p-salary(p为指向类对象的指针)D) Worker.salary(Worker是类类型的对象)void A:Set(A & a);其中 A & a的含义是:B)变量A与a按位与作为函数 Set()的参数D) a是类A的对象引用,用作函数Set()的形参5. 假定一个类有两个数据成员a和b,其构造函数为:A(i nt aa=1,i nt bb=0) a = aa; b = bb; 则执行
3、语句A x(4); 后,x.a和x.b值分别是:A) 1 和 0B) 1 和 4C) 4 和 0D) 4 和 16. 可以用友元方式重载的运算符是:A) + : /C) + & D) + | !7. 设有如下声明的类:class FOO private:static float std;float max, min;则表达式sizeof(FOO) 的值为:A) 4B) 8C) 12D) 168. 若在一个类中用成员函数重载了某种二元运算符obj1obj2 被C+编译器解释为:A) obj1.operator(obj2)C) operator(obj1,obj2) 而obj1 和obj2都是该类
4、的对象,则表达式B) obj2.operator(obj1)D) operator(obj2,obj1)C)析构函数D)构造函数9. 下列函数中,不能重载的是:A)类的成员函数 B)非成员函数10. 关于构造函数 不正确的说法是:A)构造函数可以有返回值C)构造函数名与类名相同B) 一个类可以有多个构造函数D)构造函数初始化时为对象开辟一个内存11. 假定 AB 为一个类,则执行语句AB a(2), *p3, b4;时,自动调用该类构造函数的次数为:D) 9A) 3B) 5C) 612. templateclass APPLE ;定义类模板 APPLE 的成员函数的正确格式是:B) T APP
5、LE:Push(T obj) D) templateT APPLE:P ush(T obj) A) T APPLE:Push(T obj) C) templateT APPLE:Push(T obj) ,从而可用字符串的库函数。以下声明了一个字符串,然后输出该字符串。在以下用法中,哪个有可能引起语法错13. 假设程序中已有 #include name ,并设置它的值为 Computer 误或逻辑错误?A) char* name = Computer;B) char* name; strcpy(name, Computer);C) char name9 = C, o, m, p, u, t, e
6、, r, 0;D) char name = Computer;14. 如果类 A 被说明成类 B 的友元,则:B)类A的成员即类B的成员D)类B的成员即类A的成员A)类A的成员函数不得访问类B的成员C) 类 B 不一定是类 A 的友元关于虚基类的描述,正确的是:A) 虚基类的唯一副本只被初始化一次B) 无论是虚基类还是普通基类,其构造函数的调用的次序取决于基类在声明时的次序C) 类中对象成员的初始化先于虚基类副本的初始化D) 虚基类的析构函数最先调用15.、 程 序改错:指出以下题目所示程序段的语法错误( 请通过行号来指出错误位置 ) ,说明其错误原因并改正之! (8 个错误,每个错 2.5
7、分:指出错误位置 0.5 分;错误原因 1 分;改正 1 分,共 20 分 )1. 下列程序段包含 1 个错误:(1) template (2) int compare(ITEM source, ITEM target)(3) if (source target) return 1;(4) else return 0;(5) 2. 下列程序包含了 2 个错误,请在 不修改主函数 (假设主函数完全正确)的前提下改正之:(1) #include (2) template (3) class BASE (4) public:void show(TYPE obj)(5) cout obj n;(6)
8、void test()(7) cout Testingn;(8) ;(9) template (10) class DERIVED: BASE (11) public:(12) (13)(14)(15) ;(16) void main()void show(TYPE obj1, TYPE1 obj2) cout obj1 n; BASE:show(obj2);(17) DERIVED obj;9(18)(19) obj.test();3. 假设 POINT 类的定义完全正确(即不允许改变 POINT 类的定义),下列程序有 1 个错误:(1)class POINT(2)public:POINT
9、(int x1, int y1): x(x1), y(y1) (3)private:int x, y;(4);(5)class LINE(6)public:LINE(int x0, int y0, int x1, int y1)(7)start.x = x0;start.y = y0;(8)end.x = x1;end.y = y1;(9)(10)private:POINT start, end;(11);(12)void main()(13)LINE line(0, 0, 50, 50);(14)4. 下列程序包含了 4 个错误,请在 不修改主函数 (假设主函数完全正确)以及 不添加任何函数
10、 的前提 下改正之:(1)class MyClass(2)public:(3)MyClass(int ini) member = ini; (4)int GetMember() const return member; (5)void SetMember(int m) member = m;(6)void MyClass() (7)private:(8)int member = 0;(9)(10) void main()(11) MyClass obj1;(12)MyClass obj2(3);(13)obj1.SetMember(10);(14) 三、 程序输出 ( 共 30 分) :写出以
11、下程序的输出结果1. (4.5 分 )#include templateTYPE max(TYPE k, TYPE t) cout ” Calling generic version of max( t?k:t);” k ”,” tint max(int k, int t) cout ” Calling special version of max(t?k:t);void main() coutmax(10, 20)n; coutmax(10.5, 20.7)n; coutmax(B, A)n;” k ”,” t2. (6 分 )#includeclass BASEA public: BASE
12、A( )cout ”This is BASEA class!n”; ;class BASEB public: BASEB( )cout ”This is BASEB class!n”; ;class DERIVEA : public BASEB, virtual public BASEA public: DERIVEA( )cout ”This is DERIVEA class!n”;class DERIVEB : public BASEB, virtual public BASEA public: DERIVEB( )cout ”This is DERIVEB class!n”;class
13、TOPDERIV : public DERIVEA, virtual public DERIVEB public: TOPDERIV( )cout ”This is TOPDERIV class!n”; ;void main ( ) TOPDERIV topobj;3. (6 分 )#includeclass BASEX protected:int x, y;public:BASEX(int i, int j) x=i; y=j; void print( ) coutX=xt Y=yendl; ;class BASEY : public BASEXint k;public:BASEY(int
14、i, int j) : BASEX(i, j) k=i*j;void print( ) coutX=xt Y=yt K=kendl;class BASEZ : BASEYpublic:BASEZ(int i, int j) : BASEY(i, j) void printA( ) coutX=xt Y=yendl; void printB( ) BASEY:print( ); ;void main( ) BASEZ obj1(10,20); BASEY obj2(23,45);obj1.printB( );obj1.printA( );obj2.print( ); 4. (13.5 分)#in
15、clude #include const int CODELEN = 20;class DEPART public: DEPART(char *depCode = Math) strcpy(code, depCode);cout Constructing depart: code .n; DEPART(const DEPART& other) strcpy(code, other.code);cout Copy constructing depart: code .n;DEPART() cout Destruct ing depart: code .n; void operator=(co n
16、st DEPART & other) cout Calli ng operator =, set code; cout equal to other.code .n; strcpy(code, other.code);private:char codeCODELEN+1;;class EMPLOYEE public:EMPLOYEE( char *empCode = Teacher,char *depCode = Computer):depart(depCode) strcpy(code, empCode);cout Con struct ing employee: code .n;EMPLO
17、YEE() cout Destruct ing employee: code .n;DEPART get_depart()retur n depart;private:char codeCODELEN+1;DEPART depart;void mai n() DEPART dep;EMPLOYEE emp;dep = emp.get_depart(); -四、程序填空(每空2分,共16分):根据以下各小题的描述和要求在指定位置填入适当语句1. 完成如下的程序,使得输出结果为:base:10base:12derived:24#in clude class base int x;public:ba
18、se(i nt a) x=a; cout ” base: ” x endl; ;class derived: public base int y;public:derived(i nt a,i nt b):base(a) y=b; void print() ;cout ” derived: ” ypri nt();2. 函数 int commstr(char *str1, char *str2, int *sublen)从两已知字符串 str1 和 str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。函数将最长公共子串的长度送入由参数sublen 所
19、指的变量中,并返回字符串 strl 和str2 的最长公共子串的个数。约定空串不做为公共子串。例如,如使用下列主函数调用该函数,程序的执行结果为:456abc n=2 len=3请根据题目要求填入适当的语句。#in elude #in clude int commstr(char *str1, char *str2, int *suble n) char *s1, *s2;int count = 0, le n1, le n2, k, j, i, p;Ien1= strle n(str1);Ien2= strle n(str2);if (le n1le n2) else Ien2= Ien1;for (j=len2; j0; j-) for (k=0;s1= str1;s 1= str2;=Ien2; k+)s2 = str2; s2 = strl;for (i=0; s1!=0; i+) for (p=0; pj & +);if ()for (p=0; pj; p+) cout0) break;*suble n = (cou nt0)?retur n count;coute ndl;coun t+;:0;v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷贴花工操作评估水平考核试卷含答案
- 初中九年级物理 浮力专题复习教学设计
- 电子电气产品安全检验员安全规程水平考核试卷含答案
- 有色金属强化熔炼工安全风险测试考核试卷含答案
- 压电石英晶体配料装釜工常识评优考核试卷含答案
- 散料卸车机司机安全文化评优考核试卷含答案
- 初中心理健康八年级上册《高效学习提升自我》教学设计
- 宠物健康护理员安全文明竞赛考核试卷含答案
- 挤出拉制模具工岗位节能考核试卷含答案
- 船舶机舱设备操作工QC管理竞赛考核试卷含答案
- 泌尿系感染护理查房
- 【新教材】统编版(2026)九年级上册道德与法治全册教案
- 2026年秋北师大版九年级上册数学《二次函数》公开课教案
- 2025年CCAA国家注册审核员考试(森林管理体系基础)测试题及答案
- 反比例函数的图象和性质课件 2026-2027学年人教版九年级数学上册
- 2026年广东省广州市2026届高三下学期4月二模试题 物理 含答案新版
- 《2026年》医院药剂科药师高频面试题包含详细解答
- 幼儿园中班歌唱活动《懒惰虫》课件(已嵌入音乐)
- 科逸整体浴室图集
- 贵州省六盘水市英武水库工程环评报告
- 学生才艺展示青春飞扬、才艺成长
评论
0/150
提交评论