歷年全國計算機二級c++考試真題與答案_第1頁
歷年全國計算機二級c++考試真題與答案_第2頁
歷年全國計算機二級c++考試真題與答案_第3頁
歷年全國計算機二級c++考試真題與答案_第4頁
歷年全國計算機二級c++考試真題與答案_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

..全國計算機等級考試二級筆試試卷公共基礎知識及C++語言程序設計<考試時間90分鐘,滿分100>分>一、選擇題<<1>~<35>每小題2分,共70分>下列各題A>、B>、C>、D>四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。<1>下面敘述正確的是A>算法的執(zhí)行效率與數(shù)據的存儲結構無關B>算法的空間復雜度是指算法程序中指令<或語句>的條數(shù)C>算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止D>以上三種描述都不對<2>以下數(shù)據結構中不屬于線性數(shù)據結構的是A>隊列B>線性表C>二叉樹D>棧<3>在一棵二叉樹上第5層的結點數(shù)最多是A>8B>16C>32D>15<4>下面描述中,符合結構化程序設計風格的是A>使用順序、選擇和重復<循環(huán)>三種基本控制結構表示程序的控制邏輯B>模塊只有一個入口,可以有多個出口C>注重提高程序的執(zhí)行效率D>不使用goto語句<5>下面概念中,不屬于面向對象方法的是A>對象B>繼承C>類D>過程調用<6>在結構化方法中,用數(shù)據流程圖<DFD>作為描述工具的軟件開發(fā)階段是A>可行性分析B>需求分析C>詳細設計D>程序編碼<7>在軟件開發(fā)中,下面任務不屬于設計階段的是A>數(shù)據結構設計B>給出系統(tǒng)模塊結構C>定義模塊算法D>定義需求并建立系統(tǒng)模型<8>數(shù)據庫系統(tǒng)的核心是A>數(shù)據模型C>軟件工具B>數(shù)據庫管理系統(tǒng)D>數(shù)據庫<9>下列敘述中正確的是A>數(shù)據庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持B>數(shù)據庫設計是指設計數(shù)據庫管理系統(tǒng)C>數(shù)據庫技術的根本目標是要解決數(shù)據共享的問題D>數(shù)據庫系統(tǒng)中,數(shù)據的物理結構必須與邏輯結構一致<10>下列模式中,能夠給出數(shù)據庫物理存儲結構與物理存取方法的是A>內模式B>外模式C>概念模式D>邏輯模式<11>關于面向對象的程序設計方法,下列說法正確的是A>"封裝性"指的是將不同類型的相關數(shù)據組合在一起,作為一個整體進行處理B>"多態(tài)性"指的是對象的狀態(tài)會根據運行時要求自動變化C>基類的私有成員在派生類的對象中不可訪問,也不占內存空間D>在面向對象的程序設計中,結構化程序設計方法仍有著重要作用<12>判斷字符型變量ch是否為大寫英文字母,應使用表達式A>ch>='A'&ch<='Z'B>ch<='A'||ch>='Z'C>'A'<=ch<='Z'D>ch>='A'&&ch<='Z'<13>已知下列語句中的x和y都是int型變量,其中錯誤的語句A>x=y++;B>x=++y;C><x+y>++;D>++x=y;<14>執(zhí)行語句序列intn;cin>>n;switch<n>{case1:case2:cout<<'1';case3:case4:cout<<'2';break;default:cout<<'3';}時,若鍵盤輸入1,則屏幕顯示A>1B>2C>3D>12<15>下列程序的輸出結果是#include<iostream>usingnamespacestd;intmain<>{chara[]="Hello,World";char*ptr=a;while<*ptr>{if<*ptr>='a'&&*ptr<='z'>cout<<char<*ptr+'A'-'a'>;elsecout<<*ptr;ptr++;}return0;}A>HELLO,WORLDB>Hello,WorldC>hELLO,wORLDD>hello,world<16>已知:intm=10;在下列定義引用的語句中,正確的是A>int&x=m;B>inty=&m;C>int&z;D>int&t=&m;<17>下列函數(shù)原型聲明中錯誤的是A>voidFun<intx=0,inty=0>;B>voidFun<intx,inty>;C>voidFun<intx,inty=0>;D>voidFun<intx=0,inty>;<18>已知程序中已經定義了函數(shù)test,其原型是inttest<int,int,int>;,則下列重載形式中正確的是A>chartest<int,int,int>;B>doubletest<int,int,double>;C>inttest<int,int,int=0>;D>floattest<int,int,float=3.5F>;<19>有以下程序#include<iostream>inti=0;voidfun<>{{staticinti=1;std::cout<<i++<<',';}std::cout<<i<<',';}intmain<>{fun<>;fun<>;return0;}程序執(zhí)行后的輸出結果是A>1,2,1,2,B>1,2,2,3,C>2,0,3,0,D>1,0,2,0,<20>已知函數(shù)f的原型是:voidf<int*a,long&b>;變量v1、v2的定義是:intv1;longv2;,正確的調用語句是A>f<v1,&v2>;B>f<v1,v2>;C>f<&v1,v2>;D>f<&v1,&v2>;<21>有以下類定義classMyClass{public:MyClass<>{cout<<1;}};則執(zhí)行語句MyClassa,b[2],*p[2];后,程序的輸出結果是A>11B>111C>1111D>11111<22>關于友元,下列說法錯誤的是A>如果類A是類B的友元,那么類B也是類A的友元B>如果函數(shù)fun<>被說明為類A的友元,那么在fun<>中可以訪問類A的私有成員C>友元關系不能被繼承D>如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元<23>關于動態(tài)存儲分配,下列說法正確的是A>new和delete是C++語言中專門用于動態(tài)內存分配和釋放的函數(shù)B>動態(tài)分配的內存空間也可以被初始化C>當系統(tǒng)內存不夠時,會自動回收不再使用的內存單元,因此程序中不必用delete釋放內存空間D>當動態(tài)分配內存失敗時,系統(tǒng)會立刻崩潰,因此一定要慎用new<24>有以下程序#include<iostream>usingnamespacestd;classMyClass{public:MyClass<intn>{number=n;}//拷貝構造函數(shù)MyClass<MyClass&other>{number=other.number;}~MyClass<>{}private:intnumber;};MyClassfun<MyClassp>{MyClasstemp<p>;returntemp;}intmain<>{MyClassobj1<10>,obj2<0>;MyClassobj3<obj1>;obj2=fun<obj3>;return0;}程序執(zhí)行時,MyClass類的拷貝構造函數(shù)被調用的次數(shù)是A>5B>4C>3D>2<25>在公有派生的情況下,派生類中定義的成員函數(shù)只能訪問原基類的A>公有成員和私有成員B>私有成員和保護成員C>公有成員和保護成員D>私有成員、保護成員和公有成員<26>在C++中用來實現(xiàn)運行時多態(tài)性的是A>重載函數(shù)B>析構函數(shù)C>構造函數(shù)D>虛函數(shù)<27>一個類可以同時繼承多個類,稱為多繼承。下列關于多繼承和虛基類的表述中,錯誤的是A>每個派生類的構造函數(shù)都要為虛基類構造函數(shù)提供實參B>多繼承時有可能出現(xiàn)對基類成員訪問的二義性問題C>使用虛基類可以解決二義性問題并實現(xiàn)運行時的多態(tài)性D>建立最派生類對象時,虛基類的構造函數(shù)會首先被調用<28>在一個類體的下列聲明中,正確的純虛函數(shù)聲明是A>virtualvoidvf<>=0;B>voidvf<int>=0;C>virtualintvf<int>;D>virtualvoidvf<int>{}<29>在下面的運算符重載函數(shù)的原型中,錯誤的是A>Volumeoperator-<double,double>;B>doubleVolume::operator-<double>;C>VolumeVolume::operator-<Volume>;D>Volumeoperator-<Volume,Volume>;<30>下列是模板聲明的開始部分,其中正確的是A>template<T>B>template<classT1,T2>C>template<classT1,classT2>D>template<classT1;classT2><31>執(zhí)行語句序列ofstreamoutfile<"DATA.DAT">;if<...>cout<<"OK";elsecout<<"FAIL";后,如果文件打開成功顯示"OK",否則就顯示"F厶n。"。由此可知,上面if語句的...處的表達式應是A>outfile.fail<>或outfileB>outfile.good<>或!outfileC>outfile.good<>或outfileD>outfile.fail<>或!outfile<32>C++流中重載的運算符>>是一個〔A>用于輸出操作的非成員函數(shù)B>用于輸入操作的非成員函數(shù)C>用于輸出操作的成員函數(shù)D>用于輸入操作的成員函數(shù)<33>有以下類定義classPoint{public:Point<intx=0,inty=0>{_.x=x;_.y=y;}voidMove<intxOff,intyOff>{_x+=xOff;_.y+=yOff;}voidPrint<>const{cout<<'<'<<_x<<','<<_y<<'>'<<endl;}private:int_x,_y;};下列語句中會發(fā)生編譯錯誤的是A>Pointpt;pt.Print<>;B>constPointpt;pt.Print<>;C>Pointpt;pt.Move<l,2>;D>constPointpt;pt.Move<l,2>;<34>有以下類定義classMyClass{private:intid;chargender,char*phone;public:MyClass<>:id<0>,gender<'#'>,phone<NULL>{}MyClass<intno,charge='#',char*ph=NULl.>{id=no;gende=ge;phone=ph;}};下列類對象定義語句中錯誤的是A>MyClassmyObj;C>MyClassmyObj<12,'m'>;D>MyClassmyObj<12>;<35>有以下程序#include<iostream>usingnamespacestd;classComplex{public:Complex<doubler=0,doublei=0>:re<r>,im<i>{}doublereal<>const{returnre;}doubleimag<>const{returnim;}Complexoperator+<Complexc>const{returnComplex<re+c.re,im+c.im>;}private:doublere,im;};intmain<>{Complexa=Complex<l,1>+Complex<5>;cout<<a.real<><<'+'<<a.imag<><<'i'<<endl;return0;}程序執(zhí)行后的輸出結果是A>6+6iB>6+1iC>1+6iD>1+1i二、填空題<每空2分,共30分>請將每一個空的正確答案寫在答題卡[1]-[15]序號的橫線上,答在試卷上不得分。注意:以命令關鍵字填空的必須拼寫完整。<1>算法的復雜度主要包括[1]復雜度和空間復雜度。<2>數(shù)據的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據的[2]。<3>若按功能劃分,軟件測試的方法通常分為白盒測試方法和[3]測試方法。<4>如果一個工人可管理多個設備,而一個設備只被一個工人管理,則實體"工人"與實體"設備"之間存在[4]的聯(lián)系。<5>關系數(shù)據庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括選擇、連接和[5]。<6>設有定義語句:inta=12;,則表達式a*=2+3的運算結果是[6]。<7>從實現(xiàn)的角度劃分,C++所支持的兩種多態(tài)性分別是[7]時的多態(tài)性和運行時的多態(tài)性。<8>將—個函數(shù)聲明為一個類的友元函數(shù)必須使用關鍵字[8]。<9>請按下面注釋的提示,將類B的構造函數(shù)定義補充完整。classA{inta;public:A<intaa=0>{a=aa;}};classB:publicA{intb;Ac;public://用aa初始化基類A,用aa+1初始化類對象成員cB<intaa>:[9]{b=aa+2;}};<10>下列程序的輸出結果是[10]。#include<iostream>usingnamespacestd;intmain<>{inti=5;int&r=i;r=7;cout<<i<<endl;return0;}<11>下列程序的輸出結果是[11]。#include<iostream>usingnamespacestd;classTest{public:Test<>{cnt++;}~Test<>{cnt--;}staticintCount<>{returncnt;}private:staticintcnt;};intTest::cnt=0;intmain<>{cout<<Test::Count0<<'';Testtl,t2;Test*pT3=newTest;Test*pT4=newTest;cout<<Test::Count0<<'';deletepT4;deletepT3;cout<<Test::Count<><<endl;return0;}<12>下面是用來計算n的階乘的遞歸函數(shù),請將該函數(shù)的定義補充完整。<注:階乘的定義是n!=n*<n-1>*...*2*1>unsignedfact<unsignedn>{if<n<=1>return1;return[12];}<13>下列程序的輸出結果是[13]。#include<iostream>usingnamespacestd;template<tytenameT>Tfun<Ta,Tb>{return<a<=b>?:b;}intmain<>{cout<<fun<3,6><<','<<fun<3.14F,6.28F><<endl;return0;}<14>與成員訪問表達式p->name等價的表達式是[14]。<15>下列程序的輸出結果是[15]。#include<iostream>usingnamespacestd;classbase{public:intn;base<intx>{n=x;}virtualvoidset<intm>{n=m;cout<<n<<'';}};classderiveA:publicbase{public:deriveA<intx>:base<x>{}voidset<mtm>{n+=m;cout<<n<<'';}};classderiveB:publicbase[public:deriveB<intx>:base<x>{}voidset<intm>{n+=m;cout<<n<<'';}};intmain<>{deriveAdl<1>;deriveBd2<3>;base*pbase;pbase=&dl;pbase->aet<1>;pbase=&d2;pbase->set<2>;return0;}

