7. 5 8. 3 10 14 9. 0 1 2 10. 52 11. 8467
四、完成程序:
1. (1) #include
3. (1)while(ch!= '\\n') (2)if(ch<'9'&&ch>'0')
4. (1) count=0 (2)while(j!=0) (3)s=s+j 5. (1) s=s*i
6. (1)x=0 (2)x=x+j 7. (1) i+=2 (2)-t 8. (1) i (2)flag=-flag 9. (1) a*10+2 (2) s+a 10.(1) a*10+i (2) s+a
11.(1) i%3||i%5 (2) printf(“%d ”,i)
五、编程题:
1、编程实现:输入两个正整数m和n,求其最大公约数和最小公倍数。 main()
{ int m,n,temp,s;
printf(\ scanf(\ if(m while(n!=0)/*利用辗除法,直到n为0为止*/ { temp=m%n; m=n; n=temp; } printf(\printf(\} 2、求1+2+4+6+??+100之和。分别用三种循环语句实现(while,do-while,for)。 (1) main( ) { int i=2,sum=1; while (i<=100) { sum=sum+i; i=i+2; } printf(“sum=%d”, sum); 第 35 页 共 88 页 } (2) main( ) { int i=2,sum=1; do { sum=sum+i; i=i+2;}while(i<=100); printf(“sum=%d”, sum); } (3) main( ) { int i,sum; for(i=2,sum=1;i<=100;i+=2) sum=sum+i; printf(“sum=%d”, sum); } 3、编写程序求2到100间的全部素数,要求每行输出5个数。 #include { int m,k,i,n=0; for(m=2;m<=100;m+=2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) { printf(“]”,m); n=n+1; } if(n%5==0) printf(“\\n”); } } 4、编程输出九九乘法表。 #include \main() { int i,j,result; printf(\ for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf(\ \表示左对齐,占3位*/ } printf(\每一行后换行*/ } } 5、编程求Fibonacci数列前20个数。这个数列有如下特点:第1、2两个数为1、1。 从第3个数开始,该数是其前面两个数之和。 main() {long int f1=1,f2=1,f; 第 36 页 共 88 页 int i; printf(“]] ”,f1,f2); for(i=3;i<=20;i++) { f=f1+f2; printf(“]”,f); f1=f2; f2=f; } } 6、一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过了多少米?第10次反弹多高? main() { float sn=100.0,hn=sn/2; int n; for(n=2;n<=10;n++) { sn=sn+2*hn; /*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ } printf(\printf(\} 7、 编写程序,把100到200之间的能被3整除的数输出。 main() {int i; for(i=100;i<=200;i++) if(i%3= =0) printf(“]”,i); } 8、试编写程序输出100~300间的所能能同时被3和5整除的数。 main() {int i; for(i=100;i<=300;i++) if((i%3= =0)&&(i%5= =0) printf(“]”,i); } 9、 请编写程序解决如下数学计算问题: 一个整数被5除余3,被7除余5,被9除余7,这个数最小是几? main() {int i=8; while(1) {if((i%5= =3) if(i%7= =5) if(i%9= =7) {printf(“]”,i); break;} i=i+5; } 第 37 页 共 88 页 } 10、设计程序求自然数1~100(包含1和100)中所有素数的和。 #include { int m,k,i,s=0; for(m=2;m<=100;m+=2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) s=s+m; } printf(“sum=%d”,s); } 11、编写程序,使用下面的公式求出e的近似值。 e≈1+ 11111???????? (精确要求?10?6) n!1!2!3!n!main() {int i=1 float sum=1,t=1; while(t<1e6) {t=t*i; sum=sum+1.0/t; i=i+1; } printf(“%.2f”,sum); } 12. 求出所有的“水仙花数”并输出 main() { int i,j,k,n; for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10;/*分解出十位*/ k=n;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf(\ } } 第 38 页 共 88 页