實(shí)驗(yàn)(5)-循環(huán)結(jié)構(gòu)-參考答案_第1頁
實(shí)驗(yàn)(5)-循環(huán)結(jié)構(gòu)-參考答案_第2頁
實(shí)驗(yàn)(5)-循環(huán)結(jié)構(gòu)-參考答案_第3頁
實(shí)驗(yàn)(5)-循環(huán)結(jié)構(gòu)-參考答案_第4頁
實(shí)驗(yàn)(5)-循環(huán)結(jié)構(gòu)-參考答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C語言程序設(shè)計(jì) 實(shí)驗(yàn)教學(xué)(5)【實(shí)驗(yàn)?zāi)康摹客ㄟ^程序設(shè)計(jì)實(shí)現(xiàn),掌握while結(jié)構(gòu)、do-while結(jié)構(gòu)和for結(jié)構(gòu)各種類型的循環(huán)結(jié)構(gòu),完成各種循環(huán)程序的設(shè)計(jì)和實(shí)現(xiàn)?!緦?shí)驗(yàn)要求】同一個(gè)題目嘗試使用多種循環(huán)控制結(jié)構(gòu)來實(shí)現(xiàn),并分析其設(shè)計(jì)和實(shí)現(xiàn)的差別和難易程度。【實(shí)驗(yàn)內(nèi)容】一、以下程序使用while結(jié)構(gòu)實(shí)現(xiàn)。1、完成課堂實(shí)例的實(shí)現(xiàn)。(1) 計(jì)算s1+2+100。(累加型)main()int i=1,sum=0; while(i=100) sum+=i; i+; printf(1+2+3+.+100=%dn,sum);main()int i,sum=0; for(i=1;i=100;i+) sum+=i;

2、 printf(1+2+3+.+100=%dn,sum);(2) 請輸入數(shù)n,計(jì)算n!。(連乘型)main()int i=1,n; long fac=1; scanf(%d,&n); while(i=n) fac*=i; i+; printf(%d!=%ldn,n,fac);main()int i,n; long fac=1; scanf(%d,&n); for(i=1;i=n;i+) fac*=i; printf(%d!=%ldn,n,fac);(3) 輸出所有的水仙花數(shù)。(范圍型)main()int n=100,a,b,c; while(n=999) a=n/100; b=n/10%10;

3、 c=n%10; if(a*a*a+b*b*b+c*c*c=n) printf(%6d,n); n+; printf(n);main()int n,a,b,c; for(n=100;n=999;n+) a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c=n) printf(%6d,n); printf(n);(4) 判斷n是否為素?cái)?shù)。(反向思維型)main()int n,i=2; scanf(%d,&n); while(i=n) printf(%d is a prime numbern,n); else printf(%d is not a pri

4、me numbern,n);main()int n,i; scanf(%d,&n); for(i=2;i=n) printf(%d is a prime numbern,n); else printf(%d is not a prime numbern,n);(5) 輸入n個(gè)數(shù),計(jì)算其中偶數(shù)的個(gè)數(shù)。main()int n,i=1,num,count=0; scanf(%d,&n); while(i=n) scanf(%d,&num); if(num%2=0) count+; i+; printf(count is %dn,count);main()int n,i,num,count=0; sc

5、anf(%d,&n); for(i=1;i=n;i+) scanf(%d,&num); if(num%2=0) count+; printf(count is %dn,count);(6) 輸出以下圖形(1):(7) 輸出以下圖形(2):(8) 輸出以下圖形(3):圖形(1) 圖形(2) 圖形(3)main()int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(j=1;j=1;i-) for(j=1;j=4-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n); mai

6、n()int i,j; for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf( ); for(j=1;j=1;i-) for(j=1;j=5-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(%d,j); printf(n); main()int i,j; for(i=1;i=5;i+) for(j=1;j=5-i;j+) printf( ); for(j=1;j=1;j-) printf(%d,j); printf(n); for(i=4;i=1;i-) for(j=1;j=5-i;j+) printf( ); for(j=1

7、;j=1;j-) printf(%d,j); printf(n); (9) 輸入一批字符,計(jì)算大寫字母的個(gè)數(shù),輸入#結(jié)束。(個(gè)數(shù)未知型)#include stdio.hmain()char ch; int count=0; ch=getchar(); while(ch!=#) if(ch=A & ch=Z) count+; ch=getchar(); printf(count is %dn,count);2、計(jì)算s11*3*5*(2*n-1)。main()int i=1,n; long s=1; scanf(%d,&n); while(i=n) s=s*(2*i-1); i+; printf(

8、s1=1*3*5*.*%d=%ldn,2*n-1,s);main()int i,n; long s=1; scanf(%d,&n); for(i=1;i=n;i+) s=s*(2*i-1); printf(s1=1*3*5*.*%d=%ldn,2*n-1,s);3、計(jì)算所有水仙花數(shù)的和。main()int i=100,s=0; int a,b,c; while(i=999) a=i/100; b=i/10%10; c=i%10; if(a*a*a+b*b*b+c*c*c=i) s+=i; i+; printf(sum=%dn,s);main()int i,s=0; int a,b,c; for

