達(dá)內(nèi)C培訓(xùn)第三次月考附答案_第1頁
達(dá)內(nèi)C培訓(xùn)第三次月考附答案_第2頁
達(dá)內(nèi)C培訓(xùn)第三次月考附答案_第3頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2013年09月考試場次:2013_09月考_9月29日_C++/.NET/嵌入式試卷名稱:_C++_CSD13062013年09月1.下列不是菜單基本風(fēng)格的為:-A.MF_POPUP-B.MF_STRING-C.MF_SEPARATOR刁D.MF_CHECKED正確答案:D2.關(guān)于用new分配內(nèi)存空間,以下代碼正確的是:=newint;=newint(10);=newint=newint;=newint(10);=newint;newint[10];正確答案:B有如下類的定義:classA{public:voidfa(){cout<< “inAfa”<<endl;}virtualvoidfb(){cout<< “inAfb”<<endl;}};classB:publicA{public:voidfa(){cout<<inBfa<<endl;}<<endl;}voidfb(){cout<< “inBfb<<endl;}};下列哪段代碼運(yùn)行時會輸岀以下結(jié)果:inAfainBfbA.A*pa=newA;pa->fa();pa->fb();B.Bb;A&pr=b;pr.fa();pr.fb();A*pa=newB;B*pb=newA;pa->fa();

pb->fb();*D.Aa;Bb;A&ar=b;B&br=a;ar.fa();br.fb();正確答案:B4.關(guān)于Windows的字符處理,下列說法錯誤的是?A.ASC碼是最早的編碼。B.DBCS編碼中由1個或2個字節(jié)表示一個字符。UNICODE編碼在WINDOWS平臺下,采用2個字節(jié)表示一個字符“D.TCHAR就是寬字節(jié)字符,采用UNICODE編碼。正確答案:D

