版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家二級(C++)機試模擬試卷1(共9套)(共98題)國家二級(C++)機試模擬試卷第1套一、程序改錯題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程test24_1,此工程包含一個源程序文件test24_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果為:00012-1000l2-l211源程序文件test24_1.cpp清單如下:#include<iostream.h>classA{/****************found*******************/inta=O;public:A(intaa=O):a(aa){}};classB{inta,b;constintc;Ad;public:/****************found*******************/B(){}/****************found*******************/B(intaa,intbb):d(aa+bb){a=aa,b=bb;}voidprint(){cout<<a<<""<<b<<""<<c<<""<<endl;}};voidmain(){Ba,b(1,2);Bx=a,y(b),z(2,1);a.print();b.print();x.print();y.print();z.print();}標準答案:(1)錯誤:inta=0;正確:inta;(2)錯誤;B(){}正確:B():c(O){a=0;b=0;}(3)錯誤:B(intaa,intbb):d(aa+bb)正確:B(intaa,intbb):c(aa-bb),d(aa+bb)知識點解析:(1)主要考查考生對于類的數(shù)據(jù)成員的初始化,在類的定義中不能對類的數(shù)據(jù)成員進行初始化,如果想要進行初始化應該使用構造函數(shù)和參數(shù)的默認值:(2)主要考查考生對于含有常數(shù)據(jù)成員的類的構造函數(shù)的掌握,常數(shù)據(jù)成員必須在構造函數(shù)中進行初始化,而且應該使用參數(shù)列表的形式;(3)主要考查考生在構造函數(shù)中對常數(shù)據(jù)成員的賦值的掌握,常數(shù)據(jù)成員的賦值應使用初始化列表進行。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請編寫兩個函數(shù)intsum_of_powers(intk,intn),powers(intm,intn),求1~6的k次方的和,sum_of_powers中參數(shù)k和n分別表示k次方和所求數(shù)列中最大的一個自然數(shù),最后返回所求值,powers中參數(shù)m和n分別表示m為底數(shù)n為指數(shù),最后返回所求值。要求使用for循環(huán)和函數(shù)嵌套(intsum_of_powers中調用powers)實現(xiàn)算法。輸出結果如下:sumof4powersofintergersfrom1to6=2275注意:部分源程序已存在文件test25_2.cpp中。請勿修改主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)sum_of_powers和powers的花括號中填寫若干語句。文件test25_2.cpp的內容如下:#include<iostream.h>constintk(4);constintn(6);intsum_of_powers(intk,intn),powers(intm,intn);voidmain(){cout<<"sumof"<<k<<"powersOfintergersfrom1to"<<n<<"=";cout<<sum_of_powers(k,n)<<endl;}intsum_of_powers(intk,intn){}intpowers(intm,intn){}標準答案:(1)intsum_of_powers(intk,intn){intsum(0);for(inti=1;i<=n;i++)sum+=powers(i,k);returnsum;}(2)intpowers(intm,intn){inti,product(1);for(i=1;i<=n;i++)product*=m;returnproduct;}知識點解析:本題考查的是考生使用for循環(huán)和函數(shù)嵌套解決一般問題的能力。注意最后將計算的值返回。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的工程test23_3,此工程包含一個源程序文件test23_3.cpp,其中定義了類X和它的友元類Y,但它們的定義并不完整。請按要求完成下列操作,將程序補充完整。(1)將類X的靜態(tài)數(shù)據(jù)成員y初始化為1。請在注釋“//**1**”之后添加適當?shù)恼Z句。(2)完成類Y的構造函數(shù)Y(inti,intj)的定義,將參數(shù)i賦值給類Y的數(shù)據(jù)成員,X的對象a中的數(shù)據(jù)成員x,并且把參數(shù)j賦值給類X的數(shù)據(jù)成員y,請在注釋“//**2**”之后添加適當?shù)恼Z句。(3)完成類Y的成員函數(shù)voidDisplay()的定義,將Y的數(shù)據(jù)成員,X的對象a中的數(shù)據(jù)成員x和類X的數(shù)據(jù)成員y按照“x=_,y=_”的形式顯示出來(“_”代表一個數(shù)字),請在注釋“//**3**”之后添加適當?shù)恼Z句。輸出結果如下:x=5,y=lx=6,y=9x=5,y=9注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。源程序文件test23_3.cpp清單如下:include<iostream.h>classX{friendclassY;public:voidSet(inti){x=i;}voidDisplay(){cout<<"x="<<x<<",";cout<<"y="<<y<<endl;}private:intx;staticinty;};classY{public:Y(inti,intj)voidDisplay();private:Xa;};//**1**Y::Y(inti,intj){//**2**}voidY::Display(){//**3**}voidmain(){Xb;b.Set(5);b.Display();Yc(6,9);c.Display();b.Display();}標準答案:(1)intX::y=1;(2)a.x=i;X;;y=j;(3)cout<<"X="<<a.x<<",";cout<<"y="<<X::y<<endl;知識點解析:本題主要考查考生對于友元類的定義和使用友元類訪問的應用,注意(1)中類X的靜態(tài)成員y應該在類外初始化,而(2)和(3)中對于x和y不同的訪問方式就是因為y是靜態(tài)成員,是類X的所有對象公有的,必須使用作用域符“::”進行訪問。國家二級(C++)機試模擬試卷第2套一、選擇題(本題共31題,每題1.0分,共31分。)1、算法的空間復雜度是指()。A、算法程序的長度B、算法程序中的指令條數(shù)C、算法程序所占的存儲空間D、算法執(zhí)行過程中所需要的存儲空間標準答案:D知識點解析:算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結構所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。2、下列敘述中正確的是()。A、一個邏輯數(shù)據(jù)結構只能有一種存儲結構B、邏輯結構屬于線性結構,存儲結構屬于非線性結構C、一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據(jù)處理的效率D、一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構影響數(shù)據(jù)處理的效率標準答案:D知識點解析:數(shù)據(jù)的存儲結構是指數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式,一種數(shù)據(jù)結構可以根據(jù)需要采用不同的存儲結構,常用的存儲結構有順序和鏈式結構。采用不同的存儲結構,其處理的效率是不同的。3、下列關于類、對象、屬性和方法的敘述中,錯誤的是()。A、類是對一類具有相同的屬性和方法對象的描述B、屬性用于描述對象的狀態(tài)C、方法用于表示對象的行為D、基于同一個類產生的兩個對象不可以分別設置自己的屬性值標準答案:D知識點解析:類是對一類具有相同的屬性和方法對象的描述,屬性用于描述對象的狀態(tài),方法用于表示對象的行為,基于同一個類產生的兩個對象是可以分別設置自己的屬性值的。4、數(shù)據(jù)庫設計的四個階段是:需求分析、概念設計、邏輯設計和()。A、編碼設計B、測試階段C、運行階段D、物理設計標準答案:D知識點解析:數(shù)據(jù)庫設計目前一段采用生命周期法,即將整個數(shù)據(jù)庫應用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結構和模型設計為主線。5、在下列關系運算中,不改變關系表中的屬性個數(shù)但能減少元組個數(shù)的是()。A、并B、交C、投影D、除標準答案:B知識點解析:關系R與S經交運算后所得到的關系是由那些既在R內又在S內的有序組所組成,記為RnS,交運算不改變關系表中的屬性個數(shù)但能減少元組個數(shù)。6、下列敘述中,正確的是()。A、軟件交付使用后還需要進行維護B、軟件一旦交付使用就不需要再進行維護C、軟件交付使用后其生命周期就結束D、軟件維護是指修復程序中被破壞的指令標準答案:A知識點解析:軟件的運行和維護足指將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。而軟件生命周期是指軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程。7、設一棵滿二叉樹共有15個結點,則在該滿二叉樹中的葉子結點數(shù)為()。A、7B、8C、9D、10標準答案:B知識點解析:在具有n個結點的滿二叉樹,其非葉子結點數(shù)為int(n/2),而葉子結點數(shù)等于總結點數(shù)減去非葉子結點數(shù)。本題n=15,故非葉子結點數(shù)等于int(15/2)=7,葉子結點數(shù)等于15-7=8。8、設R是一個2元關系,有3個元組,S是一個3元關系,有3個元組。如T=R×S,則T的元組的個數(shù)為()。A、6B、8C、9D、12標準答案:C知識點解析:R為n元關系,有p個元組S為m關系,有q個元組。兩個關系笛卡兒積是一個n+m關系,元組個數(shù)是q×p。所以T的元組的個數(shù)為9個。9、在下列橫線處應添加的語句是()。classBase{public:voidfun(){cout<<"Base::fun"<A、Derived::funB、Base::fun();C、Pubic::funD、fun();標準答案:B知識點解析:此題考查的是成員函數(shù)的調用。因為橫線處的作用是調用基類的fun函數(shù),又因為派生類中也有fun()函數(shù),所以必須對fun()函數(shù)加以限定,即Base::fun()。10、()提供了類對外部的接口,私有成員是類的內部實現(xiàn),而保護成員不允許外界訪問,但允許派生類的成員訪問,這樣既有一定的隱藏能力,又提供了開放的接口。A、公有成員B、私有成員C、私有成員函數(shù)D、保護成員標準答案:A知識點解析:此題考查的是公有成員的特點。公有成員允許可使用者訪問,提供了類對外部的接口。11、若類A和類B的定義如下:#includeclassA{intij;public:intgeti(){returni;}};classB:publicA{intk:public:voidmake(){k=iq;}};則上述定義中非法的表達式是()A、k=i*j;B、intk;C、returni;D、voidmake();標準答案:A知識點解析:因為派生類不能訪問基類的私有成員i和j(默認情況下,成員的屬性為私有),所以表達式k=i*i是非法的。其余的訪問權限都是許可的。12、假定MyClass為一個類,則該類的拷貝初始化構造函數(shù)的聲明語句為()。A、MyClass&(MyClassx);B、MyClass(MyClassX)C、MyClass(MyClass&x);D、MyClass(MyClass+X)標準答案:C知識點解析:拷貝構造函數(shù)是一個特殊的構造函數(shù),它用一個已知的對象初始化一個正在創(chuàng)建的同類對象,它的一般格式是:類名:類名(const類名&引用對象名)。13、下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是()。A、靜態(tài)數(shù)據(jù)成員是類的所有對象共享的數(shù)據(jù)B、類的每個對象都有自己的靜態(tài)數(shù)據(jù)成員C、類的不I司對象有不同的靜態(tài)數(shù)據(jù)成員值D、靜態(tài)數(shù)據(jù)成員不能通過類的對象調用標準答案:A知識點解析:靜態(tài)成員表示整個類范圍共享的信息;必須對靜態(tài)數(shù)據(jù)成員進行初始化:靜態(tài)數(shù)據(jù)成員是屬于類的,不能通過類的對象調用。14、關于運算符重載,下列表述中正確的是()。A、C++已有的任何運算符都可以重載B、運算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉換符函數(shù)的定義中不需要聲明返回類型D、可以通過運算符重載來創(chuàng)建C++中原來沒有的運算符標準答案:C知識點解析:此題考查的是運算符的有關概念。運算符重載是針對C++原有運算符進行的,不能通過重載創(chuàng)造新的運算符;除了、、*>->*、::、?:這五個運算符之外,其他運算符都可以重載:在類型轉換符函數(shù)的定義中不需要聲明返回類型;運算符函數(shù)的返回值類型可以聲明為基本數(shù)據(jù)類型。15、不能作為函數(shù)重載的判斷依據(jù)的是()。A、constB、返回類型C、參數(shù)個數(shù)D、參數(shù)類型標準答案:B知識點解析:所謂函數(shù)重載是指同一函數(shù)名可以對戍多個函數(shù)實現(xiàn)。進行函數(shù)重載時,要求同名函數(shù)在參數(shù)個數(shù)上不同,或者參數(shù)類型上不同。但函數(shù)的返回類型不能作為判斷重載的依據(jù)。16、有如下函數(shù)模板定義:templateTIsum(Tla11{retum(a)1-a2+a3);}則以下調用中正確的是()A、sum(5);B、sum<4,3>(5);C、sum(5);D、sum(5);標準答案:A知識點解析:本題考查的函數(shù)模板的使用,有時不能根據(jù)用戶傳進來的參數(shù)決定所有模板函數(shù)的值類型,如函數(shù)的返回值,還有用戶希望自己指定參數(shù)類型,這時就需要顯式地指出參數(shù)模板的類型,顯示指定模板的類型格式為:返回值類型函數(shù)模板<參數(shù)類型表>(參數(shù)表)。17、關于new運算符的下列描述中,錯誤的是()。A、它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組B、使用它創(chuàng)建的對象或對象數(shù)組可以通過運算符delete刪除C、使用它創(chuàng)建對象時要調用構造函數(shù)D、使用它創(chuàng)建對象數(shù)組時必須指定初始值標準答案:D知識點解析:用new創(chuàng)建對象是不用顯式調用構造函數(shù)的,它自己會自動調用。18、派生類的構造函數(shù)的成員初始化列中,不能包含()。A、基類的構造函數(shù)B、派生類中了對象的初始化C、基類的子對象初始化D、派生類中一般數(shù)據(jù)成員的初始化標準答案:C知識點解析:派生類的構造函數(shù)會調用基類的構造函數(shù)。對于基類子對象的初始化會在基類的構造函數(shù)中進行。派生類會為基類提供參數(shù),當基類的構造函數(shù)收到參數(shù)時會將參數(shù)傳遞給相應的基類子對象。19、派生類的對象對它的基類成員中()是可以訪問的。A、公有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護成員D、私有繼承的公有成員標準答案:A知識點解析:只要是派生類,都可以叢基類中繼承,除非把基類的構造函數(shù)定義為私有的,這樣派生類無法構造。20、C++類體系中,不能被派生類繼承的有()。A、構造函數(shù)B、虛函數(shù)C、靜態(tài)成員函數(shù)D、賦值操作函數(shù)標準答案:A知識點解析:不能被繼承的有構造函數(shù)、拷貝構造函數(shù)、賦值函數(shù)、析構函數(shù)。21、以下程序輸出結果是().#inctudeusingnamespacestd;voidadd(imx,inty,int*z){*z=y+x;}intmain(){inta,b,c;add(8,4,&a);add(6,a,&b);add(a,b,&c):cout<A、12,10,14B、12,18,30C、12,6,18D、12,14,30標準答案:B知識點解析:由主函數(shù)main入手,調用add函數(shù),其中第三個參數(shù)為引用,即傳值為地址。當add函數(shù)中第三個參數(shù)改變時,}函數(shù)中這個值也會改變。那么第一個add調用后a:12,所以第二一個調用中a=12。調用后b=18。那么第三個調用后c=30。22、有如下程序:usingnamespacestd;{public:TestClass(){cout<<”defaultconstructorLu”;}TestClass(constTestClass&x){cont<<”copyconstructorLu’’;}};TestClassuserC0de(TestClassb){TestClassc(b);retumc;}intmain(){TestClassa,d;cout<<”callinguserCode()/n”;d=userCode(a);return0;}執(zhí)行上面程序的過程中,構造函數(shù)TestClass()和TestClass(constTestClass&x)被調用的次數(shù)分別是A、2次3次B、3次2次C、都是2次D、都是3次標準答案:A知識點解析:由主函數(shù)入手,定義了類TestClass的對象a和d,當類對象進入其作用域時調用構造函數(shù),構造函數(shù)在建立對象時由系統(tǒng)自動執(zhí)行,而且只執(zhí)行一次。因為定義了兩個對象,所以構造函數(shù)TestClass()被調用的次數(shù)是2?!癲=userCode(a);”語句d中調用成員為a的userCode()成員函數(shù),所以是3次。23、有以下程序:usingnamespacestd;{public:TestClass(intr1,intr2){R1=r1;R2=r2;}voidprint();voidprint()const;private:intR1,R2;};voidTestClass::print(){cout<A、5,4B、20,52C、0,0D、4,5標準答案:B知識點解析:常對象只能調用其中的const成員函數(shù),即“constTestClassb(20,52);”只能調用“voidprint()const;”。常對象保證所有數(shù)據(jù)成員的數(shù)值不被修改,所以這里是20,52。24、下列說法中錯誤的是()。A、公有繼承時基類中的public成員在派生類中仍是public的B、公有繼承時基類中的private成員在派生類中是public的C、私有繼承時基類中的public成員在派生類中是private的D、保護繼承時基類中的public成員在派生類中是protected的標準答案:B知識點解析:公有繼承中,基類的公有成員和保護成員在派牛類中保持原有訪問屬性,其私有成員仍為基類私有。所以B是錯誤的,即選擇B)。25、有如下程序:#includeusingnamespacestd;classTestClass{public:TestClass(){cout<<“BB”;fun();)voidfunO{cout<<“Bf”;)};classTestClassl:publicTestClass{public:TestClassl(){cout<<“DD”;}voidfun0{cout<<“Df”;)};intmain(){TestClass1d;return0;}執(zhí)行上面的程序將輸出()。A、BBBfDDB、BBDfDDDfC、DDD、DDBBBf標準答案:A知識點解析:TestClass是TestClass1的基類。由主函數(shù)main入手,定義TestClassl的對象d,調用基類TestClass構造函數(shù)輸出BB,調用基類成員函數(shù)fun輸出Bf,然后調用派生類的構造函數(shù),輸出DD。26、下列程序中橫線處正確的語句是()。#includeusingnamespacestd;classTestClass{public:voidfun0{cout<<“TestClass::fun”<A、fun();B、TestClass.fun();C、TestClass::fun();D、TestClass一>fun();標準答案:C知識點解析:程序中的TestClassl為TestClass的派生類,TestClassl公有繼承TestClass,所以可以調用其中的公有成員fun函數(shù),如果要顯示調用它,那么使用域符號“::”,這樣就實現(xiàn)了對函數(shù)的顯示調用,即選擇C)。27、有如下程序:#includeusingnamespacestd;classTestClassl{public:virtualvoidfun(){cout<<“1”;)};classTestClass2:publicTestClass1{public:TestClass2(){cout<<“2”;}};classTestClass3:publicTestClass2{public:virtualvoidfun(){TestClass2::fun();cout<<“3”;}};intmain(){TestClass1aa,*p;TestClass2bb;TestClass3cc;P=&cc:p->fun();retum0:}執(zhí)行上面程序的輸出是()。A、1122B、2112C、2213D、2223標準答案:C知識點解析:主函數(shù)中定義TestClassl的對象aa,*p對象指針,TestClass2的對象bb以及TestClass3的對象cc.p指向cc,TestClass3為TestClass2的派生類,構造函數(shù)輸出2。TestClass3中fun函數(shù)中為TestClass2中的fun,調用TestClass2的構造函數(shù),輸出2?!皃一>fun();”,TestClass2繼承于TestClassl中的fun,所以輸出1。然后輸出TestClass3中的“cout<<”3”,即輸出3。28、有如下程序:#includeusingnamespacestd;longfun(intn){if(n>2)retum(fun(n—1)+fun(n一2));elsereturn2;}intmain(){cout<A、2B、3C、4D、5標準答案:C知識點解析:主函數(shù)中調用fun(3),在fun內部當n>2時遞歸調用fun(n-1)+fun(n-2),否則返回2。所以當n=3時,調用fun(2)+fun(1),即返回2+2,等于4。29、下列程序的輸出結果是()。#includeusingnamespacestd;templateTfun(Ta,Tb){retum(a>=b)?a:b;}voidmain(){cout<A、6,3.14B、3,6.28C、3,3.14D、6,6.28標準答案:D知識點解析:“?:”為條件運算符,(a>=b)?a:b是當a大于b時取a,否則取b。所以第一個fun(3,6)調用中,6大于3,所以輸出6,同理第二個。fun(3.14F,6.28F)調用中輸出6.28。30、針對數(shù)組定義intdata[10];,下列表述中錯誤的是()。A、用*data可訪問到數(shù)組的首元素B、用data[9]可訪問到數(shù)組的末元素C、用data[10]訪問數(shù)組元素會超出數(shù)組邊界D、data共有10個元素,其首元素是data[1]標準答案:D知識點解析:此題考查的是數(shù)組和指針的概念。題目中data[10]共有10個元素,分別是data[0]、data[1]、data[2]、data[3]……data[9],首元素是data[0],所以選項D)錯誤;其他選項均正確。31、有如下類聲明:classFoo{intbar;};則Foo類的成員bar是()。A、公有數(shù)據(jù)成員B、公有成員函數(shù)C、私有數(shù)據(jù)成員D、私有成員函數(shù)標準答案:C知識點解析:此題考查的是類的定義。在定義類的成員變量時,如果沒有使用關鍵字,所有成員默認定義為private私有權限。二、基本操作題(本題共1題,每題1.0分,共1分。)32、使用VC6打開考生文件夾下的源程序文件modil.cpp。本程序要求輸入一字符串,然后將其中的小寫字母改變成大寫字母,字符可能輸入多行,當輸入字符“?”時,默認字符輸入結束,最后把結果輸出到界面。注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結構,錯誤的語句在//******error******的下面。#includevoidmain(){inti=0;charstr[120];cout<<“Enterastingendwith’?’.”<_’a’)str[i]=str[i]-’a’+~A;i++;}cout<標準答案:(1)cin.getline(str,120,‘?’);(2)while(str[i])(3)if(str[i]>=’a’&&str[i]<=’z’)知識點解析:同一英文字母的大寫和小寫形式的ASCII碼值相差32,因此,要將小寫字母轉換為大寫字母,只要將其對應的ASCII碼值減去32即可,程序中給出的語句中,減去字符’a’的ASCII碼再加上字符’A’的ASCII碼正好是減去32。[解題思路](1)題目中要求以輸入字符“?”為結束,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式cin.getline(字符數(shù)組,字符個數(shù),終止標志字符),所以第1個標識下為“cin.getline(str,120,’?’);”。(2)第2個標識下的“while(sir)”語句應該是判斷字符串s有中的每一個字符是否為尾符,若不是尾符在循環(huán)中判斷每一個字符是否為小寫,若為小寫,轉換。所以應該修改為“while(st[i])”。(3)第3個標識下的“if(str[i]>=’a’)”語句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語句只是判斷字符是否大于’a’,但是小寫字符應該是’a’到’z’,所以修改為“if(str[i]>=’a’&&str[i]<=’z’)”。三、簡單應用題(本題共1題,每題1.0分,共1分。)33、使用VC6打開考生文件夾下的源程序文件modi2.cpp。請完成函數(shù)fun(char*,char*s2),此函數(shù)的功能是計算s1中出現(xiàn)s2的個數(shù),當不出現(xiàn)時,則返回0。如:sl為111112223333aaaaeeffd”s2為”11”則返回1s2為”aa”則返回2注意:勿改動主函數(shù)main與其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。mclude//注意只能使用int類型,不能類型轉換intfun(char*s1,char*s2){}voidmain(){chars1[1024];chars21256];cout<<“pleaseinputastring:”<四、綜合應用題(本題共1題,每題1.0分,共1分。)34、使用VC6打開源程序文件modi3.cpp。其中類TestClass用于把文件輸出到屏幕,然后進行文件的分割。分割的方法如下:第一個文件的大小是文件的前一半,另外一個文件的大小是剩余部分。此程序將int.txt文件中的內容輸出到屏幕,并且將文件按照以上方式分割,存于文件out1.txt和out2。txt中。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。(1)從輸入文件中獲得一個字符,并判斷是否到文件結尾,如果到文件結尾,則退出循環(huán)。請在注釋//******error******后添加適當?shù)恼Z句。(2)把獲得的輸入文件的內容存儲到buf中,并且用len記錄下文件的長度。請在注釋//******error******后添加適當?shù)恼Z句。(3)將輸入文件的后一半內容存儲在第二個文件中,請在注釋//********3********后添加適當?shù)恼Z句。(4)使用文件流對象打開輸入文件in.txt,請在注釋//********4********后添加適當?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內容。#include#include#includeclassTestClass{public:TestClass(char*fileName){len=0;fstreaminfile;infile.open(fileName,ios::in);charch;//********1********while(){cout<國家二級(C++)機試模擬試卷第3套一、程序改錯題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程test6_1,此工程包含一個源程序文件test6_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:Constructor2Constructor1i=0i=10Destructor源程序文件test6_1.cpp清單如下:#include<iostream.h>classCSample{inti;public;CSample(){cout<<"Constructorl"<<endl;i=0;)CSample(intval){cout<<"Constructor2"<<endl;i=val;}~CSample()(cout<<"Destructor"<<endl;)voiddisp();};/**********found********/voiddisp(){cout<<"i=”<<i<<endl;}voidmain(){CSample*a,b(10);/**********found*********/a->disp();/**********found*********/b->disp();}標準答案:(1)錯誤:voiddisp()正確:voidCSample::disp()(2)錯誤:a->disp();正確:a=newCSample;a->disp();(3)錯誤:b->disp();正確:b.disp();知識點解析:(1)主要考查考生對于類的成員函數(shù)定義格式的熟練掌握,對于類體外函數(shù)的實現(xiàn),應該使用作用域符“::”,按照返回值類型類名::函數(shù)名(參數(shù)列表)的形式進行說明;(2)主要考查考生對于動態(tài)存儲分配的掌握,根據(jù)前面的定義,a是一個指針類型的變量,指向一個對象,但是并沒有被初始化,此時a中的數(shù)據(jù)無任何意義,應該使用動態(tài)存儲分配new生成一個新的對象,并將返回的指針賦值給a;(3)主要考查對象指針與對象在調用成員函數(shù)時格式的不同,b是一個對象變量,使用b調用成員函數(shù)應該用“.”運算符。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、編寫一個函數(shù)intcharnum(charfn[10]),該函數(shù)以只讀方式打開文件fn,通過統(tǒng)計,返回文件中字符的個數(shù),請使用while循環(huán)實現(xiàn)計數(shù)功能。注意:部分源程序已存在文件test7_2.cpp中。請勿修改主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)charnum的花括號中填寫若干語句。文件test7_2.cpp的內容如下:#include<iostream.h>#include<fstream.h>#include<stdlib.h>intcharnum(charfn[10]);voidmain(){intnum;num=charnum("abc.txt");cout<<"num="<<num<<endl;}intcharnum(charfn[10]){}標準答案:intcharnum(charfn[10]){fstreamfile;file.open(fn,ios::in);if(!file){cout<<"abc.txtcan’topen",<<endl;abort();}charch;inti=O;while(!file.eof()){file.get(ch);i++;}file.close();returni-1;}知識點解析:本題主要考查考生對文件相關操作的熟練程度。首先先定義文件流類的變量,然后使用該對象的open方法打開一個文件,接著使用while循環(huán)和getch方法每次讀入一個字符并統(tǒng)計字符個數(shù),最后使用close方法關閉文件,返回i值。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的工程test5_3。此工程包含一個源程序文件test5_3.cpp,其中定義了一個類Pn,用于求n!。請按要求完成下列操作,將程序補充完整。(1)定義私有數(shù)據(jù)成員value(存放n)和fact(存放n!),它們都是ht型的數(shù)據(jù)。請在注釋“//**1**”之后添加適當?shù)恼Z句。(2)完成默認構造函數(shù)Pn的定義,使Fn對象的數(shù)據(jù)成員value值為i,fact值為1。請在注釋“//**2**”之后添加適當?shù)恼Z句。(3)完成函數(shù)Cal的定義,該函數(shù)計算value的階乘,并將運算結果保存在fact中,要求使用while循環(huán)實現(xiàn)。請在注釋“//**3**”之后添加適當?shù)恼Z句。(4)將主函數(shù)補充完整,直接調用類的成員函數(shù),在界面上輸出value的階乘值。請在注釋“//**4**”之后添加適當?shù)恼Z句。注意;除在指定位置添加語句之外,請不要改動程序中的其他內容。源程序文件test5_3.cpp清單如下:#include<iostream.h>classFn{//**1**public:Fn(inti);voidCal();voiddisp();};Fn::Fn(inti){//**2**}voidFn::Cai(){//**3**fact*=i--;}voidFn::disp(){cout<<value<<"!="<<fact<<endl;}voidmain(){intvalue;cout<<"Enterthevalue:";cin>>value;FnA(value);//**4**}標準答案:(1)intvalue;intfact;(2)value=i;fact=1;(3)inti=value;while(i>1)(4)A.Cal();A.disp();知識點解析:主要考查考生對類和對象的綜合掌握,該題涉及類的成員對象與成員函數(shù)的定義,類成員函數(shù)的外部調用等知識點。注意(3)中while語句的使用,當滿足括號中表達式的條件時,就一直執(zhí)行后面或者后面花括號中的語句,國家二級(C++)機試模擬試卷第4套一、程序改錯題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程test38_1,此工程包含一個源程序文件test38_1.cpp,但該程序運行有問題,請改正函數(shù)中的錯誤,使該程序的輸出結果為:2isafactorof10源程序文件test38_1.cpp清單如下:#include<iostream.h>classmyclass{/*****************found*****************/intn,dpublic:myclass(inti,intj){n=i;d=j;}friendintfactor(myclassob);};/*****************found*****************/intmyclass::factor(myclassob){/*****************found*****************/if(ob.n%ob.d)return1;elsereturn0;}voidmain(){myclassob1(10,2),ob2(13,3);if(factor(ob1))cout<<"2isafactorof10\n";if(factor(ob2))cout<<"3isnotafactorof13\n";}標準答案:(1)錯誤:intn,d正確;intn,d;(2)錯誤:intmyclass::factor(myclassob)正確:intfactor(myclassob)(3)錯誤:if(ob.n%ob.d)正確:if(ob.n%ob.d))知識點解析:(1)主要考查考生對于變量定義的理解,同類型的變量定義中間使用逗號分開,同時可以進行初始化,但是在整個定義的結尾必須使用分號,這是C++的規(guī)定:(2)主要考查考生是否掌握了友元函數(shù)的定義,友元是在類的內部聲明,類的外部實現(xiàn)的一種特殊的函數(shù),它可以訪問類內的所有成員,不過在類外的實現(xiàn)和調用的時候均不需要使用作用域符號“::”限制:(3)主要考查考生對于if條件語句的掌握,只有括號內的條件為真,即值為1時,才執(zhí)行if后面的語句,根據(jù)題目要求應該執(zhí)行的是對象ob1,即2可以整除10,所以應該定義函數(shù)factor的返回值為能整除返回1,否則為0,而能夠整除即取余運算值為0,所以在判斷前應該加上非運算。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請編寫函數(shù)fun(),該函數(shù)的功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次放到一維數(shù)組中。例如:二維數(shù)組中的數(shù)據(jù)為333333334444444455555555則一維數(shù)組中的內容應是334455334455334455334455。注意:部分源程序以存在文件test_2.cpp中。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。文件test39_2.cpp的內容如下:#include<stdio.h>#include<iostream.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}voidmain(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;cout<<"Thematrix:\n"for(i=0;i<3;i++){for(j=0;j<4;j++cout<<w[i][j];cout<<endl;}fun(w,a,&n,3,4);cout<<"TheAarray:\n";for(i=0;i<n;i++)cout<<a[i];cout<<"\n\n";}標準答案:voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(j=0;j<nn;j++)for(i=0;i<mm;i++){b[*n]=*(*(s+i)+j);*n=*n+1;}}知識點解析:一個二維數(shù)組的存儲可以理解為按行進行存儲的—個—維數(shù)組,但本題中的二維數(shù)組要求按列進行存儲。根據(jù)在主函數(shù)中的調用情況,可以看出,指針數(shù)組s[10]實質上是用來存放二維數(shù)組中各行的首地址,b是用來存放最終二維數(shù)組按列處理完畢后的一個一維數(shù)組,第3個參數(shù)之所以要用“&n”,目的是為了能在函數(shù)中直接改變其值。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的工程test37_3。此工程包含一個test37_3.cpp,其中定義了類Letter和Number以及Grid,其中Grid類由Letter類和Number類public派生,但三個類的定義并不完整。請按要求完成下列操作,將程序補充完整。(1)添加類Letter的帶一個參數(shù)c的構造函數(shù),c是char型的數(shù)據(jù),默認值為’A’,該函數(shù)把參數(shù)c的值賦給類的保護成員ch,請在注釋“//**1**”之后添加適當?shù)恼Z句。(2)添加類Number的帶一個參數(shù)n的構造函數(shù),n是int型的數(shù)據(jù),默認值為0,該函數(shù)把參數(shù)n的值賦給類的保護成員num,請在注釋“//**2**”之后添加適當?shù)恼Z句。(3)添加派生類Grid構造函數(shù)的定義,傳入的參數(shù)為char型的c和血型的n,并將其分別賦值給基類的ch和num,請在注釋“//**3**”之后添加適當?shù)恼Z句。(4)完成派生類Grid的友元函數(shù)——“<<”運算符重載的定義,使其以格式“[g.ch,g.num]”輸出,請在注釋“//**4**”之后添加適當?shù)恼Z句。源程序文件test37_3.cpp清單如下:#include<iostream.h>classLetter{protected:charch;public://**1**};classNumber{protected:intnum;public://**2**};classGrid:publicLetter,publicNumber{public://**3**friendostream&operator<<(ostream&o,Grid&g);};//**4**{o<<"["<<g.ch<<","<<g.num<<"]";returno;}intmain(){Gridg(’C’,3);cout<<"Gridreference:"<<g<<end1;return0;}標準答案:(1)Letter(charc=’A’){ch=c;}(2)Number(intn=0){num=n;}(3)Grid(charc=’A’,intn=0):Letter(c),Number(n){}(4)ostream&operator<<(ostream&o,Grid&g)知識點解析:主要考查考生對于類和派生類的構造函數(shù)的定義以及重載為友元的運算符函-數(shù)的定義的掌握,其中(3)使用了參數(shù)列表進行變量賦值,這是派生類構造函數(shù)中經常使用的,(4)對于友元函數(shù)在類體外的定義不需要使用作用域符,而ostream類的對象引用可直接使用原來意義的符號“<<”進行輸出。國家二級(C++)機試模擬試卷第5套一、程序改錯題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程test13_1,此工程包含一個源程序文件test13_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使該程序的輸出結果如下:n=2n=5n=7源程序文件test13_1清單如下:#include<iostream.h>classSample{intn;public:/***************found************+***/Sample()Sample(inti){n=i;}/*****************found********+**********/voidadd(Samples1,Samples2)/*****************found****************/{this.n=s1->n+s2.n;}voiddisp(){cout<<"n="<<n<<endl;}};voidmain(){Samples1(2),s2(5),s3;s3.add(&s1,s2);s1.disp();s2.disp();s3.disp();}標準答案:(1)錯誤:Sample()正確:Sample(){}(2)錯誤:voidadd(Samples1,Samples2)正確:voidadd(Sample*s1,Samples2)(3)錯誤:this.n=s1->n+s2.n;正確:this->n=s1->n+s2.n;知識點解析:(1)主要考查考生對于類的成員函數(shù)定義的掌握,應該使用1)作為空的函數(shù)體,這是不能省略的;(2)主要考查考生對于指針調用的掌握,根據(jù)函數(shù)體中對于s1的使用可以看出,它是一個指針類型的變量,調用時實參應該使用“*”,形參使用“&”;(3)主要考查this指針的使用,this是指向當前對象的指針,應該使用“->”訪問成員。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請編寫一個函數(shù)voidswap(int*x,int*y),用來交換兩個數(shù)的值。注意:部分源程序已存在文件test14_2.cpp中。請勿修改主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)swap的花括號中填寫若干語句。文件test14_2.cpp的內容如下:#include<iostream.h>voidswap(int*x,int*y);voidmain(){inta=1,b=3;swap(&a,&b);cout<<"a="<<a<<""<<"b="<<b<<endl;}voidswap(int*x,int*y){}標準答案:voidswap(int*x,int*y)inttemp;temp=*x;*x=*y;*y=temp;}知識點解析:本題考查的是考生利用基本控制語句解決實際問題的能力。swap函數(shù)可以交換兩個數(shù)的值。利用指針來交換變量的值是必須掌握的。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的工程test12_3,此工程包含一個test12_3.cpp,其中定義了類Base和類A,類A公有繼承Base,但這兩個類的定義都并不完整。請按要求完成下列操作,將程序補充完整。(1)定義枚舉類型變量en,它包含兩個枚舉符front和back,請在注釋“//**1**”之后添加適當?shù)恼Z句。(2)在類Base中添加常成員虛函數(shù)voidE()的定義,該函數(shù)輸出“InBaseE!”,請在注釋“//**2**”之后添加適當?shù)恼Z句。(3)在類A中添加常成員虛函數(shù)voidE()的定義,該函數(shù)先調用基類中的虛函數(shù)E()再輸出“InAE!”,請在注釋“//**3**”之后添加適當?shù)恼Z句。(4)完成類A構造函數(shù)的定義,請使用參數(shù)列表的形式初始化類A的成員,并輸出“Aconstructor.”,請在注釋“//**4**”之后添加適當?shù)恼Z句。輸出結果如下:Baseconstructor.Aconstructor.InBaseE!InAE!InBaseP!InA!1Adestructor.Basedestructor.注意:除在指定的位置添加語句外,請不要改動程序中的其他語句。源程序文件test12_3.cpp清單如下:#include<iostream.h>//**1**classBase{protected:intb1;intb2;public:Base();~Base();intGetb1()const{returnb1;}voidSetb1(intx){b1=x;}intGetb2()const{returnb2;}voidSetb2(inty){b2=y;}voidPrint()const{cout<<"InBaseP!"<<end1;}//**2**};Base::Base():b1(1),b2(5){cout<<"Baseconstructor."<<endl;}Base::~Base(){cout<<"Basedestructor."<<endl;}classA:publicBase{protected:enenA;public:A();~A();enGetColor()const{returnenA;}voidSetColor(encolor){enA=color;}voidInA(){cout<<"InA!"<<endl;}//**3**{Base::E();cout<<"InAE!"<<endl;}};//**4**{cout<<"Aconstructor."<<endl;}A::~A(){cout<<"Adestructor."<<endl;}voidmain(){Aa1;a1.E();cout<<endl;a1.Print();a1.InA();cout<<a1.Getbl()<<endl;}標準答案:(1)enumen{front,back};(2)virtualvoidE()Const{cout<<"InBaseE!"<<endl;}(3)virtualvoidE()const(4)A::A():enA(front)知識點解析:主要考查考生對于枚舉和虛函數(shù)的定義的掌握,注意(1)中枚舉類型使用enum關鍵字定義,它實際上就是一個有名字的常量,定義格式如下:enum枚舉名{枚舉表},(2)中常成員函數(shù)的定義格式中const的位置不能隨便改動,因為const關鍵字是修飾其右側文字的,(3)中調用基類函數(shù)E的方法Base::E()中使用了作用域符。國家二級(C++)機試模擬試卷第6套一、程序改錯題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程ms9_1,此工程包含一個源程序文件test9_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:4,520源程序文件test9_1.cpp清單如下:#include<iostream.h>classA{protected:intn,m;public:voidset(inta,intb){m=a;n=b;)voidshow(){cout<<m<<","<<n<<endl;)/**********found*********/}classB:publicA{ints;public:voidset(){s=m*n;)voidshows(){cout<<s<<endl;)};voidmain(){Bb;/**********found**+******/b.set();b.show();b.set();/*********found**********/b.show();}標準答案:(1)錯誤:}正確:};(2)錯誤:b.set();正確:b.A::set(4,5);(3)錯誤:b.show();正確:b.shows();知識點解析:(1)主要考查考生對類定義格式的掌握,類的結尾應該使用“;”;(2)主要考查考生對基類與派生類函數(shù)調用關系的掌握,根據(jù)所要求的輸出結果,應該調用的函數(shù)為類A的set,而不是類B自身的set函數(shù),應該避免調用的二義性;(3)主要考查考生對繼承與派生的理解,由所要求輸出結果可知正確:b.shows()。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請編寫一個函數(shù)inlinelongsum(intn),用遞歸函數(shù)完成運算:sum(n)=1*1+2*2+…n*n,遞歸表達式為sum(n)=sum(n-1)+n2。注意:部分源程序已存在文件test10_2.cpp中。請勿修改主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)sum的花括號中填寫若干語句。文件test10_2.cpp的內容如下:#include<iostream.h>inlinelongsum(intn){}voidmain(){intn;cout<<"輸入n:";cin>>n;cout<<"結果為:"<<sum(n)<<endl;}標準答案:inlinelongsum(intn){if(n==1)return1;elsereturnn*n+sum(n-1);}知識點解析:本題考查的是考生對遞歸函數(shù)掌握的熟練程度。遞歸的終止條件為n=1時,值為1。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的工程test8_3,此工程包含一個源程序文件test8_3.cpp,該文件設計了用于輸出乘法九九表的類。請認真閱讀已有的代碼,按要求完成下列操作,將程序補充完整。(1)定義類Table的私有數(shù)據(jù)成員x和y,分別用于表示九九表中的兩個乘數(shù)(x*y),它們都是int型的數(shù)據(jù)。請在注釋“//**1**”之后添加適當?shù)恼Z句;(2)完成類Table的成員函數(shù)prin()的定義,該函數(shù)以“x*y=z”的格式打印出九九表中的一個乘法算式,請使用格式化輸出函數(shù)prinff實現(xiàn),在注釋“//**2**”之后添加適當?shù)恼Z句;(3)完成類Table9的成員函數(shù)print()的定義,該函數(shù)調用基類Table的print()函數(shù),將九九表輸出到屏幕,請在注釋“//**3**”之后添加適當?shù)恼Z句;(4)補充主函數(shù),在屏幕上輸出九九表,以便測試所定義的類的正確性。請在注釋“//**4**”之后添加適當?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。源程序文件test8_3.cpp清單如下:#include<iostream.h>#include<stdio.h>classTable{//**1**intz;public:voidprint(intx,inty,intz);};voidTable::print(intx,inty,intz){//**2**}classTable9:publicTable{public:voidprint();};voidTable9::print(){//**3**intx,y,z;for(i=1;i<1O;i++){for(j=1;j<i+1;j++){x=i;y=j;z=i*j;Table::print(y,x,z);}printf("\n");}}main(){//+*4**return0;}標準答案:(1)intx;inty;(2)printf("%d*%d=%d",x,y,z);if(z<10)printf("");(3)inti,j;(4)Table9t_9;t_9.print();知識點解析:主要考查考生將具體問題抽象為類,將類的定義補充完整,并進行類定義測試的能力。注意(2)中格式化輸出函數(shù)pnnfl的使用格式,%d代表輸出的為整型。國家二級(C++)機試模擬試卷第7套一、選擇題(本題共37題,每題1.0分,共37分。)1、某二叉樹有5個度為2的結點及3個度為l的結點,則該二叉樹中結點個數(shù)共有()個。A、3B、6C、10D、14標準答案:D知識點解析:在二叉樹中,度為0的結點數(shù)是度為2的結點數(shù)加1,故二叉樹中結點數(shù)的總和為度為0的結點數(shù)、度為1的結點數(shù)及度為2的結點數(shù)三者相加,得出結果為14個結點。2、程序流程圖中的菱形框表示的是()。A、事實描述B、行動方案C、邏輯判斷D、流動方向標準答案:C知識點解析:繪制流程圖時,橢圓形表示事實描述、矩形表示行動方案、菱形框表示邏輯判斷、箭頭代表流動方向。3、軟件開發(fā)過程主要分為需求分析、設計、編碼與測試4個階段。其中,產生“軟件需求規(guī)格說明書”的階段是()。A、需求分析B、軟件設計C、軟件編碼D、軟件測試標準答案:A知識點解析:需求分析階段的工作主要包括需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審4個方面,產生的主要文檔為軟件需求規(guī)格說明書,它可以為用戶、分析人員和設計人員之間的交流提供方便,直接支持目標軟件系統(tǒng)的確認,也可以作為控制軟件開發(fā)進程的依據(jù)。4、在數(shù)據(jù)庫技術中,實體集之間的聯(lián)系可以是一對一或一對多的,那么“學生”和“可選課程”的聯(lián)系為()。A、一對一B、多對多C、一對多D、無聯(lián)系標準答案:B知識點解析:一名學生可以選擇多門課程,一門課程也可以由多名學生選擇,因此是多對多的聯(lián)系。5、人員基本信息一般包括身份證號、姓名、性別、年齡等。其中可以做主關鍵字的是()。A、身份證號B、姓名C、性別D、年齡標準答案:A知識點解析:主關鍵字是表中區(qū)別不同的記錄的標識,在該表中只有身份證號能具有這個作用,所以用其作為主關鍵字。6、若表達式“(x+(y-z)*(m/n))+3”中的變量均為doublc型,則表達式值的類型為()。A、doubleB、整型C、double或整型D、無法判斷標準答案:A知識點解析:表達式左邊為double型,右邊為整型,double型和整型相加仍為double型。7、有如下循環(huán)語句:for(inti=50;i>20;i-=2)cout<A、2次B、10次C、15次D、20次標準答案:C知識點解析:i從50,48,46,…到22,一共執(zhí)行15次。8、利用表達式a[i]可以訪問int型數(shù)組a中下標為i的元素。在執(zhí)行了語句“int*p=a;”后,利用指針p也可訪問該元素,相應的表達式是()。A、int*pB、int*aC、p+iD、*(p+i)標準答案:D知識點解析:p指向數(shù)組的首地址,p+i指向數(shù)組第i個元素的地址。9、一個隊列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F(xiàn),5,4,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為()。A、5,4,3,2,1,A,B,C,D,E,F(xiàn)B、1,2,3,4,5,F(xiàn),E,D,C,B,AC、A,B,C,D,E,F(xiàn),5,4,3,2,1D、1,2,3,4,5,A,B,C,D,E,F(xiàn)標準答案:C知識點解析:隊列是先進先出的。10、設:二叉樹如圖所示,對該二叉樹進行后序遍歷的結果為()。A、EDBGHFCAB、ABDECFGHC、ACFGHBDED、GHFCAEDB標準答案:A知識點解析:先遍歷左子樹,然后遍歷右子樹,最后遍歷訪問根結點,各子樹都是同樣的遞歸遍歷。11、軟件的組成不包括()。A、代碼B、數(shù)據(jù)C、程序D、文檔標準答案:A知識點解析:參考軟件的定義。12、有一個學生選課的關系,其中學生的關系模式為:學生(學號、姓名、班級、年齡),課程的關系模式為課程(課號、課程名、學時),其中兩個關系模式的鍵分別是學號和課號,則課程的唯一標識是()。A、學號B、姓名C、課程名D、課號標準答案:D知識點解析:課號是課程的唯一標識,即主鍵。13、一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則后序遍歷結果為()。A、CFAEBDB、DEBFCAC、FCEDBAD、DEBCFA標準答案:B知識點解析:對于這類題目,一般通過前序遍歷的結果來找根結點,用中序遍歷的結構找分支結點,通過畫出該二叉樹可得到結構。14、對軟件設計的最小單位(模塊或程序單元)進行的測試通常稱為()。A、單位測試B、單元測試C、程序測試D、軟件測試標準答案:B知識點解析:對模塊或函數(shù)進行測試稱為單元測試,對整個系統(tǒng)進行測試就是系統(tǒng)測試。15、實體完整性約束要求關系數(shù)據(jù)庫中元組的屬性值不能為空的是()。A、外鍵值B、關鍵字C、主鍵值D、外碼標準答案:C知識點解析:在關系模式中,主關鍵字作為唯一標志,而主關鍵字的屬性(稱為主屬性)不能取空值,否則表明關系模式中存在著不可標識的實體,這與現(xiàn)實世界是不符合的。16、在關系A(S,SN,E)和關系B(E,CN,NM)扣,A的主關鍵字是S,B的主關鍵字是E,則關系A的外碼是()。A、SB、SNC、NMD、E標準答案:D知識點解析:外碼用于建立和加強兩個關系之間的連接,通過將關系中主鍵值的一列或多列屬性添加到另一個關系中,可建立兩個關系之間的聯(lián)系,這個列屬性稱為第二關系的外碼。17、若有定義語句“intx=10,y=20,z=20;”,則表達式“x>z&&y==z”的值為()。A、0B、10C、20D、40標準答案:A知識點解析:該題考查了關系運素符。x>z值為0,y==z值為1,兩者結果為0。18、有如下語句序列:intx=-10;while(++x){}運行時,while循環(huán)體的執(zhí)行次數(shù)為()。A、0B、1C、9D、10標準答案:C知識點解析:考查了x++和++x之間的區(qū)別,前者是先用x后再加1,后者是先給x加1再使用x。從-9到-1執(zhí)行9次后循環(huán)結束。19、有如下語句序列:intarr[2][2]={{9,8},{7,6}};int*p=arr[0]+1;cout<<*p<A、6B、7C、8D、9標準答案:c知識點解析:該題考查了數(shù)組和指針之間的轉化,數(shù)組的第1個元素地址就是指針的首地址,*p=&a[0][0],則a[m][n]=*(p+m)+n。20、函數(shù)fun的功能是將一個數(shù)字字符串轉換為一個整數(shù),則橫線處應填()。intfun(char*str){intnum=0;while(*str){num*=10:num+=_________:str++:}returnnum;}A、char*str)B、(*str)C、(0*str)D、(*p-’0’)標準答案:D知識點解析:每次循環(huán)都需要得出指針當前的數(shù)字值,則由字符轉化為數(shù)字的表達式是“*p-’0’”。21、若要將函數(shù)“voidFriFun(){};”聲明為類MyClass的友元函數(shù),則應在類MyClass的定義中加入語句()。A、voidFriFun(){};B、voidFriFun();C、friendvoidFriFun();D、friendvoidFriFun(){};標準答案:C知識點解析:友元函數(shù)的聲明方式是friend返回值類型函數(shù)名稱(形參列表)。22、下列程序的輸出結果為012,根據(jù)注釋可知橫線處應填()。#includeusingnamespacestd;classTest{public:Test(inta){data=a;}~Test(){}voidprint(){cout<A、{Test(1),Test(2),Test(3)}B、{Test(0),Test(1),Test(2)}C、{cout<D、(inti=0;i<3;i++)標準答案:B知識點解析:簡單的類對象的實例化,只需要對該類數(shù)組進行實例化即可。23、要使程序的輸出結果為Base,則在橫線處填寫的派生類Derived的繼承方式是()。#includeusingnamespacestd;classBase{public:voidprint(){cout<<"Base";}};classDerived:Base{};intmain(){Derivedd;d.print();return0;}A、publicB、iostreamC、toutD、class標準答案:A知識點解析:考查了類的繼承方式,派生類訪問基類的成員public函數(shù),則繼承方式也應該是public。24、下列程序的輸出結果為1,2.3,2,4.6,橫線處應填()。#includeusingnamespacestd;classBase{public:Base(int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年枸杞采摘采摘技術與設備租賃合同3篇
- 二零二五年度網(wǎng)絡安全人才培養(yǎng)與輸送合同2篇
- 二零二五版果園果樹種植與農業(yè)技術培訓服務合同樣本3篇
- 二零二五年度采砂廠承包綜合效益評估合同范本3篇
- 二零二五版智能化住宅項目施工及造價管理合同3篇
- 二零二五年度環(huán)保污水處理設備采購補充合同范本2篇
- 2025年新型城鎮(zhèn)化項目場地租賃與開發(fā)建設合同范本2篇
- 二零二五版環(huán)保設施投資合作合同3篇
- 二零二五版交通事故車輛損失賠償合同3篇
- 二零二五版特種車輛租賃及操作培訓合同3篇
- 寒潮雨雪應急預案范文(2篇)
- DB33T 2570-2023 營商環(huán)境無感監(jiān)測規(guī)范 指標體系
- 上海市2024年中考英語試題及答案
- 房屋市政工程生產安全重大事故隱患判定標準(2024版)宣傳海報
- 垃圾車駕駛員聘用合同
- 2025年道路運輸企業(yè)客運駕駛員安全教育培訓計劃
- 南京工業(yè)大學浦江學院《線性代數(shù)(理工)》2022-2023學年第一學期期末試卷
- 2024版機床維護保養(yǎng)服務合同3篇
- 《論拒不執(zhí)行判決、裁定罪“執(zhí)行能力”之認定》
- 工程融資分紅合同范例
- 2024年貴州省公務員錄用考試《行測》真題及答案解析
評論
0/150
提交評論