VC-MFC試題復(fù)習(xí)題及答案_第1頁(yè)
VC-MFC試題復(fù)習(xí)題及答案_第2頁(yè)
VC-MFC試題復(fù)習(xí)題及答案_第3頁(yè)
VC-MFC試題復(fù)習(xí)題及答案_第4頁(yè)
VC-MFC試題復(fù)習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《VC程序設(shè)計(jì)》試卷1一、單項(xiàng)選擇題(每小題1分,共20分)1、假定MyClass為一個(gè)類(lèi),則執(zhí)行“”MyClassa[3],*p[2];”語(yǔ)句時(shí),自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為()A、2B、3C、4D、52、對(duì)于類(lèi)中定義的成員,其隱含訪問(wèn)權(quán)限為()A、protectedB、privateC、publicD、static3、一個(gè)類(lèi)的友元函數(shù)或友元類(lèi)能夠通過(guò)成員操作符訪問(wèn)該類(lèi)的()A、私有成員B、所有成員C、公用成員D、保護(hù)成員4、下面說(shuō)法正確的是()A、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載。B、構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載。C、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載。D、構(gòu)造函數(shù)和析構(gòu)函數(shù)都不可以重載。5、下列語(yǔ)句的運(yùn)行結(jié)果為()#include<iostream.h>srtuctCOMPLEX{intx;inty;}cNum[2]={1,3,2,7};voidmain(){cout<<cNum[0].y*cNum[1]x<<endl;}A、3 B、2C、21D、66、類(lèi)AB的缺省構(gòu)造函數(shù)和析構(gòu)函數(shù)是()A、AB()和~AB()B、AB(int)和~AB()C、AB()和~AB(delete)D、AB()和int~AB()7、在C++中,若對(duì)函數(shù)未加說(shuō)明,則函數(shù)的隱含類(lèi)型是()A、intB、doubleC、voidD、char8、已知類(lèi)A是類(lèi)B的友元,類(lèi)B是類(lèi)C的友元,則()A、類(lèi)A一定是類(lèi)C的友元B、類(lèi)C一定是類(lèi)A的友元C、類(lèi)C的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員D、類(lèi)A的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員9、下列說(shuō)法中正確的是()A、類(lèi)定義中只能說(shuō)明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體B、類(lèi)中的函數(shù)成員可以在類(lèi)體中定義,也可以在類(lèi)體之外定義C、類(lèi)中的函數(shù)成員在類(lèi)體之外定義時(shí)必須要與類(lèi)聲明在同一文件中D、在類(lèi)體之外定義的函數(shù)成員不能操作該類(lèi)的私有數(shù)據(jù)成員10、以下不屬于成員函數(shù)的是()A、靜態(tài)成員函數(shù) B、友元函數(shù)C、構(gòu)造函數(shù) D、析構(gòu)函數(shù)11、對(duì)于消息隊(duì)列的描述正確的是()A、在Windows中只有一個(gè)消息系統(tǒng),即系統(tǒng)消息隊(duì)列。消息隊(duì)列是一個(gè)系統(tǒng)定義的數(shù)據(jù)結(jié)構(gòu),用于臨時(shí)存儲(chǔ)消息。B、系統(tǒng)可從消息隊(duì)列將信息直接發(fā)給窗口。另外,每個(gè)正在Windows下運(yùn)行的應(yīng)用程序都有自己的消息隊(duì)列。C、系統(tǒng)消息隊(duì)列中的每個(gè)消息最終都要被USER模塊傳送到應(yīng)用程序的消息隊(duì)列中去。應(yīng)用程序的消息對(duì)列中存儲(chǔ)了程序的所有窗口的全部消息。D、以上都正確12、一個(gè)視圖對(duì)象能連接()文檔對(duì)象,一個(gè)文檔對(duì)象能連接()視圖對(duì)象。A、一個(gè),多個(gè)B、多個(gè),一個(gè)C、一個(gè),一個(gè)D、多個(gè),多個(gè)13、MFC類(lèi)庫(kù)中的類(lèi)按層次關(guān)系可知,CStatic的直接父類(lèi)為()A、CObjectB、CWndC、CcmdTargetD、CFrameWnd14、可以利用控件的()屬性和Tab鍵順序來(lái)為控件分組。A、IDB、TabstopC、GroupD、Caption15、根據(jù)對(duì)話框的行為性質(zhì),對(duì)話框可以分為兩類(lèi):()A、對(duì)話框資源和對(duì)話框類(lèi)B、模式對(duì)話框和非模式對(duì)話框C、對(duì)話框資源和對(duì)話框模板D、消息對(duì)話框和模式對(duì)話框16、以下控件中,()沒(méi)有Caption屬性。A、按鈕B、群組框C、編輯控件D、靜態(tài)控件17、菜單項(xiàng)助記符前用()引導(dǎo)。A、%B、&C、#D、$18、更新菜單狀態(tài)的消息是()。A、WM_COMMANDB、UPDATEC、ON_UPDATE_COMMAND_UID、INVALIDATE19、關(guān)于工具欄、菜單和加速鍵的關(guān)系,正確的說(shuō)法是()。A、工具按鈕與菜單必須一一對(duì)應(yīng)B、工具按鈕與加速鍵一一對(duì)應(yīng)C、工具按鈕不必與菜單一一對(duì)應(yīng)D、菜單與加速鍵一一對(duì)應(yīng)20、使用GetWindowDC()和GetDC()獲取的設(shè)備上下文在退出時(shí),必須調(diào)用()釋放設(shè)備上下文。A、ReleaseDC()B、delete()C、DeleteDC()D、Detach()二、填空題(每空1分,共25分)1、VC++開(kāi)發(fā)環(huán)境中,int型數(shù)據(jù)占4個(gè)字節(jié),shortint占_______個(gè)字節(jié),longint占_________個(gè)字節(jié)。2、若for循環(huán)的“頭”為“for(inti=1;i<10;i++)”,并且在循環(huán)體中不會(huì)修改i的值,則循環(huán)體將被重復(fù)執(zhí)行____________次后結(jié)束。3、兩個(gè)函數(shù)的函數(shù)名________,但參數(shù)的個(gè)數(shù)或?qū)?yīng)參數(shù)的類(lèi)型_________時(shí),則稱(chēng)為重載函數(shù)。4、若ch為char型變量,n為int型變量,則下列語(yǔ)句ch=’a’;n=3;ch=ch+n;cout<<”ch=”<<ch;執(zhí)行的結(jié)果是__________。5、C++中函數(shù)的參數(shù)傳遞一種是按值傳遞,另一種是地址傳遞或________傳遞。6、C++運(yùn)行時(shí)的多態(tài)性通過(guò)______________來(lái)實(shí)現(xiàn),而編譯時(shí)的多態(tài)性通過(guò)_____________來(lái)實(shí)現(xiàn)。7只讀成員函數(shù)用_____________關(guān)鍵字標(biāo)識(shí),內(nèi)聯(lián)成員函數(shù)用___________關(guān)鍵字標(biāo)識(shí)。8、classtest{ public:staticintx;};testt1,t2;t1.x=25;程序運(yùn)行到這里時(shí),t2.x的值為_(kāi)___________。9、所有的文檔類(lèi)都派生于_______________,所有的視圖類(lèi)都派生于:_____________。10、為解決多繼承中因公共基類(lèi)而產(chǎn)生的二義性問(wèn)題,C++語(yǔ)言提供了________機(jī)制。將公共基類(lèi)聲明為它以后,它在派生類(lèi)中只產(chǎn)生一個(gè)實(shí)例。11、在代碼中,使用CWnd::____________函數(shù)可實(shí)現(xiàn)控件與其成員變量之間的數(shù)據(jù)的傳輸。12、列表框ClistBox類(lèi)的成員函數(shù)______________用來(lái)向列表框增加列表項(xiàng),成員函數(shù)____________用來(lái)清除列表項(xiàng)所有項(xiàng)目。13、:_________________是指將對(duì)象寫(xiě)入永久存儲(chǔ)介質(zhì)或者將對(duì)象從永久存儲(chǔ)介質(zhì)中讀出的過(guò)程。14、Windows程序中的消息有窗口消息、命令消息和__________消息三種類(lèi)型。15、MFC中的集合類(lèi)包括、、。16、在進(jìn)行繪圖時(shí),用于指定圖形的填充樣式,________________用于指定圖形的邊框樣式。三選擇填空題(每空1分,共15分)1、如果在基類(lèi)和派生類(lèi)中都包含其他類(lèi)的對(duì)象(即有對(duì)象成員),則在創(chuàng)建派生類(lèi)的對(duì)象時(shí),首先執(zhí)行⑴的構(gòu)造函數(shù),接著執(zhí)行⑵的構(gòu)造函數(shù),然后執(zhí)行___⑶___的構(gòu)造函數(shù),最后才執(zhí)行⑷的構(gòu)造函數(shù)。A、基類(lèi)的對(duì)象成員B、派生類(lèi)的對(duì)象成員C、基類(lèi)D、派生類(lèi)2、[5]代表窗口客戶(hù)區(qū)的顯示設(shè)備上下文,[6]代表整個(gè)窗口的顯示設(shè)備上下文。A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC3、消息循環(huán)的處理過(guò)程如下:⑺函數(shù)不斷偵察應(yīng)用程序的消息隊(duì)列,若隊(duì)列為空,該函數(shù)一直運(yùn)行,不返回;一旦發(fā)現(xiàn)隊(duì)列不為空,便取出一條消息,把它拷貝到msg結(jié)構(gòu)變量中,同時(shí)該函數(shù)返回TRUE;得到消息msg后,⑻把來(lái)自鍵盤(pán)的命令翻譯成WM_XXX消息命令形式。⑼函數(shù)通知Windows把每個(gè)消息分發(fā)給相應(yīng)的窗口函數(shù)。應(yīng)用程序并不直接調(diào)用窗口函數(shù),而由Windows根據(jù)消息去調(diào)用窗口函數(shù),因此,窗口函數(shù)經(jīng)常被稱(chēng)為回調(diào)函數(shù)。A、GetMessage()B、translateMessage()C、PostMessage()D、SendMessage()E、DispatchMessage()4、常用的CButton類(lèi)的成員函數(shù)中:⑽獲得一個(gè)按鈕控件的選中、選擇和聚焦?fàn)顟B(tài);⑾得到一個(gè)按鈕的選中狀態(tài);⑿設(shè)置一個(gè)按鈕的選中狀態(tài)。A、GetState()B、SetState()C、SetCheck()D、GetCheck()E、GetButtonStyle()5、滾動(dòng)條類(lèi)CScrollBar的成員函數(shù)規(guī)定了滾動(dòng)條的操作。設(shè)置滾動(dòng)條的范圍使用⒀函數(shù),設(shè)置滾動(dòng)塊的位置使用⒁函數(shù),獲取滾動(dòng)塊的當(dāng)前位置使用⒂函數(shù)。A、SetPosB、SetRangeC、SetScrollRangeD、GetPosE、SetScrollPosF、GetScrollPosG、GetScrollRange四寫(xiě)出下列程序的運(yùn)行結(jié)果(每小題5分,共15分)1、.#include<iostream.h>

