版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章C++及其開發(fā)環(huán)境概述
一、問答題
1.結(jié)構(gòu)化程序設(shè)計(jì)主要有哪些劣勢(shì)?
【答案】
(1)程序的開發(fā)效率低下
(2)程序的可重用性差
(3)程序的維護(hù)成本高
(4)無法適應(yīng)信息的快速膨脹和多樣化
2.面向?qū)ο蟮某绦蛟O(shè)計(jì)有哪些優(yōu)點(diǎn)?
【答案】
(1)程序的開發(fā)效率高
(2)程序代碼的可重用性高
(3)程序易于維護(hù)
3.C++的發(fā)展經(jīng)歷了哪些階段?
【答案】
C++語言起源于C語言。1980年初期,美國貝爾實(shí)驗(yàn)室的BjarneStroustrup博士及其同
事在C語言的基礎(chǔ)上,從Simula67中引入面向?qū)ο蟮奶卣?,開發(fā)出一種過程性與對(duì)象性相
結(jié)合的程序設(shè)計(jì)語言,最初稱為“帶類的C”,1983年正式取名為C++。
后來,Strou.trup和他的同事陸續(xù)將運(yùn)算符重載、繼承、虛函數(shù)等特性引入C++,1989
年后推出AT&TC++2.0版,并經(jīng)過多次改進(jìn)和完善,發(fā)展成為現(xiàn)在的C++。
4.C++主要有哪些特點(diǎn)?
【答案】
(1)C++可以被看成C語言的一個(gè)超集,是對(duì)C的增強(qiáng)和擴(kuò)展。因此,許多C代碼可
以不經(jīng)修改即可為C++所用。自然,也可以利用C++開發(fā)環(huán)境來開發(fā)C程序。
(2)C++幾乎支持所有面向?qū)ο蟮某绦蛟O(shè)計(jì)特征,因此,利用C++不僅可以進(jìn)行傳統(tǒng)的
結(jié)構(gòu)化程序設(shè)計(jì),而且可以較好地進(jìn)行面向?qū)ο蟮某绦蜷_發(fā)。
(3)C++很好地保持了C的簡(jiǎn)潔、高效、靈活和接近匯編語言的特點(diǎn),因此,C++程序
的執(zhí)行效率也很高。
5.一個(gè)C++程序一般由哪幾部分構(gòu)成?
【答案】
①預(yù)處理命令。C++提供了三種預(yù)處理命令,即宏定義命令、文件包含命令和條件編譯
命令。
②全局聲明部分。此部分內(nèi)容通常會(huì)給出用戶自定義的數(shù)據(jù)類型聲明,以及程序中所
涉及變量的定義,例如類的聲明。
懣品公產(chǎn)條月幺君二新堀結(jié)構(gòu)
③函數(shù)。一個(gè)程序中可包含一個(gè)或多個(gè)函數(shù),它們是執(zhí)行用戶指定操作的主要部分。
6.使用VisualC++開發(fā)C++程序時(shí)一般要經(jīng)過哪幾個(gè)步驟?每個(gè)步驟的作用是什么?
相應(yīng)地產(chǎn)生哪些文件?
【答案】
(1)編寫程序
C++是一種高級(jí)語言,所以用其編寫的程序稱為“源程序”,以.cpp做為后綴。我們可以
利用VisualC++、TurboC++等編譯軟件來編寫C++源程序。
(2)編譯程序
計(jì)算機(jī)不能識(shí)別高級(jí)語言,為了將源程序翻譯成計(jì)算機(jī)可識(shí)別的二進(jìn)制指令,需將源程
序進(jìn)行編譯,編譯之后的文件稱作“目標(biāo)文件”,以.obj作為后綴。編譯時(shí)以每個(gè)源程序單元
為單位,每一個(gè)源程序文件編譯成一個(gè)目標(biāo)文件。因此,如果一個(gè)工程中有多個(gè)源程序單元,
系統(tǒng)會(huì)分別將其編譯成多個(gè)目標(biāo)文件。
另外,編譯時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行錯(cuò)誤檢查,一旦檢查出有錯(cuò)誤,便不會(huì)生成目標(biāo)文件,需
改正后重新編譯。
(3)連接目標(biāo)文件
一個(gè)程序中可能會(huì)包含很多文件,編譯后會(huì)生成很多獨(dú)立的目標(biāo)文件,此時(shí)系統(tǒng)的“連
接程序”將這些目標(biāo)文件和庫文件以及系統(tǒng)提供的其他信息連接起來,形成二進(jìn)制可執(zhí)行文
件,以.exe為后綴。
(4)運(yùn)行程序
運(yùn)行二進(jìn)制可執(zhí)行文件,得到運(yùn)行結(jié)果。如運(yùn)行結(jié)果不正確,則需修改源文件,之后重
新編譯運(yùn)行。
二、分析運(yùn)行結(jié)果
1.
#include<iostream>
usingnamespacestd;
intmain()
{
cout?"MyM?"sisterR;
cout?Mis"?Ha
cout?Hbeautifulgirl!"?endl;
return0;
)
運(yùn)行結(jié)果為:
Mysisterisabeautifulgirl!
2.
#includc<iostrcam>
usingnamespacestd;
intmain()
J2r
課后習(xí)題答案
inta,b,c;
cin?a?b;
c=a+b;
cout?"a+b="?a+b<<endl;
return0;
)
運(yùn)行結(jié)果為:
23/
a+b=5
第2章C++程序設(shè)計(jì)基礎(chǔ)(上)
一、選擇題
(1)在一個(gè)C++程序中,main函數(shù)的位置()。
A.必須在程序的開頭B.必須在程序的后面
C.可以在程序的任何地方D.必須在其他函數(shù)中間
【答案】C
(2)用C++語言編寫的源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過()o
A.解釋B.匯編C.編輯D.編譯
【答案】D
(3)C++程序基本單位是(
A.數(shù)據(jù)B.字符C.函數(shù)D.語句
【答案】C
(4)C++程序中的語句必須以()結(jié)束。
A.冒號(hào)B.分號(hào)C.空格D.花括號(hào)
【答案】B
(5)下列選項(xiàng)中,全部都是C++關(guān)鍵字的選項(xiàng)為()o
A.whileIFstaticB.breakchargo
C.sizeofcaseexternD.switchfloatinteger
【答案】C
(6)下列正確的八進(jìn)制整型常量表示是()o
A.OaOB.015C.080D.0x10
【答案】B
(7)在下列運(yùn)算符中,()優(yōu)先級(jí)最高。
A.<=B.*=C.+D.*
【答案】D
t禮品公產(chǎn)系月叢右?新堀結(jié)構(gòu)
(8)在下列運(yùn)算符中,()優(yōu)先級(jí)最低。
A.!B.&&C.!=D.?:
【答案】D
(9)設(shè)i=l,j=2,則表達(dá)式i+++j的值為()。
A.1B.2C.3D.4
【答案】C
(10)設(shè)i=l,j=2,則表達(dá)式++i+j的值為()<>
A.1B.2C.3D.4
【答案】D
(11)在下列表達(dá)式選項(xiàng)中,()是正確。
A.++(a++)B.a++bC.a+++bD.a++++b
【答案】C
(12)已知i=0,j=1,k=2,則邏輯表達(dá)式++ihj&&++k的值為()。
A.0B.1C.2D.3
【答案】B
33)執(zhí)行卜列語句后,x的值是(),y的值是()。
intx,y;
x=y=l;++x||++y;
A.不確定B.1,1C.2,1D.2,2
【答案】C
(14)已知x=5,則執(zhí)行語句x+二x-=x*x;后,x的值為()o
A.25B.40C.-40D.20
【答案】C
(15)Sa=l,b=2,c=3,d=4,則條件表達(dá)式a<b?a:c<d?c:d的值為()。
A.1B.2C.3D.4
【答案】A
(16)逗號(hào)表達(dá)式(x=4*5,x*5),x+25的值為(
A.25B.20C.100D.45
【答案】C
二、寫出下列數(shù)學(xué)表達(dá)式的C++算術(shù)表達(dá)式
I
(1)(2)x{x[x(ax+b)+c]+d)+e
x+y
(4)^1+1cos48°
(6)logio(a2+ab+b2)
4r
課后習(xí)題答案
【答案】
(1)1/(1+1/(l+l/(x+y))i
(2)x*(x*(x*(a*x+b)+c)+d)+e
(3)log(1+pow(fabs((a+b)/(a-b)),10)
(4)sqrt(l+3.14159/2*cos(48*3.14159/180))
(5)l/lan((l?x*x)/(l+x*x))
或者cos((l-x*x)/(l+x*x))/sin((l-x*x)/(l+x*x))
(6)log10(a*a?a*bib*b)
三、用關(guān)系表達(dá)式或邏輯表達(dá)式表示下列條件
(1)i整除j(2)n是小于正整數(shù)k的偶數(shù)
(3)l<=x<IO(4)x,y其中有一個(gè)小于z
(5)[-100,-10],并且y任[10,100]
(6)坐標(biāo)點(diǎn)(x,y)落在以(10,20)為圓心,以35為半徑的圓內(nèi)
(7)三條邊a,b和c構(gòu)成三角形
(8)年份Year能被4整除,但不能被100整除或者能被400整除
【答案】
(1)i%j==0(2)(n<k)&&(n%2==0)
(3)l<=x&&x<10(4)x<z||y<z
(5)!(y>=-100&&y<=-10)&&!(y>=10&&y<=100)
(6)sqrt(pow((x-10),2)+pow((y-20),2))<35
(7)a+b>c&&b+c>a&&c+a>b
(8)(year%4==0)&&(year%100!=0)||(year%400==0)
四、閱讀下列程序,寫出執(zhí)行結(jié)果
(1)
#include<iostream>
usingnamespacestd:
voidmain()
(
inta=l,b=2,x,y;
cout?a+++++b?endl;
cout?a%b?endl;
x=!a>b;
y=x-&&b;
cout?x?endl;
cout?y?cndl;
)
【答案】
4
鎏朽鼻放號(hào)系川叢若?物根結(jié)核I
2
-1
0
(2)
#include<iostream>
usingnamespacesld;
voidmain()
{
intx,y,z,f;
x=y=z=1;
f=-x||y-&&z++;
cout?"x="?x<<endl;
cout?"y=H?y?endl;
cout?"z="?z?endl;
cout?"f=,,?f?endl;
(
【答案】
x=0
y=()
z=2
f=l
五、編程題
(1)輸入一個(gè)三位整數(shù),將它反向輸出。
【解答】
#include<iostream>
usingnamespacestd;
voidinain()
{intx,i,j,k;
cout?npleaseinputx:H;
cin?x;
i=x/100;
j=(x-i*100)/10;
k=x-i*100-j*10;
cout?k?j?i?endl;
I
(2)輸入平面上某點(diǎn)橫坐標(biāo)x和縱坐標(biāo)y,若該點(diǎn)在由圖2-8表示的方塊區(qū)域內(nèi),則輸
出1;否則,輸出0。
J6r
課后習(xí)題答案
圖2-8正方形
【解答】
#include<iostream>
usingnamespacestd;
voidmain()
{floatx,y,b;
cout?"pleaseinputx,y:u;
cin?x?y;
b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2);
cout?b?endl;
第3章C++程序設(shè)計(jì)基礎(chǔ)(下)
-1x<0
1.設(shè)有函數(shù)關(guān)系為y=0x=0,下面選項(xiàng)中能正確表示上述關(guān)系的語句為()o
1x>0
A.y=l;B.y=-1;
if(x>=)0if(x!=0)
if(x一一0)y-0;if(x>0)y-l;
elsey=-1;elsey=0
C.if(x<=0)D.y=-1;
if(x<0)y=-l;if(x<=0)
elsey=0;if(x<0)y=-1;
elsey=l;elsey=l;
【答案】C
2.假設(shè)i=2,執(zhí)行下列語句后i的值為()o
t禮品公產(chǎn)系月叢右?新堀結(jié)構(gòu)
switch(i)
{casel:i++;
case2:i-;
case3:++i;break;
case4:—i;
defaull:i++;
)
A.1B.2C.3D.4
【答案】B
3.已知imi=O,x=O;下面while語句執(zhí)行時(shí)循環(huán)次數(shù)為()。
while(!x&&i<3){x++;i++;}
A.4B.3C.2D.1
【答案】D
4.已知inti=3;下面do?while語句執(zhí)行時(shí)循環(huán)次數(shù)為()。
do
{i-;cout?i?cndl;)while(i!=1);
A.1B.2C.3D.無限
【答案】B
5.下面for語句執(zhí)行時(shí)循環(huán)次數(shù)為
for(inti=Oj=5;i<=j;)
{
cout?i?j?endl;
i++;j-;
1
A.0B.1C.3D.5
【答案】C
6.以下程序段為死循環(huán)的是()o
A.for(intx=0;x<3;){x+-;};B.intk=0;
do{++k;}while(k>=0);
C.inta=5;while(a){a—;};D.inti=3;fbr(;i;i—);
【答案】B
二、閱讀下列程序,寫出執(zhí)行名
1.
#include<iostream.h>
voidmain()
(
inta,b,c,d,x;
a=c=0;b=l;d=20;
if(a)
J8r
課后習(xí)題答案
d=d-10;
elseif(!b)
if(!c)
x=15;
elsex=25;
cout?d?endl;
)
【答案】
20
2.
#include<iostream.h>
voidmain()
(
inta=0,b=l;
svvitch(a)
(
case0:switch(b)
(
case0:cout?"a="?a<<"b=u?b?endl;break;
caseI:cout?"a="?a<<"b=u?b?endl;break;
)
case1:a++;b++:cout?"a=,,?a?"b="?b?endl;
)
)
【答案】
a=0b=1
a=lb=2
3.
#include<iostream.h>
voidmain()
(
inti=l;
while(i<=10)
if(++i%3!=lContinue;
elsecout?i?endl;
)
【答案】
4
7
1禮品公產(chǎn)系月叢右二新堀結(jié)構(gòu)
10
4.
#include<iostream.h>
voidmain()
(
inti=0,j=5;
do
(
i++;j-?;
if(i>3)break;
}while(j>0);
cout?"i=,,?i?,\t'?,,j="?j?endl;
)
【答案】
i=4j=l
5.
#include<iostrcam.h>
voidmain()
(
inti,j;
for(i=l,j=5;i<j;i++)
j--;
cout?i?'\t'?j?endl;
1
【答案】
33
6.
#include<iostream.h>
voidmain()
(
inti.s=0:
for(i=0;i<5;i++)
swilch(i)
{
case0:s+=i;break;
casel:s+=i;brcak;
case2:s+=i;break;
dcfault:s+=2;
Jior
課后習(xí)題答案
cout?"s="?s?endl;
1
【答案】
s=7
7.
#include<iostream.h>
voidmain()
{
inti,j,x=O;
for(i=0;i<=3;i++)
(
x++;
for(j=0;j<=3;j++)
(
if(j%2)continue;
x++;
I
x++;
)
cout?"x=,,?x?endl;
)
【答案】
x=16
三、編程題
1.輸入三個(gè)整數(shù),再將這三個(gè)整數(shù)按從小到大的順序輸出。
【解答】
#include<iostream.h>
voidmain()
(
inta,b,c,t;
cout?"a.b,c=n;
cin?a?b?c;
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
cout?a?,\t'?b?'\t*?c?ciKil;
)
2.模擬剪刀、石頭和紙游戲,用s表示剪刀,r表示石頭,p表示紙。游戲規(guī)則為:剪
刀剪紙,石頭砸剪刀,紙包石頭。兩名游戲者分別輸入s、r或p,按照游戲規(guī)則輸出結(jié)果。
懣品公產(chǎn)條月幺君二新堀結(jié)構(gòu)
【解答】
#include<iostream.h>
voidmain()
(
charfirst,second;
cout?"Firstinput(s,rorp):n;
cin?first;
cout?"Sccondinput(s.rorp):n;
cin?second;
switch(first)
{case's':
switch(second)
{case's':ccut?"Scissortiesscissor."?endl;gotoend;
case'r':cout?"Scissoriscrushedbyrock."?cndl;gotoend;
case'p':cout?"Scissorcutspaper."?endl;gotoend;
default:cout?nsccondinputerror!"?endl;gotoend;
1
caseT':
switch(second)
(case's':cout?"Rockcrushesscissor."?endl;gotoend;
case'r':cout?"Rocktiesrock."?endl;gotoend;
case'p':cout?"Rockiswrappedbypaper."?endl;gotoend;
default:cout?"secondinputerror!"?endl;gotoend;
)
case'p':
switch(second)
{case's':cout?''Paperiscutbyscissor.M?endl;gotoend;
case'r':cout?"Paperwrapstherock.n?endl;gotoend;
case'p':cout<v"Papertiespaper."?endl;gotoend;
default:cout?"secondinputerror!"?endl;gotoend;
)
default:cout?"Firstinputerror!"?endl;gotoend;
)
end:;
)
3.輸入一個(gè)整數(shù),輸出該整數(shù)的所有素?cái)?shù)因子。例如,輸入120,輸出為2、2、2、3
和5。
【解答】
#includc<iostream.h>
J12r
課后習(xí)題答案
voidmain()
intm,i=2;
cout?"pleaseinputm:";
cin?m;
while(i<=m)
if(m%i==0)
(
cout?i?"
m=m/i;
)
elsei++;
cout?endl;
)
4.找出100到200之間滿足用3除余2且用5除余3且用7除余2的所有整數(shù)。
【解答】
#include<iostream.h>
voidmain()
(
inti;
for(i=100;i<=200;i++)
(
if((i%3==2)&&(i%5==3)&&(i%7==2))
cout?i?endl;
)
)
5.如果一個(gè)整數(shù)恰好等于它的所有因子之和,則這個(gè)數(shù)稱為完數(shù)。例如,6=1+2+3,所
以6為完數(shù)。求1000之內(nèi)的所有完數(shù)。
【解答】
#include<iostream.h>
voidmain()
(
inti,j,s;
for(i=l;i<=1000;i++)
(
s=0;
for(j=l;j<i;j++)
if(i%j==O)s=s+j;
if(i==s)cout?i?endl;
1禮品公產(chǎn)條月叢右?新堀結(jié)構(gòu)
)
6.在屏幕上輸出如下圖案:
*
***
?^csjc?jc?^csjc
?jcrj?
rk???rl?5^C?fCriC??Cr^w
【解答】
#include<iostream.h>
voidmain()
{
inti,j,k;
for(i=l;i<=5;i++)
(
for(k=I;k<=5-i;k++)cout?"";
for(j=1;j<=2*i-l;j++)cout?"*
cout?endl;
第4章函數(shù)的應(yīng)用
1.選擇題
(1)下面關(guān)于C++語言說法不正確的是()。
A.具有函數(shù)式的程序結(jié)構(gòu),其程序至少由一個(gè)函數(shù)構(gòu)成,不論是主函數(shù),還是其他函
數(shù)
B.變量的數(shù)據(jù)類型豐富,而且使用不同的存儲(chǔ)類別
C.具有編譯預(yù)處理的功能,為程序的設(shè)計(jì)與修改、調(diào)試、移植帶來方便
D.既是面向結(jié)構(gòu)的程序設(shè)計(jì)語言,又是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
答案:A
若只有一個(gè)函數(shù),則只能是主函數(shù),否則程序不知從何處開始執(zhí)行。
(2)所謂模塊化程序設(shè)計(jì)是指,在程序設(shè)計(jì)中把功能相對(duì)獨(dú)立、單一的模塊用一個(gè)函
數(shù)實(shí)現(xiàn),再由若干個(gè)函數(shù)組成完整程序的程序設(shè)計(jì)方法。對(duì)于函數(shù),下列說法不正確的是
A.函數(shù)結(jié)構(gòu)獨(dú)立、功能單一,便于編寫、調(diào)試和修改
課后習(xí)題答案
B.可以并行開發(fā),加快軟件開發(fā)速度,縮短開發(fā)周期
C.函數(shù)的重復(fù)使用性好,提高開發(fā)效率
D.所有函數(shù)都可用于整個(gè)程序,即使該程序包含了多個(gè)文件
答案:D
(3)關(guān)于函數(shù)調(diào)用,下面不正確的是()。
A.由于程序總是從主函數(shù)開始執(zhí)行,所以函數(shù)的調(diào)用總是在主函數(shù)和其他函數(shù)之間進(jìn)
行
B.函數(shù)的調(diào)用可以在任意函數(shù)之間進(jìn)行
C.一個(gè)函數(shù)可以自己調(diào)用自己
D.函數(shù)返回時(shí)可以不必帶回值,這時(shí)函數(shù)類型應(yīng)為void
答案:A
(4)關(guān)于函數(shù)的聲明與定義,正確的是()o
A.函數(shù)的聲明是必須的,只有這樣才能保證編譯系統(tǒng)對(duì)函數(shù)參數(shù)進(jìn)行檢測(cè),以確保參
數(shù)傳遞正確
B.函數(shù)的聲明并非必須,即可以只給出函數(shù)定義
C.聲明函數(shù)時(shí)參數(shù)標(biāo)識(shí)符可省略,但參數(shù)的類型、個(gè)數(shù)必須相同且順序不能顛倒
D.一個(gè)函數(shù)可以在另一個(gè)函數(shù)內(nèi)定義
答案:C
函數(shù)的聲明并非必須,可以只要函數(shù)定義而不要聲明.但要注意符合一定條件。函數(shù)不
可嵌套定義。
(5)關(guān)于函數(shù)的返回值,正確的是()。
A.return語句只返回一個(gè)值,該值的類型在函數(shù)定義時(shí)已確定
B.返回值類型由返回變量類型決定
C.如果不定義函數(shù)類型,表示該函數(shù)沒有返回值
D.函數(shù)調(diào)用一定要有返回值,否則調(diào)用就沒有意義了
答案:A
(6)下列關(guān)于形參的說法,正確的是()。
A.函數(shù)的形參并非是必須的,有時(shí)可以什么都沒有
B.函數(shù)的形參可以是表達(dá)式
C.函數(shù)在定義時(shí),形參是不占用存儲(chǔ)空間的,只有在被調(diào)用時(shí)系統(tǒng)才會(huì)為其分配存儲(chǔ)
空間,調(diào)用結(jié)束時(shí),該空間將被釋放
D.形參的名稱、類型、數(shù)量和順序必須與實(shí)參相同,否則實(shí)參不會(huì)把信息正確地傳遞
給形參
答案:C
(7)關(guān)于函數(shù)的返回,不正確的是()
A.使程序的執(zhí)行重新返回到主調(diào)函數(shù),使程序繼續(xù)往下執(zhí)行
B.釋放調(diào)用函數(shù)時(shí)臨時(shí)分配的存儲(chǔ)單元
C.一定要返回一個(gè)值給主調(diào)函數(shù)
D.其返回值可有可無
密1樸品房乃東川叢利物堀結(jié)構(gòu)
答案:c
被調(diào)用函數(shù)可以不返回任何值,僅完成某功能。
二、閱讀下列程序,寫出執(zhí)行結(jié)果
(1)
#include<iostream>
usingnamespacestd;
voidincx();
voidincy();
voidmain()
{
incx();
incy();
incx();
incy();
incx();
incy();
1
voidincx()
(
intx=();
cout?"\nx="?++x;
)
voidincy()
(
staticinty=0;
cout?"\ny="?++y;
)
【答案】
x=l
y二i
X=1
y=2
x=l
y=3
(2)
#include<iostream>
usingnamespacestd;
inti=3;
J16r
課后習(xí)題答案
intfunl(intn)
!
cout?i+n?endl;
return0;
}
intfun2(intn)
{
staticinti=2;
cout?i4-n?endl;
return0;
)
voidmain()
(
inti=l;
intfun1(int);
intfun2(int);
cout?i;
funl(i);
fun2(i);
1
【答案】
14
3
三、編程題
(1)編寫函數(shù),定義兩個(gè)unsignedshortint型的參數(shù),返回兩個(gè)參數(shù)的商,其數(shù)據(jù)類型
為shortint。如果第二個(gè)參數(shù)為0,輸出錯(cuò)誤提示信息。
【源程序】
#include<iostream.h>
shortintDivider(unsignedshortinta,unsignedshortintb)
(
if(b==0)
return-1;
else
returna/b;
)
intmain()
unsignedshortintone,two;
懣品公產(chǎn)條月幺君二新堀結(jié)構(gòu)
shortintanswer;
cout?"EntertwonumbersAnNumberone:
cin?one;
cout?"Numbertwo:
cin?two;
answer=Divider(one,two);
if(answer>-1)
cout?"Answer:"?answer;
else
cout?"Error,can'tdividebyzero!";
return0;
)
運(yùn)行結(jié)果為:
Entertwonumbers.
Numberonc:8Z
Numbertwo:2Z
Answer:4
(2)編寫函數(shù),輸入一個(gè)華氏溫度,將華氏溫度轉(zhuǎn)換為攝氏溫度輸出,公式為C=(F
-32)*5/9,其中F為華氏溫度,C為攝氏溫度。
【源程序】
#include<iostream.h>
#include<iomanip.h>
voidmain()
(
doublef,c,b;
cout<〈”請(qǐng)輸入華氏溫度:“<<endl;
cin?f;
coul<〈”對(duì)應(yīng)的攝氏溫度為:"<<endl;
c=f-32;
b=5.00/9;
c=b*c:
cout?setprecision(4)?"C="?c?endl;
)
運(yùn)行結(jié)果為:
請(qǐng)輸入華氏溫度:
80/
對(duì)應(yīng)的攝氏溫度為:
26.67
(3)編寫函數(shù),判斷一個(gè)數(shù)是否是質(zhì)數(shù)。
J18r
課后習(xí)題答案
【源程序】
#include<iostream.h>
#include<math.h>
intprime(inti);〃判斷一個(gè)數(shù)是否是質(zhì)數(shù)的函數(shù)
voidmain()
{
inti;
COUtVV”請(qǐng)輸入一個(gè)整數(shù);”;
cin?i;
if(prime(i))
couivvivv"是質(zhì)數(shù)。"〈vendl;
else
coutvvivv"不是質(zhì)數(shù)。n?endl;
)
intprimc(inti)
I
intj,k,flag;
flag=1;
k=sqrt(i);
for(j=2;j<=k;j++)
(
if(i%j==0)
(
flag=0;
break;
)
)
if(flag)
return1;
else
return0;
)
運(yùn)行結(jié)果為:
請(qǐng)輸入一個(gè)整數(shù):1151/
1151是質(zhì)數(shù)。
(4)編寫函數(shù),求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。
【源程序】
#include<iostrcam.h>
#include<math.h>
誦禮品放燈條用叢右二物提結(jié)構(gòu)
intfnl(inti,intj);〃求最大公約數(shù)的函數(shù)
voidmain()
(
inti,j,x,y;
cout?”請(qǐng)輸入一個(gè)整數(shù):”;
cin?i;
COUlv<"請(qǐng)輸入另一個(gè)整數(shù):";
cin?j;
x=fnl(i,j);
y=i*j/x;
cout?i?“和”VVj?”的最大公約數(shù)是:"vvX?endl;
cout?i?"和“vvj?”的最小公倍數(shù)是:”《y?cndl;
)
intfnl(inti,intj)
(
inttemp;
if(i<j)
(
temp=i;
i=j;
j=temp;
)
while(j!=0)
{
temp=i%j;
i二j;
j=temp;
)
returni;
)
運(yùn)行結(jié)果為
請(qǐng)輸入一個(gè)整數(shù):120/
請(qǐng)輸入另一個(gè)整數(shù):72/
120和72的最大公約數(shù)是:24
120和72的最小公倍數(shù)是:360
(5)編寫遞歸函數(shù),計(jì)算x的y(y>0)次耗。
J20r
課后習(xí)題答案
【源程序】
#include<iostream.h>
longGetPower(intx,inty);
intmain()
!
intnumber,power;
longanswer;
cout?"Enteranumber:
cin?number;
cout?"Towhatpower?
cin?power;
answer=GetPower(number,power);
cout?number?"tothe"?power?"thpoweris"?answer?endl;
return0;
)
longGctPo\vcr(intx,inty)
(
if(y==l)
returnx;
else
return(x*GetPower(x,y-l));
)
運(yùn)行結(jié)果為:
Enteranumber:3/
Towhatpower?4/
3tothe4thpoweris81
(6)編寫程序,要求輸入四位數(shù)的年份、兩位數(shù)的月份和日期,把它們按“年月日”
的格式輸出,并計(jì)算它是這一年的第幾天。
【源程序】
#include<iostream.h>
#include<iomanip.h>
daynum(int,int,int);
voiddate(intyear,intmonth,iniday)
(
cout?set\v(2)?year/1OOO?setw(2)?(year/100)%10;
cout?sct\v(2)?(ycar/10)%10?sctw(2)?ycar%10;
cout?set\v(2)?month/10;
cout?sct\v(2)?month%10?setw(2)?day/10?sct\v(2)?day%10?cndl;
cout?daynum(year,month,day)?endl;
[打品公產(chǎn)條月冬右;新堀結(jié)構(gòu)
)
daynum(intyear,intmonth,intday)
(
inti,sum=0;
for(i=l;i<month;i++)
!
switch(i)
{
case1:〃1、3、5、7、8、10、12月有31天
case3:
case5:
case7:
case8:
case10:
case12:sum+=31:break;
case4:〃4、6、9、11月有30天
case6:
case9:
case1l:sum+=3();break;
case2:if(((year%4==0&&year%100!=())||year%400==0))//?2月有29天
sum+=29;
else//平年2月有28天
sum+=28;
)
}
sum+=day;
returnsum;
)
voidmain()
(
intyearjTionth.day;
COUKV”請(qǐng)輸入年/月/日:「;
cin?year?month?day;
date(year,month,day);
)
運(yùn)行結(jié)果為:
請(qǐng)輸入年/月/日:19840305/
I9840305
65
J22r
課后習(xí)題答案
第5章數(shù)組與字符串
一、選擇題:
(1)以下一維數(shù)組a的正確定義是()。
A.inta(10);B.intn=l(),a[n];C.intn;D.#defineSIZE10
cin?n;inta[SIZE];
inta[n];
【答案】D
(2)以下能對(duì)具有10個(gè)元素的一維數(shù)組a進(jìn)行正確初始化的語句是()o
A.inta[10]=(0,0,0,0,0);B.inta[10]={10*1};
C.inta[]={0};D.inta[10]={};
【答案】B
(3)在定義之后,對(duì)a的引用正確的是()。
A.aflO]B.af6.3]C.a(6)D.a[10-10]
【答案】D
(4)以下對(duì)二維數(shù)組a進(jìn)行不正確初始化的是()。
A.inta[2][3]={0};
B.inta[][3]={{3,2,1},{1,2,3)};
C.inta[][]={{3,2,1),{1,2,3});
D.inta[2][3]={{3,2J}Jl,2,3));
【答案】C
(5)在執(zhí)行inta33]={1,2,3,4,5,6};語句后,的值是()<>
A.4B.1C.2D.5
【答案】D
(6)為了判斷兩個(gè)字符串si和s2是否相等,應(yīng)當(dāng)使用()。
A.if(sl==s2)B.if(sl=s2)
C.if(strcmp(sl,s2)==0)D.if(strcpy(sl,s2))
【答案】C
(7)定義如下變量和數(shù)組:
inti;
intx[3][3]={1,23,4,5,6,7,8,9);
則以下語句的輸出結(jié)果是()o
for(i=0;i<3;i++)
cout?x[i][2-i]);
A.159B.147C.357D.369
【答案】C
t禮品公產(chǎn)系月叢右?新堀結(jié)構(gòu)
(8)下面程序段的運(yùn)行結(jié)果是()o
chara[7]=',abcdef,;
charb[4]=HABCM;
strcpy(a,b);
cout?a[51;
A.eB.fC.一個(gè)空格D.\0
【答案】B
(9)有下面程序段,則(
chara[3],b[]=,,ChinaH;
a=b;cout?a;
A.運(yùn)行后將輸出ChinaB.運(yùn)行后將輸出Ch
C.運(yùn)行后將輸出ChiD.編譯出錯(cuò)
【答案】D
(10)以下程序執(zhí)行后輸出結(jié)果是()。
main()
(
intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6)};
inti,s=0;
fbr(i=0;i<4;i++)s=s+aa[i][I];cout?s;
)
A.11B.13C.19D.20
【答案】C
二、閱讀下列程序,寫出執(zhí)行結(jié)果
(1)
#include<iostream.h>
voidmain()
{
charch[7]={"12ab56,,};
inti,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i=i+2)
s=10*s+ch[i]-'0;cout?s;
1
運(yùn)行結(jié)果為:
1
(2)
#includc<iostrcam.h>
voidmain()
(
inti,j,row,col,min;
J24r
課后習(xí)題答案
inta[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5)};
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
jf(a[i][jl<min){min=a[il[jl;row=i;col=j;)
cout?min?n"?row?"M?col;
)
運(yùn)行結(jié)果是
-221
(3)
#include<iostream.h>
voidmain()
(
inti,r;charsl[80]=,,bus,,,s2[80]=nbookn;
for(i=r=0;sl[i]!='\0'&&s2[i]!=,\0';i++)
if(sl[ij==s2[i])i++;
else
{r=sl[i]-s2[i];break;}
cout?r?endl;
}
運(yùn)行結(jié)果是
4
(4)分析以下程序的運(yùn)行結(jié)果。
#include<iostream.h>
voidmain()
(
inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33。}};
intij,s=O;
for(i=0;i<4;i++)
(
for(j=0:j<4;j++)
(
if(a[i][j]<0)continue;
if(a[i]|j]=O)break;
s=s+a[i]|jj;
)
I
cout?s?cndl;
1
懣品公產(chǎn)條月幺君二新堀結(jié)構(gòu)
運(yùn)行結(jié)果是
58
(5)分析下列程序運(yùn)行結(jié)果。
#include<iostream>
usingnamespacestd;
voidmain()
(
inii,j;
staticinta[10]={1,1J,1,1,1,1,1,1,1};
for(i=0;i<10;i++)
for(j=O;j<i;j++)
a[i]=a[i]+a[j];
for(i=0;i<10;i++)
cout?a[i]?n,";
)
運(yùn)行結(jié)果為
1,2,4,8,16,32,64,128,256,512,
三、將下列程序補(bǔ)充完整,并實(shí)現(xiàn)相應(yīng)的功能
1.實(shí)現(xiàn)功能:輸入的20個(gè)數(shù)據(jù)以每行4個(gè)數(shù)據(jù)的形式輸出。
#include<iostream.h>
#defineN20
voidmain()
(
inta[N],i;
for(i=0;i<N;i++)cin?a[i];
for(i=0;i<N;i++)
(
if(CO)cout?,\n,:
cout?a[ij?"”;
1
cout?'\n';
)
【答案】
①i%4==0
(2)實(shí)現(xiàn)功能:輸入5個(gè)整數(shù),找出最大數(shù)和最小數(shù)所在的位置,并把二者對(duì)調(diào),然
后輸出調(diào)整后的5個(gè)數(shù)。
#include<iostream.h>
voidmain()
J26r
課后習(xí)題答案
inta[5],max,min,ij,k=0;
for(i=0;i<5;i++)cin?a[i];
min=a[O];
for(i=l;i<5;i++)
if(①){min=a[i];k=i;}
max=a[O];
for(i=l;i<5;i??)
if(a[i]>max){max=a[i];②;)
a[k]=max;
a[j]=min;
cout?"最小數(shù)的位置是“<<k<〈endl;
cout?"最大數(shù)的位置是"vvjwcndl;
for(i=0;i<5;i++)cout?a[i]?Mn;
)
【答案】
①a[i]<min
②j=i
(3)實(shí)現(xiàn)功能:使一個(gè)字符串按逆序輸出。
#include<iostream.h>
#inckide<string.h>
voidinverse(charstr[])
{
charm;
inti,j;
for(i=O,j=strlen(str);i<①;i++,)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安信息職業(yè)大學(xué)《創(chuàng)新創(chuàng)業(yè)學(xué)通論》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版企業(yè)股權(quán)收益權(quán)轉(zhuǎn)讓居間協(xié)議書模板3篇
- 2024鐵路電氣化工程安全施工協(xié)議及質(zhì)量監(jiān)控3篇
- 二零二五年度物業(yè)管理服務(wù)合同:視頻監(jiān)控系統(tǒng)維護(hù)與升級(jí)
- 2024版廣告設(shè)計(jì)與推廣合同
- 濰坊理工學(xué)院《半導(dǎo)體元件》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版物流服務(wù)合同認(rèn)定條件與服務(wù)內(nèi)容規(guī)定
- 2024版石油買賣合同
- 四川文化傳媒職業(yè)學(xué)院《招貼設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版廣西勞動(dòng)合同
- 工作證明模板下載免費(fèi)
- 顛茄流浸膏實(shí)驗(yàn)方案及總結(jié)
- 投標(biāo)人情況表
- GB/T 34241-2017卷式聚酰胺復(fù)合反滲透膜元件
- GB/T 12494-1990食品機(jī)械專用白油
- 運(yùn)輸供應(yīng)商年度評(píng)價(jià)表
- 北京語言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 肺癌的診治指南課件
- 人教版七年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)完整版課件
- 商場(chǎng)裝修改造施工組織設(shè)計(jì)
- 統(tǒng)編版一年級(jí)語文上冊(cè) 第5單元教材解讀 PPT
評(píng)論
0/150
提交評(píng)論