版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
試卷代號(hào):1075國家開放大學(xué)2022年春季學(xué)期期末統(tǒng)一考試C++語言程序設(shè)計(jì)試題2022年7月一、單選題(每小題2分,共40分)1.執(zhí)行下列語句后,不可能出現(xiàn)的情況是(C)。 cin>>k; if(k>100)cout<<'G'; if(k<100)cout<<'L'; A.顯示G B.顯示L C.顯示GL D.無任何顯示2.執(zhí)行語句序列 inta=23.3 cout<<(a+=32.15);后,屏幕顯示的是(D)。 A.55.45 B.55.3 C.55.15 D.553.下列表達(dá)式中,無副作用的是(B)。 A.i++ B.i+3 C.i+=3 D.cout<<i4.有如下語句:switch(n){case0:case1:n+=l;break;case2:n+=2;default:n+=3;}若一開始n的值為O,則執(zhí)行此語句后,n的值是(B)。 A.O B.1 C.3 D.65.do...le語句的語法格式可表示為:do循環(huán)體while(循環(huán)條件);下列關(guān)于do...while語句的表述中,錯(cuò)誤的是(A)。 A.循環(huán)體有可能一次都不執(zhí)行 B.循環(huán)體是一個(gè)語句或一組復(fù)合語句 C.循環(huán)體和循環(huán)條件執(zhí)行的次數(shù)相同 D.循環(huán)條件是一個(gè)邏輯表達(dá)式或關(guān)系表達(dá)式6.語句“intcrm[7]={1,2,3};”定義了一個(gè)一維數(shù)組。關(guān)于此數(shù)組,下列表述中錯(cuò)誤的是(C)。 A.數(shù)組的名稱是crm B.數(shù)組的類型是整型 C.數(shù)組有3個(gè)元素 D.數(shù)組的最大下標(biāo)67.若要定義一個(gè)整型二維數(shù)組data,使其元素的初始值排列如下: 123 120100則下列定義語句中錯(cuò)誤的是(A)。 A.intdata[3][]={{1,2,3},{1,2},{1}}; B.intdata[3][3]={{1,2,3},{1,2,0},{1,O,O}}; C.intdata[][3]={{1,2,3},{1,2,O},{1,0,0}}; D.intdata[3][3]={{1,2,3},{1,2},{1}};8.下列原型聲明中的函數(shù),不可作為表達(dá)式調(diào)用的是(C)。 A.intaf(char); B.doublebf(void); C.voidcf(double); D.longdf(inti,longn);9.關(guān)于函數(shù)定義中的形參聲明,下列表述中正確的是(B)。 A.每個(gè)形參聲明定義一個(gè)常量 B.每個(gè)形參聲明定義一個(gè)變量 C.每個(gè)形參聲明定義一個(gè)類型修飾符 D.每個(gè)形參聲明定義一個(gè)表達(dá)式10.關(guān)于地址,下列表述錯(cuò)誤的是(A)。 A.數(shù)據(jù)可以存放在從任何地址開始的若干連續(xù)的存儲(chǔ)單元中 B.程序中的每個(gè)變量都對應(yīng)一個(gè)地址 C.每個(gè)單元占用一個(gè)字節(jié),對應(yīng)一個(gè)唯一的地址 D.地址本身也可以作為數(shù)據(jù)來處理11.下列語句試圖定義指針p,使之指向一個(gè)動(dòng)態(tài)空間中的int型二維數(shù)組,其中正確的是(D)。 A.int*p[][5]=newint[6][5]; B.int*p[5]=newint[6][5];C.int(*P)[][5]=newint[6][5]; D.int(*p)[5]=newint[6][5];12.class的默認(rèn)訪問屬性是(A)。 A.private B.protected C.public D.static13.若有一個(gè)名為XY的類,則下列關(guān)于該類構(gòu)造函數(shù)和析構(gòu)函數(shù)的表述中,錯(cuò)誤的是(D)。 A.類XY的構(gòu)造函數(shù)名為XY B.類XY的析構(gòu)函數(shù)名為~XYC類XY可以有多個(gè)構(gòu)造函數(shù) D.類XY可以有多個(gè)析構(gòu)函數(shù)14.已知類AA的類體中有如下成員函數(shù)定義: intDouble(intn)const{returnn+n;}要在類BB中將其聲明為友元,正確的是(D)。 A.friendintDouble(intn); B.friendintDouble(intn)const; C.friendintAA::Double(intn); D.friendintAA::Double(int)const;15.已知在類體外有如下操作符重載聲明: AAoperator+(AA,AA);其中的AA是類名。若x、y是兩個(gè)AA的對象,下列表達(dá)式欲求x、y之和,其中正確的是(D)。 A.X.operator+(y) B.y.operator+(x)C.xoperator+y D.operator+(x,y)16.關(guān)于函數(shù)模板,下列表述中錯(cuò)誤的是(A)。 A.要聲明虛擬類型參數(shù),必須使用保留字typename B.函數(shù)模板的參數(shù)表必須用<>括起來 C.函數(shù)模板可以有多個(gè)參數(shù) D.可以為函數(shù)模板的參數(shù)設(shè)置默認(rèn)值17.關(guān)于繼承成員的訪問屬性,下列表述中錯(cuò)誤的是(A)。A.在公有繼承方式下,所有繼承成員的訪問屬性保持不變 B.在保護(hù)繼承方式下,原來的公有屬性變?yōu)楸Wo(hù)屬性 C.在私有繼承方式下,原來的公有、保護(hù)屬性變?yōu)樗接袑傩訢.在任何繼承方式下,原來的私有屬性變?yōu)槔^承的私有屬性18.關(guān)于純虛函數(shù)和抽象類,下列表述中錯(cuò)誤的是(C)。 A.以“=0;”結(jié)尾的虛函數(shù)聲明,所聲明的即為純虛函數(shù) B.據(jù)有純虛函數(shù)的類稱為抽象類,不能用于定義對象 C.純虛函數(shù)沒有實(shí)現(xiàn)版本 D.派生類給出實(shí)現(xiàn)版本后,不再是純虛函數(shù),但仍然是虛函數(shù)19.有如下類模板定義: template<intize=10,typenameT=int>classMG{public:Tdata[size];};下面的語句試圖定義模板類MG的對象,其中錯(cuò)誤的是(C)。 A.MG<>obj; B.MG<20>obj; C.MG<double>obj; D.MG<20,double>obj;20.C++流的下列函數(shù)(只列函數(shù)名)中,完成輸出操作的函數(shù)是(A)。 A.put B.get C.read D.ignore二、填空題(每小題2分,共20分)21.C++源程序文件的缺省擴(kuò)展名為cpp。22.簡單表達(dá)式包括常量、變量和函數(shù)調(diào)用。23.關(guān)系表達(dá)式x<5的相反表達(dá)式為x>=5。24.語句“intd[][3]={{1,2,3},{1,2},{1}};”定義了二維數(shù)組的,其元素個(gè)數(shù)是9。25.函數(shù)被調(diào)用時(shí),實(shí)參向形參的傳送分為引用傳送和.值傳送兩種方式。26.假定指針p所指對象的值為25,p+l所指對象的值為46,則*++p的值為46。27.假定指針px指向一個(gè)類的動(dòng)態(tài)分配的對象,則執(zhí)行“deletepx.”語句時(shí),將自動(dòng)調(diào)用該類的析構(gòu)函數(shù)。28.根據(jù)一函數(shù)模板生成的函數(shù)定義稱為該模板的實(shí)例。29.對虛函數(shù)的調(diào)用分為兩種情況:多態(tài)調(diào)用和非多態(tài)調(diào)用。30.對于一個(gè)C++輸入流,當(dāng)輸入到達(dá)流尾時(shí),函數(shù)good的值是false。三、寫出下列程序運(yùn)行后的輸出結(jié)果(每小題8分,共24分)31.有如下程序:#include<iostream>spacestd;classAA{public:staticintn,AA(){n++;}};intAA::n=0;voidmain(){cout<<"AA::n="<<AA.n<<endl;AAdl,Cout<<dl.n<<endl;AAd2,cout<<d2.n<<endl;AAd3,d4;cut<<d3.n<<endl;cut<<d4.n<<endl;}運(yùn)行此程序的輸出是(AA::n=01244)32.有如下程序:#include<iostream>Usingnamespacestd;intmain(){intX[][4]={{1,2,3,4},{5,6,7},{8,9}},s=O;inti=O:while(i<3){for(intj=O;j<3;j++)s+=x[i][j];i++;}Cout<<s;returnO;}運(yùn)行此程序的輸出是(41)。33.有如下程序:#include<iostream>spacestd;intmain(){intx[]={1,2,3,4,5},*px=x;ints=*(px+l);*(px+1)=*(px+3);*(px+3)=s;for(inti=0;i<5;i++)cout<<x[i];returnO:}運(yùn)行此程序的輸出是(14325)。四、寫出下列每個(gè)函數(shù)的功能(每小題8分,共16分)34.intLK(inta[],intn){doubles=0;inti,m=0;for(i=0;i<++=)s+=a[i];s=s/n;for(i=0;i<++=)if(a[i]>=s)m++;returnm;}函數(shù)功能:統(tǒng)計(jì)出數(shù)組a[n]中大于等于其平均值的元素個(gè)數(shù)并作為函數(shù)值返回。35.doubleFI(intn){//n為大于等于1的整數(shù)doublex,y=0; do{ cin>>x;y+=x;}while(--n);returny;}函數(shù)功能:求出從鍵盤上輸入的n個(gè)實(shí)數(shù)的和并返回。試卷代號(hào):1075國家開放大學(xué)2021年秋季學(xué)期期末統(tǒng)一考試C++語言程序設(shè)計(jì)試題2022年1月一、單選題(每小題2分,共40分)1.以下程序段的輸出為(D)。inti,a;for(i=O;i<=10;i++)a=i;cout<<i; A.O B.9 C.10 D.112.下列表達(dá)式中,不屬于簡單表達(dá)式的是(A)。 A.-k B.f(a,b) C.2050139 D.my_name_is_zhang_san3.下列表達(dá)式中,有副作用的是(A)。 A.i++ B.i+3 C.i>3 D.i==34.若OK是一個(gè)邏輯型變量,則在下列語句中,與其他語句輸出不同的那個(gè)語句是(C)。 A.if(OK)cout<<“?。 ?elsecout<<“??”; B.if(OK==true)cout<<“!!”;elsecout<<“??”; C.if(!OK==true)cout<<”?。 ?elsecout<<"??”; D.if(!OK)cout<<“??”;elsecout《“??!”;5.while語句的語法格式可表示為:while(循環(huán)條件)循環(huán)體 下列關(guān)于while語句的表述中,錯(cuò)誤的是(C)。 A.循環(huán)條件應(yīng)該是一個(gè)邏輯表達(dá)式 B.循環(huán)條件至少執(zhí)行一次 C.循環(huán)體是一個(gè)表達(dá)式 D.循環(huán)體有可能一次都不執(zhí)行6.語句“doublebrm[5]={1,2,3};”定義了一個(gè)一維數(shù)組。關(guān)于此數(shù)組,下列表述中錯(cuò)誤的是(D)。 A.數(shù)組的名稱是brm B.數(shù)組的類型是雙精度實(shí)型 C.數(shù)組有5個(gè)元素 D.元素brm[l]的初值是17.語句“intdata[][3]={(1,2,3),{1,2),(1));”定義了一個(gè)二維數(shù)組。關(guān)于此數(shù)組,下列表述中錯(cuò)誤的是(B)。 A.數(shù)組名稱是data B.數(shù)組有6個(gè)元素 C.最大列下標(biāo)是2 D.元素data[2][1]的值為08.已知f是一個(gè)無參有返回值函數(shù)。下列對f的調(diào)用中,作為語句調(diào)用的是(D)。 A.f()+1; B.x=f(); C.cout<<f(); D.f();9.已知函數(shù)f的原型是:voidf(intxy[],intsize);,其中size表示數(shù)組xy的元素個(gè)數(shù),且還有如下數(shù)組定義:inta[]={1,2,3,4,5,6);下列對f的調(diào)用中正確的是(B)。 A.f(a[],6) B.f(a,6) C.f(xy[],6) D.f(xy,6)10.要想定義一個(gè)指向字符串”Hello!”的指針p,且不允許通過p修改所指向的字符串,則p應(yīng)定義為(B)。 A.char*constp=“Hellol”; B.constchar*p=“Hello!”; C.charconstp=“Hello!”;D.constcharp=“Hello!”;11.下列語句定義變量p使得語句“cout<<p;”輸出單詞Goodmorning,其中錯(cuò)誤的定義語句是(D)。 A.charp[]=“Goodmorning”; B.char*p=“Goodmorning”; C.charp[]={‘G’,‘O’,‘O’,‘d’,‘m’,‘O’,‘r',‘n',‘i’,‘n’,‘g’,‘\0'}; D.char*p={‘G',‘O',‘O',‘d',‘m',‘0',‘r',‘n',‘i',‘n',‘g',‘\0');12.有如下類聲明:class{inti,j;prlvate:intm;public:intn:private:intp;};其中私有成員的個(gè)數(shù)是(C)。 A.2 B.3 C.4 D.513.關(guān)于類的構(gòu)造函數(shù),下列表述中錯(cuò)誤的是(A)。 A.每個(gè)類至少有兩個(gè)構(gòu)造函數(shù) B.構(gòu)造函數(shù)的名稱與類名相同 C.可以不提供實(shí)參的構(gòu)造函數(shù)稱為默認(rèn)的構(gòu)造函數(shù) D.構(gòu)造函數(shù)可以重載14.關(guān)于復(fù)制構(gòu)造函數(shù),下列表述中錯(cuò)誤的是(B)。 A.復(fù)制構(gòu)造函數(shù)參照參數(shù)傳來的對象來初始化同類的新對象 B.每個(gè)類可以有多個(gè)復(fù)制構(gòu)造函數(shù) C.如果類中沒有聲明復(fù)制構(gòu)造函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)的復(fù)制構(gòu)造函數(shù) D.默認(rèn)的復(fù)制構(gòu)造函數(shù)以內(nèi)存映像復(fù)制的方式來初始化新對象15.已知應(yīng)用系統(tǒng)中已聲明了如下函數(shù):intblock(double,int=0);下列函數(shù)聲明試圖重載block,其中正確的是(D)。 A.doubleblock(double,int); B.intblock(double,int,char=‘A’); C.intblock(double,long=0);D.intblock(double,int,char);16.關(guān)于函數(shù)模板,下列表述中錯(cuò)誤的是(B)。 A.函數(shù)模板聲明以保留字template開頭 B.必須用虛擬類型參數(shù)聲明模板函數(shù)返回值的類型 C.調(diào)用模板函數(shù)時(shí),模板實(shí)參在一定條件下可以省略 D.在調(diào)用模板函數(shù)時(shí),根據(jù)需要,有可能生成該函數(shù)模板的一個(gè)實(shí)例17.關(guān)于基類和派生類,下列表述中錯(cuò)誤的是(D)。 A.-個(gè)基類可以有若干派生類 B.-個(gè)派生類可以有若干基類 C.基類是它的所有派生類的共性的體現(xiàn) D.派生類繼承基類的所有非私有成員作為自己的成員18.關(guān)于虛函數(shù),下列表述中錯(cuò)誤的是(A)。 A.只有用virtual修飾的函數(shù)才是虛函數(shù) B.只有類的成員函數(shù)才能聲明為虛函數(shù) C.在派生類中可以重新定義基類聲明的虛函數(shù) D.靜態(tài)成員函數(shù)不得聲明為虛函數(shù)19.關(guān)于類模板,下列表述中錯(cuò)誤的是(C)。 A.類模板以保留字template開頭 B.類模板的每一個(gè)實(shí)例就是一個(gè)類定義 C.可以為任意的一個(gè)或多個(gè)模板參數(shù)設(shè)置默認(rèn)值 D.有默認(rèn)值的實(shí)參在一定條件下可以省略20.下列標(biāo)識(shí)符中,不屬于C++流操縱符的是(A)。 A.delete B.setwC.endl D.right二、填空題(每小題2分,共20分)21.程序開發(fā)過程的四個(gè)步驟按正確的順序分別稱作_編輯、編譯、鏈接、運(yùn)行___。22.有如下枚舉聲明:enumANIMAL{DOG,CAT=35,PIG,HEN,DOVE};其中DOVE所對應(yīng)的整數(shù)是38。23.結(jié)束所在循環(huán)類語句或switch語句執(zhí)行的中斷語句的保留字為break。24.語句“floatp[5]={1-lf,2.2f,3.3f};”定義了一維數(shù)組p,其元素個(gè)數(shù)是__5__。25.若一函數(shù)直接或間接調(diào)用了該函數(shù)自身,此種類型的調(diào)用稱為遞歸調(diào)用____。26.有兩個(gè)不同操作符都用符號(hào)*表示,一個(gè)用于乘法,另一個(gè)用于____間接訪問。27.在定義類對象的語句執(zhí)行時(shí),系統(tǒng)在建立每個(gè)對象的過程中將自動(dòng)調(diào)用該類的構(gòu)造函數(shù)使其初始化。28.重載“/”的操作符函數(shù)的名稱是___operator/_。29.具有純虛函數(shù)的類稱為抽象類____。30.在C++流中,endl、setw、left等用于控制流的輸入輸出的符號(hào)統(tǒng)稱為操縱符。三、給出下列程序運(yùn)行后的輸出結(jié)果(每小題8分,共24分)31.有如下程序:#include<iostream>usingnamespacestd;classA{ private:intn;public:A(inti){n=I;}A&operator++()(n++;return*this;)Aoperator++(int){n+=2;return*this;)voidDisplay(){cout<<“n=”<<n<<endl;)};voidmain(){Aa(2),b(2);a++;++b;a.Display();b.Display();}運(yùn)行此程序的輸出是(n=4n=3)。32.有如下程序:#include<iostream>usingnamespacestd;intmain(){intX[]=(2,4,6,8,10,12),s=0;for(inti=l;i<6;i+=2)s+=x[i];cout<<s,return0:}運(yùn)行此程序的輸出是(24)。33.有如下程序:#include<iostream>usingnamespacestd;intmain(){intx[]=<1,2,3,4,5),*px=x;for(inti=O;i<5;i++)cout<<*(px+i);returnO:}運(yùn)行此程序的輸出是(12345)。四、寫出下列每個(gè)函數(shù)的功能(每小題8分,共16分)34.intWD(inta[],intn){intm=a[0];for(inti=l;i<n;i++)if(a[i]>n)m=a[i];returnm;}從數(shù)組a的n個(gè)元素中求出最大值并返回。35.doubleFl(intn)(//n為大于等于1的整數(shù)doublex,y=0;do{cin>>x;y+=x*x;}while(--n);returny;}函數(shù)功能:求出從鍵盤上輸入的n個(gè)實(shí)數(shù)的平方和并返回。試卷代號(hào):1075國家開放大學(xué)2020年春季學(xué)期期末統(tǒng)一考試C++語言程序設(shè)計(jì)試題2020年7月一、單選題(每小題2分,共40分)1.若a是int類型變量,則表達(dá)式a=1000%999的值是(B)。 A.0 B.1 C.2 D.32.下列表達(dá)式中,不屬于簡單表達(dá)式的是(A)。 A.-k B.f(a,b) C.2050139 D.mynameiszhangsan3.下列表達(dá)式中,有副作用的是(A)。A.i++ B.i+3C.i>3 D.i==34.若OK是一個(gè)邏輯型變量,則在下列語句中,與其他語句輸出不同的那個(gè)語句是(C)。A.if(OK)cout<<“!”;elsecout<<“??”;B.if(OK==true)cout<<“?。 ?elsecout<<“??”;C.if(!OK==true)cout<<“??!”;elsecout<<“?。 ?;D.if(!OK)cout<<“!!”;elsecout<<“??!”;5.while語句的語法格式可表示為:while(循環(huán)條件)循環(huán)體下列關(guān)于while語句的表述中,錯(cuò)誤的是(C)。A.循環(huán)條件應(yīng)該是一個(gè)邏輯表達(dá)式B.循環(huán)條件至少執(zhí)行一次C.循環(huán)體是一個(gè)表達(dá)式D.循環(huán)體有可能一次都不執(zhí)行6.關(guān)于語句“l(fā)ongarm[6],”定義了一個(gè)一維數(shù)組。關(guān)于此數(shù)組,下列表述中錯(cuò)誤的是(B)。A.?dāng)?shù)組的名稱是armB.?dāng)?shù)組的最大下標(biāo)是6C.?dāng)?shù)組有6個(gè)元素D.?dāng)?shù)組的類型是長整型7.語句“intam[3][4];”定義了一個(gè)二維數(shù)組。關(guān)于此數(shù)組,下列表述中錯(cuò)誤的是(D)。A.?dāng)?shù)組的類型是整型 B.最大行下標(biāo)是2C.最大列下標(biāo)是3 D.?dāng)?shù)組有6個(gè)元素8.定義函數(shù)的格式是:類型修飾符函數(shù)名(形參聲明表){函數(shù)體)其中的語法成分中,不能為空的是(B)。A.類型修飾符 B.函數(shù)名C.形參聲明表 D.函數(shù)體9.關(guān)于函數(shù)調(diào)用中的實(shí)參,下列表述中最準(zhǔn)確的是(D)。A.實(shí)參是一個(gè)常量 B.實(shí)參是一個(gè)變量C.實(shí)參是一個(gè)類型修飾符 D.實(shí)參是一個(gè)表達(dá)式10.關(guān)于指針,下列表述錯(cuò)誤的是(D)。A.不指向任何數(shù)據(jù)的指針稱為空指針B.每個(gè)指針都對應(yīng)一個(gè)地址C.指針不但標(biāo)明了某個(gè)數(shù)據(jù)的存儲(chǔ)地址,還標(biāo)明了該數(shù)據(jù)的類型 D.指針只能用來指向數(shù)據(jù)11.函數(shù)f的原型是“intf(constint*n,double*d);”,且有如下變量定義:intk=4;doublem[]一(1,2,3,4};則下列對f的調(diào)用中正確的是(B)。 A.f(k,m) B.f(&k,m) C.f(k,&m) D.f(&k,&m)12.下列類聲明中正確的是(D)。A.classma{public:intk;}; B.ClassMa{public:intk;};C.classchar{public:intk;}; D.classChar{};13.關(guān)于類的析構(gòu)函數(shù),下列表述中錯(cuò)誤的是(C)。 A.析構(gòu)函數(shù)在對象行將消亡時(shí)被調(diào)用 B.析構(gòu)函數(shù)用于完成釋放對象占用的計(jì)算機(jī)資源等收尾工作 C.若類對象沒有需要完成的收尾工作,該類可以沒有析構(gòu)函數(shù) D.析構(gòu)函數(shù)沒有參數(shù)14.有如下定義:classMbfpublic:staticintn:);Mbmb,&r—mb;下列表達(dá)式試圖訪問類的靜態(tài)成員n,其中錯(cuò)誤的是(C)。A.mb.n B.r.nC.Mb.n D.Mb::n15.關(guān)于函數(shù)重載,下列表述中錯(cuò)誤的是(B)。 A.函數(shù)重載是指定義與已有函數(shù)同名的函數(shù) B.重載的函數(shù)與已有函數(shù)的返回類型必須相同 C.重載的函數(shù)必須保證在調(diào)用時(shí)其參數(shù)的個(gè)數(shù)或類型與已有函數(shù)有所不同 D.若是重載類的成員函數(shù),參數(shù)表后有無const修飾可以是它們唯一的區(qū)別16.下列模板函數(shù)聲明中正確的是(C)。A.template<typenameT>voidDouble(Tn){returnn+n;}B.template(typenameT)voidDouble<Tn>{returnn+n;}C.template<typenameT>intInt(Tn){returnn;}D.template(typenameT)intInt<Tn>{returnn;}17.關(guān)于繼承成員的訪問屬性,下列表述中錯(cuò)誤的是(A)。 A.在公有繼承方式下,所有繼承成員的訪問屬性保持不變 B.在保護(hù)繼承方式下,原來的公有屬性變?yōu)楸Wo(hù)屬性 C.在私有繼承方式下,原來的公有、保護(hù)屬性變?yōu)樗接袑傩?D.在任何繼承方式下,原來的私有屬性變?yōu)槔^承的私有屬性18.關(guān)于虛函數(shù),下列表述中錯(cuò)誤的是(B)。 A.析構(gòu)函數(shù)可以聲明為虛函數(shù) B.構(gòu)造函數(shù)可以聲明為虛函數(shù) C.通過指針或引用對虛函數(shù)的調(diào)用稱為多態(tài)調(diào)用 D.虛函數(shù)在派生類重定義后仍然是虛函數(shù),可以進(jìn)一步重定義19.有如下類模板定義:template<typenameT>classCa{public:Tfa(););要在模板外給出模板類成員函數(shù)fa的定義,正確的是(D)。A.Tfa()(return1;)B.template<typenameT>Tfa(){returnl;)C.template<typenameT>TCa::fa()(returnl;)D.template<typenameT>TCa<T>::fa(){returnl;)20.下列標(biāo)識(shí)符中,不屬于C++流的預(yù)定義流對象的是(B)。 A.cerr B.fstream C.cout D.cin二、填空題(每小題2分,共20分)21.若一個(gè)應(yīng)用程序中只定義了一個(gè)函數(shù),則該函數(shù)的名稱是_____main____________。22.用來表示常量3.25的類型修飾符是____double_____________。23.有如下語句序列:intj=0;docout<<’*’;while(j->0);執(zhí)行此語句輸出的*的個(gè)數(shù)是______1__________。24.語句“doubleas[100];”定義了一維數(shù)組as,其最大下標(biāo)是_____99___________。25.系統(tǒng)提供的比較兩個(gè)字符串大小的函數(shù)的名稱是_________strcmp_________。26.若sizeof(int)的值為4,p是一個(gè)int型指針,則表達(dá)式p+=3使指針p移動(dòng)的字節(jié)數(shù)是__________12_____。27.名為House的類的析構(gòu)函數(shù)的函數(shù)名是_____~House____________。28.在+、-、=、*、>這幾個(gè)操作符中,只能作為成員函數(shù)重載的是_____=____________。29.在私有繼承方式下,基類的公有成員在派生類中的訪問屬性是______私有(或private)___________。 30.在C++流中,操作符>>稱為_________提取操作符________。三、寫出下列程序運(yùn)行后的輸出結(jié)果(每小題8分,共24分)31.有如下程序:#include<iostream>usingnamespacestd;classA{intx;y;public;A(){x=0;y=0;}A(inta,intb){x=a;y=b;}~A(){if(x==y(tǒng))cout<<"x=y"<<endl;elsecout<<"x!=y"<<endl;}voidDisplay(){cout<<”x=”<<x<<”,y=”<<y<<endl;}};voidmain(){Aa1,a2(2,3);A1.Display();a2.Display();}運(yùn)行此程序的輸出是(x=0,y=0X=2,y=3X!=yX=y)。32.有如下程序:#include<iostream>usingnamespacestd;intmain(){intx[]=(2,4,6,8,10,12),a=0;inti=0;while(i<6){s+=x[i];i+=3;)cout<<s;returnO;}運(yùn)行此程序的輸出是(10)。33.有如下程序:#include<iostream>usingnamespacestd;intmain(){intx[]={1,2,3,4,5),*px=x;for(inti=0;i<2;i++)px++;cout<<*px;return0;}運(yùn)行此程序的輸出是(3)。四、寫出下列每個(gè)函數(shù)的功能(每小題8分,共16分)34.intSA(inta,intb){if(a>b)returnl,elseif(a==b)returnO;elsereturn-1,}函數(shù)功能:比較兩個(gè)整數(shù)a和b的大小,若a>b則返回1,若a==b則返回0,若a<b則返回-1。35.intLK(inta[],intn){floats=0;inti,for(i=0;i<n;i++)s+=a[i]s/=n;intm=0;for(i=0;i<n;i++)if(a[i]>=s)returnm;}函數(shù)功能:求出數(shù)組a的n個(gè)元素中大于等于平均值的元素個(gè)數(shù)并返回。試卷代號(hào):1075國家開放大學(xué)2019年秋季學(xué)期期末統(tǒng)一考試C++語言程序設(shè)計(jì)試題2020年1月一、單選題(每小題2分,共40分)1.下列實(shí)型常量中錯(cuò)誤的是(D)。 A.3.25 B.+3.25 C.-3.25E+3 D.3.25e6.12.下列表達(dá)式中錯(cuò)誤的是(D)。 A.++x B.x- C.(++x)一一 D.++x-3.下列語句中,無意義的語句是(C)。 A.k=3; B.-k; C.k+3; D.k/=3;4.有如下語句:if(x>0)if(x>100)cout《“?。?!”;elsecout<<′!′;elseif(x<-302)cout《"???";elsecout<<'?';若x的值為-302,則執(zhí)行此語句將輸出(C)。 A.! B.?。?! C.? D.???5.for語句的語法格式可表示為:for(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調(diào)整)循環(huán)體下列關(guān)于for語句的表述中,錯(cuò)誤的是(D)。 A.循環(huán)初始化中定義的變量的作用域僅限于此循環(huán)語句 B.循環(huán)條件應(yīng)該是一個(gè)邏輯表達(dá)式 C.循環(huán)參數(shù)調(diào)整與循環(huán)體執(zhí)行相同的次數(shù) D.循環(huán)體至少執(zhí)行一次6.語句“chardrm[]一{'A′,′B′,′C′,′D'),”定義了一個(gè)一維數(shù)組。關(guān)于此數(shù)組,下列表述中錯(cuò)誤的是(B)。 A.?dāng)?shù)組的名稱是drm B.元素drm[3]的值是′C' C.?dāng)?shù)組有4個(gè)元素 D.?dāng)?shù)組的最小下標(biāo)是07.若要定義一個(gè)雙精度二維數(shù)組data,使其元素的初始值排列如下:A1.12.23.31.12.20.00.00.00.0則下列定義語句中錯(cuò)誤的是(D)。 A.doubledata[][3]={{1.1,2.2,3.3},{1.1,2.2}} B.doubledata[3][3]={{1.1,2.2,3.3),{1.1,2.2,0.0}}; Cdoubledata[][3]一“1.1,2.2,3.3},{1,2.2,0.0},{0.0,0.0,0.O}}; D.doubledata[3][3]={{1.1,2.2,3.3},{1.1,2.2}};8.若有如下函數(shù):intval(intn){return(n<=071:n+val(n/2));)則執(zhí)行語句“cout《val(10);”的輸出是(D)。 A.1 B.11 C.15 D.199.下列函數(shù)原型中錯(cuò)誤的是(A)。 A.intf(intn=0,doubled); B.intf(intn,doubled=0.0); C.intf(intn=0,doubled=0.0); D.intf(int=O,double-0.0);10.要想定義一個(gè)指向字符串”Hello!”的指針p,且不允許p改為指向別的字符串,則p應(yīng)定義為(A)。 A.char*constp='Hello!"; B.constchar*p=“Hello!”; C.charconstp="Hello!” D.constcharp=“Hello!”;11.已知執(zhí)行了如下兩個(gè)語句: int*pl=newint(3); int*p2=newint[3],要想釋放pl.p2所指向的動(dòng)態(tài)空間,正確的語句序列是(C)。 A.deletepl;deletep2; B.delete[]pl;deletep2; C.deletepl;delete[]p2; D.delete[]pl;delete[]p2;12.有如下類聲明:classMyClass{public:charc:};且有如下變量定義:MyClassd,*pd=&d,&rd=d;則下列訪問類成員c的表達(dá)式中,正確的是(C)。 A.pd.c和rd.c B.pd->c和rd->c C.rd.c和pd->c D.rd->c和pd.c13.關(guān)于默認(rèn)的構(gòu)造函數(shù),下列表述中錯(cuò)誤的是(D)。 A.默認(rèn)構(gòu)造函數(shù)沒有參數(shù)或所有參數(shù)都有默認(rèn)值 B.如果類中沒有聲明任何構(gòu)造函數(shù),系統(tǒng)將自動(dòng)生成默認(rèn)構(gòu)造函數(shù) C.每個(gè)類最多只有一個(gè)默認(rèn)構(gòu)造函數(shù) D.每個(gè)類至少有一個(gè)默認(rèn)構(gòu)造函數(shù)14.有如下定義:classBBfintk:public:BB(intn=0):k(n)()};classAAfBBbb;charcc,public:AA(intb,charc),//b用于初始化bh,c用于初始化ce);要在類體外給出類AA的構(gòu)造函數(shù)的定義,正確的是(B)。 A.AA(intb,charc):bb(b),cc(c)() B.AA::AA(intb,charc):cc(c),bb(b){} CAA(intb,charc){bb.k=b;cc=c;) D.AA::AA(intb,charc){bb.k=b,cc=c;)15.關(guān)于操作符重載,下列表述中錯(cuò)誤的是(C)。 A.每個(gè)重載的操作符是一個(gè)操作符函數(shù) B.若重載+,相應(yīng)操作符函數(shù)的名稱是operator+ C.通過操作符重載,可以創(chuàng)造出新的操作符 D.重載的操作符不改變原操作符的優(yōu)先級(jí)和結(jié)合性16.有如下函數(shù)模板聲明:template<intn,typenameTl,typenameT2=int>T2add(T1tl){returntl+n,)下列對模板函數(shù)add的調(diào)用中,錯(cuò)誤的是(D)。 A.add<3,int,int>(5)B.add<3,int>(5) Cadd<3>(5)D.add(5)17.關(guān)于基類和派生類,下列表述中錯(cuò)誤的是(D)。 A.一個(gè)基類可以有若干派生類 B.一個(gè)派生類可以有若干基類 C.基類是它的所有派生類的共性的體現(xiàn) D.派生類繼承基類的所有非私有成員作為自己的成員18.關(guān)于虛函數(shù),下列表述中錯(cuò)誤的是(A)。 A.只有用virtual修飾的函數(shù)才是虛函數(shù) B.只有類的成員函數(shù)才能聲明為虛函數(shù) C.在派生類中可以重新定義基類聲明的虛函數(shù) D.靜態(tài)成員函數(shù)不得聲明為虛函數(shù)19.關(guān)于類模板,下列表述中錯(cuò)誤的是(B)。 A.每一次定義模板類對象時(shí),如果尚無相應(yīng)的類定義,即刻生成該類的定義 B.類模板的聲明、定義屬于參考性聲明,應(yīng)放在頭文件中 C.模板類可以是派生類,其基類不得是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024物流金融、信用保險(xiǎn)服務(wù)合同
- 2025年度市政道路改造工程設(shè)計(jì)與施工總承包合同書3篇
- 2025年IDC機(jī)房租賃合同及網(wǎng)絡(luò)安全評估協(xié)議3篇
- 二零二五版金融租賃合同抵押擔(dān)保與租賃資產(chǎn)處置協(xié)議2篇
- 2025廠房升級(jí)改造與設(shè)備更新一體化合同3篇
- 2024跨區(qū)域綠色能源開發(fā)與合作框架合同
- 2025版韻達(dá)快遞業(yè)務(wù)承包及運(yùn)營合同3篇
- 幼兒園2025年度綠化維護(hù)服務(wù)合同2篇
- 二零二五年房車托管與戶外運(yùn)動(dòng)俱樂部合作合同3篇
- 個(gè)人二手手機(jī)買賣合同(2024版)2篇
- 【傳媒大學(xué)】2024年新營銷
- 乳腺癌的綜合治療及進(jìn)展
- 【大學(xué)課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025屆廣東省佛山市高三上學(xué)期普通高中教學(xué)質(zhì)量檢測(一模)英語試卷(無答案)
- 自身免疫性腦炎課件
- 人力資源管理各崗位工作職責(zé)
- 信陽農(nóng)林學(xué)院《新媒體傳播學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024建筑公司年終工作總結(jié)(32篇)
- 信息安全意識(shí)培訓(xùn)課件
- 2024年項(xiàng)目投資計(jì)劃書(三篇)
- 配電安規(guī)課件
評論
0/150
提交評論