國家二級(C++)筆試模擬試卷5(共439題)_第1頁
國家二級(C++)筆試模擬試卷5(共439題)_第2頁
國家二級(C++)筆試模擬試卷5(共439題)_第3頁
國家二級(C++)筆試模擬試卷5(共439題)_第4頁
國家二級(C++)筆試模擬試卷5(共439題)_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級(C++)筆試模擬試卷5(共9套)(共439題)國家二級(C++)筆試模擬試卷第1套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是A、線性鏈表B、棧C、循環(huán)鏈表D、順序表標準答案:B知識點解析:暫無解析2、具有3個節(jié)點的二叉樹有A、2種形態(tài)B、4種形態(tài)C、7種形態(tài)D、5種形態(tài)標準答案:D知識點解析:暫無解析3、設有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為A、ZBTYCPXAB、ATBZXCYPC、ZBTACYXPD、ATBZXCPY標準答案:B知識點解析:暫無解析4、結(jié)構(gòu)化程序設計主要強調(diào)的是A、程序的規(guī)模B、程序的效率C、程序設計語言的先進性D、程序易讀性標準答案:D知識點解析:暫無解析5、程序的3種基本控制結(jié)構(gòu)是A、過程、子過程和分程序B、順序、選擇和重復C、遞歸、堆棧和隊列D、調(diào)用、返回和轉(zhuǎn)移標準答案:B知識點解析:暫無解析6、下列敘述中,不屬于測試的特征的是A、測試的挑剔性B、完全測試的不可能性C、測試的可靠性D、測試的經(jīng)濟性標準答案:C知識點解析:暫無解析7、需求分析中開發(fā)人員要從用戶那里了解A、軟件做什么B、用戶使用界面C、輸入的信息D、軟件的規(guī)模標準答案:A知識點解析:暫無解析8、下列關系模型中,能使經(jīng)運算后得到的新關系中屬性個數(shù)多于原來關系中屬性個數(shù)的是A、選擇B、連接C、投影D、并標準答案:B知識點解析:暫無解析9、下列敘述中,正確的是A、用E-R圖能夠表示實體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系B、用E-R圖只能表示實體集之間一對一的聯(lián)系C、用E-R圖只能表示實體集之間一對多的聯(lián)系D、用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關系數(shù)據(jù)模型標準答案:A知識點解析:暫無解析10、“年齡在18~25之間”這種約束是屬于數(shù)據(jù)庫當中的A、原子性措施B、一致性措施C、完整性措施D、安全性措施標準答案:C知識點解析:暫無解析二、選擇題(本題共23題,每題1.0分,共23分。)11、以下哪個特征不是面向?qū)ο笏枷胫械闹饕卣?A、多態(tài)B、繼承C、封裝D、垃圾回收標準答案:D知識點解析:暫無解析12、以下哪個不是C++語言中的有效標識符?A、34aB、_ABC、A_BD、A25標準答案:A知識點解析:暫無解析13、C++中運算符優(yōu)先級由高到低排列正確的是A、::+++||B、<*||,C、sizeof%+::D、,&&newsizeof標準答案:A知識點解析:暫無解析14、下面程序的運行結(jié)果是#include"iostream.h"#definesum(a,b)a*bvoidmain(){intx;X=sum(1+2,3);cout<<x;}A、0B、9C、7D、5標準答案:C知識點解析:暫無解析15、以下for語句中不是死循環(huán)的是A、for(inti=0;i<1;++i);B、for(inti=0;;++i);C、for(inti=1;i>0;++i);D、for(;;);標準答案:A知識點解析:暫無解析16、關于continue語句敘述不正確的是A、continue語句用于循環(huán)體中,結(jié)束循環(huán)B、continue語句用于循環(huán)體中,它使執(zhí)行流跳出循環(huán)體中尚未執(zhí)行的語句,并進行下一循環(huán)判斷C、continue可以用于if語句中D、continue語句不能代替break語句標準答案:A知識點解析:暫無解析17、以下定義數(shù)組中錯誤的是A、inta[10];B、inta[2][120];C、inta[20][];D)inta[];D、C標準答案:知識點解析:暫無解析18、下面程序的執(zhí)行結(jié)果是#include"iostream.h"voidmain(){int*p,r;p=newint;*p=20;r=sizeof(*p);cout<<r<<endl;deletep;}A、程序錯誤B、內(nèi)存為20地址的大小C、20D、4標準答案:D知識點解析:暫無解析19、下面程序錯誤的語句是#include"iostream.h"①voidmain()②{③intA=0;④int&B;⑤B=A;⑥cout<<B;⑦cout<<A;⑧}A、②B、③C、④D、⑥標準答案:C知識點解析:暫無解析20、函數(shù)inttest(inta,intb=1,intc=0),下列調(diào)用不合法的個數(shù)是test(0);test(0,0);test();test(0,0,0);A、0B、1C、2D、3標準答案:C知識點解析:暫無解析21、C++語言中類定義中默認的訪問權(quán)限是A、publicB、protectedC、privateD、default標準答案:C知識點解析:暫無解析22、C++語言中關于構(gòu)造函數(shù)的說法正確的是A、構(gòu)造函數(shù)的函數(shù)名不必和類名相同B、構(gòu)造函數(shù)只能有一個C、每個類必定有構(gòu)造函數(shù)D、構(gòu)造函數(shù)必有返回值標準答案:C知識點解析:暫無解析23、關于構(gòu)造函數(shù)A()的拷貝構(gòu)造函數(shù)正確的是A、A(A*B);B、A(AB);C、A(A&B);D、A(A);標準答案:C知識點解析:暫無解析24、下面程序的執(zhí)行結(jié)果為#includ"iostream"usingnamespacestd;classA{inta;public:voidSeta(intx){a=x;}voidDisplay_a(){cout<<a<<endl;}};classB{intb;public:voidSetb(intx){b=x;}voidA、輸出為223B、有錯誤在第5行C、輸出為123D、有錯誤在第7行標準答案:D知識點解析:暫無解析25、虛函數(shù)必須是類的A、成員函數(shù)B、友元函數(shù)C、構(gòu)造函數(shù)D、析構(gòu)函數(shù)標準答案:A知識點解析:暫無解析26、多態(tài)性指的是A、以任何方式調(diào)用一個虛函數(shù)B、以任何方式調(diào)用一個純虛函數(shù)C、借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個虛函數(shù)D、借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個純虛函數(shù)標準答案:C知識點解析:暫無解析27、不能重載的運算符是A、newB、sizeofC、.*D、++標準答案:C知識點解析:暫無解析28、只能作為成員函數(shù)重載的是A、=B、++C、*D、new標準答案:A知識點解析:暫無解析29、關于模板,下列說法不正確的是A、用類模板定義一個對象時,不能省略實參B、類模板只能有虛擬類型參數(shù)C、類模板本身在編譯中不會生成任何代碼D、類模板的成員函數(shù)都是模板函數(shù)標準答案:B知識點解析:暫無解析30、語句cout<<setprecision(2)<<1024.4567;的輸出結(jié)果為A、1024.4567B、1024C、1024.45D、le+003標準答案:D知識點解析:暫無解析31、下面程序的結(jié)果為#include"iostream.h"voidchange(inta,intB){inttemp;temp=a;a=b;b=temp;}voidmain(){intm,n;m=8;n=9;change(m,n);cout<<m<<""<<n<<endl;}A、89B、98C、程序有錯誤D、99標準答案:A知識點解析:暫無解析32、下面程序的結(jié)果是#include"iostream.h"voidmain(){char*str;Str="test!";cout<<str[5];}A、程序錯誤B、!C、’\0’D、為空字符標準答案:D知識點解析:暫無解析33、下面程序輸出的結(jié)果為#include"iostream.h”classA{public:A(){cout<<"CLASSA"<<endl;}~A(){}};classB:publicA{public:B(){cout<<"CLASSB"<<endl;}~B(){}};voidmain(){A*p;p=newB;A、CLASSACLASSBCLASSBCLASSBB、CLASSACLASSBCLASSACLASSBC、CLASSACLASSBCLASSBD、CLASSACLASSB標準答案:C知識點解析:暫無解析34、C++語言函數(shù)中不能由系統(tǒng)自動生成的是A、析構(gòu)函數(shù)B、構(gòu)造函數(shù)C、內(nèi)聯(lián)函數(shù)D、復制構(gòu)造函數(shù)標準答案:C知識點解析:暫無解析三、公共基礎填空題(本題共5題,每題1.0分,共5分。)35、在結(jié)構(gòu)化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。標準答案:加工知識點解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程,其中的每一個加工對應一個處理模塊。36、結(jié)構(gòu)化程序設計的3種基本結(jié)構(gòu)分別是順序、選擇和______。標準答案:重復(或循環(huán))知識點解析:結(jié)構(gòu)化程序設計包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復結(jié)構(gòu)(循環(huán)結(jié)構(gòu))。利用這3種結(jié)構(gòu)就足以表達出各種其他結(jié)構(gòu)形式的程序設計方法,其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。37、二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。標準答案:順序存儲(順序方式存儲)知識點解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。38、一個模塊直接調(diào)用的其他模塊的個數(shù)稱為______。標準答案:扇出知識點解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。39、數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。標準答案:數(shù)據(jù)庫管理系統(tǒng)知識點解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構(gòu),它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。四、填空題(本題共10題,每題1.0分,共10分。)40、在多繼承的基類和派生類中同時出現(xiàn)______存在二義性。標準答案:同名函數(shù)知識點解析:如果一個派生類有多個直接基類,而這些直接基類又有一個共同的基類,這樣存在的同名函數(shù)法判斷調(diào)用的確定性。即存在二義性。41、有下列程序:#include<iostream>usingnamespacestd;classTestClass1{public:TestClass1(){cout<<"A";}};classTestClass2<public:TestClass2(){cout<<"B";}};classTestClass3:publicTestClass1{TestClass2b;標準答案:ABC知識點解析:主函數(shù)中定義TestClass3對象。obj,其中TestClass3繼承于TestClass1,先初始化基類構(gòu)造函數(shù),所以輸出A。然后在TestClass3中定義TestClass2對象b,輸出B,最后派生類的構(gòu)造函數(shù)輸出C。所答案為ABC。42、編譯時的多態(tài)性可以通過使用______獲得。標準答案:虛函數(shù)和對象知識點解析:多態(tài)性是指一個接口,多種方法。而虛函數(shù)的作用是允許在派生類中重新定義與基類同名的函數(shù),并且通過基類指針或引用來訪問基類和派生類中的同名函數(shù)。通過對象名調(diào)用的虛函數(shù),可以在運行階段把虛函數(shù)和類對象“綁定”在一起。43、如果使用數(shù)組名稱為函數(shù)參數(shù),形實結(jié)合時,傳遞的是______。標準答案:地址知識點解析:此題考查的是函數(shù)參數(shù)的傳遞方式。函數(shù)參數(shù)的傳遞方式分為傳值和傳地址兩種。使用數(shù)組名作為函數(shù)參數(shù),因為數(shù)組名代表的是數(shù)組的首地址,所以傳遞的是地址。44、在類的對象被創(chuàng)建時,______函數(shù)會被自動調(diào)用。標準答案:構(gòu)造知識點解析:此題考查的是構(gòu)造函數(shù)的應用。構(gòu)造函數(shù)的作用是在對象被創(chuàng)建時利用特定的值構(gòu)造對象,構(gòu)造函數(shù)在對象被創(chuàng)建時由系統(tǒng)自動調(diào)用。45、下列程序的執(zhí)行結(jié)果是______。#include<ioStream.h>#include<iomanip.h>usingnamespacestd;voidmain(){cout<<setfill(’x’)<<setw(10);cout<<"Hello"<<end1;}標準答案:xxxxxHello知識點解析:此題考查的是I/O的格式化輸出。Setfill(’x’)表示填充字符為’x’,并且一直有效;setw(10)表示將輸入輸出的寬度設置為10,寬度設置的效果只對以此次輸入或輸出有效,在完成一個數(shù)據(jù)的輸入或輸出后,寬度自動恢復為0;題目中字符串"Hello"的寬度不夠10,所以其前面將有5個填充符’x’。46、請將下列類定義補充完整。classBase{public:voidfun(){cout<<"Base∷fun"<<end1;}};c1assDehVed:publicBase{public:voidfun(){______∥顯式調(diào)用基類的fun函數(shù)cout<<"Derived∷fun"<<endl;}};標準答案:Base∷fun();知識點解析:此題考查的是虛基類的使用。使用符號“∷”可以用來限定要訪問的成員所在的類的名稱。在派生類中對基類成員的訪問應該是唯一的,但是,多繼承情況下就需要通過使用對象作用域分辨來解決這種對基類成員訪問的二義性問題。47、有下列程序:#include<iostream>usingnamespacestd;classONE{public:virtualvoidf(){COUt<<"1";}};c1assTWO:publicONE{public:TWO(){cout<<"2";}};classTHREE:publicTWO{pub標準答案:2213知識點解析:此題考查的是派生類的構(gòu)造和析構(gòu)函數(shù)。建立TWO的對象bb時,調(diào)用TWO的構(gòu)造函數(shù),輸出“2”;THREE類又派生于TWO類,所以建立THREE類的對象cc時又會輸出“2”;ONE類的對象指針p指向了THREE類的ONE類的虛函數(shù)f(),輸出“1”;最后調(diào)用THREE類的f(),輸出“3”。故最終的輸出結(jié)果是2213。48、在聲明派生類時,如果不顯式地給出繼承方式,缺省的類繼承方式是私有繼承private。已知有如下類定義:classBase{protected:voidfun(){}};classDerived:Base{};則Base類中的成員函數(shù)fun(),在Derived類中的訪問權(quán)限是______(注意:要求填寫private、protected或public中的一項)。標準答案:private知識點解析:因為Derived類私有繼承Base類,所以Base類中的公有和保護成員成為Derived類的私有成員,Base類的保護成員在Derived類中不可訪問。因此,Base類中的保護成員函數(shù)fun()在Derived類中的問權(quán)限是private。49、已知下列程序的輸出結(jié)果是42,請將橫線處缺失的部分補充完整。#include<iostream>usingnamespacestd;classFoo{intvalue;public:Foo():value(0){}voidsetValue(intvalue){______=value;∥給Foo的數(shù)據(jù)成員value賦值}標準答案:this->value或Foo∷value知識點解析:由于Foo類的數(shù)據(jù)成員和函數(shù)的形參名稱都是value,如果在函數(shù)中直接使用value引用的是形參變量而不是Foo類的數(shù)據(jù)成員,解決辦法有兩種:一是通過this指針,在類的成員函數(shù)中this代表數(shù)所屬對象的指針,即可填this->value;二是通過作用域運算符“∷”明確指出訪問的是Foo類的成員,所以還可入Foo∷value。國家二級(C++)筆試模擬試卷第2套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、下述關于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)標準答案:A知識點解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應用服務,同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。2、在下列關系運算中,可能改變關系中屬性個數(shù)的是A、并B、差C、投影D、交標準答案:C知識點解析:投影運算是在給定關系的某些域上進行的運算。通過投影運算可以從一個關系中選擇出所需要的屬性成分,并且按要求排列成一個新的關系,而新關系的各個屬性值來自原關系中相應的屬性值。因此,經(jīng)過投影運算后,會取消某些列,即投影運算可能改變關系中屬性的個數(shù)。3、A、

