版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2023年江蘇省蘇州市全國計(jì)算機(jī)等級(jí)考試
C++語言程序設(shè)計(jì)測試卷(含答案)
學(xué)校: 班級(jí): 姓名: 考號(hào): 一、1.選擇題(10題)下列引用的定義中,()是錯(cuò)誤的。inti;int&j=i;inti;int&j;j=i;floati;float&j=i;chard;char&k=d;下列描述正確的是表示m>n為true或m<n為true的表達(dá)式為m>n&&8m<nswitch語句結(jié)構(gòu)中必須有default語句if語句結(jié)構(gòu)中必須有else語句如果至少有一個(gè)操作數(shù)為true,則包含“11”運(yùn)算符的表達(dá)式為true完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是()黑箱測試法B.白箱測試法C.錯(cuò)誤推測法D.安裝測試法需求分析中開發(fā)人員要從用戶那里了解()。軟件做什么B.用戶使用界面C.輸入的信息D.軟件的規(guī)模下列一維數(shù)組定義正確的是()。x=5;intnum[x];constihtx=5;floatnum[x];constfloatx=5;intnum[x];constintx;x=5;intnum[x];實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性要使用()。A.重載函數(shù)B.析構(gòu)函數(shù)C.構(gòu)造函數(shù)D.虛函數(shù)下列關(guān)于this指針的敘述中,正確的是()。任何與類相關(guān)的函數(shù)都有this指針類的成員函數(shù)都有this指針類的友元函數(shù)都有this指針類的非靜態(tài)成員函數(shù)才有this指針在最壞情況下,下列排序方法中時(shí)間復(fù)雜度最小的是A.冒泡排序B.快速排序C.插入排序D.堆排序下列關(guān)于棧的描述中正確的是在棧中只能插入元素而不能刪除元素在棧中只能刪除元素而不能插入元素棧是特殊的線性表,只能在一端插入或刪除元素棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素在軟件開發(fā)過程中,需求分析階段產(chǎn)生的主要文檔是A.可行性分析報(bào)告B.軟件需求規(guī)格說明書C.概要設(shè)計(jì)說明書D.集成測試計(jì)劃二、單選題(13題)有如下程序:#include<iostream>usingnamespacestd;classBook{public:Book(char*t=""){strcpy(title,t);)private:chartitle[40];};classNovel:publicBook{public:Novel(char*t=""):Book(t){)char*Category()const{return"文學(xué)";)};intmain(){Book*pb;pb=newNovel();cout?pb->Category();return0;}若程序運(yùn)行時(shí)輸出結(jié)果是“文學(xué)”,則劃線處缺失的語句是char*Category();char*Category()const;virtualchar*Category()const;virtualchar*Category()const=0;下列關(guān)于對象初始化的敘述中,正確的是定義對象的時(shí)候不能對對象進(jìn)行初始化定義對象之后可以顯式地調(diào)用構(gòu)造函數(shù)進(jìn)行初始化定義對象時(shí)將自動(dòng)調(diào)用構(gòu)造函數(shù)進(jìn)行初始化在一個(gè)類中必須顯式地定義構(gòu)造函數(shù)實(shí)現(xiàn)初始化下面關(guān)于C++語言變量的敘述錯(cuò)誤的是C++語言中變量分為auto,static,extern和register四種存儲(chǔ)類型自動(dòng)變量和外部變量的作用域?yàn)檎麄€(gè)程序內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)外部靜態(tài)變量的作用域是定義它的文件以下非法的賦值表達(dá)式是()。A.n=(i=2,++i);B.j++;C.++(i+l);D.x=j>0;下面描述中錯(cuò)誤的是()。系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具關(guān)于類和對象描述錯(cuò)誤的是對象(Obiect)是現(xiàn)實(shí)世界中的客觀事物,對象具有確定的屬性類是具有相同屬性和行為的一組對象的集合對象是類的抽象,類是對象的實(shí)例類是對象的抽象,對象是類的實(shí)例下列代碼段中聲明了3個(gè)類:ClassPerson{);ClassStudent:publicPerson{);ClassUndergraduate:Student)};下列關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的是()。類Person是類Undergraduate的基類類Undergraduate從類Student公有繼承類Student是類Person的派生類類Undergraduate是類Person的派生類下列關(guān)于類的訪問權(quán)限的描述中,()是錯(cuò)誤的。類中說明為公有的成員可以被程序中的任何代碼訪問類中說明為私有的成員只能被類的成員函數(shù)和說明為友元類的成員函數(shù)訪問類中說明為保護(hù)的成員可以被該類的派生類的成員訪問類的對象和類成員函數(shù)一樣可以訪問類的所有成員對虛函數(shù)的調(diào)用()。A.—定使用動(dòng)態(tài)聯(lián)編B.必須使用動(dòng)態(tài)聯(lián)編C.一定使用靜態(tài)聯(lián)編D.不一定使用動(dòng)態(tài)聯(lián)編若有如下類聲明:ClassMyClass{public:MyClass( ){Cout?l;}};執(zhí)行下列語句MyClassa,b[2],*p[2];程序的輸出結(jié)果是()。A.llB.lllC.llllD.lllll下面描述中體現(xiàn)了抽象類特性的語句是A.可以說明虛函數(shù)B.可以進(jìn)行構(gòu)造函數(shù)重載C.可以定義友元函數(shù)D.不能定義對象?有如下程序:#include(iostream.h>#include<stdlib.h>classTestClasspublic:intX,y;TestClass( )(x=y=O;}TestClass(inta?intb)(x=a;y=b;}voiddisp( )(cout?"x=,,?x?H,y=”vyvvendl;)};voidmain( )(TestClasssl(2,3);si.disp( );)程序執(zhí)行后的輸出結(jié)果是()oA.100B.000C.010D.001已知三個(gè)關(guān)系:學(xué)生(學(xué)號(hào),姓名,性別)課程(課程編號(hào),課程名稱,學(xué)時(shí))成績(學(xué)號(hào),課程編號(hào),分?jǐn)?shù))若要列出選修課程名稱為“DB”,且分?jǐn)?shù)低于60的學(xué)生姓名和分?jǐn)?shù),則應(yīng)使用的關(guān)系代數(shù)運(yùn)算有 A.選擇、投影,自然連接B.選擇、投影C.選擇、自然連接D.投影、自然連接三、2.填空題(12題)有以下程序:#include<iostream>usingnamespacestd;classMyClass(public:staticints;MyClass();voidSetValue(intval););intMyClass::s=0;MyClass::MyClass(){s++;}voidMyClass::SetValue(intval)(s=val;}intmain()(MyClassmy[3],*p;p=my;for(intk=O;k<3;k++)(P->SetValue(k+l);P++;}cout<<MyClass::s<<endl;return0;}運(yùn)行后的輸出結(jié)果是 。其中反映了模塊內(nèi)25.耦合和內(nèi)聚是評價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中反映了模塊內(nèi)各成分之間聯(lián)系的是【】。26.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)分別是順序、選擇和 o開發(fā)一個(gè)C++語言程序的步驟通常包括編輯、【】、鏈接、運(yùn)行和調(diào)試。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,將數(shù)據(jù)和處理數(shù)據(jù)的操作封裝成一個(gè)整體就定義了一種事物的類型,稱作“類”。類是一種抽象的概念,屬于該類的一個(gè)實(shí)例稱為" 下列程序的運(yùn)行結(jié)果是【]o#include<iostream,h>classtest(private:intnum;public:test()intTEST(){returnnum+100;}~test());test::test(){num=0;}test::-test()(cout<<"Destructorisactive"<<endl;}voidmain()(testx[3]cout<<x[l].TEST()<<endl;}若要想進(jìn)行標(biāo)準(zhǔn)輸入輸出則頭文件必須包含 件。為了克服軟件危機(jī)提出了【】概念。下面程序的輸出結(jié)果是【】。#include<iostream.h>voidmain()(inta[6]=(l,2,3,4,5,6};for(inti=0;i<5;i++)cout<<a[i]<<,,n;cout<<endl;}在析構(gòu)函數(shù)中調(diào)用虛函數(shù)時(shí),采用【】聯(lián)編。若有函數(shù)fun(x,y),并且已經(jīng)使函數(shù)指針變量p指向函數(shù)fun,貝IJ使用P調(diào)用函數(shù)fun的方法是 0四、程序改錯(cuò)題(1。題)使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請改正程序中的錯(cuò)誤,使得程序輸出:9,8,7,6,5}}cout?endl;returnO;}37.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,但該程序運(yùn)行有問題,請改正main函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果正確。程序輸出:88注意:錯(cuò)誤的語句在/********error********/的下面。修改該語句即可,其他的語句不能修改。試題程序:#include(iostream.h>classCO(public:/********error********/staticintn=O:CO(n++:1?COn—:}:intCO::n;voidmain{COobj;COobj2[7];CO*C=NULL:c=&obj:eout?C.n?endl;cout?C0::n?endl;}38.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請改正程序中的錯(cuò)誤。本程序要求實(shí)現(xiàn)的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在試題程序:#include<iostream>#include<fstream>usingstd;voidWriteFile(char*s)(ofstreamoutl;outl.open("1.txt",binary|app);for(inti=0;s[i]!=0;i++)outl.puts(s[i]);)outl.close;)voidClearFile{ofstreamoutl;outl.open("1.txt”);outl.close;)intmain(chars[1024];ClearFile;cout?"pleaseinputastrin9:"?endl;cin.getline(s,1024);WriteFile(s);returnO;}39.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為Constructor?i=0.Destructor注意:錯(cuò)誤的語句在//******error******的下面,修改該語句即可。試題程序:#include(iostream.h)classTC(inti;public:TC;voiddisplay;?TC;};//******error******TC:TC{cout?,'Constructor"?",";i=0;#include<iostream.h>classTC(public:TC(inti)(number=i;)voidSetNumber(intm){number=m;)intGetNumberconst(returnnumber;}voidPrintconst{cout?"number="?number?endl;)private:intnumber;voidmain//********eifor********TCobjl;objl.Print;TCobj2(3);//********eifor********objl.number=10;//********error*%<)******TC.SetNumber(lOO);objl.Print;obj2.Print;42.使用VC++6.0打開考生文件夾下的源程序文件1,cppo本程序要求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可能輸入多行,當(dāng)輸入字符“?''時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕中。注意:不要改動(dòng)main函數(shù),不能増加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在//******error******的下面。試題程序:#include<iostream.h>voidmain(inti=0;charstrll20];cout?nEnterastringendwith?."?endl;//********euor********cin.getline(str,120);//********euor********while(str)//********euor********if(str[i])=a)str[i]=str[i]-a+A;i++;1cout?str?endl;return;}43.使用VC++6.。打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)。請改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為1003732注意:錯(cuò)誤的語句在//******error******的下面,修改該語句即可。試題程序:#include<iostream.h>voidmain//******error******intm=0142:intn=0X27:intq=32;cout<<m<<endl;cout<<n<<endl;coutV<q<Vendl;return;}44.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)catch必須拋出執(zhí)行的任何異常。程序異常,輸出信息為errorOERROR注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在//******eiror******的下面。試題程序:#include<iostream.h)intmain(try(throw("error");}//********error********catch(chars)errorOERROR注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在//******error******的下面。試題程序:#include<iostream.h)intmain{try{throw("error");catch(chars)(cout?s?endl;throw((int)0);catch(cout?i?endl;)try{throw(O);throw("errorH);}catch(cout?"ERROR"?endl:}returnO;}五、綜合應(yīng)用題(2題)46.使用VC++6.0打開考生文件夾下的源程序文件3.cppo其中定義的類不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。每賣出一個(gè)水果,則計(jì)算水果的重量,還要計(jì)算所有賣出水果的總重量以及總個(gè)數(shù),同時(shí)允許退貨,請按照以下的操作,把類補(bǔ)充完整。定義類TCFruit的私有靜態(tài)數(shù)據(jù)成員float型變量AllWeight和int型變量A11N0,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。完成類TCFruit的帶一個(gè)float型變量w的構(gòu)造函數(shù),并把這個(gè)w加到AllWeight中,并且AllNo自加。請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。在析構(gòu)函數(shù)中,在AllWeight中減去weight,然后AllNo自減,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。完成靜態(tài)成員變量的初始化為0,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。注意:增加或者修改代碼的位置已經(jīng)用符號(hào)表示出來,請不要修改其他的程序代碼。試題程序:#include(iostream.h>classTCFruitprivate:floatWeight;********1********staticintAHNo;public:TCFruit(floatw)//********2********AllWeight+=w:AllNo++:1?TCFruitAllWeight-=Weight:}voiddisplay{cout?"SellaFruitwith"?Weight?nk9n?endl;coutvv”Allsellnumber:"vvAllNovVendl;cout?nAllsellweight:n?AllWeight?nk9H?endl?endl;1};//********4********floatTCFruit::AllWeight=O.0;intmain(TCFruitFruitl(l.2);Fruitl.display;TCFruitFruit2(2.3);Fruit2.display;returnO;}47.使用VC++6.0打開源程序文件3.cppo其中類TC用于把文件輸出到屏幕,然后進(jìn)行文件的分割。分割的方法如下:第一個(gè)文件的大小是文件的前一半,另外一個(gè)文件的大小是剩余部分。此程序?qū)n.txt文件中的內(nèi)容輸出到屏幕,并且將文件按照以上方式分割,存于文件。utl.txt和out2.txt中。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。從輸入文件中獲得一個(gè)字符,并判斷是否到文件結(jié)尾,如果到文件結(jié)尾,則退出循環(huán)。請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。把獲得的輸入文件的內(nèi)容存儲(chǔ)到bur中,并且用len記錄下文件的長度。請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。將輸入文件的后一半內(nèi)容存儲(chǔ)在第二個(gè)文件中,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。(4)使用文件流對象打開輸入文件in.txt,請?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。注意:增加代碼或者修改代碼的位置已經(jīng)用符號(hào)表示出來。請不要修改其他的程序代碼。試題程序:#include<iostream.h>#include<fstream.h>#include<stdlib.h)classTC(public:TC(char*fileName)(len=O;fstreaminfile;infile.open(fileName,ios::in);charch;//********]********while(cout?ch;}infile,close;}
voidsplitfetreamoutfilel;fstreamoutfile2;outfilel.outfile2.open("outl.txt",ios::out);open("out2.txt",ios::out);inti=0:outfilel.outfile2.for(i=0;i<len/2;i++)while(i!=len);outfilel.close;outfile2.close;prwate:intlen;charbuf[1024];};voidmain//********4********TCobj;obj.split;return;1六、3.綜合應(yīng)用題(2題)48.使用VC6打開考生文件夾下的工程test37_3o此工程包含一個(gè)test37_3.cpp,其中定義了類Letter和Number以及Grid,其中Grid類由Letter類和Number類public派生,但三個(gè)類的定義并不完整。請按要求完成下列操作,將程序補(bǔ)充完整。添加類Letter的帶一個(gè)參數(shù)c的構(gòu)造函數(shù),c是char型的數(shù)據(jù),默認(rèn)值為A,該函數(shù)把參數(shù)c的值賦給類的保護(hù)成員ch,請?jiān)谧⑨尅啊?*1**”之后添加適當(dāng)?shù)恼Z句。添加類Number的帶一個(gè)參數(shù)n的構(gòu)造函數(shù),n是int型的數(shù)據(jù),默認(rèn)值為0,該函數(shù)把參數(shù)n的值賦給類的保護(hù)成員num,請?jiān)谧⑨尅啊?*2**”之后添加適當(dāng)?shù)恼Z句。添加派生類Grid構(gòu)造函數(shù)的定義,傳入的參數(shù)為char型的c和血型的n,并將其分別賦值給基類的ch和num,請?jiān)谧⑨尅啊?*3**”之后添加適當(dāng)?shù)恼Z句。完成派生類Grid的友元函數(shù)——“<〈”運(yùn)算符重載的定義,使其以格式“[g.ch,g.num]”輸出,請?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z句。源程序文件test37_3.cpp清單如下:#include<iostream,h>classLetterprotected:charch;public://**]**);classNumber(protected:intnum;public:〃**2**};classGrid:publicLetter,publicNumber(public:〃**3**friendostream&operator<<(ostream&o,Grid&g););//**4**(o<<T<<g.ch<<”,”<<g.num<<T;returno;)intmain()(GridgCC\3);cout<<"Gridreference:"<<g<<endl;return0;}49.使用VC6打開考生文件夾下的工程test9_3,此工程包含一個(gè)源程序文件test9_3.cpp,其中定義了Circle類與Money類,Circle類可對半徑為r的圓進(jìn)行周長與面積的計(jì)算,而Money類用于計(jì)算一圓形游泳池的造價(jià)。游泳池四周有原形過道,過道外圍上柵欄,過道寬度為3米,根據(jù)鍵入的游泳池半徑,每米柵欄價(jià)格及每平方米過道價(jià)格,即可計(jì)算出游泳池的造價(jià)。請按要求完成下列操作,將程序補(bǔ)充完整。⑴定義符號(hào)常量PI(值為3.14159。與WIDTH(值為3.00。,分別用于表示圓周率與過道的固定寬度。請?jiān)谧⑨尅啊?*1**”之后添加適當(dāng)?shù)恼Z句。(2)定義Circle類默認(rèn)構(gòu)造函數(shù),把私有成員radius初始化為參數(shù)r的值。請?jiān)谧⑨尅啊?*2**”后添加適當(dāng)?shù)恼Z句。⑶完成Money類默認(rèn)構(gòu)造函數(shù)的定義,把私有成員FencePrice(每米柵欄的價(jià)格)sConcretePrice(每平方米過道的價(jià)格)初始化為參數(shù)f,c的值。請?jiān)谧⑨尅啊?*3**”之后添加適當(dāng)?shù)恼Z句。⑷完成Money類成員函數(shù)floatMoney::TotalMoney(noatfencelen,floatconarea)的定義,根據(jù)參數(shù)fencelen(柵欄的長度)和conarea(過道的面積),返回柵欄與過道的總造價(jià)。請?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動(dòng)程序中的其他內(nèi)容。源程序文件test9_3.cpp清單如下:#include<iostream.h>〃**]**classCircle(private:floatradius;public:floatCircumference(){return2*PI*radius;)floatArea(){returnPI*radius*radius;));classMoneyprivate:floatFencePrice;cout<<"ThetotalmoneyisRMB"<<totalmoney<<endl;}參考答案BD解析:本題主要考查C++語言的基本語法,選項(xiàng)A)中應(yīng)該為m>n||m<n;選項(xiàng)B)中default語句可有可無;選項(xiàng)C)中訂可以單獨(dú)作為一條語句,不是必須和else搭配。A解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測試用例。注意:白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,白箱測試也稱為邏輯覆蓋測試,故選項(xiàng)B)不正確,?錯(cuò)誤推測法只是黑箱測試所使用的一種具體的方法,故選項(xiàng)。不正確,安裝測試是測試層次中的一種,它屬于高級(jí)測試,故選項(xiàng)D)不正確。注意:常用的黑箱測試方法及其定義,白箱測試用例的準(zhǔn)則。A解析:需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是準(zhǔn)確問答“系統(tǒng)必須做什么這個(gè)問題即軟件系統(tǒng)功能,需求分析的任務(wù)還不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。B解析:數(shù)組的下標(biāo)不能是變量,不能為非整數(shù),定義為常量的標(biāo)識(shí)符不能再用來賦值,只能在定義時(shí)初始化。D解析:本題考核虛函數(shù)的應(yīng)用。動(dòng)態(tài)聯(lián)編一直要到程序運(yùn)行時(shí)才能確定調(diào)用哪個(gè)函數(shù)。虛函數(shù)是實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編的必要條件之一。沒有虛函數(shù)一定不能實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,但有虛函數(shù)存在時(shí),必須同時(shí)滿足下列條件,才能實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編:類之間滿足子類型關(guān)系;調(diào)用虛函數(shù)操作的是指向?qū)ο蟮闹羔樆驅(qū)ο笠?,或者是由成員函數(shù)調(diào)用虛函數(shù)。D解析:本題考核this指針的使用。類的每一個(gè)成員函數(shù)都有一個(gè)隱含定義的常量指針,稱為this指針。它是成員函數(shù)所屬對象的指針,它指向類對象的地址。成員函數(shù)可以通過這個(gè)指針知道自己屬于哪一個(gè)對象。但是在使用this指針時(shí)需要注意的是:this指針只能在類的成員函數(shù)中使用,它指向該成員函數(shù)被調(diào)用的對象。this指針一般用于返回當(dāng)前對象自身,?靜態(tài)成員函數(shù)沒有this指針。因?yàn)轭愔挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,所以使用this指針沒有什么意義。在靜態(tài)成員函數(shù)中使用this指針會(huì)引起編譯錯(cuò)誤。D解析:在最壞情況下:冒泡排序需要的比較次數(shù)為n(n-l)/2;快速排序需要的比較次數(shù)也為n(n-l)/2;插入排序需要的比較次數(shù)也為n(n-l)/2;堆排序需要比較的次數(shù)為O(nlog2n)o可知,在最壞情況下,堆排序的時(shí)間復(fù)雜度最小,本題的正確答案為選項(xiàng)D。C解析:棧是一種數(shù)據(jù)結(jié)構(gòu),是在某一端進(jìn)行插入和刪除的特殊線性表。它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂。在棧頂進(jìn)行插入或刪除操作,不需要修改棧底指針。棧的實(shí)現(xiàn)可以采用順序存儲(chǔ)也可以采用鏈表存儲(chǔ)。BD本題考查虛函數(shù)的定義。C解析:構(gòu)造函數(shù)的作用是在對象被創(chuàng)建的時(shí)候?qū)ο筮M(jìn)行初始化。構(gòu)造函數(shù)在對象被創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。故C項(xiàng)正確。B解析:自動(dòng)變量是函數(shù)體或分程序內(nèi)定義的變量,它的作用域在所定義的函數(shù)體內(nèi)或分程序體內(nèi)。C解析:對于任何一種賦值運(yùn)算,其賦值號(hào)或復(fù)合賦值號(hào)左邊必須是一個(gè)左值。左值是指具有對應(yīng)的可由用戶訪問的存儲(chǔ)單元,并且能夠由用戶改變其值的量。而在。選項(xiàng)中賦值號(hào)對應(yīng)的是表達(dá)式“i+1”,不是一個(gè)左值,因此是非法的賦值表達(dá)式。A詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖中而非總體結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),所以A錯(cuò)誤。C解析:C++中,類是用戶自定義的一種數(shù)據(jù)類型,對象是類的實(shí)例,類定義了屬于該類的所有對象的共同特性。一個(gè)類作為一種數(shù)據(jù)類型,它可以定義多個(gè)對象B本題考查基類和派生類的邏輯關(guān)系,屬于基礎(chǔ)知漢,如果沒有指明哪種繼承方式,那么默認(rèn)為私有繼承,所以B選項(xiàng)錯(cuò)誤。D解析:本題考核類成員的訪問權(quán)限。類成員有3類訪問權(quán)限:公有(public).私有(private)和保護(hù)(protected)。公有成員是類的對外表現(xiàn),而私有成員和保護(hù)成員是類的內(nèi)部實(shí)現(xiàn)。類的成員函數(shù)可以訪問類的所有成員,沒有任何限制。而類的對象對類的成員的訪問是受成員訪問控制符制約的。通過類的對象只能訪問類的公有成員,不能訪問類的保護(hù)成員和私有成員。由此可知,選項(xiàng)D的描述是錯(cuò)誤的。D解析:虛函數(shù)在運(yùn)行階段和類的對象綁定在一起,這樣成為動(dòng)態(tài)聯(lián)編。虛函數(shù)聲明只能出現(xiàn)在類聲明的虛函數(shù)原型中,而不能在成員的函數(shù)體實(shí)現(xiàn)時(shí)。必須由成員函數(shù)來調(diào)用成員函數(shù)來調(diào)用或者通過指針、引用來訪問虛函數(shù)。如果通過對象名來訪問虛函數(shù),則聯(lián)編在編譯過程中認(rèn)為是靜態(tài)聯(lián)編。B本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),題目中定義一一個(gè)對象a以及對象數(shù)組b[2],共執(zhí)行3次構(gòu)造函數(shù),對象指針不調(diào)用構(gòu)造函數(shù)。所以本題答案為B。D解析:抽象類指的是類中至少有一個(gè)純虛函數(shù),純虛函數(shù)是虛函數(shù)后有“=0”修飾,表示該函數(shù)在本級(jí)類中沒有實(shí)現(xiàn),類僅用于派生。抽象類存在的唯一目的就是構(gòu)造類層次,派生出其他類。抽象類與其他類的最大區(qū)別就在于抽象類不能實(shí)例化。BDo【解析】本題考查的知識(shí)點(diǎn)是豢的構(gòu)造。建立一個(gè)類的對象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:①執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被繼承時(shí)聲明的順序(自左向右);②執(zhí)行成員對象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對象在類中聲明的順序(自上而下);③執(zhí)行自身的構(gòu)造函數(shù)。本題Derived類繼承于Base類,所以首先會(huì)構(gòu)造基類Base,flDerived類的構(gòu)造函數(shù)沒有初始化列表,所以將調(diào)用Base類的默認(rèn)構(gòu)造函數(shù),輸出一個(gè)0。接下來由于它的成員中還定義了一個(gè)Base類的對象,兩構(gòu)造函數(shù)也沒有顯示初始化這個(gè)對象,所以再次調(diào)用Base類的默認(rèn)構(gòu)造函數(shù)輸出一個(gè)0。最后構(gòu)造自身,因?yàn)橹骱瘮?shù)中傳入了構(gòu)造參數(shù)1,所以構(gòu)造自身時(shí)輸出了一個(gè)1。故最終輸出結(jié)果為001oB24.3內(nèi)聚內(nèi)聚解析:模塊之間的耦合表明兩個(gè)模塊之間互相獨(dú)立的程度;模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚,反映模塊內(nèi)各成分之間的聯(lián)系。線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu),是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等;常見的非線性結(jié)構(gòu)有樹、二叉樹等。重復(fù)(或循環(huán))重復(fù)(或循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu))。利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他結(jié)構(gòu)形式的程序設(shè)計(jì)方法,其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。編譯編譯解析:C++語言是以編譯方式實(shí)現(xiàn)的高級(jí)語言,C++語言程序的實(shí)現(xiàn),必須要使用某種C++語言的編譯器對程序進(jìn)行編譯。對象對象30.100100解析:本題比較簡單,考查考生基本的類的定義,構(gòu)造函數(shù)以及對象數(shù)組的概念。iostream.h軟件工程軟件工程解析:軟件工程的出現(xiàn)是由于軟件危機(jī)的出現(xiàn)。33.1234512345解析:本題考查的是考生使用簡單循環(huán)輸出數(shù)組元素的能力,因?yàn)榻Y(jié)束條件是i<5,而i初始值為0,所以只會(huì)輸出前5個(gè)元素。靜態(tài)靜態(tài)解析:構(gòu)造函數(shù)不能聲明為虛函數(shù),但在構(gòu)造函數(shù)中可以調(diào)用虛函數(shù),在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù),將采用靜態(tài)聯(lián)編。(*p)(xy)(*p)(x,y)解析:一個(gè)函數(shù)總是占用一段連續(xù)的內(nèi)存區(qū),而函數(shù)名就是該函數(shù)所占內(nèi)存區(qū)的首地址。我們可以把函數(shù)的這個(gè)首地址(或稱入口地址)賦予一個(gè)指針變量,使該指針變量指向該函數(shù)。然后通過指針變量就可以找到并調(diào)用這個(gè)函數(shù)。我們把這種指向函數(shù)的指針變量稱為“函數(shù)指針變量函數(shù)指針變量定義的一般形式為:類型說明符(?指針變量名)0;其中“類型說明符”表示被指函數(shù)的返回值的類型?!?*指針變量名)”表示后面的變量是定義的指針變量。最后的空括號(hào)表示指針變量所指的是一個(gè)函數(shù)。⑴應(yīng)添加“public:”。\n(2)“inti”應(yīng)改為“inti(10);”。\n(3)“i++;”應(yīng)改為“i??;”。\n【解析】本題主要考查的是成員的訪問屬性。成員的訪問屬性有公有、保護(hù)和私有3種,而默認(rèn)的訪問屬性為私有,只有公有成員才能通過類的對象被訪問。故應(yīng)在構(gòu)造函數(shù)前添加“public:”,否則該類無法被實(shí)例化。變量的初始化可以通過“=''號(hào),也可以和初始化對象一樣添加構(gòu)造參數(shù),題目已要求使用后者。本題要求輸出5個(gè)數(shù),while的循環(huán)變量i每次減1,在i>5時(shí)循環(huán),故i初始化應(yīng)為10。若循環(huán)中i每次增1,則循環(huán)永遠(yuǎn)不會(huì)退出(l)“staticintn=O”應(yīng)改為“staticintn;"。“intCO::n;”應(yīng)改為“intCO::n=0;"coutv<c?n?endl;"應(yīng)改為t6cout?c->n?endl:"。【解析】本題要在屏幕上輸出兩個(gè)字符,首先要靜態(tài)變量初始化,第1處應(yīng)改為“staticintn;”,第2處要給n賦值,第3處輸出時(shí)引用c的對象,應(yīng)改為"coutvvc?>nvvendl;(1)應(yīng)改為“usingnamespacestd;"。應(yīng)改為“outl?open(n1.txt",ios::binaryIios::app);應(yīng)改為“outl.put(s[i]);”?!窘馕觥勘绢}第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,對于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處的語句修改為“usingnamespacestd;”。第2處,調(diào)用成員函數(shù)open中,輸入、輸出方式是在ios類中定義的,所以“outl.open(”l.txt”,binaryIapp);”語句缺少類ios,即第2處的語句修改為"outl.open("l.txt”,ios::binaryIios::app);第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所以第3處的語句修改為“outl.put(s[i]);(1)應(yīng)改為“TC::TC”。應(yīng)改為“voidTC::display”。應(yīng)改為“TC::?TC”?!窘馕觥吭陬惖耐獠慷x成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名和作用域運(yùn)算符“::",作用域運(yùn)算符用釆表示某個(gè)成員屬于哪個(gè)類,使用格式為“(類名)::v成員函數(shù)>((參數(shù)函數(shù))),因此第1處應(yīng)改為“TC::TC”,默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。由第2處“TC::display”后的語句看,這是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問題,display函數(shù)返回值為void,因此第2處的語句應(yīng)改為“voidTC::display”。由第3處的語句"TC::TC”可知,顯然這里是在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名相同,并在前面加“?”字符,用采與構(gòu)造函數(shù)加以區(qū)別,因此第3處的語句應(yīng)改為“TC::?TC”。(1)應(yīng)改為“ein.getline(str,120,?);應(yīng)改為“while(str[i])"。應(yīng)改為"iRstr[i]>=a&&str[i]<=2)”?!窘馕觥勘绢}中要求以輸入字符“?"為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個(gè)數(shù),終止標(biāo)志字符)",所以第1處改為“cin.getline(str,120,?);”。第2處的“while(str)”語句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”°第3處的“if(str[i]>=a)”語句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語句只是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=z)"。(1)應(yīng)改為“TCobjl(l);\n(2)應(yīng)改為“Objl.SetNumber(lO);\n(3)應(yīng)改為“0bj2.SelNumber(lOO);”。\n【解析】本題第1處的“TCobjl語句是聲明TC類的對象Objl,根據(jù)TC類構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(l);第2處處的“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對象名.成員函數(shù),所以修改為“objl.SetNumber(lO);”。類是對象的抽象,而對象是類的具體實(shí)例。第3處“TC.SetNumber(lOO);”語句中的TC為類,并不是對象,這里應(yīng)該使用定義的對象,即obj2,所以將語句修改為“obj2.SetNumber(lOO);⑴應(yīng)改為“ein.getline(str,120,?);”。\n(2)應(yīng)改為“while(str[i])"。\n⑶應(yīng)改為“if(str[i]>=a&&str[i]v=2)”。\n【解析】本題中要求以輸入字符“?''為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個(gè)數(shù),終止標(biāo)志字符)”,所以第1處改為“cin.getline(str,120,?);”。第2處的“while(str)”語句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”°第3處的“if(str[i]>=a)”語句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語句只是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=z)”。(l)ttvoidmain,,o⑵“intm=0144;"。(3)“intn=OX25;”或“intn===0x25;【解析】本題主要考查了主函數(shù)定義及幕同進(jìn)制之間的轉(zhuǎn)換,包括十進(jìn)制到八進(jìn)制,十進(jìn)制到十六進(jìn)制。主函數(shù)定義的定義形式為“main”,函數(shù)名之后必須是一對括號(hào),因此第1處應(yīng)改為“voidmain”。cout輸出默認(rèn)是以十進(jìn)制方式輸出的,根據(jù)題目要求輸出的結(jié)果可發(fā)現(xiàn)變量的初值不正確,十進(jìn)制的100對應(yīng)八進(jìn)制的144,卡進(jìn)制的37對應(yīng)十六進(jìn)制的25,因此2和3應(yīng)分別改成“intm=0144;”,“intn=0x25;'‘或“intn=0x25;"。(1)應(yīng)改為"catch(char*s)"。應(yīng)改為“cateh(inti)”。⑶應(yīng)改為“catch(...)”°【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語句為“throw(%rror“);”,其中的類型為字符串。所以對應(yīng)的異常捕捉語句catch中應(yīng)該符合這個(gè)類型,而程序中給出的語句“catch(chars)”是字符型的,所以第1處的語句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語句為“throw((int)0);”,其中的類型為int。對應(yīng)的異常捕捉語句catch中應(yīng)該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處的語句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類型,那么就用刪節(jié)號(hào)表示它可以捕捉任何類型的異常信息,即修改為“catch(...)”。(1)應(yīng)改為"catch(char*s)“。(2)應(yīng)改為“cateh(inti)”。⑶應(yīng)改為“catch(...)”°【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語句為“throw(%rror“);”,其中的類型為字符串。所以對應(yīng)的異常捕捉語句catch中應(yīng)該符合這個(gè)類型,而程序中給出的語句“catch(chars)”是字符型的,所以第1處的語句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語句為“throw((int)0);”,其中的類型為int。對應(yīng)的異常捕捉語句catch中應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)項(xiàng)目開發(fā)內(nèi)部承包合同范本4篇
- 二零二五年度房地產(chǎn)企業(yè)員工勞動(dòng)合同示范范本
- 二零二五年度醫(yī)療機(jī)構(gòu)人員派遣及管理合同3篇
- 二零二五版模具修復(fù)與性能提升合同3篇
- 二零二四年度校園食堂特色美食開發(fā)與承包經(jīng)營合同3篇
- 二零二五年市中心區(qū)域照明系統(tǒng)智能化升級(jí)合同4篇
- 2025版農(nóng)業(yè)種養(yǎng)殖質(zhì)量安全追溯合作合同范本3篇
- 2025版山林租賃合同樣本:森林資源租賃與生態(tài)保護(hù)合作合同3篇
- 二零二五年度建筑模板腳手架安全防護(hù)設(shè)施供應(yīng)合同規(guī)范4篇
- 二零二五年度天津二手房交易合同范本(專業(yè)版)
- 蛋糕店服務(wù)員勞動(dòng)合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問題-專項(xiàng)訓(xùn)練【含答案】
- 新能源行業(yè)市場分析報(bào)告
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫含答案解析
- 巖土工程勘察.課件
- 60歲以上務(wù)工免責(zé)協(xié)議書
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 2022年7月2日江蘇事業(yè)單位統(tǒng)考《綜合知識(shí)和能力素質(zhì)》(管理崗)
- 沈陽理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 初一英語語法練習(xí)
評論
0/150
提交評論