1、明解C语言第4章 程序的循环控制练习题答案【个人观点】练习4-1#include#includeint main(void) int num; int dig; do printf(请输入一个非负整数:); scanf(%d,&num); if(num 0) puts(aa请不要输入负整数); while (num 0); puts(。); return (0); 【注】这样更能很好地理解num的变化练习4-2#include#includeint main(void) int num; int dig; int temp; do printf(请输入一个非负整数:); scanf(%d,&n
2、um); if(num 0) puts(aa请不要输入负整数); while (num 0); printf(%d的位数是%d.n,temp,dig); return (0); 练习4-3#include#includeint main(void) int min,max,A,B,temp1,temp2; int sum = 0; printf(请输入两个整数:n); scanf(%d%d,&A,&B); A B?(min = A,max = B):(min = B,max = A); temp1 = min; temp2 = max; do sum = sum + min; min+; wh
3、ile (min = max); printf(大于等于%d小于等于%d的所有整数的和是%d.n,temp1,temp2,sum); puts(n); return (0); 练习4-4#include#includeint main(void) int num; int dig; do printf(请输入一个非负整数:); scanf(%d,&num); if(num 0) puts(aa请不要输入负整数); while (num 0); puts(。); return (0); 练习4-5#include#includeint main(void) int num; int dig; d
4、o printf(请输入一个非负整数:); scanf(%d,&num); if(num 0) puts(aa请不要输入负整数); while (num 0); printf(该整数的位数是%d.n,dig); return (0); 练习4-6#include#includeint main(void) int no; printf(请输入一个整数:); scanf(%d,&no); while(no = 0) printf(%d ,no); no-; putchar(n); 练习4-7#includeint main(void) int no; printf(请输入一个正整数:); sca
5、nf(%d,&no); while(no 0) printf(%d ,no-); putchar(n); return (0); 练习4-8#include#includeint main(void) int i,no; printf(请输入一个正整数:); scanf(%d,&no); while(no 0) printf(Input error!); exit(0); i = 1; while(i = no) printf(%d ,i+); putchar(n); return (0); 练习4-9#include#includeint main(void) int temp,no,i;
6、printf(请输入一个正整数:); scanf(%d,&no); while(no = 0) printf(Input error!); exit(0); no % 2? (temp = (no - 1):(temp = no); i = 2; while(i = temp) printf(%d ,i); i += 2; putchar(n); return (0); 【注意】(1)条件运算符中要有括号,不出错;(2)引入i,将temp仅仅作为上限。若是输出为182,则不需要引入i,直接用temp即可练习4-10#include#includeint main(void) int temp,
7、no,i; printf(请输入一个正整数:); scanf(%d,&no); while(no = 0) printf(Input error!); exit(0); no % 2? (temp = (no - 1):(temp = no); i = 2; while(i = temp) printf(%d ,i); i *= 2; putchar(n); return (0); 练习4-11#includeint main(void) int no; printf(请输入一个整数:); scanf(%d,&no); while(no- 0) printf(*n); putchar(n);
8、return (0); 【注意】只要限制no- 0 ,输入0以下的整数,自然什么也不执行练习4-12#includeint main(void) int i; int sum = 0; for(i=1;i = 5;i+) sum += i; printf(1到的合计值是:%dn,sum); putchar(n); return (0); 练习4-13#includeint main(void) int i; int num; printf(请输入一个正整数:); scanf(%d,&num); for(i=1;i = num;i+) printf(%d,i % 10); putchar(n);
9、 return (0); 【注】(1)i % 10是关键练习4-14#includeint main(void) int i; int start,end,interval; printf(开始数值(cm)n,start); scanf(%d,&start); printf(结束数值(cm)n,end); scanf(%d,&end); printf(间隔数值(cm)n,interval); scanf(%d,&interval); for(i = 150;i = end;i+=5) printf(%d %.2fn,i,(double)(i - 100) * 0.9); putchar(n);
10、 return (0);练习4-15#includeint main(void) int i,j; printf( |); for(i = 1;i = 9;i+) printf(%3d,i); putchar(n); for(i = 1;i = 32;i+) printf(-); printf(n); for(i = 1;i = 9;i+) printf(%d |,i); for(j = 1;j = 9;j+) printf(%3d,i * j); putchar(n); return (0);练习4-16#includeint main(void) int i,j; int side,ano
11、ther; puts(让我们来画一个长方形。); printf(一边:);scanf(%d,&side); printf(另一边:);scanf(%d,&another); for(i = 1;i = side;i+) for(j = 1;j = another;j+) putchar(*); putchar(n); return (0);练习4-17【1】#includeint main(void) int i,j,ln; printf(三角形有几层:); scanf(%d,&ln); for(i = 1;i = i;j-) putchar(*); putchar(n); return (0
12、);【注】(1)for(j = ln;j = i;j-)是重点【2】教材上的4-19不是右下三角,现在输出右下三角#includeint main(void) int i,j,ln; printf(三角形有几层:); scanf(%d,&ln); for(i = 1;i = i;j-) putchar( ); for(j = 1;j = i;j+) putchar(*); putchar(n); return (0);【3】右上三角#includeint main(void) int i,j,ln; printf(三角形有几层:); scanf(%d,&ln); for(i = 1;i = l
13、n;i+) for(j = 1;j = i;j-) putchar(*); putchar(n); return (0);练习4-18第1次j=1,j小于等于4 输出4个空格 k=1,k小于等于1 输出 1个 *第2次j=1,j小于等于3 输出3个空格 k=1,k小于等于(2*2-1)=3 输出 3个 *第3次j=1,j小于等于2 输出2个空格 k=1,k小于等于(2*3-1)=5 输出 5个 *第4次j=1,j小于等于1 输出1个空格 k=1,k小于等于(2*4-1)=7 输出 7个 *第5次j=1,j小于等于0 输出0个空格 k=1,k小于等于(2*5-1)=9 输出 9个 *#includevoid main() int i,j,k,ln; printf(让我们来描绘一个金字塔。n); printf(金字塔有几层:); scanf(%d,&ln); for(i=1;i=ln;i+) for(j=1;j=ln-i;j+) printf( ); for(k=1;k=2*i-1;k+) printf(*); printf(n); return (0);【注】注意第二个循环
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1