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