級(jí)計(jì)算機(jī)科學(xué)系_程序設(shè)計(jì)_A卷_第1頁(yè)
級(jí)計(jì)算機(jī)科學(xué)系_程序設(shè)計(jì)_A卷_第2頁(yè)
級(jí)計(jì)算機(jī)科學(xué)系_程序設(shè)計(jì)_A卷_第3頁(yè)
級(jí)計(jì)算機(jī)科學(xué)系_程序設(shè)計(jì)_A卷_第4頁(yè)
級(jí)計(jì)算機(jī)科學(xué)系_程序設(shè)計(jì)_A卷_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、中山大學(xué)計(jì)算機(jī)科學(xué)系2007級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)、網(wǎng)絡(luò)工程專業(yè)、信息平安專業(yè)ABCDE班程序設(shè)計(jì) A卷學(xué)號(hào) _ 姓名 _ 成績(jī)_(試卷共6頁(yè),答案全寫在答題紙上,交卷時(shí)連試卷一同交回) 考試形式:閉卷任課老師:林瑛、肖菁、楊永紅2021-6?中山大學(xué)授予學(xué)士學(xué)位工作細(xì)那么?第六條:“考試作弊不授予學(xué)士學(xué)位。 一、 單項(xiàng)選擇(每題1分,共15分)1. C+源程序文件的擴(kuò)展名為: A) likB) cppC) objD) exe2. 如果函數(shù)A被聲明為類B的友元,那么:A) A不得訪問(wèn)類B的私有成員B) A是類B的成員函數(shù)C) A可以訪問(wèn)類B的私有成員D) 類B的成員是A的友員3. 關(guān)于虛函數(shù)

2、的描述中,正確的選項(xiàng)是: A) 派生類的虛函數(shù)與基類的同名虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類型B) 虛函數(shù)是一個(gè)非成員函數(shù)C) 虛函數(shù)是一個(gè)static類型的成員函數(shù)D) 基類中說(shuō)明了虛函數(shù)后,派生類中對(duì)同名函數(shù)的重定義時(shí)可不必說(shuō)明為virtual,其虛特性保持不變4. 在C+語(yǔ)言中,允許派生類可兼容基類類型,這是類型兼容性規(guī)那么,但是這樣的類型兼容性只適用于: A) 公有派生B) 私有派生C) 受保護(hù)派生D) 所有類型的派生5. 函數(shù)的引用性聲明函數(shù)原型不包含哪一局部: A) 返回類型B) 函數(shù)名稱C) 形式參數(shù)D) 函數(shù)體6. 對(duì)以下聲明的類A,sizeof(A)的值為: class A sta

3、tic float std; float max, min; public: float fun(); ;A) 4B) 8C) 12D) 167. 要將一個(gè)局部變量的生存期擴(kuò)展為全局的,那么定義它時(shí)應(yīng)加上修飾符: A) registerB) externC) staticD) auto8. 在C+中,什么類只能用作派生其他類的基類,而本身不能創(chuàng)立對(duì)象實(shí)例: A) 基類B) 派生類C) 虛基類D) 抽象類9. 友元運(yùn)算符 obj 被C+編譯器解釋為(表示某種運(yùn)算符,obj是其操作數(shù)): A) operator(obj)B) operator(obj,0)C) obj.operator()D) o

4、bj.operator(0) 10. 以下函數(shù)中,不能重載的是:A) 構(gòu)造函數(shù)B) 析構(gòu)函數(shù)C) 非類成員的普通函數(shù)D) 類的成員函數(shù)11. template<class T>class APPLE;根據(jù)上述語(yǔ)句,定義類模板APPLE的成員函數(shù)的正確格式是: A) T APPLE<T>:Push(T obj) B)T APPLE:Push(T obj) C) template<class T>D)template<class T> T APPLE<T>:Push(T obj) T APPLE:Push(T obj) 12. 可以用友元