20XX9月全國計算機等級考試二級筆試試卷公共基礎知識及C++語言程序設計答案及評分標準選擇題<<1>—<35>每小題2分,共70分><1>C<2>C<3>B<4>A<5>D<6>B<7>D<8>B<9>C<10>A<11>D<12>D<13>C<14>D<15>A<16>A<17>D<18>B<19>D<20>C<21>B<22>A<23>B<24>B<25>C<26>D<27>C<28>A<29>A<30>C<31>C<32>B<33>D<34>B<35>B二、填空題<每空2分,共30分><1>[1]時間<2>[2]存儲結構或物理結構或物理存儲結構<3>[3]黑盒或黑箱<4>[4]一對多或1對多或I:M或I:N<其中M、N大小寫均可><5>[5]投影<6>[6]60<7>[7]編譯<8>[8]friend<9>[9]A<aa>,c<aa+1>或c<aa+1>,A<aa><10>[10]7<11>[11]042<12>[12]n*fact<n-1><13>[13]3,3.14<14>[14]<*p>.name<15>[15]2520XX3月計算機等級考試二級C++筆試試題一、選擇題<每小題2分,共70分>下列各題A>、B>、C>、D>四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。<1>下列敘述中正確的是A>對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為nB>對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為<n/2>C>對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為<log2n>D>對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為<nlog2n><2>算法的時間復雜度是指A>算法的執(zhí)行時間B>算法所處理的數(shù)據量C>算法程序中的語句或指令條數(shù)D>算法在執(zhí)行過程中所需要的基本運算次數(shù)<3>軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件<或工具軟件>。下面屬于系統(tǒng)軟件的是A>編輯軟件B>操作系統(tǒng)C>教務管理系統(tǒng)D>瀏覽器<4>軟件<程序>調試的任務是A>診斷和改正程序中的錯誤B>盡可能多地發(fā)現(xiàn)程序中的錯誤C>發(fā)現(xiàn)并改正程序中的所有錯誤D>確定程序中錯誤的性質<5>數(shù)據流程圖<DFD圖>是A>軟件概要設計的工具B>軟件詳細設計的工具C>結構化方法的需求分析工具D>面向對象方法的需求分析工具<6>軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設計屬于A>定義階段B>開發(fā)階段C>維護階段D>上述三個階段<7>數(shù)據庫管理系統(tǒng)中負責數(shù)據模式定義的語言是A>數(shù)據定義語言B>數(shù)據管理語言C>數(shù)據操縱語言D>數(shù)據控制語言<8>在學生管理的關系數(shù)據庫中,存取一個學生信息的數(shù)據單位是A>文件B>數(shù)據庫C>字段D>記錄<9>數(shù)據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)據庫設計的A>需求分析階段B>邏輯設計階段C>概念設計階段D>物理設計階段<10>有兩個關系R和T如下:則由關系R得到關系T的操作是A>選擇B>投影C>交D>并<11>下列關于函數(shù)的描述中,錯誤的是A>函數(shù)可以沒有返回值B>函數(shù)可以沒有參數(shù)C>函數(shù)可以是一個類的成員D>函數(shù)不能被定義為模板<12>若MyClass是一個類名,且有如下語句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語句序列所定義的類對象的個數(shù)是A>1B>2C>3D>4<13>下列關于繼承方式的描述中,錯誤的是A>如果不顯式地指定繼承方式,缺省的繼承方式是私有<private>B>采用公有繼承方式時,基類中的公有成員在派生類中仍然是公有成員C>采用保護繼承方式時,基類中的保護成員在派生類中仍然是保護成員D>采用私有繼承方式時,基類中的私有成員在派生類中仍然是私有成員<14>將前綴運算符"--"重載為非成員函數(shù),下列原型中,能正確用于類中說明的是A>Decr&operator--<int>;B>Decroperator--<Decr&,int>;C>friendDecr&operator--<Decr&>;D>frlendDecroperator--<Decr&,int>;<15>若MyTemp是一個只有一個虛擬類型參數(shù)的類模板,且有如下語句序列MyTempp2;MyTempp3[2];編譯系統(tǒng)在處理上面的語句序列時,所生成的模板MyTemp的實例的個數(shù)是A>1B>2C>3D>0<16>在C++中,cin是個A>類B>對象C>模板D>函數(shù)<17>在下列字符中,不允許作為C++標識符的是A>bB>BC>_D>2<18>下列敘述中,錯誤的是A>false是一個邏輯型常量B>"b"是一個字符型常量C>365是一個int常量D>3.1415926是一個double常量<19>若x和y是程序中的兩個整型變量,則下列if語句中正確的是A>if<x==0>y=1;elsey=2;B>if<x==0>theny=1elsey=2;C>if<x==0>y=1elsey=2;D>ifx==0y=1;elsey=2;<20>要定義整型數(shù)組x,使之包括初值為O的三個元素,下列語句中錯誤的是A>intx[3]={0,0,0};B>intx[]={0};C>staticintx[3]={0};D>intx[]={0,0,0};<21>關于函數(shù)中的<返回類型>,下列表述中錯誤的是A><返回類型>中有可能包含關鍵字intB><返回類型>中有可能包含自定義標識符C><返回類型>中有可能包含字符*D><返回類型>中可能包含[]<22>要定義一個引用變量p,使之引用類MyClass的一個對象,正確的定義語句是A>MyClassp=MyClass;B>MyClassp=newMyClass;C>MyClass&p=newMyClass;D>MyClassa,&p=a;<23>有如下兩個類定義classXX{private:doublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在類YY中保護成員變量的個數(shù)是A>1B>2C>3D>4<24>下列關于運算符重載的描述中,錯誤的是A>可以通過運算符重載在C++中創(chuàng)建新的運算符B>賦值運算符只能重載為成員函數(shù)C>運算符函數(shù)重載為類的成員函數(shù)時,第一操作數(shù)是該類對象D>重載類型轉換運算符時不需要聲明返回類型<25>下列關于類模板的描述中,錯誤的是A>類模板的成員函數(shù)都是模板函數(shù)B>可以為類模板參數(shù)設置默認值C>類模板描述了一組類D>類模板中只允許有一個類型參數(shù)<26>下列控制格式輸入輸出的操作符中,能夠設置浮點數(shù)精度的是A>setprecisionB>setwC>setfillD>showpoint<27>下列程序段中包含4個函數(shù),其中具有隱含this指針的是intfun1<>;classTest{public:intfun2<>;friendintfun3<>;staticintfun4<>;};A>fun1B>fun2C>fun3D>fun4<28>有如下程序#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<29>有如下程序#includeusingnamespacestd;classA{public:A<inti=0>:r1<i>{}voidprint<>{cout<<'E’<<R1<<'-';}<p>voidprint<>const{cout<<'C'<<R1*R1<<'-';}<p>voidprint<intx>{cout<<'P'<<R1*R1*R1<<'-';}<p>private:intr1;};intmain<>{Aa1;constAa2<4>;a1.print<2>;a1.print<>;return0;}運行時的輸出結果是A>P8-E4B>P8-C16-C>P0-E4-D>P0-C16-<30>下列代碼聲明了3個類classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關于這些類之間關系的描述中,錯誤的是A>類Person是類Undergraduate的基類B>類Undergraduate從類Student公有繼承C>類Student是類Person的派生類D>類Undergraduate是類Person的派生類<31>有如下程序#includeusingnamespacestd;ClassBase{public:Base<intx=0>:valB<x>{cout<<VALB;}<p>~Base<>{cout<<VALB;}<p>private:intvalB;};classDerived:publicBase{public:Derived<intx=0,inty=0>:Base<x>,valD<y>{cout<<VALD;}<p>~Derived<>{cout<<VALD;}<p>private:intvalD;};intmain<>{Derivedobj12<2,3>;retuen0;}運行時的輸出結果是A>2332B>2323C>3232D>3223<32>下面是類Shape的定義:classShape{public:virtualvoidDraw<>=0;};下列關于Shape類的描述中,正確的是A>類Shape是虛基類B>類Shape是抽象類C>類Shape中的Draw函數(shù)聲明有誤D>語句"Shapes;"能夠建立Shape的一個對象s<33>將運算符"+"重載為非成員函數(shù),下列原型聲明中,錯誤的是A>MyClockoperator+<MyClock,long>;B>MyClockoperator+<MyClock,MyClock>;C>MyClockoperator+<long,long>;D>MyClockoperator+<long,MyClock>;<34>打開文件時可單獨或組合使用下列文件打開模式①ios_base::app②ios_base::binary③ios_base::in④ios_base::out若要以二進制讀方式打開一個文件,需使用的文件打開模式為A>①③B>①④C>②③D>②④<35>有如下程序:#includeusingnamespacestd;ClassB{public:B<intxx>:x<xx>{++cout;x+=10;}virtualvoidshow<>const{cout<<COUNT<<'_'<<X<<ENDL;}<p>protected:staticintcount;private:intx;};classD:publicB{public:D<intxx,intyy>:B<xx>,y<yy>{++count;y+=100;}virtualvoidshow<>const{cout<<COUNT<<'_'<<Y<<ENDL;}<p>private:inty;};intB::count=0;intmain<>{B*ptr=newD<10,20>;ptr->show<>;deleteptr;return0;}運行時的輸出結果是A>1_120B>2_120C>1_20D>2_20二、填空題<每空2分,共30分>請將每一個空的正確答案寫在答題卡[l]~[15]序號的橫線上,答在試卷上不得分。<1>一個隊列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為[1]。<2>設某循環(huán)隊列的容量為50,如果頭指針front=45<指向隊頭元素的前一位置>,尾指針rear=10<指向隊尾元素>,則該循環(huán)隊列中共有[2]個元素。<3>設二叉樹如下:對該二叉樹進行后序遍歷的結果為[3]。<4>軟件是[4]、數(shù)據和文檔的集合。<5>有一個學生選課的關系,其中學生的關系模式為:學生<學號,姓名,班級,年齡>,課程的關系模式為:課程<課號,課程名,學時>,其中兩個關系模式的鍵分別是學號和課號,則關系模式選課可定義為:選課<學號,[5],成績>。<6>若x和y是兩個整形變量,在執(zhí)行了語句序列x=5;y=6;y+=x--;后,x+y的值為[6]。<7>在執(zhí)行語句序列inti=0;doi++;while<i*i<10>;時,do后面的循環(huán)體語句i++被執(zhí)行的次數(shù)為[7]。<8>有如下的函數(shù)定義:intXfun<int*a,intn>{intx=*a;for<int*pa=a+1;pa<>if<*pa>x>x=*pa;returnx;}若執(zhí)行了語句intx[5]={23,46,78,55,16};后,通過表達式Xfun<x,5>調用該函數(shù),則得到的返回值為[8]。<9>有如下的函數(shù)定義:intXfun<intx>{inty=x;{intx=10;y+=x;}returnx+y;}通過表達式Xfun<5>調用該函數(shù),則得到的返回值為[9]。<10>假定Xcs是一個類,該類中一個成員函數(shù)的原型為"Xcs*abc<>;",則在類外定義時對應的函數(shù)頭為[10]。<11>請將下面的類Date的定義補充完整,使得由語句DateFirstDay;定義的對象FirstDay的值為2010年1月1日。classDate{public:Date<[11]>:year<y>,month<m>,day<d>{}private:intyear,month,day;//依次表示年、月、日};<12>請將下面的程序補充完整,使得程序輸出"飄是張娜的書"。#includeusingnamespacestd;classBook{public:Book<char*str>{strcpy<title,str>;}[12]voidPrintInfo<>{cout<<TITLE<<ENDL;}<p>protected:chartitle[50];};classMyBook:publicBook{public:MyBook<char*s1,char*s2="張娜">:[13]{strcpy<owner,s2>;}virtualvoidPrintInfo<>{cout<<TITLE<<"是"OWNER<<"的書"<<ENDL;}<p>private:charowner[10];};intmain<>{Book*prt=newMyBook<"飄">;prt->PrintInfo<>;return0;}<13>在有理數(shù)類Rational中重載插入運算符<<,以便按a/q形式輸出。請將<<運算符函數(shù)的定義補充完整。classRational{public:Rational<intaa,intqq>:a<aa>,q<qq>{}friend[14]operator<<<ostream&out,Rational&x>{return<out<<X.A<<'p?<<x.q>;<>}private:inta,q;};<14>下面的函數(shù)定義是某函數(shù)模板能夠生成的函數(shù)實例intsquare<intn>{returnn*n;}doublesquare<doublen>{returnn*n;}由此可知,該函數(shù)模板的定義是[15]。20XX4月計算機等級考試C++考試及答案一、選擇題〔每小題2分,共70分

下列各題A、B、C、D四個選項中,只有一個選項是正確的。請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。

〔1下列敘述中正確的是。

A算法的效率只與問題的規(guī)模有關,而與數(shù)據的存儲結構無關.

B算法的時間復雜度是指執(zhí)行算法所需要的計算工作量

C數(shù)據的邏輯結構與存儲結構是一一對應的.

D算法的時間復雜度與空間復雜度一定相關.

〔2在結構化程序設計中,模塊劃分的原則是。

A各模塊應包括盡量多的功能

B各模塊的規(guī)模應盡量大

C各模塊之間的聯(lián)系應盡量緊密

D模塊內具有高內聚度,模塊間具有低耦合度

〔3下列敘述中正確的是。

A軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤.

B軟件測試的主要目的是確定程序中錯誤的位置.

C為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作

D軟件測試是證明軟件沒有錯誤

〔4下面選項中不屬于面向對象程序設計特征的是。

A繼承性B多態(tài)性C類比性D封裝性

〔5下列對列的敘述正確的是。

A隊列屬于非線性表

B隊列按"先進后出"的原則組織數(shù)據

C隊列在隊尾刪除數(shù)據

D隊列按"先進先出"原則組織數(shù)據

〔6對下列二叉樹ADYBEAFCZXBYDEBFZXCACABDYECFXZDABCDEFXYZ

〔7某二叉樹中有n個度為2的結點則該二叉樹中的葉子結點數(shù)為

An+1Bn-1C2nDn/2

〔8在下列關系運算中,不改變關系表中的屬性個數(shù)但能減少元組個數(shù)的是。

A井B交C投影D笛卡兒乘積

〔9在E-R圖中,用來表示實體之間是聯(lián)系的圖形是。

A矩形B橢圓形C菱形D平行四邊形

〔10下列敘述中錯誤的是。

A在數(shù)據庫系統(tǒng)中,數(shù)據的物理結構必須與邏輯結構一致.

B數(shù)據庫技術的根本目標是要解決數(shù)據的共享問題

C數(shù)據庫設計是指在已有數(shù)據庫管理系統(tǒng)的基礎上建立數(shù)據庫

D數(shù)據庫系統(tǒng)需要操作系統(tǒng)的支持

〔11為了取代C中帶參數(shù)的宏,在C++中使用

A重載函數(shù)B內聯(lián)函數(shù)C遞歸函數(shù)D友元函數(shù)

〔12下列關于類定義的說法中,正確的是

A類定義中包括數(shù)據成員和函數(shù)成員的聲明

B類成員的缺省訪問權限是保護的

C數(shù)據成員必須被聲明為私有的

D成員函數(shù)只能在類體外進行定義

〔13下列關于派生類構造函數(shù)和析構函數(shù)的說法中,錯誤的是

A派生類的構造函數(shù)會隱含調用基類的構造函數(shù)

B如果基類中沒有缺省構造函數(shù),那么派生類必須定義構造函數(shù)

C在建立派生類對象時,先調用基類的構造函數(shù),再調用派生類的構造函數(shù)

D在銷毀派生類對象時,先調用基類的析構函數(shù),再調用派生類的析構函數(shù)

〔14通過運算符重載,可以改變運算符原有的

A操作數(shù)類型B操作數(shù)個數(shù)C優(yōu)先級D結合性

〔15有如下函數(shù)模板:

template<classT>Tsouare〔Tx〔retumx*x;

基中T是

A函數(shù)形參B函數(shù)實參C模板形參D模板實參

〔16使用輸入輸出操作符setw,可以控制

A輸出精度B輸出寬度C對齊方式D填充字符

〔17下列字符串中,不可以用作C++標識符的是

Ay_2006B____TEST__HCRetumDswitch

〔18字面常量42、4.2、42L的數(shù)據類型分別是

Along、doubleintBlong、float、int

Cint、double、longDint、float、long

〔19執(zhí)行下列語句段后,輸出字符"*"的個數(shù)是

for〔inti=50;I>1;—icout<<"*"

A48B49C50D51

〔20有如下程序段

inti=0,j=1;

int&r=i;//①

r=j;//②

int*p=&i;//③

*p=&r;//④

基中會產生編譯錯誤的語句是

A④B③C②D①

〔21有如下函數(shù)定義:

voidfunc〔inta,int&b{a++;b++;}

若執(zhí)行代碼段:

intx=0,y=1

func〔x,y;

則變量x和y值分別是

A0和1B1和1C0和2D1和2

〔22有如下程序:

#include<iostream>

usingnamespacestd;

classA{

public

staticinta;

voidinit〔{a=1;}

A〔inta=2{init〔;a++;}

};

intA:;a=0

Aobj;

Intmain〔

{

cout<<obj.a;

retum0;

}

運行時輸出的結果是

A0B1C2D3

〔23下列有關繼承和派生的敘述中,正確的是

A派生類不能訪問基類的保護成員

B作為虛基類的類不能被實例化

C派生類應當向基類的構造函數(shù)傳遞參數(shù)

D虛函數(shù)必須在派生類中重新實現(xiàn)

〔24下列運算符中,不能被重載的是

A&&B!=C.D++

〔25下列函數(shù)模板的定義中,合法的是

Atemplate<typenameT>Tabs〔Tx{returnx<0–x:x;}

Btemplateclass<T>Tabs〔Tx{retumx<0-x;x;}

CtemplateT<classT.>abs〔Tx{retumx<0-x;x;}

DtemplateTabs〔Tx{returmx<0-x;x;}

〔26在語句cin>>data;中,cin是

AC++的關鍵字B類名

C對象名D函數(shù)名

〔27有如下程序:

#include<iostream>

usingnamespacestd;

classtest{

private:

inta;

public:

test〔{cout<<"constructor"<<endl;}

test〔inta{cout<<a<<endl;}

test〔consttest&_test

{

a=_testa;

cout<<"copyconstructor"<<endl;

}

test〔{cout<<"destructor"<<endl;}

};

intmain〔

}

