![國家二級(C++)機試模擬試卷5(共168題)_第1頁](http://file4.renrendoc.com/view14/M0B/32/03/wKhkGWbL2bWALEpQAAJJKWPgcaE651.jpg)
![國家二級(C++)機試模擬試卷5(共168題)_第2頁](http://file4.renrendoc.com/view14/M0B/32/03/wKhkGWbL2bWALEpQAAJJKWPgcaE6512.jpg)
![國家二級(C++)機試模擬試卷5(共168題)_第3頁](http://file4.renrendoc.com/view14/M0B/32/03/wKhkGWbL2bWALEpQAAJJKWPgcaE6513.jpg)
![國家二級(C++)機試模擬試卷5(共168題)_第4頁](http://file4.renrendoc.com/view14/M0B/32/03/wKhkGWbL2bWALEpQAAJJKWPgcaE6514.jpg)
![國家二級(C++)機試模擬試卷5(共168題)_第5頁](http://file4.renrendoc.com/view14/M0B/32/03/wKhkGWbL2bWALEpQAAJJKWPgcaE6515.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
國家二級(C++)機試模擬試卷5(共9套)(共168題)國家二級(C++)機試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是()。A、對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為nB、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(log2n)D、對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(nlog2n)標準答案:C知識點解析:二分法查找只適用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。2、算法的時間復雜度是指()。A、算法的執(zhí)行時間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的基本運算次數(shù)標準答案:D知識點解析:算法的時間復雜度是指算法需要消耗的時間資源。一般來說,計算機算法是問題規(guī)模n的函數(shù)f(n),算法的時間復雜度也因此記做T(n)=O(f(n)),因此,問題的規(guī)模n越大,算法執(zhí)行的時間增長率與f(n)的增長率正相關,稱做漸進時間復雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運算次數(shù)。3、軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A、編輯軟件B、操作系統(tǒng)C、教務管理系統(tǒng)D、瀏覽器標準答案:B知識點解析:編輯軟件和瀏覽器屬于工具軟件,教務系統(tǒng)是應用軟件。4、軟件(程序)調(diào)試的任務是()。A、診斷和改正程序中的錯誤B、盡可能多地發(fā)現(xiàn)程序中的錯誤C、發(fā)現(xiàn)并改正程序中的所有錯誤D、確定程序中錯誤的性質(zhì)標準答案:A知識點解析:調(diào)試的目的是發(fā)現(xiàn)錯誤或?qū)е鲁绦蚴У腻e誤原因,并修改程序以修正錯誤。調(diào)試是測試之后的活動。5、數(shù)據(jù)流程圖(DFD)是()。A、軟件概要設計的工具B、軟件詳細設計的工具C、結構化方法的需求分析工具D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ邩藴蚀鸢福篊知識點解析:數(shù)據(jù)流程圖是一種結構化分析描述模型,用來對系統(tǒng)的功能需求進行建模。6、軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設計屬于()。A、定義階段B、開發(fā)階段C、維護階段D、上述3個階段標準答案:B知識點解析:開發(fā)階段在開發(fā)初期分為需求分析、總體設計、詳細設計3個階段,在開發(fā)后期分為編碼、測試兩個子階段。7、數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標準答案:A知識點解析:數(shù)據(jù)模式是由數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫系統(tǒng)的整體觀。8、在學生管理的關系數(shù)據(jù)庫中,存取一個學生信息的數(shù)據(jù)單位是()。A、文件B、數(shù)據(jù)庫C、字段D、記錄標準答案:D知識點解析:一個數(shù)據(jù)庫由一個文件或文件集合組成。這些文件中的信息可分解成一個個記錄。9、數(shù)據(jù)庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設計的()。A、需求分析階段B、邏輯設計階段C、概念設計階段D、物理設計階段標準答案:C知識點解析:E—R圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的3-法,用來描述現(xiàn)實世界的概念模型。10、有兩個關系R和T如下所示:則由關系R得到關系T的操作是()。A、選擇B、投影C、交D、并標準答案:A知識點解析:選擇是建立一個含有與原始關系相同列數(shù)的新表,但是行只包括那些滿足某些特定標準的原始關系行。11、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、繼承C、封裝性D、模塊化標準答案:D知識點解析:面向?qū)ο笤O計3-法是使用現(xiàn)實世界的概念抽象地思考問題,從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承等。模塊化是結構化程序設計的特點。12、下列選項中不符合良好程序設計風格的是()。A、源程序要文檔化B、數(shù)據(jù)說明的次序要規(guī)范化C、避免濫用goto爵句D、模塊設計要保證高耦合、高內(nèi)聚標準答案:D知識點解析:對于軟件設計中的模塊設計要保證高內(nèi)聚和低耦合,源程序要有文檔說明,同時對程序中數(shù)據(jù)的說明要規(guī)范化。而goto語句會破壞程序的結構,要盡量避免使用。所以D不正確。13、設計數(shù)據(jù)庫的存儲結構屬于()。A、需求分析B、概念設計C、邏輯設計D、物理設計標準答案:D知識點解析:物理設計階段主要解決選擇文件存儲結構和確定文件存取方法的問題,包括選擇存儲結構、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。14、相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。A、可重用性差B、安全性差C、非持久性D、冗余性標準答案:D知識點解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散、相互獨立的。因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎的數(shù)據(jù)處理存在3個缺點:數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。15、設關系R和關系S的元數(shù)分別是3和4,元組數(shù)分別為5和6,則R與S自然連接所得到的關系,其元數(shù)和元組數(shù)分別為()。A、7和11B、12和30C、<7和<30D、=7和<=30標準答案:C知識點解析:自然連接運算是專門的關系運算,是將兩個關系拼接成一個新的關系,生成的新關系中包含滿足條件的元組,并且默認連接條件為公共屬性相等,沒有重復的屬性和元組。由于R和S連接后,如果不去除重復屬性,其元數(shù)為R和S的元數(shù)之和也就是7,而自然連接的結果由于要去除重復屬性,則其元數(shù)必然小于7,由于R和S連接后,如果不去除重復元組,其元組數(shù)為R和S的元數(shù)之積也就是30,而自然連接的結果由于要去除重復元組,則其元組數(shù)必然小于30。16、下列關于函數(shù)的描述中,錯誤的是()。A、函數(shù)可以沒有返回值B、函數(shù)可以沒有參數(shù)C、函數(shù)可以是一個類的成員D、函數(shù)不能被定義為模板標準答案:D知識點解析:函數(shù)可以被定義為模板:“template<模板形參表><返回值類型><函數(shù)名>(模板函數(shù)形參表){//函數(shù)定義體},”其中<模板形參表>是由一個或多個<模板形參>組成,每個<模板形參>可以有這幾種形式:typename<參數(shù)名>,class<參數(shù)名>,<類型修飾><參數(shù)名>;前兩種是等價的typename和class可以互換,它們的參數(shù)為虛擬類型參數(shù);最后一種的參數(shù)是常規(guī)參數(shù)。17、若MyClass是一個類名,其有如下語句序列:MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1:上面的語句序列所定義的類對象的個數(shù)是()。A、1B、2C、3D、4標準答案:B知識點解析:首先定義對象的格式:(存儲類型)<類名><對象名1>(<對象名2>,…,<對象名n>);第一句定義了對象c1和指針對象c2,而MyClass*c3=newMyClass是Java里的定義方式,MyClass&c4=c1這種定義方式也是不對的。18、下列關于繼承方式的描述中,錯誤的是()。A、如果不顯式地指定繼承方式,默認的繼承方式是私有(private)B、采用公有繼承方式時,基類中的公有成員在派生類中仍然是公有成員C、采用保護繼承方式時,基類中的保護成員在派生類中仍然是保護成員D、采用私有繼承方式時,基類中的私有成員在派生類中仍然是私有成員標準答案:D知識點解析:采用私有繼承方式時,基類中私有成員在派生類中是不可訪問的成員。19、將前綴運算符“--”重載為非成員函數(shù),下列原型中,能正確用于類中說明的是()。A、Decr&operator--{int);B、Decroperator--(Decr&,int);C、friendDecr&cperator--(Decr&);D、friendDecroperacor--(Decr&,int);標準答案:C知識點解析:把“--”運算符重載為非成員(友元)函數(shù)格式:“friend<返回類型>operator--()”是前綴的格式;friend<返回類型>operator--(int)是后綴的格式。當然也可以有參數(shù)如題中C選項所示。20、若MyTemp是一個具有虛擬類型參數(shù)的類模板,且有如下語句序列:MyTempp2;MyTemp<long>p3[2];編譯系統(tǒng)在處理上面的語句序列時,所生成的模板MyTemp的實例的個數(shù)是()。A、1B、2C、3D、4標準答案:B知識點解析:類模板是一系列相關類的模板或樣板,成員函數(shù)的源代碼形式相同,不同的是所針對的類型不一樣,如題中的一個double類型,一個long類型;類模板中數(shù)據(jù)類型本身是它的參數(shù),它是類的生成器。21、在C++中,cin是一個()。A、類B、對象C、模板D、函數(shù)標準答案:B知識點解析:C++提供了一套輸入/輸出流類的對象,它們是cin、tout和cerr,對應C語言中的3個文件指針stdin、stdout、stderr,分別指向終端輸入、終端輸出和標準出錯輸出(也從終端輸出)。cin與>>一起完成輸入操作,cout、cerr與<<一起完成輸出與標準錯誤輸出。22、在下列字符中,不允許作為C++標識符的是()。A、bB、BC、_D、2標準答案:D知識點解析:在C++中,標識符只能以字母、數(shù)字和下畫線組成,并且首字母不能為數(shù)字。所以D選項錯誤。23、下列敘述中,錯誤的是()。A、false是一個邏輯型常量B、“b”是一個字符型常量C、365是一個int常量D、3.1415926是一個double常量標準答案:D知識點解析:double型數(shù)據(jù)一般占8字節(jié),D選項超出了范圍。24、若x和y是程序中的兩個整型變量,則下列if語句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2C、if(x==0)y=1elsey=2;D、ifx==0y=1elsey=2;標準答案:A知識點解析:if...else語句的格式“if(<條件>)<語句1>else<語句2>”注意語句結束要以分號結尾,對照題中選項可知A正確。25、要定義整型數(shù)組x,使之包括初值為0的3個元素,下列語句中錯誤的是()。A、intx[3]={0,0,0};B、intx[]={0};C、staticintx[3]:{0};D、intx[]={0,0,0};標準答案:D知識點解析:選項D中整型數(shù)組x的第一個元素是NULL不是0,故選D。26、關于函數(shù)中的<返回類型>,下列表述中錯誤的是()。A、<返回類型>中有可能包含關鍵字intB、<返回類型>中有可能包含自定義標識符C、<返回類型>中有可能包含字符*D、<返回類型>中可能包含[]標準答案:B知識點解析:<返回類型>又稱函數(shù)類型,表示一個函數(shù)所計算(或運行)的結果值類型,這里的類型可以是預定義類型(如int)、復合類型(如double*)、用戶定義類型(如枚舉類),若返回值只做更新(或設置)等操作,則該函數(shù)返回類型為void類型,函數(shù)類型和內(nèi)置數(shù)組不能作為返回類型,但類類型和容器類型可以被直接返回。27、要定義一個引用變量p,使之引用類MyClass的一個對象,正確的定義語句是()。A、MyClassp=MyClass;B、MyClassp=newMyClass;C、MyClass&p=newMyClassD、MyClassa,&p=a;標準答案:D知識點解析:選項A錯誤不存在這樣的定義方式;選項B定義了一個MyClass類的對象p;選項C是Java里的定義方式。28、有如下兩個類定義:classXX{private:doublex1;protected:doublex2;public:doublex3;};claseYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在類YY中保護成員變量的個數(shù)是()。A、1B、2C、3D、4標準答案:C知識點解析:派生類從基類保護繼承classYY:protectedXX時,基類的公有成員在派生類中變?yōu)楸Wo成員,基類的保護成員在派生類中仍然是保護成員;本題中YY本身有一個保護成員y2,再加上基類XX的x2和x3,故選C。29、下列關于運算符重載的描述中,錯誤的是()。A、可以通過運算符重載在C++中創(chuàng)建新的運算符B、賦值運算符只能重載為成員函數(shù)C、運算符函數(shù)重載為類的成員函數(shù)時,第一操作參數(shù)就是該類對象D、重載類型轉換運算符時不需要聲明返回類型標準答案:A知識點解析:運算符的重載是針對C++中原有運算符進行的,不能通過重載創(chuàng)造新的運算符。30、下列關于類模板的描述中,錯誤的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、可以為類模板參數(shù)設置默認值C、類模板描述了一組類D、類模板中只允許有一個類型參數(shù)標準答案:D知識點解析:類模板是一系列相關類的模板,類成員組成相同,成員函數(shù)的源代碼形式相同,所不同的是所針對的類型。類模板的成員函數(shù)都是模板函數(shù),在用類模板定義對象時,由于沒有像函數(shù)實參表這樣的額外信息渠道,因此無法按函數(shù)模板的方式省略模板實參。但可以為類模板的參數(shù)設置默認值。由此可知應選D。31、下列控制格式輸入/輸出的操作符中,能夠設置浮點數(shù)精度的是()。A、setprecisionB、setwC、setfillD、showpoint標準答案:A知識點解析:setprecision(int)是設置浮點數(shù)的精度,setw(intn)是設置輸入/輸出寬度,setfill(charc)設置填充字符,showpoint即使小數(shù)部分為0,也輸出以及其后的無效數(shù)據(jù)0。32、下列程序段中包含4個函數(shù),其中具有隱含this指針的是()。intfunl();classTest{public:intfun2();friendintfun3();staticintfun4();};A、funlB、fun2C、fun3D、fun4標準答案:B知識點解析:this指針是成員函數(shù)所屬對象的指針,是指向類對象的地址,是一個隱含的指針,隱含于每個類的非靜態(tài)成員函數(shù)中。fun1是外部函數(shù),fun3是友元函數(shù),fun4是靜態(tài)成員函數(shù),故選B。33、有如下程序:#includeusingnamespacestd;classTest{public:Test(){}Test(constTest&t){cout<<1;)};Testfun(Test&u){Testt=u;returnt;)intmain(){Testx,y;x=fun(y);return0;)運行這個程序的輸出結果是()。A、無輸出B、1C、11D、111標準答案:C知識點解析:本題調(diào)用了fun函數(shù)。34、有如下程序:#includeusingnamespacestd;classA{public:A(inti=0):r1(i){}voidprint(){cout<<’E’<A、P8-E4B、P8-C16-C、P0-E4-D、P0-C16-標準答案:D知識點解析:暫無解析35、下列代碼段聲明了3個類:classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關于這些類之間關系的描述中,錯誤的是()。A、類Person是類Undergraduate的基類B、類Undergraduate從類Student公有繼承C、類Student是類Person的派生類D、類Undergraduate是類Person的派生類標準答案:B知識點解析:類Undergraduate從類Stadent私有繼承,繼承方式默認是private。36、有如下程序:#includeUsingnamespacestd;classBase{public:Base(intx=0):valB(x){cout<A、2332B、2323C、3232D、3223標準答案:A知識點解析:本題使用析構函數(shù)。37、下面是類Shape的定義:classShape{public:virtualvoidDraw()=0:}下列關于Shape類的描述中,正確的是()。A、類Shape是虛基類B、類Shape是抽象類C、類Shape中的Draw函數(shù)聲明有誤D、語句“Shapes;”能夠建立Shape的一個對象s標準答案:B知識點解析:抽象類是類中至少有一個純虛函數(shù),抽象類是用來被繼承的,即是用來生成派生類,它本身不能生成實例。38、將運算符“+”重載為非成員函數(shù),下列原型聲明中,錯誤的是()。A、MyClockoperator+(MyClock,long);B、MyClockoperator+(MyClock,MyClock);C、MyClockoperator+(long,long);D、MyClockoperator+(long,MyClock);標準答案:C知識點解析:非成員函數(shù)一般都是友元函數(shù),相比成員函數(shù)第一個操作數(shù)是對象本身以this指針的形式隱含在參數(shù)列表中,非成員函數(shù)調(diào)用必須顯式的列出參數(shù);選項C中沒有MyClock類型,故選C。39、打開文件時可單獨或組合使用下列文件打開模式:①ios_base::aop②ios_base::binary③ios_base::④ios_base::out若要以二進制讀方式打開一個文件,則需使用的文件打開模式為()。A、①③B、①④C、②③D、②④標準答案:D知識點解析:ios_base::binary是作為二進制文件打開,ios_base::out是為輸出而打開,故選D。二、基本操作題(本題共1題,每題1.0分,共1分。)40、使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯誤,請補充程序中的丟失部分,使得程序運行??梢栽谛薷奶幵黾踊蛘邉h除一條語句。本程序完成以下功能:(1)獲得輸入的兩個數(shù)字d1,d2(d1=6,d2=1)。(2)輸出兩個中較大的一個(輸出6)。(3)計算d1/d2如果d2等于0,返回-1(輸出結果6)。(4)輸出d1+d2的結果(輸出結果7)。(5)輸出d1+1的結果(輸出結果7)。(6)輸出d2-1的結果(輸出結果0)。注意:錯誤的語句在/********error********/的下面。修改該語句即可。其他的語句不能修改。試題程序:#includevoidmain(){intd1:intd2;intd3:cout<<"pleaseinputtwonumber:"<>d1>>d2;/********error********/d3=(d1(d2)?d1:d2;tout<<"Maxdatais:"<標準答案:(1)“d3=(d1知識點解析:本題考查了考生對條件表達式和自增自減運算符了解的情況。d3應為d1和d2中較大者的值,所以“(d1(d2)”應改為“(d1)d2)”。若d2不為0,應返回d1/d2的值,而不是d1\d2。第3處應該輸d1+1d2-1,所以兩者的++、一一應反過來。又因為d3應該是兩者原值之和,所以++、一一應同時為后綴式或前綴形式。三、簡單應用題(本題共1題,每題1.0分,共1分。)41、使用VC++6.0打開考生文件夾下的源程序文件2.cpp。閱讀下列函數(shù)說明和代碼,實現(xiàn)函數(shù)sort(intA[],intn),用選擇排序法將數(shù)組從大到小排序。提示:選擇排序法的思想是(1)反復從還未排好序的那部分線性表中選出關鍵字最小的結點。(2)按照從線性表中選出的順序排列結點,重新組成線性表。(3)直到未排序的那部分為空,使得重新形成的線性表是一個有序的線性表。補充函數(shù)sort(intA[],intn),實現(xiàn)選擇排序。注意:請勿改動主函數(shù)。試題程序:#include#defineN10voidsort(intA[N],intn){}intmain(){intA[N]={-72,54,-6,7,18,102,0,4,-11,1};sort(A,10);for(inti=0;i(sizeof(A)/sizeof(int);i++){cout<標準答案:inti,j;for(i=0;i(n-1;i++){for(j=0;j(n-1-i;j++){if(A[j])A[j+1])//如果前面的數(shù)比后面的大則進行交換{intt=A[j];//進行交換A[j]=A[j+1];A[j+1]=t;}}}知識點解析:數(shù)組A[N]中有n個數(shù),進行n-1趟比較,在每一趟比較中兩兩比較的次數(shù)逐漸減少,比如若有6個數(shù)9,8,5,4,2,0。第一次將8和9對調(diào),第二次將第2個數(shù)9和第3個數(shù)5對調(diào),如此共進行5次,得到8-5-4-2-0-9的順序,可以看到:最大的數(shù)9已“沉底”,成為最下面一個數(shù),而小的數(shù)“上升”。最小的數(shù)0已向上“浮起”一個位置。經(jīng)第一趟(共5次)后,已得到最大的數(shù),然后進行第二趟比較,對余下的前面5個數(shù)按上面的方法進行比較,經(jīng)過4次比較,得到次大的數(shù)8。如此進行下去??梢酝浦?,6個數(shù)要比較5趟。在第一趟中要進行兩兩比較5次,在第二趟中比較4次,……第5趟比較1次。因此設置兩層循環(huán),外層循環(huán)變量i從0變化大到n-1,內(nèi)層循環(huán)變量j從0到n-j,在內(nèi)層循環(huán)體內(nèi),比較相鄰兩數(shù),如果前面比后面的大則交換。在內(nèi)層循環(huán)體內(nèi),如果前面的元素比后面的元素大,則用一個臨時變量記錄前面的第j個元素,然后將第j+1個元素賦值給第j個元素,臨時變量值賦給第j+1個元素,如此完成兩個元素的交換。四、綜合應用題(本題共1題,每題1.0分,共1分。)42、使用VC++6.0打開考生文件夾下的源程序文件3.cpp,其中定義了類BA、PA1和PA2,其中PA1類由BA類公有派生,PA2類由PA1類公有派生。上述3個類的定義并不完整,請按要求完成下列操作,將程序補充完整。程序輸出結果如下:1051057(1)定義類BA的構造函數(shù),該構造函數(shù)有一個整型的參數(shù)m,在構造函數(shù)中將m賦值給數(shù)據(jù)成員a。請在注釋1之后添加適當?shù)恼Z句。(2)定義類PA1的構造函數(shù),該構造函數(shù)有兩個整型的參數(shù)m和n,在構造函數(shù)中將m賦值給數(shù)據(jù)成員b,將n作為基類BA構造函數(shù)的參數(shù)值傳入。請在注釋2之后添加適當?shù)恼Z句。(3)定義類PA2的構造函數(shù),該構造函數(shù)有3個整型的參數(shù)m、n和k,在構造函數(shù)中請將m賦值給數(shù)據(jù)成員c,將n和k分別賦值給基類PA1構造函數(shù)的參數(shù)m和n。請在注釋3之后添加適當?shù)恼Z句。(4)完成類PA2的成員函數(shù)show的定義,該函數(shù)調(diào)用基類成員函數(shù),輸出基類私有成員a、b及類PA2自身的數(shù)據(jù)成員c的值,上述3個值在輸出時用空格隔開。請在注釋4之后添加適當?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。試題程序:#includeclassBA{inta;public://********1********intbeta(){returna;}};classPA1:publicBA{intb;public://********2********intgetb(){returnb;)};classPA2:publicPA1{intC;public://********3********voidshow(){//********4********}};voidmain(){PA2a(7,5,10);cout<標準答案:(1)應添加“BA(intm){a=m;}”。(2)應添加“PA1(intm,intn):BA(n){b=m;}”。(3)應添加“PA2(intm,intn,intk):PA1(n,k){c=m;}”。(4)應添加“cout<知識點解析:根據(jù)第1處要求,構造函數(shù)的函數(shù)名和類名一致,顯然BA構造函數(shù)的名稱為BA,在BA()中通過參數(shù)m完成對成員變量a的賦值,因此構造函數(shù)的名稱為BA(intm),在函數(shù)內(nèi)部對成員a賦值,故第1處的語句應添加“BA(intm){a=m;}”。根據(jù)第2處的要求,構造函數(shù)的形式為“PA1(intm,intn)”,m賦值給PA1類成員b,將n作為基類BA構造函數(shù)的參數(shù)值傳入,故第2處應添加“PA1(intm,intn):BA(n){b=m;)”。根據(jù)第3處的要求,函數(shù)形式為PA2(intm,intn,intk),在構造函數(shù)中將m賦值給數(shù)據(jù)成員c,將n和k分別賦值給基類PA1構造函數(shù)的參數(shù)m和n,因此第3處應添加“PA2(intm,intn,intk):PA1(n,k){c=m;)”。根據(jù)第4處的要求,PA2類公有派生于PA1,而PA1公有派生于BA,因此在PA2類中可以調(diào)用基類的geta()和getb()來獲得基類私有成員a和b,再輸出PA2的私有成員c即滿足要求,因此第4處應添加“cout<國家二級(C++)機試模擬試卷第2套一、綜合應用題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程MyProj5。此工程包含一個源程序文件MyMain5.cpp,其中定義了用于表示日期的類Date,但類Date的定義并不完整。請按要求完成下列操作,將類Date的定義補充完成:①定義私有數(shù)據(jù)成員length、width和labe1,其中l(wèi)ength、width是int型,labe1是類point的對象。它們分別表示長方形的長、寬以及坐標點。請在注釋“//**1**”之后添加適當?shù)恼Z句。②完成構造函數(shù)square的定義,使square對象的默認值為:length=0,width=0,label(0,0),請在注釋“//**2**”之后添加適當?shù)恼Z句。③完成重載構造函數(shù)square(intl,intw,intx,inty)的定義,把數(shù)據(jù)成員length、width和對象labe1分別初始化為參數(shù)l、w、x和y的值,請在注釋“//**3**”之后添加適當?shù)恼Z句。④完成成員函數(shù)get_area()的類外定義,此函數(shù)的功能是返回此長方形的面積,及返回length*width的值。請在注釋“//**4**”之后添加適當?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。源程序文件MyMain5.cpp清單如下://MyMain5.cpp#include<iostream>usingnamespacestd;classpoint{private:intx,y;public:voidset(inti,intj){x=i;y=j;}intget_y(){returny;}};classsquare{//**1**public://**2**square(intl,intw,intx,inty){//**B**}voidset(intl,intw){length=1;width=w;}intget_area()const{returnlength*width;}};intsquare::getarea()const{//**4**}intmain(){squaresmall(2,4,1,35);cout<<small.get_area()<<end1;return0;}標準答案:補充完整后,類square的完整定義為:classsquare{private:intlength,width;pointlabel;public:square(){length=0;width=0;label.set(0,0);}square(intl,intw,intx,inty){length=1;width=w;labe1,set(x,y);}voidset(intl,intw){length=1;width=w;}intget_area()const;};intsquare::get_area()const{returnlength*width;}知識點解析:第1空白處是定義類square的各種私有成員,第2空白處完成構造函數(shù)square()的定義,并具有默認參數(shù),第3空白處是完成重載構造函數(shù),第4空白處完成成員函數(shù)get_area()的類外定義。國家二級(C++)機試模擬試卷第3套一、程序改錯題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的工程test41_1,此工程包含一個源程序文件test41_1.cpp,但該程序運行有問題,請改正函數(shù)中的錯誤,使該程序的輸出結果為:7源程序文件test41_1.cpp清單如下:#include<iostream.h>classmyclass{inta,b;public:/*****************found*****************/intsum(myclassx);voidset_ab(inti,intj);}:/****************found****************/voidmyclass:set_ab(inti,intj){a=i;b=j;}intsum(myclassx){/*****************found***************/x.a+x.b;}voidmain(){myclassn;n.set_ab(3,4);cout<<sum(n)<<endl;}標準答案:(1)錯誤:intsum(myclassx);正確:friendintsum(myclassx);(2)錯誤:voidmyclass:set_ab(inti,intj)正確:voidmyclass::set_ab(inti,intj)(3)錯誤:x.a+x.b;正確:returnx.a+x.b;知識點解析:(1)函數(shù)sum中含有對于myclass類的私有數(shù)據(jù)成員a和b的操作,而普通函數(shù)沒有這樣的權限,所以編譯器會報錯,只有把sum定義成該類的友元函數(shù),這樣根據(jù)友元函數(shù)可以訪問該類的所有元素的規(guī)則,就可以正確地實現(xiàn)該函數(shù):(2)函數(shù)的參數(shù)列表只能用于類的構造函數(shù),對于構造函數(shù),參數(shù)列表與在函數(shù)體內(nèi)賦值是等價的,但是一般的類的成員函數(shù)只能使用函數(shù)體內(nèi)賦值一種方法;(3)該函數(shù)的返回值為int型,所以計算之后的結果應該使用關鍵字return返回主函數(shù),return返回值可以使用括號,也可以不使用,后面可以是表達式也可以是變量或者常量。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請編寫一個函數(shù)maxofarray(atype*p,intcount),該函數(shù)從一個數(shù)組中找出其中的最大元素,并且數(shù)組中可以存放多種數(shù)據(jù)類型的元素。注意:部分源程序己存在文件test42_2.cpp中。請勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)maxofarray的花括號中填寫若干語句。文件test42_2.cpp清單如下:#include<iostream.h>#include<string.h>#include<conio.h>template<classatype>voidmaxofarray(atype*p,intcount){}voidmain(){intlen=5;char*p1;cout<<"thechartypearrayandit’slengthis5:\n";cout<<"thearrayelementisabcde\n";p1=newchar[len];for(inti=0;i<len;i++)p1[i]=’a’+i;maxofarray(p1,len);}標準答案:voidmaxofarray(atype*p,intcount){for(intj=0;j<count-1;j++){for(intk=0;k<count-1-j;k++)if(p[k]>p[k+1]){atypetemp;temp=p[k];p[k]=p[k+1];p[k+1]=temp;}}cout<<"\nthemaxelementofthisarrayis:"<<p[count-1]<<endl;}知識點解析:本題考查的是考生對模板函數(shù)和簡單的排序方法的綜合應用。為了對于任何數(shù)據(jù)類型都能進行比較,應該使用模板類進行函數(shù)的參數(shù)的定義,而函數(shù)內(nèi)部則使用了冒泡排序法得到最大的元素,實際上只需要一次兩兩比較就可以得到正確的答案了,考生可以自己試試看。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的工程test40_3。此工程包含一個test40_3.cpp,其中定義了類CVector,但該類的定義并不完整。請按要求完成下列操作,將程序補充完整。(1)完成類CVector構造函數(shù)的定義,把傳入的int型參數(shù)a和b分別賦值給類的成員變量x和y。請在注釋“//**1**”之后添加適當?shù)恼Z句。(2)完成類CVector的“+”運算符重載函數(shù)的定義,使Cvector類的兩個對象相加時可以直接使用符號“+”,并且結果仍然為類Cvector的對象,請在注釋“//**2**”之后添加適當?shù)恼Z句。(3)在主函數(shù)中添加適當?shù)恼Z句,把類Cvector的對象a和b相加,并且把結果保存在對象c中,最后以“x,y”的形式輸出在屏幕上,請在注釋“//**3**”之后添加適當?shù)恼Z句。源程序文件test40_3.cpp清單如下:#include<iostream.h>classCVector{public:intx,y;CVector(){};CVector(int,int);CVectoroperator+(CVector);};CVector::CVector(inta,intb){//**1**}CVectorCVector::operator+(CVectorparam){//**2**temp.y=y+param.y;return(temp);}intmain(){CVectora(3,1);CVectorb(1,2);CVectorc;//**3**return0;}標準答案:(1)x=a;y=b;(2)CVectortemp;temp.x=x+param.x;(3)c=a+b;tout<<c.x<<","<<c.y;知識點解析:主要考查考生對于類的數(shù)據(jù)成員賦值與定義重載為成員函數(shù)的運算符函數(shù)的掌握,其中(2)就是運算符函數(shù)的實現(xiàn),實際上就是通過已有的函數(shù)和符號實現(xiàn)復雜的運算功能,并最終返回該類的對象,注意最后的返回值必須是對象才能滿足要求,(4)中使用對象調(diào)用類的數(shù)據(jù)成員用符號“.”。國家二級(C++)機試模擬試卷第4套一、選擇題(本題共37題,每題1.0分,共37分。)1、軟件維護活動不包括()。A、改正性維護B、適應性維護C、重組性維護D、預防性維護標準答案:C知識點解析:軟件維護活動包括改正性維護、適應性維護、完善性維護和預防性維護。2、數(shù)據(jù)獨立性分為邏輯獨立性和物理獨立性。當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為()。A、物理獨立性B、邏輯獨立性C、數(shù)據(jù)獨立性D、結構獨立性標準答案:A知識點解析:數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性。物理獨立性是指用戶的應用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的,即數(shù)據(jù)在磁盤上怎樣存儲由DBMS管理,用戶程序不需要了解,應用程序要處理的只是數(shù)據(jù)的邏輯結構。因此,當數(shù)據(jù)的物理存儲改變時,基于邏輯結構的應用程序不用改變。邏輯獨立性是指用戶的應用程序與數(shù)據(jù)庫的邏輯結構是相互獨立的,即當數(shù)據(jù)的邏輯結構改變時,用戶程序可以不變。3、冒泡排序算法在最好的情況下的元素交換次數(shù)為()次。A、0B、1C、2D、3標準答案:A知識點解析:根據(jù)冒泡排序算法的思想:若待排序的初始序列為正序序列,則只需進行一趟排序,在排序過程中進行n-1次關鍵字間的比較,且不移動和交換記錄,這種情況是冒泡排序的最好情況,故冒泡排序算法在最好的情況下的元素交換次數(shù)為0次。4、在面向?qū)ο蠓椒ㄖ?,類之間的共享屬性和操作機制稱為()。A、封裝B、繼承C、多態(tài)D、單態(tài)標準答案:B知識點解析:在面向?qū)ο蠓椒ㄖ?,一個類可以從直接或間接的祖先中繼承所有屬性和方法,它提高了軟件的可重用性,是類之間的共享屬性和操作的機制。5、數(shù)據(jù)庫恢復是將數(shù)據(jù)庫從()狀態(tài)恢復到某一已知的正確狀態(tài)。A、未知B、錯誤C、一致D、完整標準答案:B知識點解析:數(shù)據(jù)庫關系系統(tǒng)中具有把數(shù)據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(又稱為一致狀態(tài)或完整狀態(tài))的功能,就是數(shù)據(jù)庫的恢復。6、函數(shù)定義的格式是()函數(shù)名(形式參數(shù)表)函數(shù)體。A、引用類型B、數(shù)值類型C、標注類型D、返回類型標準答案:D知識點解析:本題考查基本的函數(shù)定義格式。7、在面向?qū)ο蠓椒ㄖ?,類的實例稱為()。A、對象B、方法C、類型D、數(shù)據(jù)標準答案:A知識點解析:類是具有相同特征的對象的抽象,對象是類的實例。8、關系操作的特點是()操作。A、分類B、集合C、控制D、互斥標準答案:B知識點解析:在關系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,每一個二維表稱為關系,因此關系其實是數(shù)據(jù)的集合,對關系的操作其實就是對數(shù)據(jù)組成的集合之間的操作。9、數(shù)據(jù)庫保護不包括()。A、安全性控制B、并發(fā)性控制C、數(shù)據(jù)恢復D、預防性控制標準答案:D知識點解析:安全性控制是指防止未經(jīng)授權的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制是指保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯誤的操作;并發(fā)性控制是指正確處理好多用戶、多任務環(huán)境下的并發(fā)操作,防止錯誤發(fā)生;數(shù)據(jù)的恢復是指當數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,使數(shù)據(jù)庫能恢復到正確的狀態(tài)。10、將"x+y*z"中的“+”用成員函數(shù)重載,“*”用友元函數(shù)重載,應寫為()。A、x.rational+(rational*(y,z))B、x.const+(const*(y,z))C、x.operator+(operator*(y,z))D、x.temp+(temp*(y,z))標準答案:C知識點解析:運算符重載為成員函數(shù)的形式:“函數(shù)類型operator運算符(形參表){函數(shù)體;}”;運算符重載為友元函數(shù)的形式:“friend函數(shù)類型operator運算符(形參表){函數(shù)體;}”。一般來講,單目運算符最好重載為成員函數(shù),雙目運算符最好重載為友元函數(shù)。運算符函數(shù)有兩種調(diào)用形式,第一種是像一般函數(shù)那樣用函數(shù)名調(diào)用,即“y.operator*(z)”或者“operator*(y,z)”;另一種是通過運算符構成表達式,即“y*z”。11、指針變量保存的是()。A、變量地址B、對象的內(nèi)存地址C、常量地址D、邏輯地址標準答案:B知識點解析:指針變量指向的不是變量保存的數(shù)據(jù)值,而是變量的地址,所以指針變量保存的是對象的內(nèi)存地址。12、()是實現(xiàn)C++語青運行時多態(tài)性的機制。A、靜態(tài)綁定B、動態(tài)綁定C、單態(tài)綁定D、多態(tài)綁定標準答案:B知識點解析:C++語言編譯時多態(tài)性的機制是靜態(tài)綁定,實現(xiàn)C++語言運行時多態(tài)性的機制是動態(tài)綁定。13、友元類的所有成員函數(shù)都是另一個類的()。A、成員函數(shù)B、友元函數(shù)C、非成員函數(shù)D、非友元函數(shù)標準答案:B知識點解析:C++語言中友元類中的函數(shù)都是另一個類的友元函數(shù)。14、時間復雜度和空間復雜度均屬于()。A、算法復雜度B、編程復雜度C、公式復雜度D、數(shù)據(jù)復雜度標準答案:A知識點解析:算法復雜度主要包括時間復雜度和空間復雜度。15、數(shù)據(jù)的基本單位是()。A、比特B、數(shù)據(jù)庫C、數(shù)據(jù)元素D、文件標準答案:C知識點解析:數(shù)據(jù)的基本單位是數(shù)據(jù)元素。16、將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果是()的作用。A、承接模塊B、樁模塊C、繼承模塊D、驅(qū)動模塊標準答案:D知識點解析:在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。樁模塊用來代替被測模塊所調(diào)用的模塊,返回被測模塊所需的信息。17、在C++語言中,面向?qū)ο笏枷氲闹饕卣鞑话?)。A、封裝性B、繼承性C、多態(tài)性D、單態(tài)性標準答案:D知識點解析:面向?qū)ο笙到y(tǒng)包含了3個特征:封裝性、繼承性和多態(tài)性,這3個特征可以很好地實現(xiàn)數(shù)據(jù)抽象,進行行為共享,完成進化求解和描述一個系統(tǒng)的確定行為。18、C++語言程序是從()函數(shù)開始執(zhí)行的。A、iosB、mainC、listD、temp標準答案:B知識點解析:所有的C++語言程序都是從main函數(shù)開始執(zhí)行,而普通函數(shù)的存在是為了簡化main函數(shù)的復雜程度。19、派生類構造函數(shù)的執(zhí)行順序是()。A、派生類、成員對象、基類B、成員對象、基類、派生類C、基類、成員對象、派生類D、成員對象、派生類、基類標準答案:C知識點解析:本題主要考查的是派生類構造函數(shù)的執(zhí)行順序,在C++語言中構造函數(shù)的執(zhí)行順序是先基類后派生類,而析構函數(shù)的執(zhí)行順序正好相反,是先調(diào)用派生類后調(diào)用基類。派生類構造函數(shù)的執(zhí)行順序是先執(zhí)行基類的構造函數(shù),然后執(zhí)行成員對象的構造函數(shù),最后執(zhí)行派生的構造函數(shù)。20、類模板只可用()型參數(shù)。A、類B、重載C、任何D、派生標準答案:A知識點解析:本題考查的是類模板的定義,C++語言中模板分為兩種:類模板和函數(shù)模板,類模板只能用于類型參數(shù),函數(shù)模板可以重載。21、C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋的結束標記為()。A、/*B、*/C、:D、;標準答案:B知識點解析:C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以“/*”開始,以“*/”結束。22、用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具11字節(jié)的動態(tài)存儲空間,則下列橫線中應填寫的內(nèi)容是()。st=(char*)_________;A、malloe(sizeof*11)B、char(11)C、malloc(char(sizeof)*11)D、malloc(11)標準答案:D知識點解析:malloc函數(shù)的參數(shù)可以是一個具體的常數(shù),也可以是一個表達式。在本題中,可以是malloc(11),也可以借助于sizeof運算符來表示。本題答案也可以表示為malloc(sizeof(char)*11)。23、程序中有如下語句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能夠依次輸出int型一維數(shù)組DATA的前5個元素。由此可知,變量p的定義及初始化語句是()。A、int*p=DATAB、DATA=int*pC、int(cuont*p)=DATAD、cuont(int*p)=DATA標準答案:A知識點解析:本題考查的是指針變量的定義及初始化。題目中要求輸出int型數(shù)組DATA的前5個元素,由表達式“*(p+0)和*(p+4)”可知,變量p是一個指向DATA首地址的int型指針,故它的定義及初始化語句是“int*p=DATA”。24、表達式“c3=c1.operator+(c2)”或“c3=operator+(c1,c2)”還可以表示為()。A、c3=c--c2B、c3=el+c2C、c1-c3+c2D、c2=e3+c2標準答案:B知識點解析:本題考查的是“十”運算符的重載。運算符函數(shù)的調(diào)用有兩種形式,第一種是像一般函數(shù)那樣用函數(shù)名調(diào)用,即“c1.operatotor+(c2)”或者“operator+(c1,c2)”;另一種是通過運算符構成表達式,即“c1+c2”。25、下列程序的輸出結果是()。#includetemplateTmax(Tx[],intn){inti;Tmaxv=x[0];for(i=1;iA、9,7.3B、7,7.3C、9,3.4D、7,3.4標準答案:D知識點解析:函數(shù)的功能是求出數(shù)組中指定范圍的元素中的最大值。所以在a數(shù)組中前4個數(shù)據(jù)中最大值為7,數(shù)組b中前3個元素中最大值為3.4。26、有如下定義:classMA{intvalue;public:MA(intn=0):value(n){}};MA*ta,tb;其中,MA類的對象名標識符是()。A、taB、tbC、inttaD、inttb標準答案:B知識點解析:本題考查的是對象的定義。對象的定義格式為“類名對象名(參數(shù)表);”。所以題目中的tb是對象名標識符,而ta被定義成類MA的指針,故答案為tb。27、下列程序在構造函數(shù)和析構函數(shù)中申請和釋放類的數(shù)據(jù)成員int*a,申請時使用形參b初始化a,橫線處應填寫的語句是()。classA{public:A(intb);~A();private:int*a;};A::A(intb){________;}A::~A(){deletea;}A、a=newint(b)B、b=newint(a)C、a=int(b)D、b=int(a)標準答案:A知識點解析:C++中new和delete的使用有如下幾種方式:①a=newint;deletea;②a=newint(10);delelea;③a=newint[10];delete[]a;。28、下列程序的運行結果是()。#include#defineN10#defines(x)x*x#definef(x)(x*x)voidmain(){inti1,i2;i1=1000/s(N):i2=1000H(N);cout<A、1000,10B、1000,100C、10,1000D、100,10標準答案:A知識點解析:對于deftne宏定義語句,系統(tǒng)會在編譯前進行替換。本題替換過程如下:i1=1000/s(N)i1=1000/s(10)i1=1000/10*1011=1000i2=1000/f(N)i2=1000/f(10)i2=1000/(10*10)i2=1029、下列橫線處應填寫的內(nèi)容是()。#includeclassTest{privatetstaticintval;inta;public:staticintfunc();voidsrune(Test&r);};//初始化靜態(tài)變量valintTest::func(){returnval++:}voidTest::sfunc(Test&r){r.a(chǎn)=125;eout<<"Result3="<標記報錯收藏查看答案標準答案:B知識點解析:本題考查的是成員函數(shù)的調(diào)用。因為橫線處的作用是調(diào)用基類的fun函數(shù),又因為派生類中也有fun函數(shù),所以必須對fun函數(shù)加以限定,即“Base::fnn();”。31、下列程序的運行結果是()。#include(iostream.h)classtest{private:inthum;public:test();intTEST(){returnhum+100;}~test();};test::test(){num=0;)test::~test(){cout<<"Destructorisactive"<A、
B、
C、
D、
標準答案:A知識點解析:本題考查基本的類的定義,構造函數(shù)以及對象數(shù)組的概念。32、若下列程序運行的輸出結果為1,A,10.12,B,3.5則橫線處應填寫的內(nèi)容為()。#include(iostream)usingnamespacestd;voidtest(inta,charb,doublec){cout<A、=1B、=2C、=3.5D、=10.1標準答案:C知識點解析:本題考查了函數(shù)默認參數(shù)的應用。本題中第一次調(diào)用test函數(shù)數(shù)值1,A,10.1;第二次調(diào)用少了一個實參,卻要求輸出2,B,3.5,由此分析,應將test函數(shù)的第三個參數(shù)聲明為默認參數(shù)。且默認為3.5,才能達到要求的輸出結果。故應填入“=3.5”或“c=3.5”。33、下列程序運行后的結果為()。#includevoidmain(){inta=1,b=2;boolc=1:if<b)||c)cout<<"true"<A、falseB、trueC、2D、134、下列for語句的循環(huán)次數(shù)為()。for(inta=0,b=1.b&&a<5;a++);A、0B、1C、3D、535、下列程序的輸出結果是()。#includevoidmain(){inta[6]={1,2,3,4,5,6};for(inti=0;i<5;i++)cout<A、123456B、12345C、1234D、1234636、下列程序的執(zhí)行結果為()。#includevoidmain(){cout<A、helloB、*helloC、*****helloD、**********hello37、若已定義“inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;”,則對數(shù)組元素不正確的引用是()。A、a[p-a]B、*(8&a[i])C、p[i]D、*(*(a+i))二、基本操作題(本題共1題,每題1.0分,共1分。)38、使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正常運行,并使程序輸出的結果為Maxis7提示:max函數(shù)用于找出兩個數(shù)中的最大值,并作為函數(shù)值返回。注意:錯誤的語句在//********error********的下面,修改該語句即可。試題程序:#include(iostream)usingnamespacestd;//********error********intmax(inta,intb){if(a<b){intt=a:a=b;b=t;}returnb;}intmain(){intm=-3;intn=7://********error********max(-3,n);cout<<"Maxis"<三、簡單應用題(本題共1題,每題1.0分,共1分。)39、使用VC++6.0打開考生文件夾下的源程序文件2.cpp,請實現(xiàn)函數(shù)fun(doublea[],intlen)的如下功能:(1)a[]是一個數(shù)組,長度為len。(2)a[0]=0,a[1]=1。(3)a[i+2]=a[i]+a[i+1]。注意:不能修改函數(shù)的其他部分。試題程序:#includevoidfun(doublea[],intlen){}voidmain(){doubleaE20];fun(a,20);for(inti=0;i<20;i++){std::cout<四、綜合應用題(本題共1題,每題1.0分,共1分。)40、使用VC++6.0打開考生文件夾下的源程序文件3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整,并使程序的輸出結果為21。(1)增加靜態(tài)私有變量Num,類型為int。請在注釋1后添加適當?shù)恼Z句。(2)增加靜態(tài)變量Num并初始化為10。請在注釋2后添加適當?shù)恼Z句。(3)完成靜態(tài)函數(shù)get的定義。請在注釋3后添加適當?shù)恼Z句。(4)完成對象obj對靜態(tài)函數(shù)get的調(diào)用,使輸出結果為21。請存注釋4后添加適當?shù)恼Z句。注意:增加或者修改代碼的位置已經(jīng)用符號表示出來,請不要修改其他的程序代碼。試題程序:#include(iostream.h)classTC{//********1********intOwn;public:TC(inti){Own=i:}//********2********{returnNum+obj->Own:}};//********3********intmain(){TCobj(11);//********4********cout<<<國家二級(C++)機試模擬試卷第5套一、選擇題(本題共40題,每題1.0分,共40分。)1、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關系B、數(shù)據(jù)流C、控制流D、調(diào)用關系標準答案:C知識點解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述,通常也稱為程序框圖。其中,帶箭頭的線段表示控制流,矩形表示加工步驟,菱形表示邏輯條件。2、結構化程序設計的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:結構化程序設計方法的主要原則可以概括為自頂而下、逐步求精、限制使用GOTO語句。類的特性包括繼承和多態(tài)性。3、軟件設計中模塊劃分應遵循的準則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標準答案:B知識點解析:模塊獨立性的兩個定性標準是耦合性和內(nèi)聚性,內(nèi)聚是一個模塊內(nèi)各個元素彼此緊密程度;耦合是一個軟件結構內(nèi)不同模塊之間互連程度的度量,各模塊的內(nèi)聚性越強,則耦合性越弱。軟件設計應該遵循高內(nèi)聚低耦合的特性。4、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報告B、軟件需求規(guī)格說明書C、概要設計說明書D、集成設計計劃標準答案:B知識點解析:需求分析是對獲取的需求進行分析和綜合最終給出系統(tǒng)的解決方案和目標系統(tǒng)的邏輯模型。需求分析的最終結果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設計人員之間的交流提供方便,可以直接支持目標確認,又可以作為控制軟件開發(fā)進程的依據(jù)。5、算法的有窮性是指()。A、算法程序的運行時間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標準答案:A知識點解析:算法的有窮性,是指算法必須在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限步驟之后終止。算法的有窮性還應包括實現(xiàn)的執(zhí)行時間的含義,如果一個算法需要執(zhí)行千萬年,顯然失去了實用價值。6、對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標準答案:D知識點解析:首先知道有哪些排序的方法及各種排序方法在最壞情況下需要比較的次數(shù),冒泡排序n(n-1)/2、希爾排序O(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)。7、下列關于棧的敘述正確的是()。A、棧按“先進先出”組織數(shù)據(jù)B、棧按“先進后出”組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標準答案:B知識點解析:棧的特點是后進先出是限定在表的一端進行插入和刪除的線性表,允許進行插入和刪除元素的一端稱為棧頂,另一端稱為棧底。8、在數(shù)據(jù)庫設計中,將E-R圖轉換成關系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設計階段C、邏輯設計階段D、物理設計階段標準答案:C知識點解析:數(shù)據(jù)庫的設計階段包括需要分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段和進一步修改階段,其中E—R圖轉換成關系數(shù)據(jù)模型的過程屬于邏輯設計階段。9、有3個關系R、S和T如下:由關系R和S通過運算得到關系T,則所使用的運算為()。A、并B、自然連接C、笛卡兒積D、交標準答案:D知識點解析:由題可知,T中的數(shù)據(jù)既在R中,也在S中,符合這個概念的是“交”運算,D正確。10、設有表示學生選課的3張表,學生S(學號、姓名、性別、年齡、身份證號)、課程C(課號、課名)、選課SC(學號、課號、成績),則表SC的關鍵字(鍵或碼)為()。A、課號、成績B、學號、成績C、學號、課號D、學號、姓名、成績標準答案:C知識點解析:關鍵字是指屬性或?qū)傩缘慕M合,其功能是唯一地標識一個元組或數(shù)據(jù),而SC中學號和課號的組合可以對元組進行唯一的標識。11、下列敘述中正確的是()。A、C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面B、C程序書寫格式嚴格,要求一行內(nèi)只能寫一個語句C、C程序書寫格式自由,一個語句可以寫在多行上D、用C語言編寫的程序只能放在一個程序文件中標準答案:C知識點解析:在程序中注釋部分對程序的運行結果不產(chǎn)生任何影響,增加了程序的易讀性,它可以出現(xiàn)在任意位置,并且書寫自由,一行內(nèi)可以寫多個語句,語句可以寫在多行上;由于C語言編寫的程序有很多的移植性,可以被多個程序文件引用。12、下列選項中不合法的標識符是()。A、printB、FORC、&aD、0標準答案:C知識點解析:標識符的概念只能由數(shù)字、字母和下畫線組成,并且只能以字母和下畫線開頭,所以選項C不正確。13、下列選項中不屬于字符常量的是()。A、’C’B、CC、’\xCC’D、’\072’標準答案:B知識點解析:字符常量是用一對單弓I號括起來的,而字符串常量是用雙引號括起來的字符序列,所以選項B不正確;選項C中’\xCC’是十六進制表示的轉義字符;選項D中’\072’是八進制表示的轉義字符。14、設變量已正確定義并賦值,以下正確的表達式是()。A、x=y*5=x+zB、int(15.8%5)C、x=y+z+5,++yD、x=25%5.0標準答案:C知識點解析:在賦值表達式中,賦值符號的左邊只能為變量,不能為表達式,右邊可以為常量或者是表達式,運算符“%”兩邊必須是整型數(shù)據(jù),所以選項B、D錯誤。所以選項C正確。15、以下定義語句中正確的是()。A、inta=b=0;B、charA=65+1,b=’b’;C、floata=1,"b=&a,"c:&b;D、doublea=0.0.b=1.1;標準答案:B知識點解析:本題考查數(shù)據(jù)類型的定義,選項A中是要定義變量并且賦初值,但方式不對,必須單獨定義其類型。選項C給實型變量賦值時不用雙引號,也不能將地址賦予實型變量,在選項D中,C語言允許在一個類型說明符后說明多個相同類型的變量,各變量之間要用逗號隔開,而不是用分號隔開,選項B正確。16、有下列程序段:charch;intk;ch=’a’;k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結果是()。A、因變量類型與格式描述符的類型不匹配輸出無定值B、輸出項與格式描述符個數(shù)不符,輸出為零值或不定值C、a,97,12k=12D、a,97,k=12標準答案:D知識點解析:printf語句在輸出時,格式說明與輸出項的個數(shù)應該相同。如果格式說明的個數(shù)少于輸出項的個數(shù)(正如本題的情況),則多余的輸出項不予輸出,如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。故本題選項為D。17、已知字母A的ASCII代碼值為65,若變量kk為char型,下列不能正確判斷出kk中的值為大寫字母的表達式是()。A、kk>=’A’&&kk=’Z’B、!(kk>=’A’‖kk<=’Z’)C、(kk+32)>=’a’&&(kk+32)<=’z’D、isalpha(kk)&&(kk<=91)標準答案:B知識點解析:選項A用邏輯運算符來連接關系表達式’A’<=kk并且kk<=’Z’,介于’A’與’Z’之間為大寫字母。選項C用邏輯與運算符來連接關系表達式(kk+32)>’a’和(kk+32)<=’z’,因為大寫’A’與小寫’a’,ASCII碼相差32,由表達式可知C正確。選項D調(diào)用函數(shù)isalpha(),首先判斷kk是否為字母,接著通過與運算(kk<=91)來判斷kk是否為大寫字母;而選項B的表達式給的結果是除了’A’與’Z’的大寫字母,不符合題意。18、當變量c的值不為2、4、6時,值也為“真”的表達式是()。A、(c==2)‖(c==4)‖(c==6)B、(c>=2&&C<=6)‖(c!=3)‖(c!=5)C、(c>=2&&c<-6)&&!(c%2)D、(c>=2&&c<=6)&&(c%2!=1)標準答案:B知識點解析:邏輯或“||”運算中,只要有一項為真,表達式的值就為真而邏輯與“&&”運算必須兩邊都為真時才為真,在選項B中c的值不為2、4、6時,表達式的值也為真。19、若變量已正確定義,有下列程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結果是()。A、程序段有語法錯B、3,5,3C、3,5,5D、3,5,7標準答案:B知識點解析:如果if判斷條件成立時就執(zhí)行其后的相關語句,否則不執(zhí)行,第一個if條件a>b不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,把c的值賦給a后,此時第二個if條件不成立,故不執(zhí)行其后語句,最終點c的值為3。20、有下列程序:#includevoidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++break;}case2:a++.b++;break;case3:a++.b++;printf("a=%d,b=%d\n",a,b);}程序的運行結果是()。A、a=1,b=0B、a=2,b=2.C、a=1,b=1D、a=2,b=1標準答案:D知識點解析:本題考查的是switch…case分支語句,x=1時,首先執(zhí)行case1進行嵌套判斷,y=0時switch(0)成立,執(zhí)行case0,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結束循環(huán),此時a=2,b=1,故選項D正確。21、有下列程序:#includevoidmain(){intx=8:for(;x>0;X--){if(x%3){printf("%d,",x--);continue;)printf("%d,",--x);}}程序的運行結果是()。A、7,4,2B、8,7,5,2C、9,7,6,4D、8,5,4,2標準答案:D知識點解析:x--后綴表示先用x的值再令x減1,--x前綴表示先將x減1,再執(zhí)行程序,則輸出(x--)繼續(xù)下一次循環(huán),輸出“8,”,此時x自減值變?yōu)?,執(zhí)行x--,x=6,x%3=0,后面語句不執(zhí)行,執(zhí)行語句“printf(“d,”,--x);”,輸出“5”,繼續(xù)for循環(huán)中的x--,得到x=5,輸出“5”;判斷x%3為真,輸出“4”,執(zhí)行兩次x--后,x=2,執(zhí)行“{printf("%d",x--);cotinue;}”后,輸出“2”;然后執(zhí)行兩次x--后,x=0,不符合“x>0”,循環(huán)結束。22、下列不構成無限循環(huán)的語句或語句組是()。A、n=0;B、n=0:do{++n;)while(n<=0);while(1)(n++;}C、while(n-10);(n==;}D、for(n=0,i=1;;i++)n+=i標準答案:A知識點解析:選項B中while(1)永遠為真,一直自加下次進入死循環(huán);選項C中while(n=10)同理死循環(huán),沒有下限范圍;選項D中for循環(huán)中i也沒有循環(huán)限定條件也將進入死循環(huán);只有選項A中while(n<=0)循環(huán)判定成立,循環(huán)結束
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 樹立規(guī)則為本服務理念,強化病歷書寫證據(jù)意識課件
- 2025年高考語文??急厮⒃囶}庫300題(含答案)
- 2025年畢節(jié)職業(yè)技術學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年桐城師范高等??茖W校高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025科學儀器行業(yè)發(fā)展趨勢與市場前景分析
- 2025養(yǎng)老行業(yè)發(fā)展趨勢與市場前景分析
- 建筑工程可行性研究合同協(xié)議書
- 演員合同書范本
- 經(jīng)典借款合同
- 海運貨物運輸合同范文
- 搞笑小品劇本《大城小事》臺詞完整版
- 人大代表小組活動計劃人大代表活動方案
- Vue3系統(tǒng)入門與項目實戰(zhàn)
- 2024年寧夏回族自治區(qū)中考英語試題含解析
- 光伏發(fā)電項目試驗檢測計劃
- 房屋建筑工程投標方案(技術方案)
- 靜脈輸液法操作并發(fā)癥的預防及處理
- 2025年高考語文作文備考:議論文萬能模板
- T-BJCC 1003-2024 首店、首發(fā)活動、首發(fā)中心界定標準
- 外科手術及護理常規(guī)
- 鐵嶺衛(wèi)生職業(yè)學院單招參考試題庫(含答案)
評論
0/150
提交評論