八5.以下有關(guān)C++異常機(jī)制的討論中不正確的是?』A.C++的異常機(jī)制,一方面避免了逐層判斷返回值所導(dǎo)致的流程復(fù)雜的弊端,另一方面也不會象setjmp/longjmp遠(yuǎn)程跳轉(zhuǎn)那樣使中間對象失去被析構(gòu)的機(jī)會,是一種簡潔高效的錯誤處理機(jī)制‘B.為了避免不必要的麻煩,通常的做法是拋出匿名臨時對象作為異常,并以引用的方式捕獲它們catch子句是依其出現(xiàn)的先后順序被依次檢視的,其中的異常類型應(yīng)按照先子類后基類的順序排列異??梢栽谌魏螆龊舷聮伋?,包括一個類的構(gòu)造和析構(gòu)函數(shù)閱讀如下代碼,描述錯誤的為?創(chuàng)建定時器代碼:SetTimer(hWnd,1,1000,TimerProc);此定時器間隔時間為1秒同B.此定時器觸發(fā)的WM_TIME消息由窗口(hWnd的窗口處理函數(shù)處理定時器的ID為1定時器關(guān)閉調(diào)用函數(shù)KillTimer(1);正確答案:BWindows字符編碼方式不包括?正確答案:D正確答案:D下列說法不正確的是?我們可以使用qtdesigner設(shè)計(jì)界面得到.ui界面文件可以通過uic工具轉(zhuǎn)換成下列說法不正確的是?我們可以使用qtdesigner設(shè)計(jì)界面得到.ui界面文件可以通過uic工具轉(zhuǎn)換成.h文件。"C.QTime類中有一個信號是timeout()。D.鍵盤處理函數(shù)中可以得到鍵盤上那個鍵被按下。正確答案:C的界面文件10.閱讀如下代碼:typedefintT;classVector{T*data;// 指向保存數(shù)據(jù)元素的內(nèi)存區(qū)域intsz;〃 元素個數(shù)intmax;// 記錄內(nèi)存區(qū)域的空間大小voidexpand(){〃 元素滿了進(jìn)行容量的擴(kuò)展(空白處)}}空白處填上的代碼應(yīng)該是?A.max*=2;T*t=newT[max];for(inti=0;i<sz;i++){t[i]=data[i];}deletedata;data=t;max*=2;T*t=newT[max];for(inti=0;i<sz;i++){t[i]=data[i];}delete[]data;data=t;max*=2;T*t=newT[max];for(inti=0;i<max;i++){t[i]=data[i];}delete[]data;data=t;max*=2;T*t=newT[max];for(inti=0;i<max;i++){t[i]=data[i];}deletedata;data=t;

A.Integer&Integer::operator++(void){m」++;return*this;}/B.constIntegerInteger::operator++(int){Integerold=*this;m」++;returnold;}Integer&Integer::operator++(void){Integerold=*this;m」++;returnold;}D.constIntegerInteger::operator++(int){m」++;return*this;}正確答案:B2.關(guān)于TranslateAccelerator 函數(shù)理解錯誤的為:那么,輸出應(yīng)該為:這個函數(shù)必須放在GetMessage函數(shù)的后面,TranslateMessage函數(shù)的前面這個函數(shù)首先檢查消息是否為WM_KEYDOWN/WM_SYSKEY息OWN果不是返回非01C.一旦確定為加速鍵將發(fā)送WM—COMMAN息’D.一旦確定為加速鍵將返回非0正確答案:B13.下列不是Windows常見消息的是?iA.WM_CREATE-B.WM_SIZE7C.WM_ONCOMMAND-D.WM_PAINT正確答案:C14.有如下類的定義:classEmp{stringname;intage;public:Emp(stringname="”,intage=O):name(name),age(age){}stringgetName(){returnname;}intgetAge(){returnage;}};那么,下列那段代碼使用類 Emp是正確的:A.Empe;= “Daniel”;e.age=30;Empe(“Daniel”,30);e.age++;cout<<e.getName()<< :”<<e.getAge()<<endl;C.Emp*e=newEmp(“Daniel”,30);cout<<e.getName()<< :”<<e.getAge()<<endl;deletee;D.Emp*e=newEmp;cout<<e->getName()<< :”<<e->getAge()<<endl;deletee;首先查找應(yīng)用程序全局窗口類窗口類‘首先查找應(yīng)用程序全局窗口類窗口類‘C.首先查找應(yīng)用程序局部窗口類窗口類D.首先查找應(yīng)用程序局部窗口類其次應(yīng)用程序局部窗口類,最后系統(tǒng)其次應(yīng)用程序全局窗口類,最后系統(tǒng)其次系統(tǒng)窗口類,最后應(yīng)用程序全局窗口類正確答案:C16.閱讀以下單例模式的代碼classExample{intx;Example(){}staticExamplee;Example(constExample&){}public:(空白處)};那么,空白處的代碼應(yīng)該是?staticExample&getInstance(){returne;B.Example&getInstance(){returne;}C.

staticExamplegetlnstance(){returne;}D.ExamplegetInstance(){returne;}正確答案:A17.閱讀如下代碼:caseWM_SYSCOMMAND:if(wParam==SC_CLOSE){intnRet=MessageBox(NULL," 是否關(guān)閉","Infor",MB_YESNO);if(nRet==IDYES)PostMessage(hWnd,WM_QUIT,0,0);elsereturn0;}break;關(guān)于這段代碼,下列說法錯誤的是:“A.這段代碼是用來關(guān)閉窗口的,當(dāng)點(diǎn)窗口右上角的X時,直接關(guān)閉窗口這段代碼是用來關(guān)閉窗口的,當(dāng)點(diǎn)窗口右上角的X時,直接關(guān)閉窗口X時,彈岀窗口可以選擇是否關(guān)閉X時,彈岀窗口可以選擇是否關(guān)閉消息這段代碼是用來關(guān)閉窗口的,當(dāng)點(diǎn)窗口右上角的C.關(guān)閉窗口不一定要使用WM_SYSCOMMANDD.return0代碼的功能是當(dāng)消息框彈出后,點(diǎn)否不會關(guān)閉。正確答案:A18.在大型項(xiàng)目設(shè)計(jì)時,類的繼承層次會相應(yīng)比較復(fù)雜,假設(shè)有如下類的繼承關(guān)系:classA{virtualvoidm(){}};classB:publicA{};classC:publicB{};classD:publicB{};現(xiàn)有一變量的定義如下:A*p=newB;GetMessage只能獲取屬于本進(jìn)程的消息。一B.TranslateMessage只翻譯可見字符的按鍵消息。DispatchMessage根據(jù)消息的句柄找到具體的窗口的窗口處理函數(shù)*D.PeekMessage為阻塞函數(shù)。

正確答案:D下列關(guān)于windows應(yīng)用程序描述不正確的是?-A.控制臺程序-DOS程序,本身沒有窗口,調(diào)用windows的DOS窗口-B.窗口程序-擁有自己的窗口,通過自己窗口和用戶進(jìn)行交互操作。7C.靜態(tài)庫程序-存放代碼和數(shù)據(jù)的程序,擁有入口函數(shù)可以運(yùn)行。動態(tài)庫程序-存放代碼和數(shù)據(jù)的程序,無法獨(dú)立運(yùn)行。正確答案:C關(guān)于創(chuàng)建窗口的描述不正確的為?萬A.子窗口的創(chuàng)建只需指明WS_CHILD|WS_VISIBL即可。窗口類的附加數(shù)據(jù)緩沖區(qū)是基于該窗口類創(chuàng)建的所有窗口共享的緩沖區(qū)。窗口的附加數(shù)據(jù)緩沖區(qū)是窗口自己私有的緩沖區(qū)。閱讀如下代碼:#inelude<iostream>

usingnamespacestd;classSample{intx;public:Sample(intx=O):x(x){}voidsetX(intx){this->x=x;}intgetX()const{returnx;}voidshow()const{cout<<"x="<<x<<endl;}};voidfc(constSample&s){s.setX(300);s.show();intmain(){}關(guān)于本段代碼,下列說法正確的是?編譯可以通過,運(yùn)行沒有輸出classSample中的代碼編譯不能通過函數(shù)fc代碼編譯不能通過

主函數(shù)main需要返回正確答案:CX24.有關(guān)運(yùn)算符友元和成員函數(shù)實(shí)現(xiàn)的討論,以下說法中不正確的是?-A.如果雙目運(yùn)算符的左操作數(shù),或單目運(yùn)算符的操作數(shù),為基本類型或難以擴(kuò)展的類類型,則應(yīng)選擇以友元方式實(shí)現(xiàn)該運(yùn)算符函數(shù)“B.如果為某個特定的運(yùn)算符同時提供了基于友元和成員函數(shù)的兩種實(shí)現(xiàn),則只有以函數(shù)調(diào)用語法使用該運(yùn)算符,才能憑借作用域隱藏原則而避免沖突,用中序語法則可能產(chǎn)生歧義-C.所有可以成員函數(shù)方式實(shí)現(xiàn)的運(yùn)算符也都可以友元函數(shù)方式實(shí)現(xiàn)如果某個雙目運(yùn)算符的左右操作數(shù)都是類類型的對象,則該運(yùn)算符函數(shù)可能既是左操作數(shù)類型的成員,同時也是右操作數(shù)類型的友元正確答案:C八25.關(guān)于拷貝構(gòu)造函數(shù),以下說法錯誤的是?參數(shù)(對象)值傳遞時,調(diào)用拷貝構(gòu)造“B.函數(shù)返回臨時值(對象),調(diào)用拷貝構(gòu)造用相同類型的對象做參數(shù),構(gòu)造新對象時,調(diào)用拷貝構(gòu)造引用傳遞調(diào)用拷貝構(gòu)造,地址傳遞不調(diào)用正確答案:DWindows應(yīng)用程序中不包括的是?-A.控制臺程序-B.窗口程序下C.Lib.so類型的程序D.庫程序正確答案:C

下列關(guān)于鍵盤消息描述錯誤的為?-A.WM_KEYDOWNWM_KEY未必成對出現(xiàn)-B.WM_KEYDOWNWM_KEYUP附帶信息中包含被點(diǎn)擊的按鍵的虛擬鍵碼7C.WM_CHA消息的附帶信息中包含被點(diǎn)擊按鍵的ASCII字符編碼D.WM_CHA不是按鍵按下時產(chǎn)生的而是TranslateMessage函數(shù)發(fā)送的正確答案:C下面qt中使用C++方式變成代碼說法錯誤的是?「A.我們的類的實(shí)例要做成可視化的界面則這個類要公共繼承自QWidget或者QWidget的子類。I口]B.頭文件和實(shí)現(xiàn)文件要分離。-C.一般界面中的組件都封裝成自定義類的屬性。層D.自定義的信號和槽要起作用直接在類中定義和實(shí)現(xiàn)這些函數(shù)即可不需要加任何修飾。正確答案:D下列描述不正確的為?A.PostMessage將消息投入消息隊(duì)列日B.SendMessage發(fā)出的消息,直接找到窗口處理函數(shù)7C.WM_QUI不能進(jìn)入隊(duì)列D.自定義消息,由程序員定義,發(fā)送,并處理。

D.UNICODE碼正確答案:C下列不屬于資源的為:A.菜單旦B.熱鍵對話框位圖正確答案:B32.以下不是CreateWindowEx 函數(shù)中參數(shù)的是?A.DWORDdwExStyle窗口的擴(kuò)展風(fēng)格B.LPCTSTRIpCIassName窗口類名C.HWNDhWndParent父窗口句柄“D.WNDPROCIpfnWndProc 窗口處理函數(shù)正確答案:D假設(shè)Base類派生了Derived類,F(xiàn)ileException和MemoryException都是異常類,貝U以下虛函數(shù)的聲明中哪些可以構(gòu)成正確的覆蓋?

A.Base*Base::copy(Base*);Base*Derived::copy(Derived*);“B.Base*Base::copy(Base*=NULL)throw(FileException, MemoryException);Derived*Derived::copy(Base*)throw(MemoryException);C.boolBase::print (ostream&);voidDerived::print (ostream&);voidBase::eval(void)const;voidDerived::eval(void);正確答案:B34.閱讀以下代碼:classHuman{public:voidmove(){cout?"moving"<<endl;}virtualvoidattack(){cout<<"attack"<<endl;}};classFootMan:publicHuman{public:

voidmove(){cout<<"action"<<endl;}virtualvoidattack(){cout<<"FootManattack"<<endl;}};intmain(){Human*ph=newFootMan;ph->move();ph->attack();deleteph;}請問執(zhí)行的結(jié)果是?iB.WM_SYSCOMMAND7C.WM_SIZE-D.WM_PAINT正確答案:C36.閱讀如下代碼:#include<iostream>usingnamespacestd;//定義類PersonclassPerson{stringname;intage;public:voidshow(){age<<endl;cout<<name<< ","<<age<<endl;}};intmain(){Personp;="Daniel";//1p.age=30;//2p.show();//3

編譯時出現(xiàn)錯誤的是:沒有錯誤回B.1錯誤I囚C.1和2兩處錯誤1,2和3都會出現(xiàn)錯誤正確答案:CC++中,int是基本數(shù)據(jù)類型, 如果我們定義一個類來表示一個整數(shù)對象的話,類的定義可能如下:classlnteger{intx;public:Integer(intx=O):x(x){}(空白處)};下列哪個運(yùn)算符重載函數(shù)放入空白處是錯誤的:friendostream&operator?(ostream&o,constlnteger&i){returno<<i.x;}friendistream&operator?(istream&is,constInteger&i){returnis?i.x;}friendconstIntegeroperator+(constInteger&i1,constInteger&i2){returni1.x+i2.x;}constIntegeroperator?(){return~x;}正確答案:BString類的實(shí)現(xiàn)如下所示:classString{public:)){}String(constchar*str=NULL):m_str(strcpy(newchar[strlen(str?str:"”)+1],str?str:~String(void){)){}if(m_str){delete[]m_str;m_str=NULL;}}String(constString&that):m_str(strcpy(newchar[strlen (that.m_str)+1],that.m_str)){}constchar*c_str(void)const{returnm_str;}_private:char*m_str;};一以下哪個適合作為該類的拷貝賦值運(yùn)算符函數(shù)?voidString::operator=(constString&that){m_str=newchar[strlen (that.m_str)+voidString::operator=(constString&that){m_str=newchar[strlen (that.m_str)+1];strcpy(m_str,that.m_str);}B.StringString::operator=(constString&that){if(&that!=this){if(m_str){delete[]m_str;m_str=NULL;}~if(m_str){delete[]m_str;m_str=NULL;}~m_str=strcpy(newchar[strlen}return*this;}(that.m_str)+1],that.m_str);C.1],that.m_str);String&String::operator=(String&that){if(&that!=this){1],that.m_str);char*str=strcpy(newchar[strlen (that.m_str)+if(m_str){delete[]m_str;m_str=NULL;}~m_str=str;}~return*this;}D.String&String::operator=(constString&that){if(&that!=this){Stringtemp(that);char*str=m_str;m_str=temp.m_str;temp.m_str=str;}return*this;}—A.CTRL鍵SHIFT鍵’C.ALT鍵D.A,B,C均可以正確答案:C40.下列關(guān)于new和malloc的說法錯誤的是:()A.malloc只負(fù)責(zé)分配內(nèi)存空間,并不會調(diào)用對象的構(gòu)造函數(shù),對象銷毀時,也不會調(diào)用析構(gòu)函數(shù)??贐.malloc需要進(jìn)行類型轉(zhuǎn)換,而new已經(jīng)把類型轉(zhuǎn)換好了。在C++語言中,在棧中分配內(nèi)存時,盡量使用new,在堆中分配內(nèi)容時,使用 mallocmalloc分配的空間只能由free釋放,new分配的空間只能由delete釋放。41.下列能夠編譯.rc腳本文件的為?—A.CL.EXEPB. LINK.EXE“C. RC.EXED.NMAKE.EXE正確答案:C42.閱讀如下代碼:classHuman{stringname;intpower;public:Human(stringn="",intp=0):name(n),power(p){}//拷貝構(gòu)造函數(shù)Human(constHuman&h){cout<<"Human(constHuman&),<<this<<endl;name=;power=h.power;cout<vnamevv","vvpowervvendl;}};voidfa(Humanh){}voidfb(Human&h){}下列代碼哪個會調(diào)用拷貝構(gòu)造函數(shù):A.Humanh1("Daniel",100);Humanh1("Daniel",100);Humanh2;h2=h1;C.Humanh1("Daniel",100);fa(h1);Humanh1("Daniel",100);fb(h1);43.文件foo.txt的內(nèi)容如下:abede其中a和b之間隔一個空格符,e和d之間隔一個制表符,d和e之間隔一個換行符。以下代碼intmain(void){ifstreamifs("foo.txt");if(!ifs)return-1;charc;while(ifs>>c)cout<<c;cout<<endl;ifs.clear();ifs.seekg(ios::beg);while((c=ifs.get()) !=EOF)cout<<c;ifs.clear();ifs.seekg(ios::beg);ifs.unsetf (ios::skipws);while(ifs>>c)cout<<c;ifs.close();return0;}的輸出是?abcdeabcdeabcdeabcdeabcdeabcdeC.abcde

abcdeabedeD.abcdeabcdeabede正確答案:BI」I」A.不是任何窗口都需要程序員自己注冊窗口類窗口類分為:系統(tǒng)窗口類,應(yīng)用程序局部窗口類,應(yīng)用程序全局窗口類窗口類是包含了關(guān)于窗口各種參數(shù)信息的一個數(shù)據(jù)結(jié)構(gòu),使用之前必須注冊到操作系統(tǒng)中?!疍.窗口類的信息中可以不包含窗口處理函數(shù)。正確答案:D46.#include"stdafx.h"#include"stdio.h"

HINSTANCEg_hlnstanee=0;voidf1(HWNDhWnd,WPARAMwParam)TOC\o"1-5"\h\z{ ;}voidCALLBACKf2(HWNDhWnd,UINTuMsg,UINTidEvent,DWORDdwTime){ ;}DWORDCALLBACKdPVOIDpParan){ ;}voidf4(HWNDhWnd){ ;}LRESULTCALLBAC?5(HWNDhWnd,UINTnMsg,WPARAMParam,LPARAMParam){switch(nMsg){caseWM_CREATE:{SetTimer(hWnd,1,10,NULL);SetTimer(hWnd,2,2000,f2);DWORDnid=0;CreateThread(NULL,0,f3,NULL,0,&nid);break;}caseWM_DESTROY:PostQuitMessage(O);break;caseWM_TIMER:f1(hWnd,wParam);break;caseWM_PAINT:f4(hWnd);break;}returnDefWindowProc(hWnd,nMsg,wParam,IParam);}//注冊窗口類BOOLRegister(LPSTRpszClassName,WNDPROCpfWndProc){WNDCLASSEXwce={0};wce.cbSize=sizeof(wce);wce.cbCIsExtra=0;wce.cbWndExtra=0;wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);wce.hIcon=NULL;wce.hCursor=NULL;wce.hIconSm=NULL;wce.h

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論