C++期末考試題及答案[1]_第1頁
C++期末考試題及答案[1]_第2頁
已閱讀5頁,還剩11頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、選擇填空題(共 20 小題,每小題 2 分,共 40 分)1. 關于 C+與 C 語言關系的描述中,(D)是錯誤的。a. C 語言是 C+語言的一個子集b. C 語言與 C+語言是兼容的c. C+語言對 C 語言進行了一些改進d C+語言和 C 語言都是面向對象的2.按照標識符的要求,(A )符號不能組成標識符。a.連接符b.下劃線c.大小寫字母d.數字字符3. 為了避免嵌套的 if-else 語句的二義性, C 語言規定 else 總是 與 (C)組成配對關系。a.縮排位置相同的 ifb.在其之前未配對的 ifc.在其之前未配對的最近的 if d.同一行上的 if4. 在int a 3=1,

2、3,2,4,5,6,0;中,a22的值是(C)。a.1b.Oc.6 d.25. 設char *s ;,以下正確的表達式是(B)。a. s=computer;b. *s=computer;c. *s=computer;d. *s=c;6. 對于int *pa5;的描述中,(D )是正確的。a. pa 是一個指向數組的指針,所指向的數組是5 個 int 型元素b. pa 是一個指向某數組中第 5 個元素的指針,該元素是 int 型 變量c.pa 5表示某個元素的第 5 個元素的值d pa 是一個具有 5 個元素的指針數組,每個元素是一個int 型指針7. 在下列表示引用的方法中,(A )是正確的。

3、已知:int m=10; &x=m; &y=10; &z;d float &t=&m;8. 下列 for 循環的次數為(B)ofor (i=0, x=0; !x&iv=5; i+ )a.5b 6c.1d 無限9. 對于 C/C+語言的函數,下列敘述中正確的是(A)oa. 函數的定義不能嵌套,但函數調用可以嵌套b. 函數的定義可以嵌套,但函數調用不能嵌套c. 函數的定義和調用都不能嵌套d. 函數的定義和調用都可以嵌套10. 在一個被調用函數中,關于return 語句使用的描述,(D)是錯誤的。a. 被調用函數中可以不用

4、 return 語句b. 被調用函數中可以使用多個return 語句c. 被調用函數中,如果有返回值,就一定要有return 語句d. 被調用函數中,一個 return 語句可以返回多個值給調用函數并且要求加快執行速度,選用(A)11. 在一個函數中,要求通過函數來實現一種不太復雜的功能,a.內聯函數b.重載函數c.遞歸調用d.嵌套調用12. 使用 fseek 函數可以實現的操作是(A )。a. 改變文件指針的當前位置b. 文件的順序讀寫c. 文件的隨機讀寫d. 以上都不對13. 下列存儲標識符中,(C)的可見性與存在性不一致a.外部類b.自動類c.內部靜態類d.寄存器類14. 在如下結構定義

5、中,不正確的是(B)。a. struct studentint no;char name10;float score;b. struct stud20int no;char name10;并且要求加快執行速度,選用(A)float score;c. struct studentint no;char name10;float score; stud20;d structint no;char name10;float score;stud100;15. 將兩個字符串連接起來組成一個字符串時,選用(C )函數a. strlen( )b strcpy()c. strcat( )d strcmp()

6、16. ( D)不是構造函數的特征a. 構造函數的函數名與類名相同b. 構造函數可以重載c. 構造函數可以設置缺省參數d. 構造函數必須指定類型說明17. 已知:類 A 中一個成員函數說明如下:void Set(A&a);其中,A&的含義是(C )。a.指向類 A 的指針為 ab 將 a 的地址值賦給變量 Setc.a 是類 A 對象的引用,用來作函數 Set ()的參數d 變量 A 與 a 按位與作為函數 Set()的參數18. 已知:print()函數是一個類的常成員函數,它無返回值,下 列表示中,(A)是正確的。a.v oid print( ) const;b.c ons

7、t void print();c.v oid const print( );d.v oid print(const);19. 關于虛函數的描述中,(C )是正確的。a. 虛函數是一個 static 類型的成員函數b. 虛函數是一個非成員函數c. 基類中說明了虛函數后,派生類中將其對應的函數可不必說 明為虛函數d. 派生類的虛函數與基類的虛函數具有不同的參數個數和類型20. 關于 new 運算符的下列描述中,(D)是錯的。a. 它可以用來動態創建對象和對象數組b. 使用它創建的對象和對象數組可以使用運算符delete 刪除c. 使用它創建對象時要調用構造函數d. 使用它創建對象數組時必須指定初始