testA〔3

return0;

運行時輸出的結果是

A3

Bconstructor

destruclor

Ccopyconstructor

D3

dstructordestruclor

〔28若有如下類聲明

classMyClass{

public:

MyClass〔{cout<<1;}

};

執(zhí)行下列語句

MyClassa,b[2],*P[2];

以后,程序的輸出結果是

A11B111C1111D11111

〔29有如下程序:

#include<iostream>

usingnamespacestd;

classpoint{

public:

staticintnumber;

public:

point〔{number++;

~point〔{number-;}

};

imtpoint::number=0;

voidmain〔{

point*ptr;

printA,B;

{

point*ptr_point=newpoint{3};

ptr=ptr_point;

}

pointC;

cout<<point::number<<endl;

delete[]ptr;

}

運行時輸出的結果是

A3B4C6D7

〔30如果不使用多態(tài)機制,那么通過基類的指針雖然可以指向派生類對象,但是只能訪問從基類繼承的成員,有如下程序,沒有使用多態(tài)機制。

#include<iostream>

usingnamespacestd;

classBase{

inta,b;

public:

Bace〔intx,inty{a=x;b=y;}

Voidshow〔{cout<<a<<’,’<<b<<endl;}

}

clsaaDerived:publicBase{

intc,d;

public:

Derived〔intx,inty,intz,intm:Base〔x,y{c=z;d=m;}

Voidshow〔{cout<<c<<’,’d<<endl;}

};

intmain〔

{

BaseB1〔50,50,*pb;

DerivedDI〔10,20,30,40;

Pb=&D1;

Pb->show〔;

Return0;

}

運行時輸出的結果是

A10,20B30,40C20,30D50,50

〔31有如下程序:

#include<iostream>

usingnamespacestd;

classA

{

public;

A〔inti{x=i;}

Voidsispa〔{cout<<x<<’,’;}

Private:

intx;

};

classB;publicA

{

public;

B〔inti:A〔i+10{x=i;}

vouddispb〔{dispa〔;cout<<x<,endl;}

Private:

Intx;

};

intmain〔

{

Bb〔2;

b.dispb〔

retum0:

}

運行時輸出的結果是

A10,2B12,10C12,2D2,2

〔32虛函數(shù)支持多態(tài)調用,一個基類的指針可以指向派生類的對象,而且通過這樣的指針調用虛函數(shù)時,,被調用的是指針所指的實際對象的虛函數(shù),而非虛函數(shù)不支持多態(tài)調用。有如下程序:

#include<iostream>

usingnamespacestd;

classBase

{

public:

virtualvoidf〔{cout<<"f0+";}

voidg〔{cout<<"g0+";}

};

classDerived:publicBase

{

public:

voidf〔{cout<<"f+";}

voidg〔{cout<<"g+";}

};

intmain〔

{

Derivedd;

Base*p=&d;

p->f〔;p->g〔;

return0:

}

運行時輸出的結果是

Af+g+Bf0+g+Cf+g0+Df0+g0+

〔33下面程序中對一維坐標點類Point進行運算符重載

#include<iostream>

usingnamespacestd;

classpoint{

public:

point〔intvaI{x=val;}

point&operator++〔{x++;retum*this;}

printoperator++〔int{pointold=*this,++〔*this;retumold;}

intGetX〔const{retumx;}

private:

intx;

};

intmain〔

{

pointa〔10;

cout<<〔++a.GetX〔;

cout<<a++.GetX〔;

retum〔;

}

編譯和運行情況是

A運行時輸出1011

B運行時輸出1111

C運行時輸出1112

D編譯有錯

〔34有如下程序:

#include<iostream>

usingnamespacestd;

intmain〔

{

charstr[100],*p;

cout<<"pleaseinputastring:";

cin>>str;

p=str;

for〔inti=0;*p!="\0";p++,i++;

cout<<i<<endl;

retum0;

}

運行這個程序時,若輸入字符串為

abcdefgabcd

則輸出結果是

A7B12C13D100

〔35有如下程序::

#include<iostream>

usingnamespacestd:

classSample

{

friendlongfun〔Samples;

public:

Sample〔longa{x=a;}

Private:

longx;

};

longfun〔Samples

{

if〔s.x<2retum1;

retums.x*fun〔Sample〔s.x-a;

}

intmain〔

{

intsum=0

for〔inti=0;i<6;i++{sum+=fun〔Sample〔i;}

cout<<sum;

retum0;

}

運行時輸出的結果是

A120B16C154D34

二、填空題〔每空2分,共30分

請將每一個空的正確答案寫在答題卡[1]~[15]序號的橫線上,答在試卷上不得分。

〔1在深度為7的滿二叉樹中,度為2的結點個數(shù)為[1]。

〔2軟件測試分為白箱〔盒測試和黑箱〔盒測試,等價類劃分法屬于[2]測試。

〔3在數(shù)據庫系統(tǒng)中,實現(xiàn)各種數(shù)據管理體制功能的核心軟件稱為[3]。

〔4軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)和維護階段。編碼和測試屬于[4]階段。