classA{

int*a;

public:

A(intx){a=newint(x);cout<<"*a="<<*a<<endl;deletea;}

};

voidmain()

{

Ax(3),*p;

p=newA(5);

deletep;

}2、classtest{private:intnum;public:test();intGetNum(){returnnum;}~test();};test::test(){num=0;}test::~test(){cout<<″Destructorisactive″<<endl;}voidmain(){testx[3];cout<<″Exitingmain″<<endl;}3、#include<iostream.h>classA{public:virtualvoidfun(){cout<<"I'mclassA"<<endl;}};classB:publicA{public:voidfun(){cout<<"I'mclassB"<<endl;}};classC:publicB{public:voidfun(){cout<<"I'mclassC"<<endl;}};voidmain(){Aa,*pA=&a;pA->fun();Bb;pA=&b;pA->fun();Cc;a=c;a.fun();A&aRef=c;aRef.fun();}五、完成程序題(本大題共3小題,每空2分,共12分)。根據(jù)題目要求,完成程序填空。1、在下面程序的橫線處填上適當(dāng)字句,使該程序執(zhí)行結(jié)果為6。

#include<iostream.h>

classbase{

intX;

public:

_________[1]__________//為X置值

_________[2]__________//取X值

};

voidmain()

{

basetest;

test.init(6);

cout<<test.GetNum();

}2、一個(gè)類(lèi)的頭文件如下所示,主程序中產(chǎn)生對(duì)象T,且T.num=10,并使用Print()函數(shù)輸出這個(gè)對(duì)象的值。classtest{private:intnum;public:test(int);voidPrint();};test::test(intn){num=n;}voidtest::Print(){cout<<num<<endl;}#include<iostream.h>voidmain(){______[3]______________;______[4]______________;}3、在下面橫線處填上適當(dāng)字句,完成類(lèi)中成員函數(shù)的定義。classA{int*a;public:A(intx=0){a=_____[5]____________;//用x初始化a所指向的動(dòng)態(tài)對(duì)象}~A(){_____[6]___________;}//釋放動(dòng)態(tài)存儲(chǔ)空間};六、程序設(shè)計(jì)題(1題4分,2題9分,共13分)1、簡(jiǎn)單的計(jì)算程序界面如下圖所示,操作數(shù)1對(duì)應(yīng)編輯框控件的ID為IDC_EDIT1,對(duì)應(yīng)值類(lèi)型的成員變量m_op1(int);操作數(shù)2對(duì)應(yīng)編輯框控件的ID為IDC_EDIT2,對(duì)應(yīng)值類(lèi)型的成員變量m_op2(int);計(jì)算結(jié)果對(duì)應(yīng)的編輯框控件的ID為IDC_EDIT3,對(duì)應(yīng)值類(lèi)型的成員變量m_result(int)。假設(shè)輸入的數(shù)為整數(shù),加法按鈕的功能是將兩操作數(shù)相加,并將結(jié)果在對(duì)應(yīng)的編輯框IDC_EDIT3顯示出來(lái)。寫(xiě)出加法按鈕對(duì)應(yīng)的代碼。voidCExDlg::OnButton1(){}2、為學(xué)員信息設(shè)計(jì)一個(gè)類(lèi)CStudent,包含:學(xué)號(hào)、姓名、出生日期、家庭住址、班級(jí),并使該類(lèi)可以實(shí)現(xiàn)串行化。請(qǐng)寫(xiě)出可以實(shí)現(xiàn)要求的CStudent.h和CStudent.cpp文件的內(nèi)容

