1、循环上机题习题循环上机题题目1:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为n。#include main() char a ; int b=0 ,c=0,d=0,e=0; printf(输入一行字符:n); do scanf(%c,&a); printf(%c,a); if (a=A&a=a&a=0&a=9) d+; else if (a!=n) e+; while(a!=n); printf(字母数:%dn空格数:%dn数字数:%dn其他数:%d,b,c,d,e);题目2:一个数如果恰好等于它的因子之和,这个数就称为
2、“完数”。例如6=123.编程找出1000以内的所有完数。#include main() int a,b,c; for(a=1;a=1000;a+) for(c=0,b=1;ba;b+) if(a%b=0) c=c+b; if(c=a) printf(%d是完数n,a); 题目3:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。#include main() int a,
3、b=1,c=0; for(a=1;a10;a+) b=(1+b)*2; c=c+b; printf(%dn,b);题目4:打印出如下图案(三角和菱形) * * * * * * * * * * * * * * * * * * * * (1)#includemain() int i,j,k,p,t,n; printf(shuru yige shuzi n); scanf(%d,&n); for(i=1;i0;j-) printf(*); printf(n); for(i=n-2;i=0;i-) for(j=2*i;j=0;j-) printf(*); printf(n); (2)#include
4、main() int a=4,b,c,d,e; for (b=a;b0;b-) for(c=2*b-2;c0;c-) printf( ); d=a-b; for(e=4*d+1;e0;e-) printf(*); printf(n) ; for (b=1;b0;c-) printf( ); d=a-b-1; for(e=4*d+1;e0;e-) printf(*); printf(n) ; getch(); (3)#include main() int a,b,c,d; printf(输入一个数:n); scanf(%d,&a); for(b=a;b0;b-) for(c=a;cb;c-) p
5、rintf( ); for(d=2*b-1;d0;d-) printf(*); printf(n); 题目5:打印出如下图案。 AABCABCDE ABCDEFGABCDEFGHIABCDEFGHIJKAAB ABC ABCD ABCDEABCDEFABCDEFG #include main() char a ; int i=7,j,q; / printf(输入一个数:n); / scanf(%d,&i); for(j=1;j=i;j+) for(a=A,q=0;qj;q+) printf(%c,a); a=a+1; printf(n); #include main() char a ; in
6、t i=6,j,q,b,c; / printf(输入一个数:n); / scanf(%d,&i); for(q=1;q=i;q+) for(b=q;b=i;b+) printf( ); for (a=A,c=1;c=2*q-1;c+) printf(%c,a); a=a+1; printf(n); 题目6:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。#include main() int a,x,y,p,q; printf(输入一个五位数:n); scanf(%d,&a); for(;a99999;) printf(输入错误再次输入:n); scanf
7、(%d,&a); x=a%10; y=a/10000; q=(a/10)%10; p=(a/1000)%10; if(x=y&q=p) printf(%d是回文数n,a);题目7:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。#include main() int a,b,c,i=0; for(a=1;a=4;a+) for(b=1;b=4;b+) for(c=1;c=4;c+) if(a!=b&a!=c&b!=c) printf(%d%d%d ,a,b,c); i
8、+; if(i%6=0) printf(n); 题目8:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。程序分析:关键是计算出每一项的值。#include main() long int a,i,j,sum=0,c,b; printf(输入两个数字:n); scanf(%ld %ld,&j,&a); for(c=a,i=1;ij;i+) c=c*10+a; sum=sum+c; printf(%d,c); if(ij-1) printf(+); printf(=%ldn,sum+a); 题
9、目9:对10个数进行排序 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。 #include main() int a10,max,i,x; printf(输入十个数:n); for(i=0;i=1;x-) for(i=0;iai+1) max=ai; ai=ai+1; ai+1=max; for(i=0;i10;i+) printf(%d ,ai); #include main() int a10,min,i,b,x,j; printf(shu ru yi ge sh:n); for(i=0;i10;i+)
10、 scanf(%d,&ai); for(x=0;x=9;x+) min=ax; for(b=x+1,j=x;bab) min=ab; j=b; / printf(%d,min); aj=ax; ax=min; for(i=0;i10;i+) printf(%d ,ai); #include #define N 10main() int aN,max,i,x,flag=0; printf(输入十个数:n); for(i=0;iN;i+) scanf(%d,&ai); for(x=1;xN;x+) flag=0; for(i=x+1;iai+1) flag=1; max=ai; ai=ai+1; ai+1=max; if(flag=0) break; for(i=0;i10;i+) printf(%d ,ai); getch(); #include main() int a10,temp,i,b,x,j; printf(shu ru yi ge sh:n); for(i=0;i10;i+) scanf(%d,&ai); for(x=0;x9;x+) j=x; for(b=x+1;bab) j=b; if(j!=x) temp=ax; ax=aj; aj=temp; for(i=0;i10;i+) printf(%d ,ai); getch();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1