〔5在結構化分析使用的數(shù)據流圖〔DFD中,利用[5]對其中的圖形元素進行確切解釋。

〔6C++中只有兩個邏輯常量:true和[6]。

〔7若要訪問指針變量p所指向的數(shù)據,應使用表達式[7]。

〔8已知一個函數(shù)的原型是:

intfn〔doublex;

若要以5.27為實參調用該函數(shù),應使用表達式[8]。

〔9有如下定義:

classMA{

intvalue;

public:

MA〔intn=0:valut〔n{}

};

MA*ta,tb;

其中MA類的對象名標識符是[9]。

〔10如下類定義中包含了構造函數(shù)和拷貝數(shù)的原型聲明請在橫線處寫正確的內容,使拷貝構造函數(shù)的聲明完整。

ClassmyClass{

Private:

Intdata:

Public:

MyClass〔intvalue;//構造函數(shù)

MyClass〔const[10]anotherObject;//拷貝構造函數(shù)

}

〔11用來派生新類的稱為[11],而派生出的新類稱為它的子類或派生類。

〔12有如下程序:

#include<iostream>

usingnamespacestd;

clsaaCA{

public:

CAD{cout<<A’;}

};

classCB;privateCA{

public;

CB〔{cout<<B’;}

};

intmain〔{cout<<B’;}

};