學(xué)年第學(xué)期《VC程序設(shè)計(jì)》試題答案及評(píng)分標(biāo)準(zhǔn)一、單項(xiàng)選擇題(每小題1分,共20分)題號(hào)12345678910答案BBBADAADBB題號(hào)11121314151617181920答案DABCBCBCCA二、填空題(每空1分,共25分)1、2、42、93、相同,不同4、ch=d5、引用6、虛函數(shù),函數(shù)重載7、const、inline8、259、Cdocument、CView10、虛基類(lèi)11、UpdateData12、AddString、ResetContent13、串行化14、控件通知15、數(shù)組、列表(鏈表)、映射(順序可變)16、畫(huà)刷、畫(huà)筆三選擇填空題(每空1分,共15分)題號(hào)⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂答案ACBDBCABEADCCEF四寫(xiě)出下列程序的運(yùn)行結(jié)果(每小題5分,共15分)1、*a=3*a=52、ExitingmainDestructorisactiveDestructorisactiveDestructorisactive3、I'mclassAI'mclassBI'mclassAI'mclassC五、完成程序題(本大題共3小題,每空2分,共12分)。1、[1]voidinit(inti){X=i;}[2]intGetNum(){returnX;}2、[3]testT(10);[4]T.print();3、[5]newint(x);[6]deletea;六、程序設(shè)計(jì)題(1題4分,2題9分,共13分)1、UpdateDate(TRUE);1分m_result=m_op1+m_op2;2分UpdateDate(FALSE);1分2、//CStudent.hclassCStudent:publicCObject{1分public:CStringNum;CStringName;CTimeBirth;CStringAddress;CStringGrade;2分 DECLARE_SERIAL(CStudent)//使對(duì)象可串行化1分virtualvoidSerialize(CArchive&ar);//重載串行化函數(shù)1分};CStudent.cppIMPLEMENT_SERIAL(CStudent,CObject,0)1分voidCStudent:Serialize(CArchive&ar){ CObject::Serialize(ar);1分 if(ar.IsStoring()) { ar<<Num<<Name<<Birth<<Address<<Grade;1分 } else {ar>>Num>>Name>>Birth>>Address>>Grade;1分 }}《VC++程序設(shè)計(jì)》試卷2一、單項(xiàng)選擇題(每小題1分,共20分)1、假定AB為一個(gè)類(lèi),則執(zhí)行“”ABa(4),b(3),*p[2];”語(yǔ)句時(shí),自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為()A、2B、3C、4D、52、對(duì)于結(jié)構(gòu)中定義的成員,其隱含訪問(wèn)權(quán)限為()A、protectedB、privateC、publicD、static3、在面向?qū)ο缶幊讨?,?duì)象的抽象集合稱(chēng)為()。A、對(duì)象B、集合C、類(lèi)D、實(shí)例4、下面說(shuō)法正確的是()A、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載。B、構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載。C、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載。D、構(gòu)造函數(shù)和析構(gòu)函數(shù)都不可以重載。5、實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性,必須通過(guò)()來(lái)完成。A、虛函數(shù)B、重載函數(shù)C、構(gòu)造函數(shù)D、析構(gòu)函數(shù)6、類(lèi)CNum的缺省構(gòu)造函數(shù)和析構(gòu)函數(shù)是()A、CNum()和~CNum()B、CNum(int)和~CNum()C、CNum()和~CNum(delete)D、CNum()和int~CNum()7、在類(lèi)外定義類(lèi)的成員函數(shù)時(shí),應(yīng)當(dāng)使用()來(lái)標(biāo)識(shí)該函數(shù)為特定類(lèi)的成員。A、:B、::C、->D、this8、已知類(lèi)A是類(lèi)B的友元,類(lèi)B是類(lèi)C的友元,則()A、類(lèi)A一定是類(lèi)C的友元B、類(lèi)C一定是類(lèi)A的友元C、類(lèi)C的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員D、類(lèi)A的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員9、下面()是函數(shù)重載。A、voidplay(int)和voidplay(float)B、play()和~play()C、voidplay(int)和intplay(int)D、voidplay()和intplay()10、下列說(shuō)法中正確的是()A.類(lèi)定義中只能說(shuō)明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體。B.類(lèi)中的函數(shù)成員可以在類(lèi)體中定義,也可以在類(lèi)體之外定義。C.類(lèi)中的函數(shù)成員在類(lèi)體之外定義時(shí)必須要與類(lèi)聲明在同一文件中。D.在類(lèi)體之外定義的函數(shù)成員不能操作該類(lèi)的私有數(shù)據(jù)成員。11、Windows操作系統(tǒng)主要基本內(nèi)核元件中,_______支持與操作系統(tǒng)密切相關(guān)的功能:如進(jìn)程加載、文本切換、文件I/O以及內(nèi)存管理、線程管理等。()A、GDIB、KERNELC、USERD、以上都不是。12、一個(gè)視圖對(duì)象能連接()文檔對(duì)象,一個(gè)文檔對(duì)象能連接()視圖對(duì)象。A、一個(gè),多個(gè)B、多個(gè),一個(gè)C、一個(gè),一個(gè)D、多個(gè),多個(gè)13、所有的控件都是()類(lèi)的派生類(lèi),都可以作為一個(gè)特殊的窗口來(lái)處理。A、CViewB、CWndC、CWindowD、CDialog14、設(shè)置編輯控件的文本內(nèi)容,可使用函數(shù)()A、SetWindowText() B、SetSel()C、ReplaceSel() D、GetWindowText()15、根據(jù)對(duì)話框的行為性質(zhì),對(duì)話框可以分為兩類(lèi):()A、對(duì)話框資源和對(duì)話框類(lèi)B、模式對(duì)話框和非模式對(duì)話框C、對(duì)話框資源和對(duì)話框模板D、消息對(duì)話框和模式對(duì)話框16、以下控件中,()沒(méi)有Caption屬性。A、按鈕B、群組框C、編輯控件D、靜態(tài)控件17、菜單項(xiàng)助記符前用()引導(dǎo)。A、%B、&C、#D、$18、MFC中的集合類(lèi)包括()。A、對(duì)象、列表和映射B、數(shù)組、列表和對(duì)象C、數(shù)組、列表和映射D、數(shù)組、列表和鏈表19、文檔負(fù)責(zé)將數(shù)據(jù)存儲(chǔ)到永久存儲(chǔ)介質(zhì)中,通常是磁盤(pán)文件或數(shù)據(jù)庫(kù),存取過(guò)程稱(chēng)為()。A、文件訪問(wèn)B、串行化C、文件讀寫(xiě)D、格式化20、下列對(duì)模板的聲明,正確的是()。A、template<T>B、template<classT1;classT2>C、template<classT1,T2>D、template<classT1,classT2>二、填空題(每空1分,共25分)1、VC++開(kāi)發(fā)環(huán)境中,char型數(shù)據(jù)占個(gè)字節(jié),int型數(shù)據(jù)占_______個(gè)字節(jié),double型數(shù)據(jù)占_________個(gè)字節(jié)。2、若for循環(huán)的“頭”為“for(inti=1;i<10;i++)”,并且在循環(huán)體中不會(huì)修改i的值,則循環(huán)體將被重復(fù)執(zhí)行____________次后結(jié)束。3、兩個(gè)函數(shù)的函數(shù)名相同,但參數(shù)的個(gè)數(shù)或?qū)?yīng)參數(shù)的類(lèi)型不同時(shí),則稱(chēng)為。4、若ch為char型變量,n為int型變量,則下列語(yǔ)句n=65;ch=n+3;cout<<”ch=”<<ch;執(zhí)行的結(jié)果是__________。5、組合框與列表框用途類(lèi)似,它是由__________和__________功能組合而成。6、是Windows應(yīng)用程序與設(shè)備驅(qū)動(dòng)程序和輸出設(shè)備之間的接口。7、如果一個(gè)類(lèi)中含有純虛函數(shù),則稱(chēng)該類(lèi)為_(kāi)___________8、如果類(lèi)的所有對(duì)象共享一個(gè)成員,則稱(chēng)該成員為_(kāi)____________9、如果類(lèi)中的成員只能被本類(lèi)的成員函數(shù)和友元函數(shù)訪問(wèn),則這些成員的訪問(wèn)權(quán)限為_(kāi)________;如果類(lèi)中的成員能夠被類(lèi)外的函數(shù)訪問(wèn),則這些成員的訪問(wèn)權(quán)限為:__________。10、為解決多繼承中因公共基類(lèi)而產(chǎn)生的二義性問(wèn)題,C++語(yǔ)言提供了________機(jī)制。將公共基類(lèi)聲明為它以后,它在派生類(lèi)中只產(chǎn)生一個(gè)實(shí)例。11、Windows程序中的消息有____________、____________和____________三種類(lèi)型。11、用戶(hù)按下鍵盤(pán)按鍵并放開(kāi)的過(guò)程中,將產(chǎn)生至少三條消息:____________、____________和____________。13、單選按鈕初始化要使用函數(shù)如下:voidCheckRadioButton(IDC_RADIO1,IDC_RADIOn,IDC_RADIOm)其功能的具體描述為:______________________________________________________________14、列表框分為和兩種,中任一時(shí)刻只能選擇一項(xiàng),則可以選取多項(xiàng)。三選擇填空題(每空1分,共15分)1、如果在基類(lèi)和派生類(lèi)中都包含其他類(lèi)的對(duì)象(即有對(duì)象成員),則在創(chuàng)建派生類(lèi)的對(duì)象時(shí),首先執(zhí)行⑴的構(gòu)造函數(shù),接著執(zhí)行⑵的構(gòu)造函數(shù),然后執(zhí)行___⑶___的構(gòu)造函數(shù),最后才執(zhí)行⑷的構(gòu)造函數(shù)。A、基類(lèi)的對(duì)象成員B、派生類(lèi)的對(duì)象成員C、基類(lèi)D、派生類(lèi)2、所有的文檔類(lèi)都派生于[5],所有的視圖類(lèi)都派生于[6]。A、CViewB、CWindowC、CDocumentD、CFormView3、[7]包括鍵盤(pán)和鼠標(biāo)的輸入。這一類(lèi)消息首先放在系統(tǒng)消息隊(duì)列中,然后由Windows將它們送入應(yīng)用程序消息隊(duì)列中,由程序來(lái)處理消息;[8]用來(lái)與Windows的控制對(duì)象,如列表框、按鈕、復(fù)選框等進(jìn)行雙向通信。當(dāng)用戶(hù)在列表框中改動(dòng)當(dāng)前選擇或改變了復(fù)選框的狀態(tài)時(shí)發(fā)出此類(lèi)消息。A、系統(tǒng)消息B、用戶(hù)消息C、輸入消息D、控制消息4、使用[9]獲取的設(shè)備上下文在退出時(shí),必須調(diào)用ReleaseDC()釋放設(shè)備上下文。A、GetWindowRect()B、GetDC()C、BeginPaint()D、GetClientRect()5、常用的CButton類(lèi)的成員函數(shù)中:⑽獲得一個(gè)按鈕控件的選中、選擇和聚焦?fàn)顟B(tài);⑾得到一個(gè)按鈕的選中狀態(tài);⑿設(shè)置一個(gè)按鈕的選中狀態(tài)。A、GetState()B、SetState()C、SetCheck()D、GetCheck()E、GetButtonStyle()6、滾動(dòng)條類(lèi)CScrollBar的成員函數(shù)規(guī)定了滾動(dòng)條的操作。設(shè)置滾動(dòng)條的范圍使用⒀函數(shù),設(shè)置滾動(dòng)塊的位置使用⒁函數(shù),獲取滾動(dòng)塊的當(dāng)前位置使用⒂函數(shù)。A、SetPosB、SetRangeC、SetScrollRangeD、GetPosE、SetScrollPosF、GetScrollPosG、GetScrollRange四寫(xiě)出下列程序的運(yùn)行結(jié)果(每小題5分,共20分)1、#include<iostream.h>classB{ public:staticintnum;};intB::num=100;voidmain(){Bb1,b2;cout<<b1.num<<’’;b1.num+=25;cout<<b2.num<<endl;}2、#include<iostream.h>classA{public:virtualvoidfun(){cout<<"I'mclassA"<<endl;}};classB:publicA{public:voidfun(){cout<<"I'mclassB"<<endl;}};classC:publicB{public:voidfun(){cout<<"I'mclassC"<<endl;}};voidmain(){Aa,*pA=&a;pA->fun();Bb;pA=&b;pA->fun();Cc;a=c;a.fun();A&aRef=c;aRef.fun();}3、classtest{

