C++程序語言模擬期末考試試卷(一)附答案_第1頁
C++程序語言模擬期末考試試卷(一)附答案_第2頁
C++程序語言模擬期末考試試卷(一)附答案_第3頁
C++程序語言模擬期末考試試卷(一)附答案_第4頁
C++程序語言模擬期末考試試卷(一)附答案_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、C+模擬試卷(一) 一、單項選擇題(共20題,每題1分,共20分)1、下列關于C+標識符的命名不合法的是A. Pad B. name_1 C. A#bc D. _a122、若有以下類型標識符定義: ( )int x=2; char w='a'; float y=23.45f; double z=45.6712;則表達式w*x+y-z的結果類型是A. float B. char C. int D. double 3、若有int x=10,y=20,z=30; 則執行下面語句后,x的值是if(x>y)z=x; x=y; y=z; A. 10 B. 20 C. 30 D. 04

2、、循環語句whlie(int i=0 )i-;的循環次數是A. 0 B. 1 C. 5 D. 無限5、一個函數無返回值時,應選擇的說明符是A. static B. extern C. void D. 無說明符6、對重載函數形參的描述中,錯誤的是A. 參數的個數可能不同 B. 參數的類型可能不同C. 參數的順序可能不同 D. 參數的個數、類型、順序都相同,只是函數的返回值類型不同7、以下能正確定義數組并正確賦初值的語句是A. int N=5,bNN; B. int a2=1,3,4,5;C. int c2=1,2,3,4; D. int d32=1,2,3,4;8、下列給字符數組進行的初始化中,

3、不正確的是A. char s1="abcd" B. char s23='x','y','0'C. char s3='a','x','y','0' D. char s46="xyz","mnp"9、通常的拷貝構造函數的參數是A 某個對象名 B某個對象成員名C 某個對象的引用 D某個對象的指針名10、關于構造函數特點的描述中,錯誤的是A. 定義構造函數必須指出類型 B. 構造函數的名字與該類的類名相同C. 一個類中可定義0至多個

4、構造函數 D. 構造函數是一種成員函數11、下面程序的運行結果為#include <iostream.h>int add(int a,int b);void main() extern int x,y;cout<<add(x,y)<<endl;int x=20,y=5;int add(int a,int b)int s=a+b;return s; A20 B5 C25 D編譯會提示出錯信息12、關于常成員的描述中,錯誤的是A. 常成員包含常數據成員和常成員函數兩種B. 常數據成員必須是公有的C. 常數據成員要使用構造函數成員初始化列表進行初始化D. 常對象只

5、能調用它的常成員函數,不能調用其它的成員函數 13、關于友元函數的描述中,錯誤的是A. 友元函數不是成員函數 B. 友元函數只能訪問類中私有成員C. 友元函數破壞隱藏性,盡量少用D. 友元函數說明在類體內,使用關鍵字friend 14、如果有int x,*p; float y,*q;則下面操作正確的是Ap=x Bp=q Cp=&x Dp=&y15、若有函數說明void fA(int m, int n); 和指針變量的定義 void (*p)(int,int);并且有p= fA則下列操作不正確的是A(*p)(3,4); Bp(3,4); CfA(3,4); D*p+;16、若數組

6、名作實參而指針變量作形參,函數調用時實參傳給形參的是A. 數組的長度 B. 數組第一個元素的值C. 數組所有元素的值 D. 數組第一個元素的地址17、對于動態分配內存空間描述正確的是A使用new運算符分配的內存空間的長度必需是常量 Bdelete運算符可以釋放動態的存儲空間和靜態的存儲空間C由new分配的內存空間是不連續的Ddelete運算符只能釋放由new分配的動態存儲空間18、能夠釋放對象所占資源的是 ( )A析構函數 B數據成員 C構造函數 D靜態成員函數19、虛函數的定義是在基類中進行的,定義時需要冠以關鍵字Astatic Bfrend Cvirtual Dpublic20、在C+中串

7、流類是在頭文件strstrea.h中定義的,下列不屬于串流類的是 )Astrstream Bostrstream Cofstream Distrstream二、填空題(共9題16空,每空1分,共16分)1、函數重載時,編譯系統會根據_ 或_ 來區分。2、若有char a80;則cin>>a表示從鍵盤上讀入一個_ 到數組a中。3、若希望用一個已有對象來構造另一個同類型的對象,可以使用_來實現。4、靜態成員屬于_ ,而不屬于_ ,它被同一個類的所有對象共享。5、類的繼承方式有_ 繼承、_ 繼承和_ 繼承。6、重載運算符的含義必須清楚,不能有_ 。7、按照聯編進行階段的不同,聯編方法可分