5、方式重載的運(yùn)算符是:A) + : <<B) = >> /C) + & D) + | !13. 編譯程序在對(duì)函數(shù)調(diào)用進(jìn)行靜態(tài)綁定時(shí),根據(jù)以下因素決定調(diào)用哪一個(gè)函數(shù),不正確的選項(xiàng)是: A) 函數(shù)類型B) 函數(shù)名C) 實(shí)際參數(shù)個(gè)數(shù)D) 實(shí)參相應(yīng)位置的類型14. 在C+語(yǔ)言中,以下哪個(gè)表達(dá)式采用了八進(jìn)制表示整型常量: A) k = 0123;B) k = 123;C) k = x23;D) k = 0x123;15. 類A中有一成員函數(shù)說(shuō)明如下void A:Set(A & a); 其中A & a的含義是: A) 指向類A的指針為aB) 將a的地址值賦給變

6、量SetC) a是類A的對(duì)象引用,用作函數(shù)Set()的形參D) 變量A與a按位與作為函數(shù)Set()的參數(shù)二、 程序改錯(cuò)(共20分)1. 指出以下的程序片段的錯(cuò)誤每題一個(gè)錯(cuò),說(shuō)明錯(cuò)誤原因,并改正: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 = "Computer S

7、cience Department"cout << "Depart: " << department << "n"delete department; 2. 閱讀下面的程序,指出在哪些行上有語(yǔ)法錯(cuò)誤共2個(gè)錯(cuò)誤,說(shuō)明錯(cuò)誤原因,并在不改動(dòng)類數(shù)據(jù)成員的訪問(wèn)方式的前提下,改正錯(cuò)誤:1) #include <iostream.h>2) class POINT 3) public:4) POINT(int x, int y): x(x), y(y) 5) int getX() return x; 6) int

8、 getY() return y; 7) void print()8) cout << "Point: (" << getX() << ", " << getY() << ")"9) private:10) int x = 0, y = 0;11) ;12) class LINE 13) public:14) LINE(int x0, int y0, int x1, int y1)15) start.x = x0;start.y = y0;16) end.x = x1;end

9、.y = y1;17) 18) POINT getStart()return start; 19) POINT getEnd()return end; 20) void print()21) cout << "Line from "start.print();22) cout << " To "end.print();23) cout << ".n"24) 25) private:26) POINT start, end;27) ;28) void main()29) LINE line(0, 0,

10、 50, 50);30) line.print();31) 3. 閱讀下面的程序,指出在哪些行上有語(yǔ)法錯(cuò)誤共3個(gè)錯(cuò)誤,說(shuō)明錯(cuò)誤原因,并改正:1) #include <iostream.h>2) template <class TYPE>3) class BASE 4) public:5) void show(TYPE obj)6) cout << obj << "n"7) ;8) template <class TYPE, class TYPE1>9) class DERIVED: public BASE<T

11、YPE1> 10) public:11) void show(TYPE obj1, TYPE1 obj2)12) cout << obj1 << "n"13) BASE:show(obj2);14) 15) 16) void main()17) DERIVED<char*, double> obj;18) BASE<double> *pBase = &obj;19) DERIVED<char*, double> *pDerived = pBase;/ pDerived指向obj對(duì)象20) obj.sh

12、ow("Pi is ", 3.14); 21) 三、 程序填空共16分,每空2分1. 在以下程序中,希望對(duì)成員函數(shù)void who()實(shí)現(xiàn)動(dòng)態(tài)綁定,請(qǐng)?zhí)钕鄳?yīng)的語(yǔ)句#include <iostream.h>class BASEpublic: cout<<BASEn;class DERIVED:public BASEpublic:void who()cout<<Derivationn;void main() *p;/ 定義指針pDERIVEDobj; p->who();/ 此時(shí)調(diào)用的是DERIVED 類中定義的who()2. 要求執(zhí)行下

13、面的程序輸出結(jié)果,請(qǐng)?zhí)顚戇m當(dāng)?shù)恼Z(yǔ)句:Calling special version, (10,20)Calling generic version, (A,B)#include <iostream.h>template<class TYPE>TYPE max(TYPE k, TYPE t) cout<< "Calling generic version, (" << k << "," << t << ")n" ; return ; int max(in

14、t k, int t) cout<< "Calling special version, (" << k << "," << t << ")n" ; if (k>t)return k;elsereturn t; / 上述兩個(gè)max版本實(shí)現(xiàn)相同功能void main() ; ;3. 下面程序求正整數(shù)a和b之間的奇數(shù)之和。#include <iostream.h>void SumOddEven (int a, int b, )*odd = 0;for(; a&l