private:intnum;

floatfl;

public:test();

intgetInt(){returnnum;}

floatgetFloat(){returnfl;}

~test();

};

test∷test()

{cout<<"Initalizingdefault"<<endl;

num=0;fl=0.0;

}

test∷~test()

{cout<<"Desdtructorisactive"<<endl;}

intmain()

{testarray[2];

cout<<array[1].getInt()<<""<<array[1].getFloat()<<endl;return0;}4.intmain()

{intnum=50;

int&ref=num;

ref=ref+10

cout<<"num="<<num<<endl;

num=num+40;

cont<<"ref="<<ref<<endl;

return0;

}五、程序設(shè)計(jì)題(每題10分,共20分)1、下列shape類(lèi)是一個(gè)表示形狀的抽象類(lèi),area()為求圖形面積的函數(shù),total()則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。請(qǐng)從shape類(lèi)派生三角形類(lèi)(triangle)、矩形類(lèi)(rectangle)、并給出具體的求面積函數(shù)。

classshape{

public:

virtualfloatarea()=0

};

floattotal(shape*s[],intn)

{floatsum=0.0;

for(inti=0;i<n:i++)sum=sum+i.area();

returnsum;

}2、創(chuàng)建一個(gè)記錄通訊錄內(nèi)容的新類(lèi)Caddrlist,包含:姓名、住址、電話、出生日期,并使該類(lèi)可以實(shí)現(xiàn)串行化。請(qǐng)寫(xiě)出可以實(shí)現(xiàn)要求的CAddrlist.h和CAddrlist.cpp文件的內(nèi)容

