




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、 選擇填空題(共20小題,每小題2分,共40分)。1. 關于C+與C語言關系的描述中,( )是錯誤的。 a.C語言是C+語言的一個子集 b.C語言與C+語言是兼容的 c.C+語言對C語言進行了一些改進 d.C+語言和C語言都是面向對象的2按照標識符的要求,( )符號不能組成標識符。 a.連接符 b.下劃線 c.大小寫字母 d.數字字符3. 為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與( )組成配對關系。 a.縮排位置相同的if b.在其之前未配對的if c.在其之前未配對的最近的if d.同一行上的if4. 在int a 3=1,3,2,4,5,6,0;中,a22的值
2、是( )。 a.1 b.0 c.6 d.25. 設char *s;,以下正確的表達式是( )。 a.s=computer; b.*s=computer; c.*s=computer; d.*s=c;6. 對于int *pa5;的描述中,( )是正確的。 a.pa是一個指向數組的指針,所指向的數組是5個int型元素 b.pa是一個指向某數組中第5個元素的指針,該元素是int型變量 c.pa 5表示某個元素的第5個元素的值 d.pa是一個具有5個元素的指針數組,每個元素是一個int型指針7. 在下列表示引用的方法中,( )是正確的。已知:int m=10; &x=m; &y
3、=10; &z; d.float &t=&m;8. 下列for循環(huán)的次數為( )。for(i=0, x=0; !x&i=5; i+) a.5 b.6 c.1 d.無限9. 對于C/C+語言的函數,下列敘述中正確的是( )。 a.函數的定義不能嵌套,但函數調用可以嵌套 b.函數的定義可以嵌套,但函數調用不能嵌套 c.函數的定義和調用都不能嵌套 d.函數的定義和調用都可以嵌套10. 在一個被調用函數中,關于return語句使用的描述,( )是錯誤的。 a.被調用函數中可以不用return語句 b.被調用函數中可以使用多個return語句 c.被調用函數中,如果有返回值,就一定要有ret
4、urn語句 d.被調用函數中,一個return語句可以返回多個值給調用函數11. 在一個函數中,要求通過函數來實現一種不太復雜的功能,并且要求加快執(zhí)行速度,選用( )。 a.內聯函數 b.重載函數 c.遞歸調用 d.嵌套調用12. 使用fseek函數可以實現的操作是( )。 a.改變文件指針的當前位置 b.文件的順序讀寫 c.文件的隨機讀寫 d.以上都不對13. 下列存儲標識符中,( )的可見性與存在性不一致。 a.外部類 b.自動類 c.內部靜態(tài)類 d.寄存器類14. 在如下結構定義中,不正確的是( )。 a.struct student int no; char name10;float
5、score; b.struct stud20int no;char name10;float score; c.struct student int no; char name10;float score; stud20; d.structint no;char name10;float score;stud100 ;15. 將兩個字符串連接起來組成一個字符串時,選用( )函數。 a.strlen( ) b.strcpy( ) c.strcat( ) d.strcmp( )16. ( )不是構造函數的特征 a.構造函數的函數名與類名相同 b.構造函數可以重載 c.構造函數可以設置缺省參數 d.
6、構造函數必須指定類型說明17. 已知:類A中一個成員函數說明如下:void Set(A&a);其中,A&的含義是( )。 a.指向類A的指針為a b.將a的地址值賦給變量Set c.a是類A對象的引用,用來作函數Set()的參數 d.變量A與a按位與作為函數Set( )的參數18. 已知:print( )函數是一個類的常成員函數,它無返回值,下列表示中,( )是正確的。 a.void print( ) const; b.const void print( ); c.void const print( ); d.void print(const);19. 關于虛函數的描述中,( )是正確的。 a
7、.虛函數是一個static類型的成員函數 b.虛函數是一個非成員函數 c.基類中說明了虛函數后,派生類中將其對應的函數可不必說明為虛函數 d.派生類的虛函數與基類的虛函數具有不同的參數個數和類型20. 關于new運算符的下列描述中,( )是錯的。 a.它可以用來動態(tài)創(chuàng)建對象和對象數組 b.使用它創(chuàng)建的對象和對象數組可以使用運算符delete刪除 c.使用它創(chuàng)建對象時要調用構造函數 d.使用它創(chuàng)建對象數組時必須指定初始值二、問答題(15分)1、 (3分)虛析構函數有什么作用?2、 (3分)拷貝構造函數在哪幾種情況下調用?3、 (4分)函數重載與函數覆蓋有什么不同,它們與多態(tài)有什么關系?4、 (3
8、分)C+繼承是如何工作的?5、 (2分)類與對象有什么區(qū)別?三、(6分)分析下面程序的運行結果#include class Bpublic:B()B(int i)b=i;virtual void virfun()coutB: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()coutvirfun();void main()D *pd=new D;fun(pd);四、(9分)下面的程序可以統(tǒng)計命令行第一個參數中出現的字母個數,請?zhí)畛湎?/p>
9、面空白,完成程序。#include #include void 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。棧數組的尺寸由常量SIZE確定。棧的基本操作為Push()和Pop()。六、(10分)完成下面的函數
10、,對有n個元素的數組a,使數組元素按逆序排列。void inverse(int *a, int n)七、(12分)下面的函數統(tǒng)計子字符串substr在字符串str中出現的次數,如果substr在str中不出現,則返回值0。請完成該函數。int str_count(char *substr, char *str)一、 選擇填空題1、D 2、A 3、C 4、C 5、B 6、D 7、A 8、B 9、A 10、D11、A 12、A 13、C 14、B 15、C 16、D 17、C 18、A 19、C 20、D二、問答題1、 虛析構函數有什么作用?解答要點:對象銷毀時,需要調用析構函數。在多態(tài)調用時,是
11、用基類的指針訪問派生類的對象。如果析構函數是非虛函數,則基類指針只能訪問基類的析構函數,而不能訪問派生類的析構函數,導致派生類對象銷毀時,沒有調用派生類的析構函數,只是調用了基類的析構函數。如果把析構函數定義成虛函數,則可克服這個問題。2、 拷貝構造函數在哪幾種情況下調用?解答要點:用一個對象初始化另一個對象時當用對象作為函數參數傳遞時當函數返回對象時3、 函數重載與函數覆蓋有什么不同,它們與多態(tài)有什么關系? 解答要點:函數重載是指函數名相同,而函數的參數個數或類型不同;覆蓋是指在派生類中成員函數與基類成員函數的函數名、參數個數、類型與返回值均相同;C+中正是通過虛函數的覆蓋,實現多態(tài)的功能。
12、4、 C+繼承是如何工作的?解答要點:繼承使得派生類能夠使用基類的公有和保護成員,從而實現代碼的復用,派生類可以增加成員,也可以隱藏和覆蓋基類的成員。對于公有繼承,基類成員的訪問權限在派生類保持不變。5、 類與對象有什么區(qū)別?解答要點:類是類型,是對象的抽象,對象是類的具體實例。一個類可以有多個對象,每個對象都有自己的存儲單元,而類不占存儲單元。三、運行結果為: D:virfun() called.四、填空 char * argv1 *str+五、(8分) 定義一個字符棧類Stack(包括類的實現)。數據成員包括一個存放字符的數組stck 和一個棧指針tos。棧數組的尺寸由常量SIZE確定。棧
13、的基本操作為Push()和Pop()。 const int SIZE=27;class Stackpublic:Stack():tos(0);void Push(char ch);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;i=n-1;i+)pi=ai;for(i=0;i=n-1;i+)ai=pn-i-1;delete p;七、(12分)下面的函數統(tǒng)計子字符串substr在字符串str中出現的次數,如果substr在str中不出現,則返回值0。請完成該函數。int str_count(char *substr, char *str)int coun
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 推動鄉(xiāng)村教育可持續(xù)發(fā)展路徑探索
- 人力資源管理的未來走向與創(chuàng)新趨勢
- 破解中小微企業(yè)融資難題的有效策略與實施路徑
- 閥門行業(yè)發(fā)展動向與市場潛力洞察
- 前臺文員崗位設置與職能分析計劃
- 研究金融衍生品的試題及答案
- 不斷學習進取精神計劃
- 人教版生物七年級上冊3.3《綠色植物參與生物圈的水循環(huán)》教學設計
- 實踐教學與實驗課程計劃
- 2024年畜牧師考試的必學知識點試題及答案
- 腦鈉肽BNP幻燈片
- 甲狀旁腺功能減亢進的護理
- (高清版)JTG 3370.1-2018 公路隧道設計規(guī)范 第一冊 土建工程
- 《生理學》-血液循環(huán)-選擇題(A型)
- 電氣工程接地用銅覆鋼技術條件
- 2.1碳排放與環(huán)境安全學案高中地理選擇性必修三
- 社區(qū)獲得性肺炎治療指南
- 三年級語文下冊 期中綜合模擬測試卷(人教版)
- (新版)制絲操作工(二級)理論考試復習題庫-下(多選、判斷題匯總)
- 會議室改造方案
- 丙烯酰胺生產工藝
評論
0/150
提交評論