《2021實(shí)驗(yàn)2 循環(huán)結(jié)構(gòu)》由會(huì)員分享,可在線閱讀,更多相關(guān)《2021實(shí)驗(yàn)2 循環(huán)結(jié)構(gòu)(14頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、實(shí)驗(yàn)2 循環(huán)結(jié)構(gòu)
實(shí)驗(yàn)
2
循環(huán)結(jié)構(gòu)
程序填空
1.
本題分值:
10
題目描述:
馬克思曾經(jīng)出過這樣一道趣味數(shù)學(xué)題:有
30
個(gè)人在一家小飯館里用餐,其中有男人、女人和小
孩。每個(gè)男人花了
3
先今,每個(gè)女人花了
2
先令,每個(gè)小孩花了
1
先令,一共花去
50
先令。問男人、女人
以及小孩各有幾個(gè)人。以下是完成此項(xiàng)工作的程序,請將未完成的部分填入,實(shí)現(xiàn)其功能,并在計(jì)算機(jī)上
調(diào)試程序,以測試填入的部分是否正確。
代碼:
#includeusing namespace std;
int main()
{
int n; //n
記錄解的個(gè)數(shù)
2、
int a,b,c; //
分別記錄男、女、小孩的人數(shù)
n=__(1)__; //
初始化
n
的值
for(a=1;a{
for(b=1;b{
c=__(2)__;
if( __(3)__ )
{
cout男人有
:"個(gè);
"女人有:
"個(gè);
"小孩有:
"個(gè)。
"n++;
}
}
}
cout共有
"種方案
"return 0;
}
2.
本題分值:
10
題目描述:
下面程序的功能是輸出
1
至
100
之間每位數(shù)的乘積大于每位數(shù)的和的數(shù),請?zhí)羁帐钩绦蛲暾?,并在?jì)算機(jī)上調(diào)試程序,以測試填入的部分是否正確。
代碼:
3、#include using namespace std;
int main()
{
int n, k=1, s=0, m
for (n=1 n{
k=1 s=0
__(1)__;
while ( __(2)__ )
{
k*=m%10;
s+=m%10;
__(3)__;
}
if (k>s) cout}
return 0;
}
3.題目描述:
一個(gè)數(shù)如果恰好等于除它本身的所有因子之和,這個(gè)數(shù)就稱為完數(shù)。例如,6=1+2+3, 6就稱為完數(shù)。輸出1000以內(nèi)所有滿足完數(shù)條件的數(shù)及其個(gè)數(shù)。請閱讀以下不完整的程序,并在計(jì)算機(jī)上調(diào)試該程序以補(bǔ)足其中的空格,實(shí)現(xiàn)其功
4、能。
代碼:
#includeusing namespace std;
int main()
{
int n,s,i,count=0;
coutfor(n=1;n{
s=0;
for(i=1;iif (n%i==0) s=s+i; //如果i是n的因數(shù)
if (s==n) //判斷是否滿足完數(shù)的條件
{
coutcount=count+1; //完數(shù)的個(gè)數(shù)+1
}
}
coutreturn 0;
}
4.
題目描述:
求100以內(nèi)能被3整除且個(gè)位數(shù)字為9的所有正整數(shù)。請閱讀以下不完整的程序,并在計(jì)算機(jī)上調(diào)試該程序以補(bǔ)足其中的空格,實(shí)現(xiàn)其功能。
代碼:
#
5、includeusing namespace std;
int main()
{
int i;
for(i=1;i{
if(i%3==0&& i%10==9)
cout}
return 0;
}
5.
題目描述:
求輸入的兩個(gè)正整數(shù)的最大公約數(shù)。請閱讀以下不完整的程序,并在計(jì)算機(jī)上調(diào)試該程序以補(bǔ)足其中的空格,實(shí)現(xiàn)其功能。
代碼:
#includeusing namespace std;
int main()
{
int x,m,n;
cin>>m>>n;
if(melse x=n; //x取m和n中的較小值
//x從m和n的較小值開始到1的范圍內(nèi)遞減尋找公
6、約數(shù)
while(x>=1)
{
if(m%x==0 && n%x==0) //如果x是m和n的約數(shù),x的值即為最大公約數(shù)
break;
x=x-1;
}
coutreturn 0;
}
6.
題目標(biāo)題:
數(shù)字求和。
時(shí)間限制:
1000MS
內(nèi)存限制:
32768KB
題目描述:
給定一個(gè)正整數(shù)a,以及另外的5個(gè)正整數(shù),問題是:這5個(gè)整數(shù)中,小于a的整數(shù)的和是多少?
輸入描述:
輸入一行,只包括6個(gè)小于100的正整數(shù),其中第一個(gè)正整數(shù)就是a。
輸出描述:
輸出一行,給出一個(gè)正整數(shù),是5個(gè)數(shù)中小a的數(shù)的和。
樣例輸入:
10 1 2 3 4 11
7、
樣例輸出:
10
#includeusing namespace std;
int main()
{
int a[6];
coutfor(int i=0;icin>>a[i];
int b=a[0],sum=0;
for(int j=0;j{
if(b>a[j]) sum=sum+a[j];
}
coutreturn 0;
}
7.
題目標(biāo)題:
球彈跳高度的計(jì)算。
題目描述:
一球從某一高度落下(整數(shù),單位米),每次落地后反跳回原來高度的一半,再落下。編程計(jì)算氣球在第5次落地時(shí),共經(jīng)過多少米? 第5次反彈多高?
輸入描述:
輸入一個(gè)整數(shù)h0,表示球的初始
8、高度。
輸出描述:
兩個(gè)數(shù)據(jù)s和h,分別表示第5次落地時(shí)共經(jīng)過s米,第5次反彈高度為h米,s和h用空格隔開。
注意:結(jié)果可能是實(shí)數(shù),結(jié)果用
double
類型保存。
提示:輸出時(shí)不需要對(duì)精度特殊控制,用
cout即可。
樣例輸入:
10
樣例輸出:
28.75 0.3125
#include using namespace std;
int main()
{
double ho,h,s,so;
cin>>ho;
h=ho;
s=h;
for(int i=1;i{
h=h/2;
so=2*h;
s=s+so;
}
s=s-so;
coutcout
9、return 0;
}
8.
題目標(biāo)題:
求分?jǐn)?shù)序列和。
題目描述:
有一個(gè)分?jǐn)?shù)序列
2/1,3/2,5/3,8/5,13/8,21/13,....
求這個(gè)分?jǐn)?shù)序列的前n項(xiàng)之和。
輸入描述:
輸入有一行:正整數(shù)n。
輸出描述:
輸出有一行:分?jǐn)?shù)序列的和(浮點(diǎn)數(shù),精確到小數(shù)點(diǎn)后4位)。
【提示】
1. 最好在程序中使用雙精度浮點(diǎn)數(shù)(double)記錄求得的和。
2. 要輸出浮點(diǎn)數(shù)、雙精度數(shù)小數(shù)點(diǎn)后4位數(shù)字,可以用下面這種形式:
cout按上面的形式控制輸出格式時(shí),需在源程序最開始加上一行:
#include。
樣例輸入:
99
樣例輸出:
160.484
10、9
#include
#includeusing namespace std;
int main()
{
double m,a=2.0,b=1.0,sum=0.0;
int n;
coutcin>>n;
for(int i=1;i{
sum=sum+(double)a/b;
m=a;
a=a+b;
b=m;
}
coutreturn 0;
}
9.
題目標(biāo)題:
點(diǎn)和正方形的關(guān)系。
題目描述:
在平面坐標(biāo)系中,有一個(gè)正方形,四個(gè)角的坐標(biāo)(x,y)分別是(1,-1),(1,1),(-1,-1),(-1,1),x是橫軸,y是縱軸。寫一個(gè)程序,判斷給定的多個(gè)點(diǎn)是
11、否在這個(gè)正方形內(nèi)。
輸入描述:
多組數(shù)據(jù),每行包含兩個(gè)浮點(diǎn)型數(shù)據(jù),分別表示一個(gè)點(diǎn)的橫、縱坐標(biāo),輸入坐標(biāo)為0,0時(shí)表示輸入結(jié)束。(注意,輸入的數(shù)據(jù)不止3組)
輸出描述:
對(duì)每組輸入的點(diǎn)進(jìn)行判斷,顯示yes或no,表示是否在正方形中,最后輸入的原點(diǎn)也要顯示yes,然后才不再繼續(xù)輸入點(diǎn)坐標(biāo)。(當(dāng)點(diǎn)在正方形的邊上時(shí),也認(rèn)為在正方形內(nèi))
樣例輸入:
3 4 0.5 1 0 0
樣例輸出:
no yes Yes
#includeusing namespace std;
int main()
{
float x,y;
cin>>x>>y;
while(x!=0||y!=0)
{
if(x>=-1.0&&xcoutelse coutcin>>x>>y;
}
if(x==0&&y==0)
cout=1000&&n*n{
a=(n*n)/1000;
b=((n*n)/100)%10;
c=((n*n)/10)%10;
d=(n*n)%10;
if(a==b&&c==d&&a!=c) {
cout肇事車號(hào)
"}
}
return 0;