intmain〔{

CAa;

CBb;

retum0;

}

這個程序的輸出結果是[12]。

〔13若將一個二元運算符重載為類的成員函數(shù),其形參個數(shù)應該是[13]個。

〔14有如下程序:

#include<iostream>

usingnamespacestd;

classDA{

intk;

public:

DA〔intx=1:k〔x{}

~DA〔{cout<<k;}

};

intmain〔{

DAd[]={DA〔3,DA〔3,DA〔3};

DA*p=newDA[2];

delete[]p;

return0;

}

這個程序的輸出結果是[14]。

〔15C++語言中的多態(tài)性分為編譯時的多態(tài)性和[15]時的多態(tài)性。20XX4月計算機等級考試C++考試答案選擇題:1-5BDACD6-10CABCA11-15BADAC16-20BCDBA21-25CCCCA26-30CDBDA30-35CBBBC填空:1、63

2、黑盒

3、DBMS

4、開發(fā)

5、數(shù)據字典

6、false

7、*P

8、fn<5.27>

9、tb10、myclass&

11、基類

12、AAB

13、1個

14、11333

15、運行20XX9全國計算機等級考試二級筆試試卷C++語言程序設計〔考試時間90分鐘,滿分100分一、選擇題〔每小題2分,共70分下列個體A、B、C、D四個選項重,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。〔1

