C++強化訓練試卷B.doc_第1頁
C++強化訓練試卷B.doc_第2頁
C++強化訓練試卷B.doc_第3頁
C++強化訓練試卷B.doc_第4頁
C++強化訓練試卷B.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2系,611班2009級C+強化訓練試卷B(1) 本卷中的選擇題,凡未注明(多選),均只有一個正確答案;(2) 所有答題均應填寫在答題紙上對應的序號欄內,僅寫在試題欄中不予評分;(3) 答題時,要求書寫工整,如果字跡過于潦草、模糊不清造成無法辨認,視為錯答;(4) 答題結束后,請交答題紙。保留試卷,以備課堂使用。一. 選擇題(25分)1. 一幅具有真彩色(24位)、分辨率為1024768的數字圖象,在沒有進行數據壓縮時,它的數據量大約是 (1) 。A900KBB. 18MBC. 3.75MBD. 2.25MB2. 已知X的補碼為10011000,則它的原碼是 (2) A. 01101000 B. 01100111 C. 11101000 D. 10011000 3. IP地址是一串很難記憶的數字,于是人們開發了 (3) ,該系統給主機賦予一個用字母代表的名字,并負責IP地址與名字之間的轉換。ADNS域名系統 BWINDOWS NT系統CUNIX系統 DFTP系統4. 下面是關于計算機中定點數和浮點數的一些敘述,正確的是 (4) 。A浮點數是既有整數部分又有小數部分的數,定點數只能表示純小數B浮點數的尾數越長,所表示的數的精度就越高C定點數可表示的數值范圍總是大于浮點數所表示的范圍D浮點數使用二進制表示,定點數使用十進制表示5. 系統軟件是給其他軟件提供服務的程序集合,下面的敘述中錯誤的是 (5) 。A系統軟件與計算機硬件有關。B在通用計算機系統中系統軟件幾乎是必不可少的。C操作系統是系統軟件之一。 DIE瀏覽器也是一種系統軟件。6. 微機硬件系統中地址總線的寬度(位數)對 (6) 影響最大。A. 存儲器的訪問速度B. CPU可直接訪問的存儲器空間大小C. 存儲器的字長D. 存儲器的穩定性7. 企業內部網是采用TCP/IP技術,集LAN、WAN和數據服務為一體的一種網絡,它也稱為 (7) 。A. 局域網 B. 廣域網C. Intranet D. Internet8. 下列網絡協議中,不用于收發電子郵件的是_(8)_。A. IMAP B. POP3 C. SMTP D. FTP9. Internet使用TCP/IP協議實現了全球范圍的計算機網絡的互連,連接在Internet上的每一臺主機都有一個IP地址,下面不能作為IP地址的是_ (9) 。A 8B. 8C. 8D. 127.0.257.110. 假設某用戶上網時輸入,其中的http是 (10) 。A. 超文本傳輸協議 B. 文件傳輸協議 C. 計算機主機域名 D. TCP/IP協議11. 若定義函數int f(int x) x+; return x;執行以下語句:int a=5; f(a)+f(a);則a的值是 (11) 。 A5B. 6C. 7D.812. 以下的函數原形說明中存在語法錯誤的是 (12) 。Avoid f(int a ,int)B. void f2(int ,int);C. void f3(int , int =5)D. int f4(int x ; int y)13. 對于基類中的private成員,其在公有派生類中的訪問權限為 (13) 。A不可訪問B. privateC. protectedD. public14. 下面關于基類與派生類的敘述正確的是 (14) 。A派生類對象不能賦給基類對象B派生類對象的地址不能賦給其基類的指針變量C基類對象不能賦給派生類對象D基類對象的地址能賦給派生類的指針變量15. 下列有關運算符重載的敘述正確的是 (15) 。A非靜態成員函數重載運算符時帶this指針B友元函數重載運算符時帶this指針C成員函數與友元函數重載運算符時都不帶this指針D用成員函數與友元函數重載同一運算符時,兩者的參數類型與參數個數相同16. 設有以下說明語句:char s120=”hello”,s220=”China”,const char *ptr=s1;以下語句中不符合C+語法規則的語句是 (16) Astrcpy(s2 , ptr) B. ptr=s2C. ptr=ptr+4D. *ptr =*s2 17. 設有類的定義:class Mpublic:int *v;M( )M(int i )v=new int(i) ; ; 下列表示中,定義該類的對象m對其成員v進行正確操作的是 (17) 。AM m;m.v=10B. M m ; *m.v=10C. Mm; m.*v=10D. M m(10)18. 若有“char p=”AOBCODBCn”;”,則strlen(p+4)的值是 (18) 。A5B. 2C. 1D. 019. 設函數聲明語句中的參數表為(int &a , int &b ,int c),函數體中a,b,c三個變量的值都發生變化;主函數中調用此函數的實參表為(x,y,z),調用函數語句執行后,以下敘述正確的是 (19) 。A. 變量x和y的值發生變化B. 變量x和y的值不發生變化C. 變量x、y、z的值都發生變化D. 只有變量z的值發生變化20. 以下選取項正確的是 (20) 。Achar *a=”china” ; 等價于char *a; *a=”china”;Bchar str=”china”; 等價于char str10; str = “china”;Cchar c4=”abc”;d4=”abc” ; 等價于 char c4=d4=”abc”;Dchar *s=”china” ; 等價于char *s; s=”china”;21. 以下選項中錯誤的是 (21) 。A派生類可以繼承多個基類B抽象類必須是虛基類C派生類可以有多個虛基類D可以有多個派生類繼承同一個基類22. 若定義類A:class Apublic:A(int x=0);;執行語句“A a(4) , b3 ,* p2 ;”,則自動調用該類的構造函數的次數為 (22) 。A6B. 4C. 3D. 123. 若有類定義 class Term public: int addterm( ); ;作用域運算符:正確使用的是 (23)。A)int Term: addterm( )B)int:Term addterm( ) C)int Term addterm:( ) D)int Term addterm( ):24. 如果定義了字符變量ch,以下 (24)語句可以實現將鍵入的字符(包括空格、回車及間隔符)賦予ch。 A.cinch B. cinget(ch) C. cin.get(ch) D. ch=get()25. 設有說明:static int a2=1,2,3,4,; int *pa,(*pb)2;則執行語句pb=a; pa=pb0;后,(*(pa+3)值是: (25) A. 4 B. 2 C. &a10 D. &a01二. 填空(15分)1. 函數重載是指函數名相同,但函數的 (1) 或函數的 (2) 不同。2. 在C+中,編譯預處理包含三方面的內容,它們分別是包含文件、 (3) 和 (4)。3. 在C+中,運算符的重載有兩種實現方法,一種是通過成員函數來實現,另一種則是通過 (5) 來實現。 4. 當一個類只能作為派生類的基類,不能用來說明這種類的對象時,這種類稱為 (6) 。 5. 在C+中函數的參數傳遞方式有三種:第一種是值傳遞; 第二種是指針傳遞; 第三種是 (7) 傳遞; 6. 設有語句”int a=5,b=7,c=15,d; d=ba|(c=a+b)”;則c的值是 (8) 。7. 任何一個類至少包含兩個構造函數,一個是缺省的構造函數或用戶顯式定義的構造函數。另一個是 (9) 。 8. 若有宏定義:#defin X 2 #defin Y(n)(X+1)*n) 則執行語句:z=2*(X+Y(X+2);后,z的值是: (10) 。9. C+允許用戶利用fstream類來定義非標準的文件對象。當被定義的對象是調用重載運算符”或”來讀取或寫入文件時,這個文件必定是_(11)_文件。 10. 設有說明語句: char s=”123t45600089”,*p=s; 執行以下兩個語句:cout*(p+5)n;cout(p+5) n;則輸出分別為 (12) 和 (13) 。 11. 在C+中,將多態性分為靜態多態性和動態多態性兩種。函數重載屬于 (14) ,虛函數屬于 (15) 。 三. 閱讀程序,回答問題(總共45分)1.#includeclass A int x,y; public: A(int a,int b)x=a; y=b; coutABCt; A() x=3; y=4; coutCBAn; void Show() coutx=xty=yt; A()coutXYZShow(); delete s1; delete s2;問題一:本程序的執行后輸出是 (1) (6分)問題二:如果將語句s2-Show()改為s1-Show(),執行結果是(2) (6分) 2. 下面程序的輸出是_(3)_ (1分) #include fun3(int x) static int a=3; a=x; return(a); void main() int k=2,m=1,n; n=fun3(k); n=fun3(m+n); coutnendl; 3.#includeclass A int x;public: void Show() coutx=xt; A(int a=10) x=a; coutAn; A()coutAn;void main(void) A f; f.Show(); f=20; f.Show();問題一:本程序共輸出(4)行,依次是 (5) (5分)4. 以下程序第一行輸出是_(6)_,第二行輸出是_(7)_ (2分)#includevoid sub(int n)int m, r ;if(n=0)cout*endl; return ;m=n/10; r=n%10;sub(m);cout*r;cout+r;void main( )int a=1234;sub(a);cout+endl; 5. #include iostream.hclass Apublic:virtual void fun()coutA:funt;A()fun();void g()fun();class B:public Apublic:B()fun();void fun()coutB:funt;void main() B b; b.g(); 問題:程序的輸出依次是 (8) (3分) 6. 寫出執行下面小程序的輸出結果 (9) 。(5分)void ac(float x);bc( );int m=10;void main( ) int i,s=0; float x; x=0.5; ac(x); for(i=0;i4;i+) s=s+bc(); cout&sendl; void ac(float x)int i=0;float s=0;while(i40) s=s+i*x; i=i+m;coutx,i,sendl;bc( )static int s;s=s+2*m;couts=s;return s;7. 下面程序的輸出是_(10)_ 。 (3分)#include iostream.h#define PR(ar) coutart; void main() int j,a=1,3,5,7,9,11,13,15,*p=a+5;for(j=3;j;j-)switch(j)case 1:case 2: PR(*p+);break;case 3: PR(*(-p);default:;8. 設有以下說明,請根據說明語句的順序回答以下問題: (4分)1) const float a=1;2) float &x=a;3) float b3,&t=b2;4) int &top=*new int;5) const int *p=∑6) const char *const s1;7) const float *const s2=b;8) const float *const s3=&b;9) enum grademath,eng,phy,com;10) enm grade=math;11) grade sum=math;問題一:以上正確的說明語句是:(11)問題二:含有正確表示引用類型說明的語句是:(12) 問題三:正確的常量說明語句是:(13)問題四:正確說明枚舉變量的語句是:(14)9. 執行下面的程序后,file1.txt中的內容是 (15) (1分) #include char getonech(char s) static int k; return sk+; void main()char *s=”AB123AB”;ofstream f1(“file1.txt”);char ch;while(ch=getchar(s) f1.put(ch); f1.close();10. 下面程序中編譯有錯誤的語句的標號為 (16) 的語句(2分)#include class D int x,y;public: D(int a,int b=0)x=a;y=b;coutaendl;/A D(int a)x=a,y=0;coutbendl; /B void SetXY(int a,int b)x=a,y=b; /C int GetX() return x ; /D int GetY()return y; /E;void main() D a(3,3); /F D b(9); /G couta.GetX() b.GetX()endl;其錯誤原因是: (17) 。A) 形、實參個數不一致。B) 構造函數沖突。C) 缺少類型轉換構造函數。D) 缺少拷貝構造函數。11. 閱讀以下程序,完成以下選項 (2分)#includeclass test03int x,y;public: int right,bottom; test03(int a=10,int b=20) x=a; y=b; coutxtyn; test03(int a, int b) x=a; y=a-b; coutxtyn; ;void main(void) test03 a(20,10),b; 該程序 (18) A. 有錯,因為對象a、b與構造函數的形參同名B. 有錯,因為對象b沒有對應的缺省構造函數可調C. 有錯,因為構造函數不符合重載規則D. 正確,因為第一個構造函數是缺省構造函數,第二個是帶參構造函數。執行結果為20 10 10 20在該程序中(19)A. 將對象b寫成b( )都是調用缺省構造函數B. 只有對象b改成b( )才是調用缺省構造函數C. 將對象a寫成a( ),對象b寫成b(20,10)才能正確調用D. 以上說法都不正確四. 完善程序(20分)1. 函數featch_int(char *ps ,int pi)的功能是:將ps所指向的字符串中的連續數字作為一個整數,依次取出整數并放到整形數組pi中,函數返回從字符串中取出的整數的個數.主函數中完成字符串的輸入,并輸出提取的所有整數。例如:輸入的字符串:“sfs345 fds456 df56j”,則輸出:345 456 56#includeint featch_int(char *ps,int pi)int len=0;while(*ps)if(!(*ps=0&*ps=9) (1) ; else int num=0; while( (2) ) num=num*10+*ps-0;ps+; (3) ; len+;return (4) ; void main( ) char str300;int b50,n,i; cout請輸入一個含有數字的字符串:n;cin.getline(str,200);n=featch_int( (5) ); cout其中有n個整數,它們分別是:n; for(i=0;in;i+) coutbit; if(i+1)%5=0) coutn;coudendl;2. 已建立一條無序鏈表,head指向鏈首,鏈表上結點的數據結構為 Struct Nodedouble num;Node next;以下函數 sort(Node *head) 的功能是:將參數head所指向鏈表上的各個結點,按num值升序排序,并返回排序后鏈表的鏈著指針。算法提示:先讓h指向空鏈,依次從head所指向的鏈表上取下一個結點,然后將取下的結點插入到已排序的h所指向的鏈表上。#includeNode* sort(Node *head)if(head=0) return head;Node *h,*p;h=0;while(head)p=head; (6) ; Node *p1,*p2;if(h=0)h=p; (7) ; else if( (8)) p-next=h;h=p;else p2=p1=h;while(p2-next & p2-numnum)p1=p2; (9) ; if( (10)) p2-next=p;p-nex=0;return h;3. 以下程序實現一個由動態數組構成的線性表的類,在該類的線性表中存放若干個實數。通過重載運算符實現兩個線性對應元素間的賦值,重載提取運算符完成線性表的輸入,重載插入運算符完成線性表的輸出。#includeclass Listint size;double *list;public:List(int=1,double=0.0);List()delete list;List & operator=(const List&);friend ostream& operator(istream &,List &);List:List(int sz,double t)size=sz;list= (11) ; for(int i=0;isize;i+) listi=t;List & List:operator=(const List& v)if(&v!=this)deletelist;size=v.size;list=new do

溫馨提示

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

評論

0/150

提交評論