15、t;=b; a+)if (a%2)*odd+=a;void main() int a, b, sodd;Cout<<請(qǐng)輸入求和的范圍a,b:cin>>a>>b;while (a<0|b<0|b-a<=10)cout<<a或b不是正整數(shù),或者不滿足b-a<=10的條件,請(qǐng)重新輸入a和b的值:; cin>>a>>b; SumOddEven(a, b, );cout<<a<<和<<b<<之間的奇數(shù)之和為:<<sodd;四、 程序輸出(共25分)1

16、. 給出以下程序的輸出結(jié)果#include <iostream.h>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) << "n"2. 給出以下程序的輸出結(jié)果#include <iostream.h>#include <string.h>

17、const int MAXLEN = 20;class PERSON public:PERSON(char* name = "Zhao", int salary = 300): salary(salary)strcpy(PERSON:name, name);cout << "Constructing Person " << name << "n"PERSON(const PERSON& other) / 拷貝構(gòu)造函數(shù)strcpy(name,);salary= other.

18、salary;cout << "Copy constructing Person: " << name << "" << endl;virtual void show()cout << "Salary per month for Person " << name;cout << " is " << salary << " yuann"PERSON operator =(const PERS

19、ON& other)cout << "Calling Person operator =, set " << name;cout << " equal to " << << "" << endl;strcpy(name, );salary= other.salary;return *this;PERSON()cout << "Destructing Person " <<

20、 name << "n"protected:char nameMAXLEN+1;int salary;class EMPLOYEE: public PERSON /雇員類public:EMPLOYEE(char* name = "Qian", int salary = 200): PERSON(name, salary)cout << "Constructing Employee " << name << "n"virtual void show()cout <

21、< "Salary per week for Emplyee " << name;cout << " is " << salary << " yuann" ;EMPLOYEE()cout << "Destructing Employee " << name << "n"class PROFESSOR: public EMPLOYEE /教授類,每位教授都是一個(gè)雇員public:PROFESSOR(char*

22、 name = "Sun", int salary = 10):EMPLOYEE(name, salary), assistant("NULL",0)/設(shè)當(dāng)前教授對(duì)象雇用名為NULL的助教cout << "Constructing Professor " << name <<"n"virtual void show()cout << "Salary per hour for Professor " << name;cout <&l

23、t; " is " << salary << " yuann"void setAssistant(PERSON ass)/指定該教授的助教是誰(shuí)assistant = ass; PROFESSOR()cout << "Destructing Professor " << name << "n"protected:PERSON assistant;/ 每位教授都雇用了一名助教,助教是PERSON類的對(duì)象;void main()PERSON *personPtr

24、3;PERSONperson;EMPLOYEEemployee;PROFESSORprofessor;cout<<"-n"/輸出時(shí)只畫一條直線即可,/不必計(jì)算輸出多少個(gè)-號(hào)personPtr0 = &person;personPtr1 = &employee;personPtr2 = &professor;for (int i = 0; i < 3; i+) personPtri->show();cout<<"-n"professor.setAssistant(person);cout<<"-n"五、 程序設(shè)計(jì)24分1. 8分類屬類ARRAY描述一個(gè)動(dòng)態(tài)數(shù)組。數(shù)組中的元素記錄在一個(gè)長(zhǎng)度為n的數(shù)組X中,要求X根據(jù)使用時(shí)的實(shí)際長(zhǎng)度n動(dòng)態(tài)分配。ARRAY提供如下操作:² 賦值運(yùn)算將一個(gè)ARRAY數(shù)組賦給另一個(gè)ARRAY數(shù)組;² 以友元形式重載了運(yùn)算符+實(shí)現(xiàn)兩個(gè)ARRAY數(shù)組對(duì)應(yīng)位置上的元素相加;² 求該ARRAY數(shù)組的最大值。ARRAY的用法如以下主程序所示。要求根據(jù)主程序中的應(yīng)用,考慮ARRAY類應(yīng)該提供什么功能,并給出ARRAY類界面的聲明類中聲明了什么成員,不必提供ARRAY的類實(shí)現(xiàn)不必定義類的成員函數(shù)。提示:定

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論