8、為兩種: _ 和_ 。8、當基類中的某個成員函數被聲明為虛函數后,此虛函數就可以在一個或多個派生類中被重新定義,在派生類中重新定義時,其函數原型,包括返回類型、_ 、_ 、參數類型以及參數的順序都必須與基類中的原型完全相同。9、C+的I/O是以 的形式實現的,每個C+編譯系統都帶有一個面向對象的輸入/輸出軟件包,這就是 。三、判斷題(共10題,每題1分,共10分)1、C+語言支持封裝性和繼承性,不支持多態性。2、關系運算符可以用來比較兩個字符的大小,也可用來比較兩個字符串的大小。)3、字符串"sdfgh"的長度是5。4、引用和指針都可作函數參數。5、友元函數說明在類體內,它

9、是一種成員函數。6、友元類必須被說明為公有成員。7、純虛函數是在基類中說明的虛函數,它在該基類中沒有定義具體的操作內容。8、析構函數不能被繼承。9、運算符重載以后,其優先級和結合性都不能改變。10、在C+中,函數名實際上是一個指針,它指向函數的入口。四、分析程序,回答所提出的問題(16分)1、 #include <iostream.h>class B;class Apublic:A(int i) a=i; friend int F(A &f1,B &f2);private:int a;class Bpublic:B(int i) b=i; friend int F(

10、A &f1,B &f2);private:int b;int F(A &f1,B &f2)return (f1.a+f2.b)* (f1.a-f2.b);void main()A n1(10);B n2(8);cout<<F(n1,n2)<<endl; 寫出程序的運行結果。 該程序中共有幾個對象,分別屬于哪個類? 為什么在程序的開頭處通過語句class B; 對類B進行聲明? 程序中的哪兩條語句會分別調用A、B的構造函數?寫出這兩個構造函數。 函數F是什么函數?它的作用是什么?五、閱讀程序,寫出運行結果(共2題,第1題6分,第2題8分,共

11、14分)1、 #include <iostream.h>int func(int a)int b=0;static int c=4;b+; c-;return(a+b+c);void main( )int a=2;for(int j=0;j<2;j+)cout<<func(a+j)<< " "輸出結果為:2、 #include <iostream.h>class Xpublic:X(int i) x=i; cout<<”int: ”<<i<<,<<”calledn”; X(

12、double i) x=(int)i*2; cout<<” double: ”<<i<<,<<”calledn”; X() cout<<” X(): ”<<x<<,<<”calledn”; private:int x;void main()int a=8;double b=11.0;X x1(55), x2(a*5);X x3=X(2*a);X x4=X(b);輸出結果為:六、編寫程序(共2題,第1題10分,第2題14分,共24分)1、輸入一組數據以-1作為結束標志,要求刪除其它數據只保留能被2整除

13、的數據并輸出結果。2、定義一個日期類Date,包含年、月、日三個數據成員,以及一個求第二天日期的成員函數和輸出日期的成員函數。模擬試卷(一)答案一、單項選擇題1、C 2、D 3、B 4、A 5、C 6、D 7、D 8、D 9、C 10、A11、C 12、B 13、B 14、C 15、D 16、D 17、D 18、A 19、C 20、C二、填空題1、形參的類型 形參的個數2、字符串3、拷貝構造函數4、類 任何一個對象5、public(或公有) private(或私有) protected(或保護)6、二義性7、動態聯編 靜態聯編8、函數名 參數個數9、字節流 I/O流類庫三、判斷題1、×

14、; 2、× 3、 4、 5、× 6、× 7、 8、 9、 10四、分析程序,回答所提出的問題(平分標準:每問4分,共16分) 36 n1 和 n2 兩個對象,n1屬于A類,n2屬于B類。因為B類的定義在A類后,而A類中要引用B類。 語句A n1(10); 和語B n2(8); A類的構造函數:A(int i) a=i; B類的構造函數:B(int i) b=i; 函數F是友元函數。它的作用是:提供了不同類或對象的成員函數之間、類的成員函數與一般函數之間共享數據的機制。(關鍵答出共享數據、或答出通過友元可以訪問到封裝與類A、B中的數據)五、閱讀程序,寫出運行結果1、

15、輸出結果為:6 62、輸出結果為:int:55,calledint:40,calledint:16,calleddouble:11,calledx<>:22,calledx<>:16,calledx<>:40,calledx<>:50,called六、編寫程序1、輸入一組數據以-1作為結束標志,要求刪除其它數據只保留能被2整除的數據,并輸出結果。# include <iostream.h> void main()int b50,x,n=0;cin>>x; while(x!=-1)b+n=x;cin>>x;for

16、(int i=1,j=0;i<=n;i+) if(bi%2=0) b+j=bi;for(i=1;i<=j;i+) cout<<bi<< 't'cout<<endl;2、定義一個日期類Date,包含年、月、日三個數據成員,以及一個求第二天日期的成員函數和輸出日期的成員函數。#include <iostream.h> class Date private:int year,month,day;public:Date(int y, int m, int d)year=y;month=m;day=d;void nextday();void display()cout<<year<<"/"<<month<<"/"<<day<<endl;void Date:nextday() int totaldays212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;day+;int leap=(year%400=0|year%4=0&&year%100!=0);if(day

溫馨提示

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

最新文檔

評論

0/150

提交評論