軟件是指A程序B程序和文檔C算法加數(shù)據結構D程序、數(shù)據與相關文檔的完整集合〔2軟件調試的目的是A發(fā)現(xiàn)錯誤B改正錯誤C改善軟件的性能D驗證軟件的正確性〔3在面對對象方法中,實現(xiàn)信息隱蔽是依靠A對象的繼承B對象的多態(tài)C對象的封裝D對象的分類〔4下列敘述重,不符合良好程序設計風格要求是A程序的效率第一,清晰第二B程序的可讀性好C程序中要有必要的注釋D輸入數(shù)據前要有提示信息〔5下列敘述中正確的是A程序執(zhí)行的效率與數(shù)據的存儲結構密切相關B程序執(zhí)行的效率只取決于程序的控制結構C程序執(zhí)行的效率之取決于所處理的數(shù)據量D以上三種說法都不對〔6下列敘述中正確的是A數(shù)據的輸入結構與存儲結構必定是——對應的B計算機存儲空間是向量式的存儲結構,因此,數(shù)據的存儲結構一定是線性結構C程序設計語言中的數(shù)組一般是順序存儲結構,因此,利用數(shù)組只能處理線性結構D以上三種說法都不對〔8一棵二叉樹中共有70個葉子結點于80個度為1的結點,則該二叉樹重的總結點數(shù)為A219B221C229D221〔9下列敘述重正確的是A數(shù)據庫系統(tǒng)是一個獨立的系統(tǒng),它需要操作系統(tǒng)的支持B數(shù)據庫技術的根本目標是要解決數(shù)據的共享問題C數(shù)據庫管理系統(tǒng)是數(shù)據庫系統(tǒng)D以上說法都不正確〔10下列敘述中正確的是A為了建立一個關系,首先是要構造數(shù)據的邏輯關系B表示關系的二維表中各各組的每一個分量還可以分成若干數(shù)據項C一個關系的屬性名稱為關系模式D一個關系可以包括多個二維表〔11在函數(shù)中,可以用auto,extem,register,和static這四個關鍵字中的一個來說明變量的存儲類型,如果不說明存儲類型,則默認的存儲類型是AautoBextemCregisterDstatic〔12對于一個類定義,下列敘述中錯誤的是A如果沒有定義拷貝構造函數(shù),編譯器將生成一個拷貝構造函數(shù)B如果沒有定義缺省的構造函數(shù),編譯器將一定生成一個缺省的構造函數(shù)C如果沒有定義構造函數(shù),編譯器將生成一個缺省的構造函數(shù)和一個拷貝構造函數(shù)D如果已經定義了構造函數(shù)和拷貝構造函數(shù),編譯器不會生成任何構造函數(shù)〔13如果派生類以public方式繼承基類,則原基類的protected成員和public成員在派生類中的訪問類型分別是Apublic和publicBpublic和protectedCprotected和publicDprotected和protected〔14下列運算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是Aintoperator-<FunNumber>BFunNumberoperator-<>CFunNumberoperator-<int>Dintoperator–<FunNumber>〔15C++中的模板包括A對象模板和函數(shù)模板B對象模板和類模板C函數(shù)模板和類模板D變量模板和對象模板<16>如果調用C++流進行輸入輸出,下面的敘述中正確的是A只能借助于流對象進行輸入輸出B只能進行格式化輸入輸出C只能借助于cin和cout進行輸入輸出D只能使用運算符》和《進行輸入輸出〔17下列富豪中不屬于C++關鍵字的是AfriendBnamespaceCcontinueDbyte〔18下列各組的量申明中,含義相同的一組是Aunsignedlongint和longBsignedshortint和shortBunsignedshort和shortDshortint和int<19>必須用一對打括號括起來的程序段是Aswitch語句中的case標號語句Bif語句的分支C循環(huán)語句的循環(huán)體D函數(shù)的函數(shù)體〔20語句的int*p=&k定義于指針P,于這個語句等效的語句序列是Aint*p;p=&kBint*p;p=kCint*p;*p=&kDint*p;*p=k<21>關于函數(shù)重載,下列敘述中錯誤的是A重載函數(shù)的函數(shù)名必須相同B重載函數(shù)必須在函數(shù)個數(shù)或類型上有所不同C重載函數(shù)的返回值類型必須相同D重載函數(shù)的函數(shù)體可以有所不同〔22有如下頭文件Intf1<>;Staticintf2<>;ClassMA{PublicIntf3<>;Staticintf4<>;};在所描述的函數(shù)中,具有隱含的this指針的是Af1Bf2Cf3Df4〔23派生類的成員函數(shù)不能訪問基類的A共有成員和保護成員B共有成員C私有成員D保護成員〔24下列關于運算符重載的描述中,正確的是A運算符重載為成員函數(shù)時,若參數(shù)表中五參數(shù),重載的是一元運算符B一元運算符只能作為成員函數(shù)重載C二元運算符重載為非成員函數(shù)時,參數(shù)表中有一個參數(shù)DC++中可以重載所有的運算符〔25下列關于類模板的模板參數(shù)的敘述中,錯誤的是A模板參數(shù)可以作為數(shù)據成員的類型B模板參數(shù)可以作為成員函數(shù)的返回類型C模板參數(shù)可以作為成員函數(shù)的參數(shù)類型D模板函數(shù)不能作為成員函數(shù)的局部變量的類型〔26已知一程序運行后執(zhí)行的第一個輸出操作是Cout<<setw<10><<setfill<*><<1234則此操作的輸出結構是A1234B******1234C**********1234D1234******<27>有如下程序#include<iostrcam>Usingnamespacestd;Classmyclass{Public:MyClass<>{++count;}~MyClass<>{--count;}Staticintgetcount<>{returncount;}PrivateStaticintcount;};IntMyClass::count=0;Intmain<>{Myclassobj;Cout<<obj,getCount<>;MyClass*ptr=newMyClass;Cout<<MyClass::getcount<>;Deleteptr;Cout<<MyClass::gercount<>;Return<>;}程序的輸出結果是A121B232C221D122程序的輸出結果是Aval=10const:val=20Bconst:val=10const:val=20Cconst:val=10val=20Dval=10val=20<29>有如下程序#include<iostream>Usingnamespacestd;Classpart{Public;Part<intx=<\>:val<x>{cout,,val;}-part<>{cout<<val;}Private;Intval;};Classwhole{Public;Whole<intx,inty,intz=0>:p2<x>,p1<y>,val<z>{cout<<val;}Whole<>{count,,val;}Private;Partp1,p2;Intval;};Intmaint{Wholeobj<1,2,3>;Resturn<>;}程序輸出的結果是A123321B213312C213<30>有如下程序:#include<iostream>Usingnamespacestd;Classbase{Public:Base<intx=0>{cout<<x;}};Classderived:publicbase{Public:Derivedrin<x=y>{cout<<x;}Priblic:Baseval;};Intmain<>{Derivedd<!>;Return<>;}程序的輸出結果是A0B1C01D001〔31若有如下類定義:ClasssB{Voidfun<>{}Protected;Doublevarl;Public:Voidfun2<>{}};ClassD:publicB{Protected;Voidfun3<>{}};已知obj是類D的對象,下列語句中不違反成員訪問控制的權限的是Aobj.fun1<>;Bobj.var1;Cobj.fun2<>;Dobj.fun3<>;<32>有如下程序:

溫馨提示

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

評論

0/150

提交評論