B、

C、

D、

標準答案:D知識點解析:暫無解析4、A、

B、

C、

D、

標準答案:C知識點解析:暫無解析5、在數(shù)據(jù)庫設計中,將E-R圖轉(zhuǎn)換為關系模式的過程屬于()。A、需求分析階段B、邏輯設計階段C、概念設計階段D、物理設計階段標準答案:B知識點解析:暫無解析6、下列語句中,錯誤的是A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標準答案:B知識點解析:用const修飾常量就變?yōu)槌W兞?,常變量一旦被建立,就不能被更改。在被定義時就應該給常變量賦初始值,而常指針則不同,被定義后,它指向的地址不能發(fā)生改變,但是指向的地址中的數(shù)據(jù)可以改變。7、若磁盤上已存在某個文本文件,其全路徑文件名為d:\ncre\test.txt,下列語句中不能打開該文件的是A、ifstreamfile("d:\ncre\test.txt");B、ifstreamfile("d:\\ncre\\test.txt");C、ifstreamfile;file.open("d:\\ncre\\test.txt");D、ifstream*pFile=newifstream("d:\\ncre\\test.txt");標準答案:A知識點解析:文件流的打開路徑用“\\”隔開,而不是“\”,但可以用“/”隔開。8、A、

B、

C、

D、