9、(i=100;i=999;i+) a=i/100; b=i/10%10; c=i%10; if(a*a*a+b*b*b+c*c*c=i) s+=i; printf(sum=%dn,s);4、求100200間的全部素?cái)?shù)。main()int n=101,k=0,i; while(n200) for(i=2;i=n) printf(%6d,n); k+=1; if(k%10=0) printf(n); n=n+2; printf(n);main()int n,k=0,i; for(n=101;n200;n=n+2) for(i=2;i=n) printf(%6d,n); k+=1; if(k%10=

10、0) printf(n); printf(n);5、一張紙厚度為毫米,現(xiàn)有一張無限大的紙,并進(jìn)行若干次對折,請問對折幾次后,高度超過珠峰8848米?main()int count=0;long h=3; /* long 不能換int ,因?yàn)閿?shù)值較大*/while(h=88480000) count+; h=h*2; printf(The result is: %d n,count);6、輸入2個(gè)正整數(shù)m,n,求其最大公約數(shù)和最小公倍數(shù)。main()int m,n,t,p,r; printf(please input two numbers:n ); scanf(%d,%d,&n,&m); if

11、(nm) t=n;n=m;m=t; p=n*m; while(m!=0) r=n%m;n=m;m=r; printf(gys is:%dn,n); printf(gbs is:%dn,p/n);main()int m,n,t,p,i; printf(please input two numbers:n ); scanf(%d,%d,&n,&m); if(n=1;i-) if(n%i=0 & m%i=0) break; printf(gys is:%dn,i); printf(gbs is:%dn,p/i);7、求 (即求1!+2!+3!+20!)main()int i; double t=1,

12、s=0; for(i=1;i=20;i+) t=t*i;s=s+t; printf(1!+2!+.+20!=%lfn,s);8、請編程序打印出以下數(shù)列:1、1、2、3、5、8、13、的前20項(xiàng)。每行輸出5個(gè)數(shù)。(斐波那契數(shù)列)方法一:main()int i; long f1=1,f2=1,f; printf(%12ld%12ld,f1,f2); for(i=3;i=40;i+) f=f1+f2;printf(%12ld,f);if(i%4=0) printf(n); f1=f2;f2=f; printf(n);方法二:main()int i; long f1=1,f2=1; for(i=1;i

13、=20;i+) printf(%12ld%12ld,f1,f2); f1=f1+f2; f2=f2+f1; if(i%2=0) printf(n); printf(n);9、求下列分?jǐn)?shù)序列的前20項(xiàng)之和。,main()int i; float fz=2,fm=1,s=0; for(i=1;i=20;i+) s=s+fz/fm; fz=fz+fm; fm=fz-fm; printf(sum=%9.6fn,s);10、找出1000之內(nèi)的所有完數(shù),一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如,6的因子為1、2、3,而6=1+2+3,因此6是“完數(shù)”。輸出時(shí)按下面的格式輸出其因子: 6

14、its factors are 1,2,3main()int i,n,s=0; for(n=2;n1000;n+) s=0; for(i=1;in;i+) if(n%i=0) s=s+i; if(s=n) printf(%d,its factors are:,n); for(i=1;in;i+) if(n%i=0) printf(%d,i); printf(n); 補(bǔ)充作業(yè):(以下題目任選2題)1、若一個(gè)球從100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過多少m?第10次反彈多高?main()int i; float sn=100,hn=sn/2; fo

15、r(i=2;i=1;i-) x1=(x2+1)*2; x2=x1; printf(total=%dn,x1);3、輸入m個(gè)字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。#include stdio.hmain()char ch; int letters=0,space=0,digit=0,other=0; while(ch=getchar()!=n) if(ch=a & ch=A & ch=0 &ch0) s=s+n%10; n=n/10; printf(sum is: %d n,s);5、對輸入的一正整數(shù)a(a在1到9之間),求Sn=a+aa+aaa+aaaa,(10個(gè)a),例a=3,則S=3+33+333+3333void main()int a,i=1; double sn=0,tn; scanf(%d,&a); printf(na=%dn,a); tn=a; while(i=10) sn=sn+tn;tn=tn*10+a;+i; p

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論