C++程序的設(shè)計試題和答案1_第1頁
C++程序的設(shè)計試題和答案1_第2頁
C++程序的設(shè)計試題和答案1_第3頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C+溶序設(shè)計試題一、單項選擇題(本大題共20小題.每小題1分.共20分)在每小題列出的四個備選項中只有一個是符合題目要求的.請將其代碼填寫在題后的括號。錯選、多選或未選均無分。C+源程序文件擴展名為(A).cppB.hC.1ibD.obj在C+砰使用流進行輸入輸出.其中專用于從鍵盤進行輸入的流是(B)cerrB.cinC.coutD.cfile包含自定義頭文件file.h的預(yù)處理指令是(D)#define<file.h>B.#includefile.hC.#definefile.hD.#include"file.h"用于標(biāo)識十六進制前綴或后綴是(D)元B.后綴L

2、或eC.前綴零D.前綴0x設(shè)存在整型變量intx.則下列句與其它三項含義不同的是(A)int*p=&x;B.int&p=x;C.int&p=x;D.int&p=x;在定義類成員時.為產(chǎn)生封裝性.則需使用哪個關(guān)鍵字(D)publicB.publishC.protectedD.private設(shè)函數(shù)voidswap(int&.int&)將交換兩形參的值.如兩整型變量inta=10;intb=15;則執(zhí)行swap(a.b)后.a、b值分別為(C)10.10B.10.15C.15.10D.15.15函數(shù)默認參數(shù)在函數(shù)原型中說明.默認參數(shù)必須放在參數(shù)序列的(

3、C)前部B.中部C.后部D.兩端設(shè)存在函數(shù)intmin()返回兩參數(shù)中較小值.若求15.26.47三者中最小值.下列表達式中錯誤的是(B)intm=min(min(15.26).min(15.47);intm=min(15.26.47);intm=min(15.min(47.26);intm=min(min(47.26).16);下列函數(shù)不能和函數(shù)voidprint(char)構(gòu)成重載的是(C)intprint(int);voidprint(char.char);intprint(char);voidprint();在下列成對的表達式中.運算結(jié)果類型相同的一對是(D

4、)7/2和7.0/2.07/2.0和7/27.0/2和7/27.0/2.0和7.0/2聯(lián)函數(shù)的特點是(D)A.減少代碼量.加快訪問速度B.減少代碼量.減緩訪問速度C.增加代碼量.減緩訪問速度D.增加代碼量.加快訪問速度類的私有成員可在何處被訪問(A)本類的成員函數(shù)中本類及子類的成員函數(shù)中通過對象名在任何位置不可訪問類的構(gòu)造函數(shù)在以下什么情況下會被自動調(diào)用(B)定義成員函數(shù)時定義對象時定義數(shù)據(jù)成員時定義友元函數(shù)時下列關(guān)于析構(gòu)函數(shù)描述正確的是(D)A.可以重載B.函數(shù)體中必須有delete語句返回類型必須是void類型不能指定返回類型設(shè)有函數(shù)TSum(Tx.Ty)(returnx+y;.其中T為模

5、板類型.則下列語句中對該函數(shù)錯誤的使用是(D)Sum(1.2);Sum();Sum('A'.'C);Sum("A"."C")下列哪個編譯指令屬于條件編譯指令(C)A.#includeB.#defineC.#elseD.#pragma關(guān)于類的靜態(tài)成員函數(shù)描述錯誤的是(A)在創(chuàng)建對象前不存在不能說明為虛函數(shù)不能直接訪問非靜態(tài)函數(shù)不是對象的成員如果類A被聲明成類B的友元.則(D)A.類A的成員即類B的成員B.類B的成員即類A的成員類A的成員函數(shù)不得訪問類B的成員類B不一定是類A的友元派生類的對象可以訪問以下那種情況繼承的基

6、類成員(D)私有繼承的私有成員公有繼承的私有成員私有繼承的保護成員公有繼承的公有成員二、填空題(本大題共20小題.每小題1分.共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。1. 若使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上.實現(xiàn)此操作的C+硒句是cout<<a。2. C+將數(shù)據(jù)從一個對象流向另一個對象的流動抽象為“流”.從流中獲取數(shù)據(jù)的操作稱為提取操作。3. 執(zhí)行下列代碼intb=100;cout<<"Hex:"<<hex<<b;程序的輸出結(jié)果是Hex:64。4. 靜態(tài)聯(lián)編所支持的多態(tài)性稱為編譯時或編譯的多態(tài)性。

7、5. C+程序必須有且只有一個主函數(shù).其函數(shù)名為main。寫出聲明一個復(fù)數(shù)對象的語句.并使該對象被初始化為2.2+1.3i.此聲明語句是complex<float>num(2.2,1.3)或complex<double>num(2.2,1.3)。6. 若有函數(shù)定義為:intadd(intml=0.intm2=2.intm3=4)returnml+m2+m3;在主函數(shù)中有ints=add(1)+add(0.1)+add(0.1.2);則執(zhí)行此語句后s的值為1528。7. C+中使用inline關(guān)鍵字說明函數(shù)為聯(lián)函數(shù)。在源程序中有宏定義:#definePI3.14.則若不想

8、使該宏定義影響到程序的其它地方.可以使用#undefPI刪除該宏定義。類和其它數(shù)據(jù)類型不同的是組成這種類型的不僅可以有數(shù)據(jù).還可以有對數(shù)據(jù)進行操作的函數(shù)或成員函數(shù)。8. 有下列代碼inta=0;doubleb=0;cin>>a>>b;當(dāng)用鍵盤輸入1.25時.b=0.25。9. 對于類Point而言.其析構(gòu)函數(shù)的定義原型為Point:Point()或Point()。對象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對象在類中說明的順序.與它們在成員初始化列表中給出的順序無關(guān)。10. 類的簡單成員函數(shù)是指聲明中不含const、volatile、static關(guān)鍵字的函數(shù)。11. 與操作對象

9、的數(shù)據(jù)類型相互獨立的算法稱為泛型算法。12. 從一個或多個以前定義的類產(chǎn)生新類的過程稱為派生。13. 在vector類中向向量尾部插入一個對象的方法是pushback(constT&)C+中用于動態(tài)創(chuàng)建對象.并返回該對象的指針的關(guān)鍵字是new。14. C+的流類庫預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是couL。執(zhí)行下列代碼cout<<noshowpoint<<123.0;程序輸出結(jié)果是123。三、改錯題(本大題共5小題.每小題2分.共10分)下面的類定義中有一處錯誤.請用下橫線標(biāo)出錯誤所在行并給出修改意見。15. #include<iostream.h>

10、classfprivate:floatx.y;public:f(floata.floatb)x=a;y=b;floatmax()return(x<y)?x:y;/求最大值;main()fa();cout<<a.max()<<endl;16. return(x<y)?x:y;該語句求的是最小值.應(yīng)改為return(x>y)?x:y;或return(x<y)?y:x;#include<iostream.h>classtestprivate:intx;public:test(inta)x=a;voidset(inta)x=a;

11、voidget()cout<<x<<endl;main()consttesta(3);a.set(5);a.get()17. a.set(5);a是常對象.不能被更新或consttesta(3);去掉const使a不再為常對象#include<iostream.h>classpointprivate:floatx.y;public:f1(floata.floatb)x=a;y=b;point()x=0;y=0;voidgetx()cout<<x<<endlvoidgety()(cout<<y<<endl;voi

12、dprint(pointa)cout<<a.x<<endl;main()(pointa;a.f1();print(a)不是成員函數(shù)不允許直接調(diào)用a.x或?qū)⒒騝our<<a.x<<endl;改為a.getx();18. print(pointa)cout<<a.x<<endl;print()private:floatx,y;改為public:floatx,y;#include<iostream.h>classfprivate:intx.y;public:fl(b)x=a;y=b;vo

13、idprint()cout<<x<<y<<endl;;main()19. fa;a.f1();a.print()a.f1(1.5,1.8);f1()調(diào)用時實參與形參類型不一致#include<iostream.h>main()(intx=6;constint*p=x;cout<<*p<<endl;20. constint*p=x;變量給指針p賦值必須加上&四、完成程序題(本大題共5小題.每小題4分.共20分)完成下面程序.使其輸出l0.并在退出運行時正確釋放分配給指針的存儲空間。#include<

14、;iostream>usingnamespacestd;voidmain()(int*a.*p;a=newint(10);p=_a_;cout<<*p<<endl;deletep;或deletea;21. #include<iostream>usingnamespacestd;classbaseprivate:intx;public:base(inta)x=a;intget()returnx;voidshowbase()cout<<"x="<<x<<endl;;classDerived:publi

15、cbaseprivate:inty;public:Derived(b):base(a)y=b;voidshowderived()cout<<"x="<<get()<<".y="<<y<<endl;voidmain()baseb(3);Derivedd(6.7);b.showbase();d.showderived()b=d;b.showbase();baseb1=b;或base&b1=b;或baseb1(6);b1.showbase();base*pb=&bl;p

16、b>showbase();d.showderived();b.showbase();輸出結(jié)果如下:22. x=3x=6.y=7x=6x=6x=6x=6.y=7x=6下面程序的運行結(jié)果如下:B:display()C:display()在下劃線處填上缺少的部分。源程序如下:#include<iostream>usingnamespacestd;classB(public:virtualvoiddisplay()(cout<<"B:display()"<<endl;;classC:publicB(public:voiddisplay()(

17、cout<<"C:display()"<<endl;;voidfun(B*p)(p>display();voidmain()(Bb.*pb;Cc:pb=&b;fun(pb)pb=&c;fun(pb);23. 下面程序的運行結(jié)果如下:ThisislinelThisisline2Thisisline3在下劃線處填上缺少的部分。源程序如下:#include<iostream>#include<fstream或"fstream”usingnamespacestd;voidmain()fstreamfin,fo

18、ut;fout.open("my.txt”.ios:out);if(!fout.is_open()return;for(inti=0;i<3;i=i+1)fout<<"Thisisline"<<i+1<<endlfout.close()fin.open("my.txt".iosif(!fin.is_open()return;charstr100;while(!fin.eof()fin.getline(str.100);cout<<str<<endl;fin.close();24.

19、 在下劃線處填上缺少的部分。源程序如下:#include<iostream>usingnamespacestd;template<classT>或template<typenameT>Tfun(Tx)Ty;y=x*x-T(5);returny;voidmain()(floata=2;cout<<fun(a);五、程序分析題(本大題共4小題.每小題5分.共20分)請寫出myTextl.txt文本文件中的容#include<iostream>#include<string>usingnamespacestd;#include&

20、lt;fstream>voidmain()(ofstreammyFile1;myFilel.open("myTextl.txt");"<<endlcout<<"EnterthedatainChineseformat(e.g.2008.May25)stringDate("2008.January1");stringYear=Date.substr(0.4);intk=Date.find(".”);inti=Date.find("");stringMonth=Date.subst

21、r(k+l.i-k-1)stringDay=Date.substr(i+1.2)stringNewDate=Day+""+Month+""+Year;myFilel<<"originaldate:"<<Date<<endl;myFile1<<"Converteddate:"<<NewDate<<endl;myFilel.close();originaldate:2008,January1Converteddate:1January2008給出下

22、面程序的輸出結(jié)果#include<iostream>usingnamespacestd;classSimpleintx.y;public:25. Simple()x=y=0;Simple(j)x=i;y=j;voidcopy(Simple&s);voidsetxy(j)x=i;y=j;voidprint()cout<<"x="<<x<<".y="<<y<<endl;;voidSimple:copy(Simple&s)(x=s.x;y=s

23、.y;voidfunc(Simplesl.Simple&s2)(s1.setxy(30,40);s2.setxy(70.80);voidmain()(Simpleobj1(1.2).obj2;obj2.copy(obj1);func(obj1.obj2);obj1.print();obj2.print();x=1,y=2x=70,y=80給出下面程序的輸出結(jié)果#include"iostream.hintmain()(inti=17;while(i>=10)if(-i%4=3)continue;elsecout<<"i="<<i-<<endl;26. i=16i=14i=12i=10給出下面程序的輸出結(jié)果#include<iostream>usingnamespace

溫馨提示

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

評論

0/150

提交評論