2005—2006學(xué)年第一學(xué)期《VC++程序設(shè)計(jì)》試題答案及評(píng)分標(biāo)準(zhǔn)一、單項(xiàng)選擇題(每小題1分,共20分)題號(hào)12345678910答案BCCAAABDAB題號(hào)11121314151617181920答案BABABCBCBD二、填空題(每空1分,共25分)1、1、4、82、93、函數(shù)重載4、ch=D5、列表框、編輯框6、DC(設(shè)備上下文)7、抽象基類(lèi)8、靜態(tài)成員9、私有、公有(或者private、public)10、虛基類(lèi)11、窗口消息、命令消息、控件通知消息(順序可變)12、WM_KEYDOWN,WM_CHAR,WM_KEYUP13、從IDC_RADIO1到IDC_RADIOn,中設(shè)置IDC_RADIOm為默認(rèn)14、單選列表框、多選列表框、單選列表框、多選列表框三選擇填空題(每空1分,共15分)題號(hào)⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂答案ACBDCACDBADCCEF四寫(xiě)出下列程序的運(yùn)行結(jié)果(每小題5分,共20分)1、1001252、I'mclassAI'mclassBI'mclassAI'mclassC3、InitalizingdefaultInitalizingdefault00DesdtructorisactiveDesdtructorisactive4、num=60ref=100五、程序設(shè)計(jì)題(每題10分,共20分)1、#include<math.h>1分classtriangle:publicshape{1分public: virtualfloatarea() { floats=(a+b+c)/2; returnsqrt(s*(s-a)*(s-b)*(s-c));3分 }private: floata,b,c;1分};classrectangle:publicshape{1分public: virtualfloatarea() { returna*b;2分 }private: floata,b;1分};2、//Addrlist.h文件內(nèi)容:classCAddrlist:publicCObject{1分public: CStringName; CStringAddress; CStringTel; CTimeBirth; CAddrlist();3分 DECLARE_SERIAL(CAddrlist)//使對(duì)象可串行化1分virtualvoidSerialize(CArchive&ar);//重載串行化函數(shù)1分};Addrlist.cpp文件內(nèi)容:IMPLEMENT_SERIAL(CAddrlist,CObject,0)1分voidCAddrlist::Serialize(CArchive&ar){ CObject::Serialize(ar);1分 if(ar.IsStoring()) { ar<<Name<<Tel<<Address<<Birth;1分 } else {ar>>Name>>Tel>>Address>>Birth;1分 }}《VC++程序設(shè)計(jì)》試卷3一、單項(xiàng)選擇題(每小題1分,共20分)1、假定MyClass為一個(gè)類(lèi),則執(zhí)行“”MyClassa[3],*p[2];”語(yǔ)句時(shí),自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為()A、2B、3C、4D、52、對(duì)于類(lèi)中定義的成員,其隱含訪問(wèn)權(quán)限為()A、protectedB、privateC、publicD、static3、一個(gè)類(lèi)的友元函數(shù)或友元類(lèi)能夠通過(guò)成員操作符訪問(wèn)該類(lèi)的()A、私有成員B、所有成員C、公用成員D、保護(hù)成員4、下面說(shuō)法正確的是()A、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載。B、構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載。C、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載。D、構(gòu)造函數(shù)和析構(gòu)函數(shù)都不可以重載。5、下列語(yǔ)句的運(yùn)行結(jié)果為()#include<iostream.h>srtuctCOMPLEX{intx;inty;}cNum[2]={1,3,2,7};voidmain(){cout<<cNum[0].y*cNum[1]x<<endl;}A、6 B、2C、21D、36、類(lèi)AB的缺省構(gòu)造函數(shù)和析構(gòu)函數(shù)是()A、AB()和~AB()B、AB(int)和~AB()C、AB()和~AB(delete)D、AB()和int~AB()7、在C++中,若對(duì)函數(shù)未加說(shuō)明,則函數(shù)的隱含類(lèi)型是()A、intB、doubleC、voidD、char8、已知類(lèi)A是類(lèi)B的友元,類(lèi)B是類(lèi)C的友元,則()A、類(lèi)A一定是類(lèi)C的友元B、類(lèi)C一定是類(lèi)A的友元C、類(lèi)C的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員D、類(lèi)A的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員9、下列說(shuō)法中正確的是()A、類(lèi)定義中只能說(shuō)明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體B、類(lèi)中的函數(shù)成員可以在類(lèi)體中定義,也可以在類(lèi)體之外定義C、類(lèi)中的函數(shù)成員在類(lèi)體之外定義時(shí)必須要與類(lèi)聲明在同一文件中D、在類(lèi)體之外定義的函數(shù)成員不能操作該類(lèi)的私有數(shù)據(jù)成員10、以下不屬于成員函數(shù)的是()A、靜態(tài)成員函數(shù) B、友元函數(shù)C、構(gòu)造函數(shù) D、析構(gòu)函數(shù)11、對(duì)于消息隊(duì)列的描述正確的是()A、在Windows中只有一個(gè)消息系統(tǒng),即系統(tǒng)消息隊(duì)列。消息隊(duì)列是一個(gè)系統(tǒng)定義的數(shù)據(jù)結(jié)構(gòu),用于臨時(shí)存儲(chǔ)消息。B、系統(tǒng)可從消息隊(duì)列將信息直接發(fā)給窗口。另外,每個(gè)正在Windows下運(yùn)行的應(yīng)用程序都有自己的消息隊(duì)列。C、系統(tǒng)消息隊(duì)列中的每個(gè)消息最終都要被USER模塊傳送到應(yīng)用程序的消息隊(duì)列中去。應(yīng)用程序的消息對(duì)列中存儲(chǔ)了程序的所有窗口的全部消息。D、以上都正確12、一個(gè)視圖對(duì)象能連接()文檔對(duì)象,一個(gè)文檔對(duì)象能連接()視圖對(duì)象。A、多個(gè),多個(gè)B、多個(gè),一個(gè)C、一個(gè),一個(gè)D、一個(gè),多個(gè)13、MFC類(lèi)庫(kù)中的類(lèi)按層次關(guān)系可知,CStatic的直接父類(lèi)為()A、CObjectB、CWndC、CCmdTargetD、CFrameWnd14、可以利用控件的()屬性和Tab鍵順序來(lái)為控件分組。A、IDB、GroupC、TabstopD、Caption15、根據(jù)對(duì)話框的行為性質(zhì),對(duì)話框可以分為兩類(lèi):()A、對(duì)話框資源和對(duì)話框類(lèi)B、模式對(duì)話框和非模式對(duì)話框C、對(duì)話框資源和對(duì)話框模板D、消息對(duì)話框和模式對(duì)話框16、以下控件中,()沒(méi)有Caption屬性。A、按鈕B、群組框C、編輯控件D、靜態(tài)控件17、菜單項(xiàng)助記符前用()引導(dǎo)。A、%B、#C、&D、$18、更新菜單狀態(tài)的消息是()。A、WM_COMMANDB、UPDATEC、ON_UPDATE_COMMAND_UID、INVALIDATE19、關(guān)于工具欄、菜單和加速鍵的關(guān)系,正確的說(shuō)法是()。A、工具按鈕與菜單必須一一對(duì)應(yīng)B、工具按鈕與加速鍵一一對(duì)應(yīng)C、工具按鈕不必與菜單一一對(duì)應(yīng)D、菜單與加速鍵一一對(duì)應(yīng)20、使用GetWindowDC()和GetDC()獲取的設(shè)備上下文在退出時(shí),必須調(diào)用()釋放設(shè)備上下文。A、DeleteDC()B、delete()C、ReleaseDC()D、Detach()二、選擇填空題(每空1分,共20分)1、如果在基類(lèi)和派生類(lèi)中都包含其他類(lèi)的對(duì)象(即有對(duì)象成員),則在創(chuàng)建派生類(lèi)的對(duì)象時(shí),首先執(zhí)行[1]的構(gòu)造函數(shù),接著執(zhí)行[2]的構(gòu)造函數(shù),然后執(zhí)行___[3]___的構(gòu)造函數(shù),最后才執(zhí)行[4]的構(gòu)造函數(shù)。A、基類(lèi)的對(duì)象成員B、派生類(lèi)的對(duì)象成員C、基類(lèi)D、派生類(lèi)2、[5]代表窗口客戶(hù)區(qū)的顯示設(shè)備上下文,[6]代表整個(gè)窗口的顯示設(shè)備上下文。A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC3、消息循環(huán)的處理過(guò)程如下:[7]函數(shù)不斷偵察應(yīng)用程序的消息隊(duì)列,若隊(duì)列為空,該函數(shù)一直運(yùn)行,不返回;一旦發(fā)現(xiàn)隊(duì)列不為空,便取出一條消息,把它拷貝到msg結(jié)構(gòu)變量中,同時(shí)該函數(shù)返回TRUE;得到消息msg后,[8]把來(lái)自鍵盤(pán)的命令翻譯成WM_XXX消息命令形式。[9]函數(shù)通知Windows把每個(gè)消息分發(fā)給相應(yīng)的窗口函數(shù)。應(yīng)用程序并不直接調(diào)用窗口函數(shù),而由Windows根據(jù)消息去調(diào)用窗口函數(shù),因此,窗口函數(shù)經(jīng)常被稱(chēng)為回調(diào)函數(shù)。A、GetMessage()B、translateMessage()C、PostMessage()D、SendMessage()E、DispatchMessage()4、常用的CButton類(lèi)的成員函數(shù)中:[10]獲得一個(gè)按鈕控件的選中、選擇和聚焦?fàn)顟B(tài);[11]得到一個(gè)按鈕的選中狀態(tài);[12]設(shè)置一個(gè)按鈕的選中狀態(tài)。A、GetState()B、SetState()C、SetCheck()D、GetCheck()E、GetButtonStyle()5、滾動(dòng)條類(lèi)CScrollBar的成員函數(shù)規(guī)定了滾動(dòng)條的操作。設(shè)置滾動(dòng)條的范圍使用[13]函數(shù),設(shè)置滾動(dòng)塊的位置使用[14]函數(shù),獲取滾動(dòng)塊的當(dāng)前位置使用[15]函數(shù)。A、SetPosB、SetRangeC、SetScrollRangeD、GetPosE、SetScrollPosF、GetScrollPosG、GetScrollRange6、在進(jìn)行繪圖時(shí),[16]用于指定圖形的填充樣式,___[17]___用于指定圖形的邊框樣式。A、畫(huà)筆B、畫(huà)刷C、區(qū)域D、位圖7、列表框ClistBox類(lèi)的成員函數(shù)___[18]__用來(lái)向列表框增加列表項(xiàng),成員函數(shù)___[19]__用來(lái)清除列表項(xiàng)所有項(xiàng)目,成員函數(shù)___[20]__用來(lái)返回列表框的列表項(xiàng)的總數(shù)。A、AddStringB、DeleteStringC、ResetContentD、FindStringE、GetCurSelF、GetCount三、程序設(shè)計(jì)題(共60分)(10分)已知點(diǎn)類(lèi)的定義如下:classPoint{……private:doublex,y;};分別用成員函數(shù)和友元函數(shù)實(shí)現(xiàn)計(jì)算兩點(diǎn)間的距離,函數(shù)名為distance。2、(15分)要求計(jì)算立方體和圓柱2個(gè)幾何體的表面積和體積??梢猿橄蟪鲆粋€(gè)公共的基類(lèi)Base,把它作為抽象類(lèi),在該類(lèi)內(nèi)定義求表面積和體積的純虛函數(shù)(抽象類(lèi)本身是沒(méi)有表面積和體積可言的)。由這個(gè)抽象類(lèi)派生出描述立方體和圓柱的2個(gè)具體類(lèi),在這2個(gè)類(lèi)中都有計(jì)算表面積和體積的函數(shù)的自己版本。請(qǐng)用C++語(yǔ)言定義上述類(lèi)等級(jí)。3、(10分)簡(jiǎn)單計(jì)算程序界面如下圖所示,x對(duì)應(yīng)編輯框控件的ID為IDC_EDIT1,對(duì)應(yīng)值類(lèi)型的成員變量m_x(double);y對(duì)應(yīng)編輯框控件的ID為IDC_EDIT2,對(duì)應(yīng)值類(lèi)型的成員變量m_y(double);z對(duì)應(yīng)的編輯框控件的ID為IDC_EDIT3,對(duì)應(yīng)值類(lèi)型的成員變量m_z(double)。乘法按鈕的功能是將x,y相乘,除法按鈕的功能是將x,y相除,并將結(jié)果在z對(duì)應(yīng)的編輯框IDC_EDIT3顯示出來(lái)。寫(xiě)出乘法按鈕和除法按鈕對(duì)應(yīng)的代碼。(10分)voidCExDlg::OnButtonMul()//乘法按鈕{}voidCExDlg::OnButtondIV()//除法按鈕{}4、(10分)設(shè)計(jì)一個(gè)基于對(duì)話框的應(yīng)用程序,如下圖所示。要求:?jiǎn)螕鬋olor按鈕,能彈出通用顏色對(duì)話框選取顏色,并用該顏色顯示:Thisisacolorexample。已知:Example組合框的ID為:IDC_DISPLAY。寫(xiě)出Color按鈕的BN_CLICKED消息處理函數(shù)。voidCXT6_4Dlg::OnColor(){}5、(10分)為學(xué)員信息設(shè)計(jì)一個(gè)類(lèi)CStudent,包含:學(xué)號(hào)、姓名、出生日期、家庭住址、班級(jí),并使該類(lèi)可以實(shí)現(xiàn)串行化。請(qǐng)寫(xiě)出可以實(shí)現(xiàn)要求的CStudent.h和CStudent.cpp文件的內(nèi)容。6、如何定義ODBC的數(shù)據(jù)源?試敘述其過(guò)程。(5分)