8、值三、(6 分)分析下面程序的運行結果#include viostrea m.hclass Bpublic:B()B(int i)b=i;virtual void virfun()coutvvB:virfun() called n;private:int b;;class D:public Bpublic:D()D(int i,int j):B(i)d=j;private:int d;void virfun()coutvvD:virfun() called n;;void fun(B *obj)obj-virfun();void main()D *pd=new D;fun(pd);四、(9 分

9、)下面的程序可以統計命令行第一個參數中出現的字 母個數,請填充下面空白,完成程序。#include #include vctype hvoid main(int argc, argv;)char *str;int count=0;if(argc2)exit(1);str=;while(*str)if(isalpha( ) count+;printf(n 字母個數:dn,count);提示:int isalpha(int ch)函數功能是檢查 ch 是否是字母五、 (8 分)定義一個字符棧類 Stack (包括類的實現) )。數據成 員包括一個存放字符的數組 stck和一個棧指針 tos。棧數組

10、的 尺寸由常量SIZE 確定。棧的基本操作為 Push ()和 Pop ()。六、 (10 分)完成下面的函數,對有 n 個元素的數組 a,使數組元 素按逆序排列。void inverse(int *a, int n)七、 (12 分)下面的函數統計子字符串 substr 在字符串 str 中出 現的次數,如果 substr 在 str 中不出現,則返回值 0。請完成該 函數。int str_count(char *substr, char *str)二、問答題1、 虛析構函數有什么作用?解答要點:對象銷毀時,需要調用析構函數。在多態調用時,是用基類 的指針訪問派生類的對象。 如果析構函數是非

11、虛函數, 則基類指 針只能訪問基類的析構函數, 而不能訪問派生類的析構函數, 導 致派生類對象銷毀時,沒有調用派生類的析構函數, 只是調用了 基類的析構函數。如果把析構函數定義成虛函數, 則可克服這個 問題。2、 拷貝構造函數在哪幾種情況下調用?解答要點:用一個對象初始化另一個對象時當用對象作為函數參數傳遞時當函數返回對象時3、 函數重載與函數覆蓋有什么不同,它們與多態有什么關系? 解答要點:函數重載是指函數名相同,而函數的參數個數或類型不同; 覆蓋是指在派生類中成員函數與基類成員函數的函數名、參數個數、類型與返回值均相同;C+中正是通過虛函數的覆蓋,實現 多態的功能。4、 C+繼承是如何工作

12、的?答:繼承使得派生類能夠使用基類的公有和保護成員,從而實現代碼的復用,派生類可以增加成員,也可以隱藏和覆蓋基類 的成員。對于公有繼承,基類成員的訪問權限在派生類保持不變。5、類與對象有什么區別?答:類是類型,是對象的抽象,對象是類的具體實例。一個 類可以有多個對象,每個對象都有自己的存儲單元,而類不占存儲單元。三、運行結果為:D:virfun() called.四、填空 char * argv1 *str+五、 (8 分)定義一個字符棧類 Stack (包括類的實現) )。數據 成員包括一個存放字符的數組 stck和一個棧指針 toso 棧數組 的尺寸由常量 SIZE 確定。棧的基本操作為

13、Push()和 Pop ()oconst int SIZE=27;class Stackpublic:Stack():tos(0);void Push(char ch);4、 C+繼承是如何工作的?char Pop();private:char stckSIZE;int tos;;void Stack:Push(char ch)if(tos=SIZE)coutnStack is fulln; elsestcktos=ch;tos+;char Stack:Pop()if(tos=0)coutnStack is emptyn;return 0;tos-;return stcktos;六、(10 分)完成下面的函數,對有n 個元素的數組 a,使數組元素按逆序排列。void inverse(int *a, int n)int i,*p;p=new intn;for(i=0;iv=n-1;i+)Pi=ai;for(i=0;iv=n-1;i+)ai=pn-i-1;delete p;七、(12 分)下面的函數統計子字符串 substr 在字符串 str 中出 現的次數,如果 substr 在 str 中不出現,則返回值 0。請完成該函數int str_count(char *substr, char *str)int

溫馨提示

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

評論

0/150

提交評論