標準答案:D知識點解析:在軟件開發(fā)的過程中,應該盡早的制定測試計劃,其中在需求分析階段制定系統(tǒng)測試計劃,在概要設計階段制定集成測試計劃,在詳細設計階段制定單元測試計劃。9、關系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是A、實體完整性約束B、參照完整性約束C、域完整性約束D、用戶自定義的完整性約束標準答案:4知識點解析:關系模型允許定義3類數(shù)據(jù)約束,它們是實體完整性約束、參照完整性約束及用戶自定義的完整性約束。其中前兩種完整性約束由關系數(shù)據(jù)庫系統(tǒng)支持,對于用戶自定義的完整性約束,則由關系數(shù)據(jù)庫系統(tǒng)提供完整性約束語言,用戶利用該語言給出約束條件,運行時由系統(tǒng)自動檢查。10、軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和A、消除軟件危機B、軟件工程管理C、程序設計自動化D、實現(xiàn)軟件可重用標準答案:2知識點解析:軟件工程的目標是,在給定的成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品?;谶@一目標,軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。二、選擇題(本題共25題,每題1.0分,共25分。)11、有以下程序:#include<iostream>usingnamespacestd;intmain(){intx=15;while(x>10&&x<50){x++;if(x/3){x++;break;}}cout<<x<<endl;return0;}執(zhí)行后的輸出結(jié)果是A、15B、16C、17D、18標準答案:C知識點解析:本題考核選擇語句與循環(huán)語句的嵌套。由程序可知,當x=16時,滿足if條件表達式,進入if分支,執(zhí)行“x++;break;",所以最后程序輸出x的值為17。12、下列數(shù)組的定義中,會產(chǎn)生錯誤的是A、inta[]={’0’,’1’,’2’,’3’,’4’,’5’,’6’);B、inta[10]={0,1,2,3,4,5,6};C、chara[5]="hello";D、chara[5]={’h’,’e’,’r’,’l’,’o’};標準答案:C知識點解析:本題考核數(shù)組的定義和初始化。下面逐項進行分析:A選項中,數(shù)組a的定義和初始化符號數(shù)組的定義和初始化語法,故正確;B選項中,數(shù)組a初始化的值雖然沒有10個,但對于少的部分,系統(tǒng)會自動補0,所以B選項中數(shù)組的定義也是正確;C選項中,數(shù)組a的長度為5,但字符串"hello"的長度為5+1=6,字符串結(jié)束符’\0’無法存儲在數(shù)組中,所以是錯誤的;D選項中,數(shù)組a的定義是正確的。13、下列說法正確的是()。A、內(nèi)聯(lián)函數(shù)在運行時是將該函數(shù)的目標代碼插入每個調(diào)用該函數(shù)的地方B、內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標代碼插入每個調(diào)用該函數(shù)的地方C、類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義D、類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關鍵字inline定義標準答案:B知識點解析:本題考查的是內(nèi)聯(lián)函數(shù)的定義,引入內(nèi)聯(lián)函數(shù)是為了解決程序中函數(shù)調(diào)用的效率問題,是以目標代碼的增加為代價換取時間的節(jié)?。灰话愫瘮?shù)在運行時被調(diào)用,而調(diào)用的內(nèi)聯(lián)函數(shù)在編譯時就被替代了,如果不加inline關鍵字,則編譯器會將在類說明部分定義的任何函數(shù)都被認定為內(nèi)聯(lián)函數(shù)。14、下列程序的輸出結(jié)果為()。#include<iostream.h)classTestClass{public:TestClass(){val++;}static,intval;};intTestClass::val=0;voidmain(){TestClasscs1;cout<<csl.val<<““;TestClasscs2;TestClasscs3,cs4;coA、03B、13C、14D、24標準答案:C知識點解析:由主函數(shù)main入手,定義TestClass類的對象cs1,執(zhí)行es1.va1,其中va1為靜態(tài)變量,根據(jù)“tntTestClass::val=0:”初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對象cs2,cs3,cs4。執(zhí)行“cout<<cs2.va1<<end1”中的val值為4,所以輸出為14。15、()既可重載為一元運算符,又可重載為二元運算符。A、“*”B、“=”C、“=”和“*”D、“*”和“*++”標準答案:A知識點解析:此題考查的是運算符的有關概念?!?”是二元運算符,既可以用于間接訪問也可用于兩數(shù)乘;而“=”和“++”都是一元運算符。16、軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測試數(shù)據(jù)屬于A、硬件資源B、通信資源C、支持軟件D、輔助資源標準答案:D知識點解析:軟件測試過程中,輔助資源包括測試用例(測試數(shù)據(jù))、測試計劃、出錯統(tǒng)計和最終分析報告等。17、以下程序的輸出結(jié)果是()。#include<iostream.h>voidmain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}cout<<a<<end1;return;}A、31B、13C、10D、20標準答案:1知識點解析:暫無解析18、關于語句#include<iostream>usingnamespacestd;voidmain(){cout<<100.8989663<<’’;com<<fixed<<100.8989663<<’’;cout<<scientific<<100.8989663<<’’;}的輸出結(jié)果為()A、100.899100.8989661.008990e+002B、100.8989663100.8989661.008990e+002C、100.899100.8989661.008989e+002D、100.899100.89896631.008989e+002標準答案:1知識點解析:暫無解析19、下述靜態(tài)數(shù)據(jù)成員的特性中,()是錯誤的。A、說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符staticB、靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C、引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符D、靜態(tài)數(shù)據(jù)成員不是所有對象所共用的標準答案:2知識點解析:暫無解析20、下列程序用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為()。#include<conio.h>#include<iostream.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}voidmain(){inta[10]=(876,675,896,101,301,401,980,431,451,777);intk;fun(a,10,&k);cout<<k<<’,’<<a[k];}A、7,431B、6C、980D、6,980標準答案:8知識點解析:暫無解析21、在下面關于函數(shù)的描述中錯誤的是______。A、在一個源文件中,如果函數(shù)定義在先,調(diào)用在后,則不必聲明該函數(shù)B、如果一個函數(shù)在一個源文件里定義,而調(diào)用在另一個源文件中,則必須在調(diào)用之前聲明該函數(shù)C、函數(shù)的聲明應使用函數(shù)原型D、在一個源文件中,如果自定義函數(shù)調(diào)用在先,定義在后,則不必聲明該函數(shù)標準答案:8知識點解析:暫無解析22、以下不正確的是______。A、語句for(i=0:;i++)表示無限循環(huán)B、for(;;)表示無限循環(huán)C、for()也表示無限循環(huán)D、while(1)表示無限循環(huán)標準答案:4知識點解析:暫無解析23、在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。A、控制程序的執(zhí)行順序B、模塊之間的調(diào)用關系C、數(shù)據(jù)的流向D、程序的組成成分標準答案:4知識點解析:在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示數(shù)據(jù)的流向。24、在下面的函數(shù)聲明中,存在語法錯誤的是______。A、voidBC(inta,int)B、voidBD(int,int)C、voidBE(int,int=5)D、voidBF(intx;inty)標準答案:8知識點解析:D選項用“;”(分號)分隔參數(shù),所以存在語法錯誤。25、已知下列語句中的x和y都是int型變量,其中錯誤的語句是______.A、x=y++;B、x=++y;C、(x+y)++;D、++x=y;標準答案:4知識點解析:(x+y)++操作應該是,(x+y)=x+y,然后(x+y)++,這是不正確的操作,所以此題應該選擇C。26、下面不是派生類對基類的繼承方式的是()。A、privateB、publicC、staticD、protected標準答案:4知識點解析:暫無解析27、下面關于C++語言變量的敘述錯誤的是A、C++語言中變量分為auto,static,extern和register四種存儲類型B、自動變量和外部變量的作用域為整個程序C、內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)D、外部靜態(tài)變量的作用域是定義它的文件標準答案:2知識點解析:自動變量是函數(shù)體或分程序內(nèi)定義的變量,它的作用域在所定義的函數(shù)體內(nèi)或分程序體內(nèi)。28、可以用p.a(chǎn)的形式訪問派生類對象p的基類成員a,其中a是A、私有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護成員D、公有繼承的公有成員標準答案:8知識點解析:只有公有繼承的公有成員才能被派生類的對象直接訪問,其他的情況都會因為訪問權(quán)限問題產(chǎn)生錯誤。29、重載輸入流運算符<<必須使用的原型為A、ostream&operator>>(ostream&,<類名>);B、istream&operator>>(istream&,<類名>&);C、ostreamoperator>>(ostream,<類名>&);D、<類名>operator>>(istream&,<類名>&);標準答案:1知識點解析:本題考核運算符的重載。C++中重載輸入流運算符>>和輸出流運算符<<只能作為非類成員函數(shù)重載,且必須使用如下原形:istream&operator>>(istream&,<類名>&);ostream&operator<<(ostream&,<類名>);30、下列關于類概念的描述中,錯誤的是()。A、類是抽象數(shù)據(jù)類型的實現(xiàn)B、類是具有共同行為的若干對象的統(tǒng)一描述體C、類是創(chuàng)建對象的模板D、類就是C語言中的結(jié)構(gòu)類型標準答案:8知識點解析:類是創(chuàng)建對象的模板,它包含著所創(chuàng)建對象的狀態(tài)描述和方法的定義。類的完整描述包含了外部接口和內(nèi)部算法以及數(shù)據(jù)結(jié)構(gòu)的形式。31、下面程序的輸出結(jié)果為()。#include<iostream.h>classCStatic{public:CStatic(){val++;}staticintval;};intCStatic::val=0;voidmain(){CSaticcs1;cout<<cs1.va1<<"";CStaticcs2;CStaticcs3,cs4;cout<<cs2.vA、14B、24C、34D、54標準答案:1知識點解析:暫無解析32、下面程序的結(jié)果為#include<iostream.h>intc;classA{private:inta;staticintb;public:A(){a=0;c=0;}voidseta(){a++;}voidsetb(){b++;}A、121B、122C、112D、222標準答案:2知識點解析:C++語言中全局變量是任何函數(shù)都可以改變的量,靜態(tài)變量的有效范圍在定義它的類中,而普通的變量的有效性只在使用它的函數(shù)中,在本題中c為全局變量,b為靜態(tài)變量,a為普通變量,b和c在類A的對象a1和a2中都自加1。所以b,c為2,a為1。33、執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是for(inti=50;i>1;--i)cout<<’*’;A、48B、49C、50D、51標準答案:B知識點解析:本題考查的知識點是:for循環(huán)語句。for語句的執(zhí)行過程是:(1)計算第1個表達式(在本題中是“inti=50”)的值:(2)計算第2個表達式(在本題中是“i>1”)的值,如果此值不等于0(結(jié)果為真),則轉(zhuǎn)向步驟(3);否則轉(zhuǎn)向步驟(5);(3)執(zhí)行一遍循環(huán)體(在本題中是“cout<<’*’;”);(4)計算第3個表達式(在本題中是“--i”)的值,然后轉(zhuǎn)向步驟(2);(5)結(jié)束for循環(huán)。由此可見,本題循環(huán)中i從50開始逐次遞減,直到i=1時退出,而此時沒有機會執(zhí)行到循環(huán)體,因此執(zhí)行了49遍循環(huán)體。而循環(huán)體中的語句是輸出1個字符“*”,所以最終輸出了49個字符“*”,故本題應該選擇B。34、如果不使用多態(tài)機制,那么通過基類的指針雖然可以指向派生類對象,但是只能訪問從基類繼承的成員。有如下程序,沒有使用多態(tài)機制。#include<iostream>spacestd;classBase{inta,b;public:Base(intx,inty){a=x;b=y;}voidshow(){cout<<a<<’,’<<b<<endl;}};classDerived:publicBase{intc,d;public:Derived(intx,inty,intz,intm):Base(x,y){c=z;d=w;}voidshow(){cout<<c<<’,’<<d<<endl;}};intmain(){BaseB1(50,50),*pb;DerivedD1(10,20,30,40);pb=&D1;pb->show();return0;}運行時輸出的結(jié)果是A、10,20B、30,40C、20,30D、50,50標準答案:A知識點解析:本題考查的知識點是:多態(tài)性。在C++中,一個基類指針(或引用)可以用于指向它的派生類對象,而且通過這樣的指針(或引用)調(diào)用虛函數(shù)時,被調(diào)用的是該指針(或引用)實際所指向的對象類的那個重定義版本?;愔械膶嵑瘮?shù)也可以在派生類中重定義,但重定義的函數(shù)仍然是實函數(shù)。在實函數(shù)的情況下,通過基類指針(或引用)所調(diào)用的只能是基類的那個函數(shù)版本,無法調(diào)用到派生類中的重定義函數(shù)。本題中的show函數(shù)就是被重定義的實函數(shù),所以通過基類指針pb所調(diào)用的是基類的版本,即輸出a和b的值10,20。故應該選擇A。35、下列關于c++流的描述中,錯誤的是A、cout>>‘A’表達式可輸出字符AB、eof()函數(shù)可以檢測是否到達文件尾C、對磁盤文件進行流操作時,必須包含頭文件fstreamD、以los_base::out模式打開的文件不存在時,將自動建立一個新文件標準答案:A知識點解析:cout>>‘A’語句錯誤。輸出字符A的語句應為:cout<<‘A’。三、公共基礎填空題(本題共5題,每題1.0分,共5分。)36、軟件工程三要素包括方法、工具和過程,其中,______支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。標準答案:過程知識點解析:暫無解析37、在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。標準答案:log2n知識點解析:暫無解析38、執(zhí)行“cout.<<char(‘F’,-2)<<end1;”語句后得到的輸出結(jié)果為【】。標準答案:D知識點解析:根據(jù)ASCII碼的形式‘F’-2得到的值便是D。39、設一棵完全二叉樹共有700個結(jié)點,則在該二叉樹中有【】個葉子結(jié)點。標準答案:350知識點解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點。因此,設一棵完全二叉樹具有n個結(jié)點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點以及n/2-1個度為2的結(jié)點,還有1個是度為1的結(jié)點;若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結(jié)點以及[n/2]個度為2的結(jié)點,沒有度為1的結(jié)點。本題中,完全二叉樹共有700個結(jié)點,700是偶數(shù),所以,在該二叉樹中有350個葉子結(jié)點以及349個度為2的結(jié)點,還有1個是度為1的結(jié)點。本題的正確答案為350。40、在面向?qū)ο蠓椒▽W中,直接反映了用戶對目標系統(tǒng)的要求的模型是【】。標準答案:功能模型知識點解析:本題屬于記憶題,考生應掌握。四、填空題(本題共10題,每題1.0分,共10分。)41、在C++流類庫中,根基類為______。標準答案:ios知識點解析:ios是所有輸入輸出類的根基類。同時要知道,C++內(nèi)置了四個輸入輸出流對象,可以不用實例化就可以直接使用,如cin,cout,cerr,clog等。42、將以下程序?qū)懗扇窟\算表達式是【】。if(a>b)max=a;elsemax=b;標準答案:max=(a>b)?a:b知識點解析:暫無解析43、C++中封裝性、繼承性和【】是面向?qū)ο笏枷氲闹饕卣?。標準答案:多態(tài)性知識點解析:面向?qū)ο笙到y(tǒng)包含了三個特征--封裝性、繼承性和多態(tài)性,這三個特征可以很好的實現(xiàn)數(shù)據(jù)抽象,進行行為共享,完成進化求解和描述一個系統(tǒng)的確定行為。44、【】允許用戶為類定義一種模式,使得類中的某些數(shù)據(jù)成員及某些成員函數(shù)的返回位能取任意類型。標準答案:類模板知識點解析:本題考核類模板的基本概念。類模板就是一系列相關類的模型或樣板,這些類的成員組成相同,成員函數(shù)的源代碼形式相同,所不同的只是所針對的類型(成員的類型以及成員函數(shù)的參數(shù)和返回值的類型)。對于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。類模板中聲明的類稱為模板類。45、表達式c3=c1.operator+(c2)或c3=operator+(c1,c2)還可以表示為【】。標準答案:c3=c1+c2知識點解析:本題考核運算符的重載。這是運算符重載應用的兩種形式。46、【】使一個函數(shù)可以定義成對許多不同數(shù)據(jù)類型完成同一個任務。標準答案:函數(shù)模板知識點解析:本題考核函數(shù)模板與重載函數(shù)的區(qū)別。重載函數(shù)通常是基于不同的數(shù)據(jù)類型完成類似的操作;而函數(shù)模板則是對不同的數(shù)據(jù)類型完成相同的操作,它比重載函數(shù)的要求更嚴格。47、下列程序中的this指針的作用是【】。#include<iostream.h>classSample{intn;staticintst;public,Sample(){}Sample(intm){n=m;st=m+10;}voidChange(intk){st=st+k;}voidAddValue(intm){Samples,s.n=n+m;*this=s;}voiddisp(){cout<<"n="<<n<<";st="<<st<<end1;}};intSample::st=0voidmain(){Samples1(10),s2(10)s1.disp()s1.AddValue(5),s2.Change(100);s1.disp();s2.disp()}標準答案:修改本對象的值知識點解析:本題巧妙的使用this指針來完成類的不同實例進行的修改自身數(shù)據(jù)成員的操作。48、對虛函數(shù)的調(diào)用有兩種方式:【】和【】。標準答案:非多態(tài)調(diào)用,多態(tài)調(diào)用知識點解析:非多態(tài)調(diào)用和多態(tài)調(diào)用是C++中調(diào)用虛函數(shù)的兩種方式。49、C++中的數(shù)據(jù)類型大體上可以分成三類:它們是______、______和______。標準答案:基本類型導出類型用戶定義類型知識點解析:暫無解析50、若有定義語句:int*a,b;,則變量b的數(shù)據(jù)類型是【】。標準答案:int或整型知識點解析:本題考查的是指針的聲明語句。在一個聲明語句中,如果變量名稱前面有*號,則就會使該變量成為一個指針變量。而題目中的變量b之前沒有*號,所以變量b就是一般的int型變量,而不是指針變量。故應該填int或整型。國家二級(C++)筆試模擬試卷第3套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、下面關于對象概念的描述中,()是錯誤的。A、對象就是C語言中的結(jié)構(gòu)體變量B、對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體C、對象是一個狀態(tài)和操作(或方法)的封裝體D、對象之間的信息傳遞是通過消息進行的標準答案:1知識點解析:暫無解析2、結(jié)構(gòu)化程序設計所規(guī)定的三種基本控制結(jié)構(gòu)是()。A、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)B、輸入、輸出、處理C、for、while、switchD、主程序、子程序、函數(shù)標準答案:1知識點解析:暫無解析3、下列程序的運行結(jié)果是()。#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){a=aa;cout<<a++;}};voidmain(){Ax,y(2),z(3):cout<<endl;}A、0B、23C、34D、25標準答案:2知識點解析:暫無解析4、已知f1(int)是類A的公有成員函數(shù),p是指向成員函數(shù)f1()的指針,采用賦值,()是正確的。A、p=f1B、P=A::f1C、P=A::f1()D、P=f1()標準答案:2知識點解析:暫無解析5、C++語言中的基本數(shù)據(jù)類型是()。A、整型、浮點型、邏輯型、無值型和類類型B、整型、字符型、浮點型、無值型和邏輯型C、整型、浮點型、字符型、邏輯型和枚舉型D、整型、浮點型、邏輯型、無值型和指針型標準答案:2知識點解析:暫無解析6、下列敘述中錯誤的是()。A、一個函數(shù)中可以有多條return語句B、調(diào)用函數(shù)必須在一條獨立的語句中完成C、函數(shù)中通過return語句傳遞函數(shù)值D、主函數(shù)名main也可以帶有形參標準答案:8知識點解析:暫無解析7、結(jié)構(gòu)化程序設計主要強調(diào)的是()。A、程序的規(guī)模B、程序的效率C、程序設計語言的先進性D、程序易讀性標準答案:8知識點解析:暫無解析8、下面關于友元的描述中,錯誤的是()。A、友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B、一個類的友元類中的成員函數(shù)都是這個類的友元函數(shù)C、友元可以提高程序的運行效率D、類與類之間的友元關系可以繼承標準答案:8知識點解析:暫無解析9、C++語言中while循環(huán)和do...while循環(huán)的主要區(qū)別是()。A、do...while的循環(huán)體至少無條件執(zhí)行一次B、while的循環(huán)控制條件比do...while的循環(huán)控制條件嚴格C、do...while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)D、do...while的循環(huán)體不能是復核語句標準答案:1知識點解析:暫無解析10、對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是()。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ù)也不能重載標準答案:1知識點解析:暫無解析二、選擇題(本題共25題,每題1.0分,共25分。)11、下列關于C++關鍵字的說法中正確的是A、關鍵字是用戶為程序中各種需要命名的“元素”所起的名字B、關鍵字是對程序中的數(shù)據(jù)進行操作的一類單詞C、關鍵字是在程序中起分割內(nèi)容和界定范圍作用的一類單詞D、關鍵字是C++中預先定義并實現(xiàn)一定功能的一類單詞標準答案:8知識點解析:關鍵字是C++語言中預先定義并實現(xiàn)一定功能的一類單詞,它不是由用戶定義的,它是一種功能性單詞。注意:注意關鍵字不能用做用戶標識符,12、下列關于C++函數(shù)的描述中正確的是A、主函數(shù)是程序的入口,它由用戶定義的函數(shù)調(diào)用B、函數(shù)在調(diào)用之前必須先被聲明C、每個用戶定義的函數(shù)只能被其他函數(shù)調(diào)用一次D、函數(shù)是C++中面向?qū)ο蟪绦蛟O計框架的基本組成單元標準答案:2知識點解析:C++語言中函數(shù)在被調(diào)用以前必須先被聲明,主函數(shù)是程序的入口函數(shù),用戶定義的函數(shù)是可以被重復調(diào)用的,C++語言中面向?qū)ο蟪绦蛟O計的基本組成單元是類。注意:主函數(shù)可以放在程序小的任何位置。13、C++語言中運算對象必須是整型的運算符是A、%=B、/C、=D、<=標準答案:1知識點解析:C++語言規(guī)定:取余運算符的運算對象必須是整型,復合運算符“%=”中包含%運算,它的運算對象也必須是整型。14、在C++語言中,退格符是A、\nB、\tC、\fD、\b標準答案:8知識點解析:在C++語言中退格符表示為\b退格。注意:其他轉(zhuǎn)義字符的意義:\n表示回車換行,\t表示橫向跳到下一制表位置,\v表示豎向跳格,\r表示回車,\f表示走紙換頁,\\表示反斜線符,\a表示鳴鈴,\ddd1~3位表示八進制數(shù)所代表的字符,\xhh1~2位表示十六進制數(shù)所代表的字符。15、有如下程序段#includevoidmain(){inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);cout<<x;}執(zhí)行該程序段后,x的值為A、tureB、FALSEC、0D、1標準答案:8知識點解析:在C++語言中,邏輯運算符有4個,它們分別是!(邏輯非)、‖(邏輯或)、&&(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在語句x=(a&&b)&&(c<’B’);中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當然c<’B’是成立的,顯然,該表達式的值為1。16、#include<iostream.h>voidmain(){intn=9;while(n>6){n--;cout<<n;}}該程序的輸出結(jié)果是A、987B、876C、8765D、9876標準答案:2知識點解析:該題目應該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪一項是正確的。第一次進入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和選項D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應該為7,所以最后一次執(zhí)行循環(huán)體時輸出為6,由此可以排除選項C)。注意:while與do-while的區(qū)別。17、如下程序的執(zhí)行結(jié)果是#include<iostream.h>voidmain(){staticinta[]={1,7,3,9,5,11};int*p=a;*(p+3)+=4;cout<<*p<<","<<*(p+3);}A、1,13B、1,16C、3,13D、1,14標準答案:1知識點解析:指針數(shù)組的定義、賦初值、數(shù)組元素的引用與賦值等操作和一般數(shù)組的處理方法基本相同。需要注意指針數(shù)組是指針類型的,對其元素所賦的值必須是地址值。其格式是“存儲類型數(shù)據(jù)類型*指針數(shù)組名1[長度1]={初值1},功能是定義指向“數(shù)據(jù)類型”變量或數(shù)組的指針型數(shù)組,同時給指針數(shù)組元素賦初值。這些指針變量具有指定的“存儲類型”。本題中指針*p指向數(shù)組a,表達式*(p+3)+=4的含義是*(P+3)=*(p+3)+4,而*(p+3)在數(shù)組中指向的值為9,最后輸出的結(jié)果為9+4=13,注意:一個語句的結(jié)束要有分號。18、下面說明不正確的是A、chara[10]="china";B、chara[10],*p=a;p="china";C、char*a;a="china";D、chara[10],*P;P=a="china";標準答案:8知識點解析:C++語言中操作一個字符串常量的方法有:①把字符串常量存放在一個字符數(shù)組之中:②用字符指針指向字符串,然后通過字符指針來訪問字符串存貯區(qū)域。當字符串常量在表達式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,它被轉(zhuǎn)換成字符指針。本題選項D)中錯誤的關鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。19、下列程序的輸出結(jié)果是#include<iostream.h>voidmain(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;cout<<y*d<<end1;}A、3B、3,2C、0D、3.07標準答案:4知識點解析:本題中,先將x轉(zhuǎn)換為浮點型再與3.8相加,得到結(jié)果與5.0相除。最后將得到的結(jié)果去掉小數(shù)位化成整型數(shù)據(jù)賦給y。另外,值得注意的是,整型、實型、字符型數(shù)據(jù)間可以混合運算。在進行運算時,不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型,然后再進行運算。注意:如果認為執(zhí)行y=(x+3.8)/5.0后y的值為1是錯誤的,此時y的值為0。注意:x為int型,將1.2賦值給x時,x的值為1。20、有以下程序#include<iostream.h>intf(ihtn){if(n==1)return1;elsereturnf(n-1)+1;}voidmain(){ihti,j=0;for(i=1;i<3;i++)j+=f(i);cout<<j;}程序運行后的輸出結(jié)果是A、4B、3C、2D、1標準答案:2知識點解析:在main函數(shù)中,對f(1)和f(2)的值進行了累加。過程如下:f(1)=1f(2)=f(1)+l=2最后,j的值為1+2=3。注意:函數(shù)的遞歸調(diào)用需要有一個結(jié)束的條件。21、C++語言中類的定義的結(jié)束聲明的符號是A、}B、,C、;D、{標準答案:4知識點解析:C++語言中類定義的結(jié)束符號是分號。注意:函數(shù)的定義不需要分號。22、關于類定義中的語句錯誤的是classA{ihti;Aa;A*b;char*ch;};A、inti;B、Aa;C、A*b;D、char*ch;標準答案:2知識點解析:C++語言中類定義中若想用該類來定義數(shù)據(jù)只能定義為指針類型的,而不能定義為普通類型的。注意:C++語言類的定義的方法23、下列描述中錯誤的是A、析構(gòu)函數(shù)可以被繼承B、虛函數(shù)不能被繼承C、派生類可以有多個基類D、純虛基類的子類可以是虛基類標準答案:2知識點解析:C++語言中基類的虛函數(shù)是可以被派生類繼承的。注意:虛函數(shù)和純虛函數(shù)的區(qū)別。24、下列描述中哪個是正確的?A、派生類構(gòu)造函數(shù)中沒有調(diào)用父類構(gòu)造函數(shù)則沒有對父類初始化B、子類構(gòu)造函數(shù)不能是內(nèi)聯(lián)函數(shù)C、派生類構(gòu)造函數(shù)中可以對父類數(shù)據(jù)成員賦值D、構(gòu)造函數(shù)的返回值為void類型標準答案:4知識點解析:C++語言中基類的構(gòu)造函數(shù)是可以被派生類繼承并賦值的。注意:構(gòu)造函數(shù)和析構(gòu)函數(shù)均無返回值。25、下面關于成員函數(shù)重載運算符和友元函數(shù)重載運算符相同的是A、成員函數(shù)和友元函數(shù)可重載的運算符是不相同的B、成員函數(shù)和友元函數(shù)重載運算符時都需要用到this指針C、成員函數(shù)和友元函數(shù)重載運算符時都需要聲明為公有的D、成員函數(shù)和友元函數(shù)重載運算符時的參數(shù)町能是相同的標準答案:1知識點解析:成員函數(shù)和友元函數(shù)可重載的運算符有些相同的,有些是不同的,友元函數(shù)沒有this指針,二者重載相同運算符時的參數(shù)肯定是不同的,成員函數(shù)重載運算符時都必須聲明為公有的。注意:友元函數(shù)的聲明關健字是friend。26、下列運算符只能用友元函數(shù)重載的是A、<<,>>B、new,deleteC、++,--D、,標準答案:1知識點解析:C++語言中運算符重載中只能用友元函數(shù)重載的運算符是<<和>>。27、執(zhí)行下面的程序段后,變量k中的值為#include<iostream.h>voidmain(){intk=3,s[2];s[0]=k;k=s[1]*10;cout<<k;}A、不定值B、33C、30D、10標準答案:1知識點解析:如果定義數(shù)組時沒有進行初始化,則其各個成員的值不確定。注意:使用數(shù)組時應先賦初值。28、關于語句#include<iostream>usingnamespacestd;voidmain(){cout<<100.8989663<<’;cout<<fixed<<100.8989663<<’;cout<<scientific<<100.8989663<<’;}的輸出結(jié)果為A、100.899100.8989661.008990e+002B、100.8989663100.8989661.008990e+002C、100.899100.8989661.008989e+002D、100.899100.89896631.008989e+002標準答案:1知識點解析:C++語言中默認小數(shù)的輸出位一共是六位,fixed的意義是在小數(shù)點后保留六位,scientific的意義是以科學計數(shù)法輸出小數(shù),本題中,100.8989663的默認輸出就是100.899,fixed輸出是100,898966,scienlific輸出是1.008990e+002。注意:C++語言中的小數(shù)輸出及各種控制方法。29、以下程序的結(jié)果是#include<iostream.h>voidmain(){char*p="abcdefgh",*r;long*q;q=(long*)p;q++;r=(char*)q;cout<<r<<end1;}A、defgB、cdefC、ghabD、efgh標準答案:8知識點解析:C++語言規(guī)定,如果指針變量q已指向數(shù)組中的一個元素,則(q++指向同一數(shù)組中的下一個元素(而不是將q的值簡單的加1)。本題中q是long型指針,每個long型數(shù)據(jù)占內(nèi)存字節(jié)數(shù)為4,所以q++則由當前位置向右移動4個字節(jié),所以最后顯示出的是efgh。注意:請注意*(P++)與(*p)++的區(qū)別。30、以下程序的輸出結(jié)果是#includevoidmain(){charc=’Z’;cout<<c-25;}A、97B、ZC、z-25D、2標準答案:1知識點解析:字符z的ASCII碼值為122,經(jīng)過c-25運算后,得97。注意:C++語言中,字符也可參與算術(shù)運算,運算時用的是字符的ASCII碼值。31、有以下程序#include<iostream.h>structSTU{charnum[10];floatscore[3];};voidmain(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<A、260B、270C、280D、285標準答案:2知識點解析::C++語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第0號元素的地址,在本題中s就是s[0]的地址,指針變量P指向s,也就是指向s[0],所以在for循環(huán)累加的是s[0]的score成員值。注意:注意結(jié)構(gòu)體與類的區(qū)別。32、下面程序段中,for循環(huán)的執(zhí)行次數(shù)是char*s=“\ta\018bc";for(;*s!=’\0’;s++)cout<<"*";A、9B、5C、6D、7標準答案:4知識點解析:本題中,格式符。表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C++語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號。注意:for循環(huán)的次數(shù)就是字符串\ta\018bc的長度。33、以下程序段的執(zhí)行結(jié)果為#include<iostream.h>#definePLUS(X,Y)X+Yvoidmain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);cout<<"SUM="<<sum;cout<<end1;}A、SUM=9B、SUM=12C、SUM=18D、SUM=30標準答案:2知識點解析:格式為:#define宏名(參數(shù)表)字符串本題的替換過程是sun=x+y+z*y+z,將其各值帶入即可。注意:注意在替換的過程不要隨意加入括號。34、下列程序的運行結(jié)果是#inClude<iostream.h>roidfun(int*a,int*b){int*k;k=a;a=b;b=k;}voidmain(){inta=2004,b=9,*x=&a,*y=&b;fun(x,y);cout<<a<<""<<b<<end1;}A、20049B、92004C、00D、編譯時出錯標準答案:1知識點解析:本題函數(shù)fun中形參是兩個指針變量,函數(shù)fun只是將這兩個指針的指向的地址交換了一下而并沒有交換它們所指向的地址中的數(shù)據(jù)。雖然,主函數(shù)中聲明的變量a,b是整型變量而函數(shù)fun中的形參是兩個指針變量,這兩個變量僅僅是兩個參數(shù),與主函數(shù)中的那兩個變量含義是不同的。注意:采用指針或引用可將值交換。35、以下程序的輸出結(jié)果是#include<iostream.h>intf(){staticinti=0;ints=1s+=i;i++;returns;}voidmain(){inti,a=0;for(i=0;i<5;i++)a+=f();cout<<a;}A、20B、24C、25D、15標準答案:8知識點解析:對函數(shù)的靜態(tài)局部變量是在編譯時就賦初值,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦值,而只是保留上次函數(shù)調(diào)用結(jié)束時的值。注意:靜態(tài)函數(shù)只能用靜態(tài)變量。三、公共基礎填空題(本題共5題,每題1.0分,共5分。)36、排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。標準答案:交換排序知識點解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機制和區(qū)別。37、當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。標準答案:上溢知識點解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當lear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。38、【】是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設計者分開。標準答案:封裝知識點解析:面向?qū)ο蠹夹g(shù)中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設計者分開。39、為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。標準答案:輸出結(jié)果知識點解析:注意:測試的基本方法和步驟。40、【】是從二維表列的方向進行的運算。標準答案:關系運算知識點解析:在關系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交、差、笛卡爾積等)外,還定義了一些專門的關系運算,如投影、選擇、連接等。前者是將關系(即二維表)看成是元組的集合,這些運算主要是從二維表的行的方向來進行的;后者主要是從二維表的列的方向來進行的運算。兩者統(tǒng)稱為關系代數(shù)。四、填空題(本題共9題,每題1.0分,共9分。)41、【】是C++語言程序的入口。標準答案:main()函數(shù)知識點解析:main()是C++語言的人口函數(shù)。注意:main()函數(shù)可以放在程序的任何位置42、程序#include"iostream.h"voidmain(){inti=10;jntj=5;cout<<j+i++<<end1;}的結(jié)果為【】標準答案:15知識點解析:i++為先做與i有關的運算后,i自加1,而++i是先給i加1再進行與i有關的操作注意:各種運算符的應用,注意++,--。43、C++語言的基本控制結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和【】。標準答案:循環(huán)結(jié)構(gòu)知識點解析:C++語言3種基本結(jié)構(gòu)就是順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。44、語句int*i;i=newint[10];,釋放指針i的語句是【】。標準答案:delete[]i知識點解析:申請內(nèi)存空間時用new,釋放內(nèi)存空間用delete。注意:new和delete的運用和malloc,free的運用。45、函數(shù)重載要求重載的函數(shù)必須有和原函數(shù)一樣的【】。標準答案:函數(shù)名知識點解析:重載函數(shù)的函數(shù)名應和原函數(shù)一致。注意:重載函數(shù)的方式方法,重載函數(shù)的參數(shù),重載函數(shù)的返回值。46、在C++語言中每個類都有一個【】指針,該指針指向正在調(diào)用成員函數(shù)的對象。標準答案:this知識點解析:C++語言中this指針是類自帶的一個指針,它指向正在調(diào)用成員函數(shù)的對象。注意:C++類的墓本概念,this指針概念。47、程序的結(jié)果為【】。#include”iostream.h”template<typenameT>Ttotal(T*data){Ts=0;while(*data){s+=*data++;}returns;}intmain(){intx[]={2,4,6,8,0,12,14,16,18};cout<<total(x);r標準答案:20知識點解析:要理解*data的含意。48、語句cout<<’\n’還可表示為【】。標準答案:cout<<end1;知識點解析:“\n”表示換行,end1也可表示換行。注意:end1和“\n”可以通用。49、設置虛基類的目的是【】,通過【】表示虛基類。標準答案:解決二義性問題用關鍵字virtual知識點解析:解決二義性的兩個基本方法一是用域名進行限制,二是用虛基類的方法。注意:C++語言中解決二義性的方法。國家二級(C++)筆試模擬試卷第4套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、算法指的是______。A、計算機程序B、解決問題的計算方法C、解決問題的有限運算序列D、排序算法標準答案:4知識點解析:暫無解析2、下列關于線性表的敘述中,不正確的是______。A、線性表是n個結(jié)點的有窮序列B、線性表可以為空表C、線性表的每一個結(jié)點有且僅有一個前趨和一個后繼D、線性表結(jié)點間的邏輯關系是1:1的聯(lián)系標準答案:4知識點解析:暫無解析3、棧和隊列______。A、共同之處在于二者都是先進先出的特殊的線性表B、共同之處在于二者都是先進后出的特殊的線性表C、共同之處在于二者都只允許在頂端執(zhí)行刪除操作D、沒有共同之處標準答案:4知識點解析:暫無解析4、若二叉樹中度為2的結(jié)點有15個,度為1的結(jié)點有10個,則有______個葉結(jié)點。A、25B、30C、31D、16標準答案:8知識點解析:暫無解析5、已知二叉樹的前序序列為ABDCEFG,中序序列為DBCAFEG,則后序序列為______。A、DCBAFGEB、DCBFGEAC、DCBFEGAD、DCBGFEA標準答案:2知識點解析:暫無解析6、軟件調(diào)試方法中的靜態(tài)調(diào)試方法之一為______。A、計算機輔助靜態(tài)分析B、黑盒法C、因果固D、路徑覆蓋標準答案:1知識點解析:暫無解析7、為了克服軟件危機,人們提出了用______的原理來設計軟件,這就是軟件工程誕生的基礎。A、數(shù)學B、軟件學C、運籌學D、工程學標準答案:8知識點解析:暫無解析8、為了防止一個用戶的工作不適當?shù)赜绊懥硪粋€用戶,應該采取______。A、完整性控制B、安全性控制C、并發(fā)控制D、訪問控制標準答案:4知識點解析:暫無解析9、在數(shù)據(jù)庫設計中,數(shù)據(jù)流圖表達的是______。A、數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)的關系B、數(shù)據(jù)和算法的關系C、數(shù)據(jù)和處理的關系D、數(shù)據(jù)和通信的關系標準答案:4知識點解析:暫無解析10、關于數(shù)據(jù)庫系統(tǒng)的特點,下列說法中錯誤的是數(shù)據(jù)______。A、結(jié)構(gòu)化B、共享性高C、獨立性差D、統(tǒng)一管理和控制標準答案:4知識點解析:暫無解析二、選擇題(本題共25題,每題1.0分,共25分。)11、假設所有變量均為整型,則表達式(a:2,b=5,b++,a+b)的值______。A、8B、7C、6D、4標準答案:1知

溫馨提示

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

評論

0/150

提交評論