2005—2006學(xué)年第2學(xué)期《VC++程序設(shè)計(jì)》試題答案及評(píng)分標(biāo)準(zhǔn)一、單項(xiàng)選擇題(每小題1分,共20分)題號(hào)12345678910答案BBBAAAADBB題號(hào)11121314151617181920答案DDBBBCCCCC二、選擇填空題(每空1分,共20分)題號(hào)⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽答案ACBDBCABEA題號(hào)⑾⑿⒀⒁⒂[16][17][18][19][20]答案DCCEFABACF三、程序設(shè)計(jì)題(共60分)(10分)用成員函數(shù)實(shí)現(xiàn)(5分)doublePoint::distance(constPoint&a){doubledx,dy;dx=x-a.x;dy=y-a.y;returnsqrt(dx*dx+dy*dy);}用友元函數(shù)實(shí)現(xiàn)(5分)doubledistance(constPoint&a,constPoint&b){doubledx,dy;dx=a.x-b.x;dy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}每個(gè)類(lèi)定義5分,共15分constdoublePI=3.14159;classBase{public: virtualdoublearea()const=0; virtualdoublevolume()const=0;};classCube:publicBase{public: Cube(doublel=10) { length=l>0?l:10; } doublearea()const { return6*length*length; } doublevolume()const{ returnlength*length*length; }private: doublelength;};classCylinder:publicBase{public: Cylinder(doubler=10,doubleh=5) { radius=r>0?r:10; height=h>0?h:5; } doublearea()const { return2*PI*radius*radius+2*PI*radius*height; } doublevolume()const{ returnPI*radius*radius*height; }private: doubleradius; doubleheight;};3、voidCExDlg::OnButtonMul()(5分){UpdateDate(TRUE);m_z=m_x*m_y;UpdateDate(FALSE);} voidCExDlg::OnButtonDiv()(5分){UpdateDate(TRUE);if(m_y==0){MessageBox(“除數(shù)不能為0!”);return;}m_z=m_x/m_y;UpdateDate(FALSE);4、voidCXT6_4Dlg::OnColor(){//TODO:AddyourcontrolnotificationhandlercodehereCOLORREFm_cTextColor;CColorDialogDlg;if(Dlg.DoModal()==IDOK){m_cTextColor=Dlg.GetColor();CWnd*pWnd=GetDlgItem(IDC_DISPLAY);CDC*pDC=pWnd->GetDC();CRectrcDisplay;pWnd->GetClientRect(rcDisplay);pDC->SetTextColor(m_cTextColor);CStrings="Thisisacolorexample";DC->TextOut(rcDisplay.right/2-80,rcDisplay.bottom/2-5,s);}}5、//CStudent.hclassCStudent:publicCObject{1分public:CStringNum;CStringName;CTimeBirth;CStringAddress;CStringGrade;2分 DECLARE_SERIAL(CStudent)//使對(duì)象可串行化1分virtualvoidSerialize(CArchive&ar);//重載串行化函數(shù)1分};CStudent.cppIMPLEMENT_SERIAL(CStudent,CObject,0)1分voidCStudent:Serialize(CArchive&ar){ CObject::Serialize(ar);1分 if(ar.IsStoring())1分 { ar<<Num<<Name<<Birth<<Address<<Grade;1分 } else {ar>>Num>>Name>>Birth>>Address>>Grade;1分 }}6、(5分)打開(kāi)控制面板,雙擊ODBC圖標(biāo),進(jìn)入ODBC數(shù)據(jù)源管理器。定義用戶(hù)DSN的步驟如下:?jiǎn)螕簟咎砑印堪粹o,彈出“創(chuàng)建新數(shù)據(jù)源”對(duì)話框。為新的數(shù)據(jù)源選擇數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。并單擊【完成】按鈕。在“ODBCMicrosoftAccess97安裝”對(duì)話框中,應(yīng)為該數(shù)據(jù)源起一個(gè)簡(jiǎn)短的名稱(chēng)。并在下一個(gè)編輯框中輸入對(duì)該數(shù)據(jù)庫(kù)的說(shuō)明。指定數(shù)據(jù)庫(kù)的位置。單擊【選取】按鈕,然后指定所創(chuàng)建的Access數(shù)據(jù)庫(kù)。單擊【確定】按鈕,剛才創(chuàng)建的用戶(hù)數(shù)據(jù)源被添加在“ODBC數(shù)據(jù)源管理器”的“用戶(hù)數(shù)據(jù)源”列表中?!禫C++程序設(shè)計(jì)》試卷4一、單項(xiàng)選擇題(每小題1分,共20分)1、假定AB為一個(gè)類(lèi),則執(zhí)行“”ABa(4),b(3),*p[2];”語(yǔ)句時(shí),自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為()A、2B、3C、4D、52、對(duì)于結(jié)構(gòu)中定義的成員,其隱含訪問(wèn)權(quán)限為()A、protectedB、privateC、publicD、static3、在面向?qū)ο缶幊讨?,?duì)象的抽象集合稱(chēng)為()。A、對(duì)象B、集合C、類(lèi)D、實(shí)例4、下面說(shuō)法正確的是()A、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載。B、構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載。C、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載。D、構(gòu)造函數(shù)和析構(gòu)函數(shù)都不可以重載。5、實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性,必須通過(guò)()來(lái)完成。A、虛函數(shù)B、重載函數(shù)C、構(gòu)造函數(shù)D、析構(gòu)函數(shù)6、類(lèi)CNum的缺省構(gòu)造函數(shù)和析構(gòu)函數(shù)是()A、CNum()和~CNum()B、CNum(int)和~CNum()C、CNum()和~CNum(delete)D、CNum()和int~CNum()7、在類(lèi)外定義類(lèi)的成員函數(shù)時(shí),應(yīng)當(dāng)使用()來(lái)標(biāo)識(shí)該函數(shù)為特定類(lèi)的成員。A、:B、::C、->D、this8、已知類(lèi)A是類(lèi)B的友元,類(lèi)B是類(lèi)C的友元,則()A、類(lèi)A一定是類(lèi)C的友元B、類(lèi)C一定是類(lèi)A的友元C、類(lèi)C的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員D、類(lèi)A的成員函數(shù)可以訪問(wèn)類(lèi)B的對(duì)象的任何成員9、下面()是函數(shù)重載。A、voidplay(int)和voidplay(float)B、play()和~play()C、voidplay(int)和intplay(int)D、voidplay()和intplay()10、下列說(shuō)法中正確的是()A.類(lèi)定義中只能說(shuō)明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體。B.類(lèi)中的函數(shù)成員可以在類(lèi)體中定義,也可以在類(lèi)體之外定義。C.類(lèi)中的函數(shù)成員在類(lèi)體之外定義時(shí)必須要與類(lèi)聲明在同一文件中。D.在類(lèi)體之外定義的函數(shù)成員不能操作該類(lèi)的私有數(shù)據(jù)成員。11、Windows操作系統(tǒng)主要基本內(nèi)核元件中,_______支持與操作系統(tǒng)密切相關(guān)的功能:如進(jìn)程加載、文本切換、文件I/O以及內(nèi)存管理、線程管理等。()A、GDIB、KERNELC、USERD、以上都不是。12、一個(gè)視圖對(duì)象能連接()文檔對(duì)象,一個(gè)文檔對(duì)象能連接()視圖對(duì)象。A、一個(gè),多個(gè)B、多個(gè),一個(gè)C、一個(gè),一個(gè)D、多個(gè),多個(gè)13、所有的控件都是()類(lèi)的派生類(lèi),都可以作為一個(gè)特殊的窗口來(lái)處理。A、CViewB、CWndC、CWindowD、CDialog14、設(shè)置編輯控件的文本內(nèi)容,可使用函數(shù)()A、SetWindowText() B、SetSel()C、ReplaceSel() D、GetWindowText()15、根據(jù)對(duì)話框的行為性質(zhì),對(duì)話框可以分為兩類(lèi):()A、對(duì)話框資源和對(duì)話框類(lèi)B、模式對(duì)話框和非模式對(duì)話框C、對(duì)話框資源和對(duì)話框模板D、消息對(duì)話框和模式對(duì)話框16、以下控件中,()沒(méi)有Caption屬性。A、按鈕B、群組框C、編輯控件D、靜態(tài)控件17、菜單項(xiàng)助記符前用()引導(dǎo)。A、%B、&C、#D、$18、MFC中的集合類(lèi)包括()。A、對(duì)象、列表和映射B、數(shù)組、列表和對(duì)象C、數(shù)組、列表和映射D、數(shù)組、列表和鏈表19、文檔負(fù)責(zé)將數(shù)據(jù)存儲(chǔ)到永久存儲(chǔ)介質(zhì)中,通常是磁盤(pán)文件或數(shù)據(jù)庫(kù),存取過(guò)程稱(chēng)為()。A、文件訪問(wèn)B、串行化C、文件讀寫(xiě)D、格式化20、下列對(duì)模板的聲明,正確的是()。A、template<T>B、template<classT1;classT2>C、template<classT1,T2>D、template<classT1,classT2>二、選擇填空題(每空1分,共20分)1、如果在基類(lèi)和派生類(lèi)中都包含其他類(lèi)的對(duì)象(即有對(duì)象成員),則在創(chuàng)建派生類(lèi)的對(duì)象時(shí),首先執(zhí)行⑴的構(gòu)造函數(shù),接著執(zhí)行⑵的構(gòu)造函數(shù),然后執(zhí)行___⑶___的構(gòu)造函數(shù),最后才執(zhí)行⑷的構(gòu)造函數(shù)。A、基類(lèi)的對(duì)象成員B、派生類(lèi)的對(duì)象成員C、基類(lèi)D、派生類(lèi)2、所有的文檔類(lèi)都派生于[5],所有的視圖類(lèi)都派生于[6]。A、CViewB、CWindowC、CDocumentD、CFormView3、[7]包括鍵盤(pán)和鼠標(biāo)的輸入。這一類(lèi)消息首先放在系統(tǒng)消息隊(duì)列中,然后由Windows將它們送入應(yīng)用程序消息隊(duì)列中,由程序來(lái)處理消息;[8]用來(lái)與Windows的控制對(duì)象,如列表框、按鈕、復(fù)選框等進(jìn)行雙向通信。當(dāng)用戶(hù)在列表框中改動(dòng)當(dāng)前選擇或改變了復(fù)選框的狀態(tài)時(shí)發(fā)出此類(lèi)消息。A、系統(tǒng)消息B、用戶(hù)消息C、輸入消息D、控制消息4、使用[9]獲取的設(shè)備上下文在退出時(shí),必須調(diào)用ReleaseDC()釋放設(shè)備上下文。A、GetWindowRect()B、GetDC()C、BeginPaint()D、GetClientRect()5、常用的CButton類(lèi)的成員函數(shù)中:⑽獲得一個(gè)按鈕控件的選中、選擇和聚焦?fàn)顟B(tài);⑾得到一個(gè)按鈕的選中狀態(tài);⑿設(shè)置一個(gè)按鈕的選中狀態(tài)。A、GetState()B、SetState()C、SetCheck()D、GetCheck()E、GetButtonStyle()6、滾動(dòng)條類(lèi)CScrollBar的成員函數(shù)規(guī)定了滾動(dòng)條的操作。設(shè)置滾動(dòng)條的范圍使用⒀函數(shù),設(shè)置滾動(dòng)塊的位置使用⒁函數(shù),獲取滾動(dòng)塊的當(dāng)前位置使用⒂函數(shù)。A、SetPosB、SetRangeC、SetScrollRangeD、GetPosE、SetScrollPosF、GetScrollPosG、GetScrollRange7、如果類(lèi)中的成員只能被本類(lèi)的成員函數(shù)和友元函數(shù)訪問(wèn),則這些成員的訪問(wèn)權(quán)限為_(kāi)__[16]_;如果類(lèi)中的成員能夠被類(lèi)外的函數(shù)訪問(wèn),則這些成員的訪問(wèn)權(quán)限為:___[17]__。A、protectedB、privateC、publicD、static8、列表框分為[18]和[19]兩種,[20]中任一時(shí)刻只能選擇一項(xiàng)。A、組合框B、單選列表框C、多選列表框D、編輯框三、程序設(shè)計(jì)題(共60分)1、下列shape類(lèi)是一個(gè)表示形狀的抽象類(lèi),area()為求圖形面積的函數(shù),total()則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。請(qǐng)從shape類(lèi)派生三角形類(lèi)(triangle)、矩形類(lèi)(rectangle)、并給出具體的求面積函數(shù)。(10分)

classshape{

public:

virtualfloatarea()=0

};

floattotal(shape*s[],intn)

{floatsum=0.0;

for(inti=0;i<n:i++)sum=sum+i.area();

returnsum;

}2、創(chuàng)建一個(gè)記錄通訊錄內(nèi)容的新類(lèi)Caddrlist,包含:姓名、住址、電話、出生日期,并使該類(lèi)可以實(shí)現(xiàn)串行化。請(qǐng)寫(xiě)出可以實(shí)現(xiàn)要求的CAddrlist.h和CAddrlist.cpp文件的內(nèi)容。(10分)3、(20分)該應(yīng)用有4個(gè)命令按鈕,作為增加項(xiàng)目、刪除項(xiàng)目和全部刪除項(xiàng)目以及退出程序的按鍵。另外,還有一個(gè)編輯框作為新項(xiàng)目名稱(chēng)輸入框IDC_NAME_EDIT對(duì)應(yīng)控件變量為m_Name(類(lèi)型為CString),1個(gè)靜態(tài)文本用于顯示項(xiàng)目數(shù)目,列表框用于項(xiàng)目列表對(duì)應(yīng)控件變量為m_List1,1個(gè)靜態(tài)文本用于顯示標(biāo)題。界面下圖所示。根據(jù)要求寫(xiě)出代碼:(1)對(duì)話框初始化消息處理函數(shù)OnInitDialog()里,向列表框添加“China”,“Germany”兩項(xiàng)內(nèi)容。BOOLCEx6_3Dlg::OnInitDialog(){ returnTRUE;}(2)“增加”命令按鈕的單擊消息處理函數(shù)OnAdd()將新項(xiàng)目名稱(chēng)輸入框的內(nèi)容增加到列表框中。voidCEx6_3Dlg::OnAdd(){}(3)“刪除”按鈕的單擊消息處理函數(shù)OnDel()將當(dāng)前列表框中選中的項(xiàng)刪除voidCEx6_3Dlg:

溫馨提示

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

評(píng)論

0/150

提交評(píng)論