版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C++語言程序設(shè)計復(fù)習(xí)課一、第一章單項選擇題
1.在每個C++程序中都必須包含有這樣一個函數(shù),該函數(shù)的函數(shù)名為()。答案:A
A.mainB.MAINC.nameD.function
2.C++源程序文件的缺省擴展名為()。答案:A
A.cppB.exeC.objD.lik
3.程序運行中需要從鍵盤上輸入多于一個數(shù)據(jù)時,各數(shù)據(jù)之間應(yīng)使用()符號作為分隔符。答案:D
A.空格或逗號B.逗號或回車C.逗號或分號D.空格或回車
4.C++程序的根本模塊為〔〕。答案:D
A.表達式B.標(biāo)識符C.語句D.函數(shù)
5.每個C++程序文件的編譯錯誤分為〔〕類。答案:B//warningerror
A.1B.2C.3D.4二、第一章填空題
1.C++語言是在_________語言的根底上開展起來的。答案:C
2.C++語言中的每條根本語句以________作為結(jié)束符。答案:;〔或分號〕
3.C++語言中的每條復(fù)合語句以________作為結(jié)束符。答案:}〔或右花括號〕
4.在C++每個程序行的后面或單獨一行的開始使用注釋的標(biāo)記符為__________。答案://
5.單行或多行注釋的開始標(biāo)記符為__________、結(jié)束標(biāo)記符為__________。答案:/*、*/
6.在一個C++程序文件中,假設(shè)要包含另外一個頭文件或程序文件,那么應(yīng)使用以__________標(biāo)識符開始的預(yù)處理命令。#include
7.C++程序中的所有預(yù)處理命令均以______字符開頭。#
8.在#include命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是________定義的頭文件。用戶〔或編程者〕9.一個函數(shù)定義由________和________兩局部組成。答案:函數(shù)頭、函數(shù)體
10.用于輸出表達式值的標(biāo)準(zhǔn)輸出流對象是________,用于從鍵盤上為變量輸入值的標(biāo)準(zhǔn)輸入流對象是________。答案:cout、cin
11.當(dāng)不需要函數(shù)返回任何值時,那么應(yīng)使用________標(biāo)識符定義函數(shù)類型。答案:void三、第二章單項選擇題
1.設(shè)x和y均為bool量,那么x&&y為真的條件是()。答案:A
A.它們均為真B.其中一個為真
C.它們均為假D.其中一個為假
2.設(shè)x和y均為bool量,那么x||y為假的條件是()。C
A.它們均為真B.其中一個為真
C.它們均為假D.其中一個為假
3.設(shè)有語句“inta=12;a+=a*a;〞,那么執(zhí)行結(jié)束后,a的值為()。C
A.12B.144C.156D.288
4.x>0&&x<=10的相反表達式為〔〕。A
A.x<=0||x>10B.x<=0&&x>10
C.x<=0||x<=10D.x>0&&x>10
5.x>0||y==5的相反表達式為〔〕。B
A.x<=0||y!=5B.x<=0&&y!=5
C.x>0||y!=5D.x>0&&y==56.字符串“a+b=12\n〞的長度為〔〕。答案:B
A.6B.7C.8D.9
7.在以下的常值常量定義中,錯誤的定義語句是〔〕。答案:C
A.constM=10;B.constintM=20;
C.constcharch;D.constboolmark=true;
8.枚舉類型中的每個枚舉常量的值都是一個〔〕。答案:A
A.整數(shù)B.浮點數(shù)
C.字符D.邏輯值
9.含隨機函數(shù)的表達式rand()%20的值在()區(qū)間內(nèi)。答案:C
A.1~19B.1~20
C.0~19D.0~20四、第二章填空題
1.十進制數(shù)25表示成符合C++語言規(guī)那么的八進制數(shù)為________。答案:031
2.十進制數(shù)25表示成符合C++語言規(guī)那么的十六進制數(shù)為________。答案:0x19
3.在c++語言中,操縱符________表示輸出一個換行符。答案:endl
4.執(zhí)行“cout<<char('A'+2)<<endl;〞語句后得到的輸出結(jié)果為________。答案:C
5.'A'~'Z'的ASCII碼為65~90,當(dāng)執(zhí)行“intx='C'+5;〞語句后x的值為________。答案:72
6.'A'~'Z'的ASCII碼為65~90,當(dāng)執(zhí)行“charch=14*5+2;cout<<ch<<endl;〞語句序列后,得到的輸出結(jié)果為________。答案:H
7.假定一個枚舉類型的定義為“enumRA{ab,ac,ad,ae};〞,那么枚舉常量ac的值為________。答案:18.假定一個枚舉類型的定義為“enumRB{a1,a2=3,a3,a4}x=a3;〞,那么x的值為________。答案:4
9.char、short、int、float、double類型的大小分別為________個字節(jié)。
10.十進制常數(shù)28和3.26的類型分別為________和________。答案:int、double
11.假設(shè)需要定義一個常值常量,并且使C++能夠進行類型檢查,那么應(yīng)在定義語句的開始使用保存字__________。答案:const//#defineMAX100
12.使用const語句定義一個常值常量時,那么必須對它同時進行__________。答案:初始化//如constintMM=20;
13.執(zhí)行“intx=45,y=13;cout<<x/y;〞語句序列后得到的輸出結(jié)果為________。答案:3
14.執(zhí)行“intx=45,y=13;cout<<x%y;〞語句序列后得到的輸出結(jié)果為________。答案:615.假定x=5,那么表達式2+x++的值為________。答案:7
16.假定y=10,那么表達式++y*3的值為________。答案:33
17.表達式float(25)/4的值為________。答案:6.25
18.表達式int(14.6)%5的值為________。答案:4
19.表達式x=x+y表示成復(fù)合賦值表達式為__________。答案:x+=y
20.表達式x=x+1表示成增量表達式為__________。答案:++x
21.增量表達式++y表示成賦值表達式為__________。答案:y=y+1
22.關(guān)系表達式(x==0)的等價表達式為________。答案:(!x)
23.關(guān)系表達式(x!=0)的等價表達式為________。答案:(x)
24.假定不允許使用邏輯非操作符,那么關(guān)系表達式x+y>5的相反表達式為____________。答案:x+y<=5
25.假設(shè)x=5,y=10,那么x>y邏輯值為________。答案:false或0
26.假設(shè)x=5,y=10,那么x!=y的邏輯值為________。答案:true或1
27.假定x=5,那么執(zhí)行“a=(x?10:20);〞語句后a的值為________。答案:10
28.執(zhí)行“typedefintDataType;〞語句后,在使用int定義整型變量的地方都可以使用__________來定義整型變量。答案:DataType五、第三章單項選擇題
1.當(dāng)處理特定問題時的循環(huán)次數(shù)時,通常采用〔〕來解決。答案:A
A.for循環(huán)B.while循環(huán)C.do循環(huán)D.switch語句
2.循環(huán)體至少被執(zhí)行一次的語句為〔〕語句。答案:C
A.for循環(huán)B.while循環(huán)C.do循環(huán)D.任一種循環(huán)
3.在switch語句的每個case塊中,假定都是以break語句結(jié)束的,那么此switch語句容易被改寫為〔〕語句。答案:B
A.forB.ifC.doD.while
4.for語句能夠被改寫為〔〕語句。答案:D
A.復(fù)合B.ifC.switchD.while
5.循環(huán)語句“for(inti=0;i<n;i++)S;〞中循環(huán)體S被執(zhí)行的次數(shù)為()。答案:C
A.1B.n-1C.nD.n+16.下面循環(huán)語句執(zhí)行結(jié)束后輸出的i值為〔〕。答案:Bfor(inti=0;i<n;i++)if(i>n/2){cout<<i<<endl;break;}
A.n/2B.n/2+1C.n/2-1D.n-1
7.在下面循環(huán)語句中內(nèi)層循環(huán)體S語句的執(zhí)行總次數(shù)為〔〕。答案:Dfor(inti=0;i<n;i++)
for(intj=i;j<n;j++)S;//n+(n-1)+...+1
A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2
8.在下面的while循環(huán)語句中,其循環(huán)體被執(zhí)行的次數(shù)為〔〕。答案:Cinti=0,s=0;while(s<20){i++;s+=i;}//s=1,3,6,10,15,21
A.4B.5C.6D.7
9.在下面的do循環(huán)語句中,其循環(huán)體被執(zhí)行的次數(shù)為〔〕。答案:Ainti=0;doi++;while(i*i<10);//i=0,1,2,3
A.4B.3C.5D.2六、第三章填空題
1.在switch語句中,每個語句標(biāo)號所含保存字case后面的表達式必須是_______。整型常量
2.在if語句中,每個else關(guān)鍵字與它前面同層次并且最接近的________關(guān)鍵字相配套。if
3.作為語句標(biāo)號使用的C++保存字case和default只能用于________語句的定義體中。switch
4.執(zhí)行switch語句時,在進行作為條件的表達式求值后,將從某個匹配的標(biāo)號位置起向下執(zhí)行,當(dāng)碰到下一個標(biāo)號位置時〔停止/不停止〕________執(zhí)行。不停止
5.假設(shè)while循環(huán)的“頭〞為〞while(i++<=10)〞,并且i的初值為0,同時在循環(huán)體中不會修改i的值,那么循環(huán)體將被重復(fù)執(zhí)行______次后正常結(jié)束。11
6.假設(shè)do循環(huán)的“尾〞為〞while(++i<10)〞,并且i的初值為0,同時在循環(huán)體中不會修改i的值,那么循環(huán)體將被重復(fù)執(zhí)行______次后正常結(jié)束。107.當(dāng)在程序中執(zhí)行到________語句時,將結(jié)束本層循環(huán)類語句或switch語句的執(zhí)行。答案:break
8.當(dāng)在程序中執(zhí)行到________語句時,將結(jié)束所在循環(huán)語句中循環(huán)體的一次執(zhí)行。答案:continue
9.在程序中執(zhí)行到________語句時,將結(jié)束所在函數(shù)的執(zhí)行過程,返回到調(diào)用該函數(shù)的位置。答案:return
10.在程序執(zhí)行完一個________函數(shù)調(diào)用后,將結(jié)束整個程序的執(zhí)行過程,返回到操作系統(tǒng)或C++集成開發(fā)環(huán)境界面窗口。答案:主(或main)七、第三章程序運行結(jié)果
1.#include<iostream.h>
voidmain()
{
intx=5;
switch(2*x-3){
case4:cout<<x<<’’;
case7:cout<<2*x+1<<’’;
case10:cout<<3*x-1<<’’;break;
default:cout<<"default"<<endl;
}
cout<<"switchend."<<endl;
}答案:1114switchend.C++語言程序設(shè)計復(fù)習(xí)課一、第三章函數(shù)功能
1.#include<iostream.h>
intSA(inta,intb){
if(a>b)return1;
elseif(a==b)return0;
elsereturn-1;
}
答案:比擬兩個整型參數(shù)a和b的大小,假設(shè)a>b那么返回1,假設(shè)a==b那么返回0,假設(shè)a<b那么返回-1。
2.intSC(inta,intb,intc){
if(a>=b&&a>=c)returna;
if(b>=a&&b>=c)returnb;
returnc;
}
答案:求出a,b,c三個數(shù)中的最大值并返回。3.intSE(intn){//n為大于等于1的整數(shù)
intx;cin>>x;
if(n==1)returnx;
intm=x;
while(--n){cin>>x;m+=x;}
returnm;
}
答案:求出從鍵盤上輸入的n個整數(shù)之和并返回。
4.doubleSF(doublex,intn){//n為大于等于0的整數(shù)
doublep=1,s=1;
for(inti=1;i<=n;i++){p*=x;s+=p/(i+1);}
returns;
}
答案:計算1+x/2+x2/3+...+xn/(n+1)的值并返回。5.#include<math.h>
boolSG(intx){//x為大于等于2的整數(shù)
inta=int(sqrt(x));//取x的平方根
inti=2;
while(i<=a){if(x%i==0)break;i++;}
if(i<=a)return0;elsereturn1;
}
答案:判斷x是否為一個質(zhì)數(shù),假設(shè)是那么返回1,否那么返回0。
6.floatFH(){
floatx,y=0,n=0;
cin>>x;
while(x!=-1){n++;y+=x;cin>>x;}
if(n==0)returny;elsereturny/n;
}
答案:求出從鍵盤上輸入的一批常數(shù)的平均值,以-1作為結(jié)束輸入的標(biāo)志。7.floatFI(intn){//n為大于等于1的整數(shù)
floatx,y=0;
do{
cin>>x;y+=x*x;
}while(--n>0);
returny;
}
答案:求出從鍵盤上輸入的n個常數(shù)的平方和并返回。8.#include<iostream.h>
#include<math.h>
voidmain()
{
intx,y;
cin>>x;
y=int(sqrt(x));//sqrt(x)為求x的算術(shù)平方根
for(inti=1;i<=y;i++)
if(x%i==0)cout<<〞x=〞<<i<<’*’<<x/i<<endl;
}
答案:把從鍵盤上輸入的一個整數(shù)x分解為所有可能的每兩個因子之積。二、第三章編寫函數(shù)
1.編寫一個主函數(shù),利用while循環(huán),求出并顯示滿足不等式1+1/2+1/3+...+1/n≥5的最小n值。
答案:
voidmain(){
inti=0;doubles=0;//或inti=1;doubles=1;
while(s<5)s+=double(1)/++i;
cout<<"n="<<i<<endl;
}
2.編寫一個主函數(shù),計算1+3+3^2+...+3^10的值并輸出,假定分別用i,p,s作為循環(huán)變量、累乘變量和累加變量的標(biāo)識符。
voidmain(){
inti;//用i作為循環(huán)變量
intp=1;//用p作為累乘變量
ints=1;//用s作為累加循環(huán)變量
for(i=1;i<=10;i++){p*=3;s+=p;}
cout<<s<<endl;
}3.編寫一個主函數(shù),6≤a≤30,15≤b≤36,求出滿足不定方程2a+5b=126的全部整數(shù)組解。如(13,20)就是其中的一組解。
答案:
voidmain()
{
inta,b;
for(a=6;a<=30;a++)
for(b=15;b<=36;b++)
if(2*a+5*b==126)cout<<'('<<a<<','<<b<<')'<<endl;
}三、第四章單項選擇題
1.在下面的一維數(shù)組定義中,〔〕語句有語法錯誤。答案:C
A.inta[]={1,2,3};B.inta[10]={0};
C.inta[];D.inta[5];
2.在下面的二維數(shù)組定義中,〔〕語句是正確的。答案:C
A.inta[5][];B.inta[][5];
C.inta[][3]={{1,3,5},{2}};D.inta[](10);
3.在下面的字符數(shù)組定義中,〔〕語句有語法錯誤。答案:D
A.chara[20]=〞abcdefg〞;B.chara[]=〞x+y=55.〞;
C.chara[15]={’1’,’2’};D.chara[10]=’5’;
4.假定一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};〞,那么元素a[1][2]的值為〔〕。答案:C
A.2B.4C.6D.8
5.假定一個二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};〞,那么元素a[2][1]的值為〔〕。答案:A
A.0B.4C.8D.66.將兩個字符串連接起來組成一個字符串時,選用〔〕函數(shù)。答案:C
A.strlen()B.strcpy()C.strcat()D.strcmp()四、第四章填空題
1.假定一個一維數(shù)組的定義為“char*a[8];〞,該數(shù)組所含元素的個數(shù)為________,所占存儲空間的字節(jié)數(shù)為________。8、32
2.假定一個二維數(shù)組的定義為“inta[3][5];〞,那么該數(shù)組所含元素的個數(shù)為________,所占存儲空間的字節(jié)數(shù)為________。15、60
3.執(zhí)行“typedefintABC[10];〞語句把ABC定義為具有10個整型元素的________類型。數(shù)組
4.使用“typedefcharBB[10][50];〞語句定義________為含有10行50列二維字符數(shù)組類型。BB
5.存儲字符’a’需要占用存儲器的________個字節(jié)空間,存儲字符串〞a〞需要占用存儲器的________個字節(jié)空間。1、2
6.字符串〞a:\\xxk\\數(shù)據(jù)〞的長度為________,存儲它的字符數(shù)組的長度至少為________。11、127.假設(shè)a是一個字符數(shù)組,那么從鍵盤上向該數(shù)組輸入一個字符串的表達式語句為__________,向屏幕輸出a中所存字符串的表達式語句為__________。答案:cin>>a;cout<<a;
8.一個二維字符數(shù)組a[10][20]能夠存儲________個字符串,每個字符串的長度至多為________。答案:10、19五、第四章程序運行結(jié)果
1.#include<iostream.h>
voidmain(){
inta[10]={12,39,26,41,55,63,72,40,83,95};
inti1=0,i2=0;
for(inti=0;i<10;i++)
if(a[i]%2==1)i1++;elsei2++;
cout<<i1<<''<<i2<<endl;
}
答案:642.#include<iostream.h>
voidmain(){
inta[9]={36,25,48,14,55,40,32,66,60};
intb1,b2;
b1=b2=a[0];
for(inti=1;i<9;i++)
if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];}
elseif(a[i]>b2)b2=a[i];
cout<<b1<<''<<b2<<endl;
}
答案:66603.#include<iostream.h>
voidmain(){
chara[]="abcdabcabfgacd";
inti1=0,i2=0,i=0;
while(a[i]){
if(a[i]=='a')i1++;
if(a[i]=='b')i2++;
i++;
}
cout<<i1<<''<<i2<<''<<i<<endl;
}
答案:4314六、第四章編寫程序
1.編寫一個函數(shù),函數(shù)頭格式為“voidfun4(char*a,intb[])〞,分別求出由字符指針a所指向的字符串中包含的每種十進制數(shù)字出現(xiàn)的次數(shù),把統(tǒng)計結(jié)果保存在數(shù)組b的相應(yīng)元素中。
答案:
voidfun4(char*a,intb[])
{
inti;
for(i=0;i<10;i++)b[i]=0;//對b數(shù)組初始化
while(*a){
intj=*a-’0’;
if(j>=0&&j<=9)b[j]++;
a++;
}}C++語言程序設(shè)計復(fù)習(xí)課一、第五章單項選擇題
1.下面的〔〕函數(shù)頭格式不正確。答案:D
A.AA(inta,intb)B.AA(inta,intb=0)
C.AA(inta=0,intb=0)D.AA(inta=0,intb)
2.下面的〔〕保存字不能作為函數(shù)的返回類型。答案:C
A.voidB.intC.newD.long
3.下面的函數(shù)聲明中,“voidBC(inta,intb);〞的重載函數(shù)是〔〕。答案:B
A.intBC(intx,inty);B.voidBC(inta,charb);
C.floatBC(inta,intb,intc=0);D.voidBC(inta,intb=0);
4.聲明或定義一個內(nèi)聯(lián)函數(shù)時,必須在函數(shù)開始使用保存字〔〕。答案:C
A.staticB.constC.inlineD.extern5.在下面的函數(shù)聲明中,〔〕存在著語法錯誤。答案:D
A.intBC(inta,int);B.intBC(int,int);
C.intBC(int,int=5);D.intBC(intx;inty);
6.假設(shè)定義了函數(shù)double*function(),那么該函數(shù)的返回值為〔〕。答案:B
A.實數(shù)型B.實數(shù)指針型C.函數(shù)指針型D.?dāng)?shù)組型
7.以下〔〕的調(diào)用方式是引用調(diào)用。答案:C
A.形參和實參都是變量B.形參是指針,實參是地址值
C.形參是引用,實參是變量D.形參是變量,實參是地址值
8.為了提高程序的運行速度,可將不太復(fù)雜的函數(shù)實現(xiàn)為〔〕。答案:A
A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板
9.下面正確的函數(shù)原型語句是〔〕。答案:B
A.intFunction(voida);B.voidFunction(int);
C.intFunction(a);D.voidint(doub10.函數(shù)調(diào)用func((exp1,exp2),exp3*exp4-exp5)中所含實參的個數(shù)為()個。答案:B
A.1B.2C.4D.5
11.假設(shè)用數(shù)組名作為函數(shù)調(diào)用的實參,傳遞給形參的是〔〕答案:A
A.?dāng)?shù)組的首地址B.?dāng)?shù)組中第一個元素的值
C.?dāng)?shù)組全部元素的值D.?dāng)?shù)組元素的個數(shù)
12.文件包含命令中被包含的文件的擴展名〔〕。答案:C
A.只能是.hB.不能是.hC.可以是.h或.cppD.只能是.cpp二、第五章填空題
1.在C++語言中,一個函數(shù)由______和_______組成。答案:函數(shù)頭、函數(shù)體
2.在函數(shù)外定義的變量稱為全局變量,假設(shè)沒有被初始化那么系統(tǒng)隱含對它所賦的初值為________。答案:0
3.函數(shù)被調(diào)用時,實參向形參的傳送分為________和_______兩種傳送方式。答案:引用、值
4.重載一個函數(shù)的條件是:該函數(shù)必須在參數(shù)的_______或參數(shù)的_______上與其它同名函數(shù)有所不同。答案:個數(shù)、類型
5.如果一個函數(shù)只允許在同一程序文件中被調(diào)用,那么應(yīng)在該函數(shù)定義前加上的C++保存字為__________。答案:static
6.如果一個函數(shù)直接或間接地調(diào)用自身,這樣的調(diào)用被稱為____________調(diào)用。答案:遞歸
7.假定一個函數(shù)模板的定義為“template<classT>Tcubin(Tn){returnn*n*n;}〞,那么類型參數(shù)為________。答案:T8.對于無返回值函數(shù),定義函數(shù)時要用__________作為函數(shù)類型。答案:void
9.函數(shù)形參的作用域是該函數(shù)的____________。答案:函數(shù)體
10.C++提供的預(yù)處理命令有宏定義命令,條件編譯命令和____________。答案:文件包含命令
11.程序的編譯是以__________為單位進行的。答案:文件三、第五章程序運行結(jié)果
.#include<iostream.h>
#include<stdlib.h>
doubleSD(doublea,doubleb,charop){
doublex;
switch(op){
case'+':x=a+b;break;
case'-':x=a-b;break;
case'*':x=a*b;break;
case'/':if(b)x=a/b;elseexit(1);
break;
default:exit(1);
}
returnx;
}voidmain(){
intx=25,y=10;
cout<<SD(x,y,'-')<<'';
cout<<SD(x,y,'*')<<'';
cout<<SD(x+y,y,'/')<<endl;
}
答案:152503.5
2.#include<iostream.h>
voidmain(){
inta=10,b=20;
cout<<a<<''<<b<<endl;
{a*=3;
intb=a+35;
cout<<a<<''<<b<<endl;
}cout<<a<<''<<b<<endl;
}
答案:
1020
3065
3020
3.#include<iostream.h>
voidWF(int&x,inty){
x=x+y;
y=x+y;
cout<<x<<","<<y<<endl;
}
voidmain(){
intx=8,y=15;
cout<<x<<","<<y<<endl;
WF(x,y);x=2*x;
cout<<x<<","<<y<<endl;
}
答案:
8,15
23,38
46,15
4.#include<iostream.h>
voidSelectSort(inta[],intn){
inti,j,k;
for(i=1;i<n;i++){//進行n-1次選擇和交換
k=i-1;
for(j=i;j<n;j++)
if(a[j]<a[k])k=j;
intx=a[i-1];a[i-1]=a[k];a[k]=x;
}}
voidmain(){
inti;
inta[6]={20,15,32,47,36,28};
SelectSort(a,6);
for(i=0;i<6;i++)cout<<a[i]<<'';
cout<<endl;
}
答案:152028323647四、第五章函數(shù)功能
1.boolWB(inta[],intn,intx){
for(inti=0;i<n;i++)
if(a[i]==x)returntrue;
returnfalse;
}
答案:從數(shù)組a中順序查找值為x的元素,假設(shè)查找成功那么返回真,否那么返回假。
2.template<classT>
intfun8(Ta[],intn,Tkey)
{
intc=0
for(inti=0;i<n;i++)
if(a[i]>=key)c++;
returnc;
}答案:函數(shù)模板,從一維數(shù)組a[n]中統(tǒng)計出其值大于等于key的元素個數(shù)并作為函數(shù)值返回。
3.#include<iostream.h>
template<classTT>
intWG(TTa,TTb){
if(a>b)return1;
elseif(a==b)return0;
elsereturn-1;
}
答案:
模板函數(shù),比擬兩個變量a和b的大小,假設(shè)a>b那么返回1,假設(shè)a==b那么返回0,假設(shè)a<b那么返回-1。4.template<classType>
voidWE(Typea[],Typeb[],intn){
for(inti=0;i<n;i++)
b[n-i-1]=a[i];
}
答案:模板函數(shù),把數(shù)組a的每個元素按逆序放入數(shù)組b中。五、第六章單項選擇題
1.假定p是一個指向float型數(shù)據(jù)的指針,那么p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址大()字節(jié)。答案:C
A.1B.2C.4D.8
2.假定a為一個字符數(shù)組名,那么元素a[8]相對于該數(shù)組首地址的字節(jié)地址為()。答案:CB
A.4B.8C.16D.32
3.假定a為一個整型數(shù)組名,那么元素a[4]相對于該數(shù)組首地址的字節(jié)地址為()。答案:CC
A.4B.8C.16D.32
4.假定a為一個數(shù)組名,那么下面的()表示有錯誤。答案:CB
A.a(chǎn)[i]B.*a++C.*aD.*(a+1)
5.用new運算符創(chuàng)立一維數(shù)組的正確語句是〔〕。答案:C
A.int*p=newa[10];B.int*p=newfloat[10];
C.int*p=newint[10];D.int*p=newint[5]={1,2,3,4,5}六、第六章填空題
1.假定p所指對象的值為25,p+1所指對象的值為46,那么*p++的值為________。答案:25
2.假定p所指對象的值為25,p+1所指對象的值為46,那么*++p的值為________。答案:46
3.假定p所指對象的值為25,p+1所指對象的值為46,那么執(zhí)行“(*p)++;〞語句后,p所指對象的值為________。答案:26
4.假定p所指對象的值為25,p+1所指對象的值為46,那么執(zhí)行“*(p++);〞語句后,p所指對象的值為________。答案:25
5.假定a是一個指針數(shù)組,那么a+i所指對象的地址比a地址大________字節(jié)。答案:4*i
6.假定a是一個一維數(shù)組,那么a[i]的指針訪問方式為________。答案:*(a+i)
7.假定a是一個二維數(shù)組,那么a[i][j]的指針訪問方式為____________。答案:*(a[i]+j)或*(*(a+i)+j)七、第六章程序運行結(jié)果
1.#include<iomanip.h>
voidmain(){
inta[8]={3,5,7,9,11,13,15,17};
int*p=a;
for(inti=0;i<8;i++){
cout<<setw(5)<<*p++;
if((i+1)%4==0)cout<<endl;
}
}
答案:
3579
111315172.#include<iomanip.h>
voidmain(){
inta[9]={2,4,6,8,10,12,14,16,18};
for(inti=0;i<9;i+=2)cout<<setw(5)<<*(a+i)<<’’;
cout<<endl;
}
答案:26101418
3.#include<iomanip.h>
voidmain(){
intx=20,y=40,*p;
p=&x;cout<<*p<<'';
*p=x+10;cout<<*p<<'';
p=&y;cout<<*p<<endl;
*p=y+20;cout<<x<<''<<y<<endl;
}答案:
203040
3060
4.#include<iomanip.h>
intLB(int*a,intn){
ints=1;
for(inti=0;i<n;i++)s*=*a++;
returns;
}
voidmain(){
inta[]={1,2,3,4,5,6,7,8};
intb=LB(a,5)+LB(&a[3],3);
cout<<"b="<<b<<endl;
}
答案:b=240C++語言程序設(shè)計復(fù)習(xí)課一、第六章寫出函數(shù)功能
1.#include<iostream.h>
int*LJ(inta[],intn){
intk=0;
for(inti=1;i<n;i++)
if(a[i]>a[k])k=i;
return&a[k];
}
答案:求出數(shù)組a中n個元素的最大值元素,返回該元素的地址。2.#include<iostream.h>
voidLI(intn){
int*a=newint[n];
for(inti=0;i<n;i++)cin>>a[i];
for(i=n-1;i>=0;i--)cout<<*(a+i)<<'';
cout<<'\n';
delete[]a;
}
答案:把從鍵盤上輸入的n個整數(shù)按與輸入的相反次序顯示出來。3.voidLK(inta[],intn,int&m){//inta[]同int*a
floats=0;inti;
for(i=0;i<n;i++)s+=a[i];//a[i]同*(a+i)
s/=n;
for(i=0,m=0;i<n;i++)
if(a[i]>=s)m++;
}
答案:求出數(shù)組a的n個元素中大于等于平均值的元素個數(shù),該個數(shù)由引用參數(shù)m返回。二、第七章單項選擇題
1.假定一個結(jié)構(gòu)類型的定義為“structA{inta,b;A*c;};〞,那么該類型的大小為________字節(jié)。答案:B
A.8B.12C.16D.20
2.假定一個結(jié)構(gòu)類型的定義為“structD{inta;union{intb;doublec;};D*d[2];};〞,那么該類型的大小為________字節(jié)。答案:D
A.8B.12C.16D.20
3.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book;〞,那么不正確的語句為〔〕。答案:A
A.BOOK*x=newbook;B.BOOKx={"C++Programming",27.0};
C.BOOK*x=newBOOK;D.BOOK**x=&book;
4.假定有“structBOOK{chartitle[40];floatprice;}book;〞,那么正確的語句為〔〕。答案:B
A.BOOK&x=&book;B.BOOK&x=book;
C.BOOK&x=newBOOK;D.BOOK&x=BOOK;三、第七章填空題
1.假定要動態(tài)分配一個類型為Worker的具有n個元素的數(shù)組,并由r指向這個動態(tài)數(shù)組,那么使用的語句表達式為Worker*r=_______________。答案:newWorker[n];
2.假定要訪問一個結(jié)構(gòu)x中的由a指針成員所指向的對象,那么表示方法為____________。答案:n*(x.a)
3.假定要訪問一個結(jié)構(gòu)指針p所指對象中的b指針成員所指的對象,那么表示方法為____________。答案:n*(p->b)
4.與結(jié)構(gòu)成員訪問表達式p->name等價的表達式是____________。答案:n(*p).name
5.與結(jié)構(gòu)成員訪問表達式(*fp).score等價的表達式是____________。答案:nfp->score四、第七章程序運行結(jié)果
1.#include<iostream.h>
structWorker{
charname[15];//姓名
intage;//年齡
floatpay;//工資
};
voidmain(){
Workerx={"wangfong",43,1640};
Workery,*p;
y=x;p=&x;p->pay+=100;
cout<<<<''<<y.age<<''<<y.pay<<endl;
cout<<p->name<<''<<p->age+2<<''<<p->pay+200<<endl;
}
答案:
wangfong431640
wangfong4519402.#include<iostream.h>
#include<string.h>
structWorker{
charname[15];//姓名
intage;//年齡
floatpay;//工資
};
booloperator==(Worker&r1,Worker&r2){
if(strcmp(,)==0)returntrue;
elsereturnfalse;
}
voidmain(){
Workera[4]={{"abc",25,420},{"def",58,638},
{"ghi",49,560},{"jkl",36,375}};
Workerx={"ghi"};
for(inti=0;i<4;i++)if(a[i]==x)break;cout<<a[i].name<<''<<a[i].age<<''<<a[i].pay<<endl;
}
答案:ghi49560
3.#include<iostream.h>
structWorker{
charname[15];//姓名
intage;//年齡
floatpay;//工資
};
booloperator<(Worker&r1,Worker&r2){
if(r1.age<r2.age)returntrue;
elsereturnfalse;
}
voidmain(){
Workera[4]={{"abc",25,420},{"def",58,638},
{"ghi",49,560},{"jkl",36,375}};Workerx=a[0];
for(inti=1;i<4;i++)if(x<a[i])x=a[i];
cout<<<<''<<x.age<<''<<x.pay<<endl;
}
答案:def58638五、第七章寫出函數(shù)功能
1.voidQA(Workera[],intn){
for(inti=0;i<n;i++)
cin>>a[i].name>>a[i].age>>a[i].pay;
}
假定結(jié)構(gòu)類型Worker的定義如下:
structWorker{
charname[15];//姓名
intage;//年齡
floatpay;//工資
};
答案:從鍵盤輸入n個Worker類型的記錄到一維數(shù)組a中。2.istream&operator>>(istream&istr,Worker&x){
cout<<"請輸入一個職工記錄:姓名、年齡、工資"<<endl;
istr>>>>x.age>>x.pay;
returnistr;
}//Workera;cin>>a;
假定結(jié)構(gòu)類型Worker的定義如下:
structWorker{
charname[15];//姓名
intage;//年齡
floatpay;//工資
};
答案:重載提取操作符,用于從輸入流中輸入一個Worker類型的記錄到x中。3.voidQB(StrNode*&f,intn){
if(n==0){f=NULL;return;}
f=newStrNode;
cin>>f->name;
StrNode*p=f;
while(--n){
p=p->next=newStrNode;
cin>>p->name;
}
p->next=NULL;
}
假定結(jié)構(gòu)類型StrNode的定義如下:
structStrNode{
charname[15];//字符串域
StrNode*next;//指針域
};
答案:建立一個具有n個結(jié)點的鏈表,每個結(jié)點的字符串值由鍵盤輸入,鏈表的表頭指針由引用變量f帶回。4.voidQC(StrNode*f){
while(f){
cout<<f->name<<'';
f=f->next;
}
}
假定結(jié)構(gòu)類型StrNode的定義如下:
structStrNode{
charname[15];//字符串域
StrNode*next;//指針域
};
答案:遍歷f單鏈表,即從表頭結(jié)點開始依次輸出f單鏈表中每個結(jié)點的值。5.IntNode*FindMax(IntNode*f)
{
if(!f)returnNULL;
IntNode*p=f;
f=f->next;
while(f){
if(f->data>p->data)p=f;
f=f->next;
}
returnp;
}
假定IntNode的類型定義為:
structIntNode{
intdata;//結(jié)點值域
IntNode*next;//結(jié)點指針域
};
答案:從表頭指針f指向的、由IntNode類型的結(jié)點所構(gòu)成的鏈表中查找出data域的值最大的結(jié)點并返回指向該結(jié)點的指針。6.intCount(IntNode*f){
if(!f)return0;
intc=0;
while(f){c++;f=f->next;}
returnc;
}
假定IntNode的類型定義為:
structIntNode{
intdata;//結(jié)點值域
IntNode*next;//結(jié)點指針域
};
答案:統(tǒng)計出以表頭指針為f的鏈表中結(jié)點的個數(shù)。7.voidOutput(IntNode*f){
if(!f)return;
while(f){
cout<<f->data<<’’;
f=f->next;
}
cout<<endl;
}
假定IntNode的類型定義為:
structIntNode{
intdata;//結(jié)點值域
IntNode*next;//結(jié)點指針域
};
答案:對于以表頭指針為f的鏈表,依次顯示出每個結(jié)點的data域的值。1、對于下面的函數(shù)定義:intf(int*a,intlen){if(len<2)returna[len-1];elsereturna[len-1]*f(a,len-1);}如果執(zhí)行:inta[]={1,2,3,4,5};intb=f(a,4);那么程序運行后,b的結(jié)果是〔24〕2、以下語句運行后,a的值為多少?〔-1〕inta=0;if(a>0)if(a>0);elsea++;elsea--;3、以下語句運行后,a的值為多少?〔1〕inta=0;switch〔a++〕{case1:a=1;case2:a=2;case3:a=3;defaulf:a=4;}4、以下程序執(zhí)行后,其a,b的值分別為〔2,0〕VoidMaxInt(inta,intb){If(a>b)a++;Elseb++;}Inta=1,b=0;MaxInt(a,b);5、以下程序執(zhí)行后,其a,b的值為〔2,0〕VoidMaxInt(int*a,int*b){If(*a>*b)(*a)++;else(*b)++;}inta=1,b=0;int*m=&a,*n=&b;MaxInt(m,n);6、以下程序執(zhí)行后,a,b的值為〔1,不確定〕int*p1=newint(1);int*p2=newint[1];inta=*p1;intb=*p2;deletep1;delete[]p2;7、對于下面的函數(shù)定義:intf(int*a,intlen){if(len<2)returna[len-1];elsereturna[len-1]*f(a,len-1);}如果執(zhí)行:inta[]={1,2,3,4,5};intb=f(a,4);那么程序運行后,b的結(jié)果是〔2〕8、以下語句運行后,a的值為多少?〔2〕inta=0;if(a>0)if(a>0);elsea++;elsea--;9、以下語句運行后,a的值為多少?〔3〕inta=0;switch〔a++〕{case1:a=1;case2:a=2;case3:a=3;defaulf:a=4;}10、以下程序執(zhí)行后,其a,b的值分別為〔2,0〕VoidMaxInt(inta,intb){If(a>b)a++;Elseb++;}Inta=1,b=0;MaxInt(a,b);11、以下程序執(zhí)行后,其a,b的值為〔24〕VoidMaxInt(int*a,int*b){If(*a>*b)(*a)++;else(*b)++;}inta=1,b=0;int*m=&a,*n=&b;MaxInt(m,n);12、以下程序執(zhí)行后,a,b的值為〔3〕int*p1=newint(1);int*p2=newint[1];inta=*p1;intb=*p2;deletep1;delete[]p2;第八章一.單項選擇題
1.當(dāng)類中一個字符指針成員指向具有n個字節(jié)的存儲空間時,它所能存儲字符串的最大長度為________。答案:C
A.nB.n+1C.n-1D.n-2
2.假定AB為一個類,那么該類的拷貝構(gòu)造函數(shù)的聲明語句為()。答案:C
A.AB&(ABx);B.AB(ABx)C.AB(AB&);D.AB(AB*x)
3.對類對象成員的初始化是通過執(zhí)行構(gòu)造函數(shù)中的()完成的。答案:A
A.初始化表B.函數(shù)體C.參數(shù)表D.基類表
4.假定AB為一個類,那么執(zhí)行“ABa,b(3),*p;〞語句時,自動調(diào)用該類構(gòu)造函數(shù)的次數(shù)為()。答案:A
A.2B.3C.4D.5
5.假定AB為一個類,那么執(zhí)行“ABa(4),b[3],*p[2];〞語句時,自動調(diào)用該類構(gòu)造函數(shù)的次數(shù)為()。答案:B
A.3B.4C.6D.96.假定AB為一個類,px為指向該類動態(tài)對象數(shù)組的指針,該數(shù)組長度為n,那么執(zhí)行“delete[]px;〞語句時,自動調(diào)用該類析構(gòu)函數(shù)的次數(shù)為()。答案:C
A.0B.1C.nD.n+1
7.對于類中定義的成員,其隱含訪問權(quán)限為()。答案:C
A.publicB.protectedC.privateD.static
8.對于結(jié)構(gòu)中定義的成員,其隱含訪問權(quán)限為()。答案:A
A.publicB.protectedC.privateD.static
9.為了使類中的成員不能被類外的函數(shù)通過成員操作符訪問,那么不應(yīng)把該成員的訪問權(quán)限定義為()。答案:A
A.publicB.protectedC.privateD.static
10.一個類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的()。答案:D
A.私有成員B.保護成員C.公用成員D.所有成員11.在一個類的定義中,通常要包含有〔〕成員的定義。答案:C
A.?dāng)?shù)據(jù)B.函數(shù)C.?dāng)?shù)據(jù)和函數(shù)D.?dāng)?shù)據(jù)或函數(shù)
12.在類作用域中能夠通過直接使用該類的〔〕成員名進行訪問。答案:D
A.私有B.公用C.保護D.任何
13.在關(guān)鍵字public后面定義的成員為類的〔〕成員。答案:B
A.私有B.公用C.保護D.任何
14.在關(guān)鍵字private后面定義的成員為類的〔〕成員。答案:A
A.私有B.公用C.保護D.任何
15.假定AA為一個類,a為該類公有的數(shù)據(jù)成員,x為該類的一個對象,那么訪問x對象中數(shù)據(jù)成員a的格式為〔〕。答案:D
A.x(a)B.x[a]C.x->aD.x.a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年制動帶項目可行性研究報告
- 別墅房屋轉(zhuǎn)讓合同范本
- 產(chǎn)品訂購合同范本模板
- 凈化工程合同范本
- 企業(yè)食堂經(jīng)營合同范本
- 如何推動專家型校長的成長
- 農(nóng)村屋瓦收購合同范本
- 買汽車有合同范本
- 使用權(quán)銷售合同范例
- 2025年度智能農(nóng)業(yè)管理系統(tǒng)開發(fā)與應(yīng)用合同
- 2024-2025學(xué)年新教材高中政治 第1單元 民事權(quán)利與義務(wù) 第1課 第1框 認真對待民事權(quán)利與義務(wù)教案 新人教版選擇性必修2
- 企業(yè)落實食品安全主體責(zé)任監(jiān)督管理制度
- 咨詢與評估管理制度
- 中醫(yī)辨證-八綱辨證(中醫(yī)學(xué)課件)
- CJT 313-2009 生活垃圾采樣和分析方法
- 2024年長沙市中考數(shù)學(xué)真題試卷及答案
- 江蘇省揚州市梅嶺教育集團2023-2024學(xué)年八年級下學(xué)期6月期末數(shù)學(xué)試題(解析版)
- 承德市承德縣2022-2023學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題
- 《網(wǎng)絡(luò)安全防護項目教程》課件項目2 windows操作系統(tǒng)安全防護
- 肯德基用戶分析報告
- 燃煤電廠超低排放煙氣治理工程技術(shù)規(guī)范(HJ 2053-2018)
評論
0/150
提交評論