max=a[j];
}
average=1.0/5*sum;
printf("max=%d,average=%fn",max,average);
}
15、输出所有200-400之间能被3整除且个位数字为6的整数。
#include
void main()
{
int i;
for(i=200;i<=400;i++)
if((i%3==0)&&((i-6)%10==0))
printf("%dn",i);
printf("n");
}
16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。
#include
void main()
{ int i,j,n1;
char a[20];
printf("请输入字符串:");
gets(a);
n1=strlen(a);
5
WRH
}
for(i=0;i if(a[i]!='a')
printf("%c",a[i]);
printf("n");
17、计算并输出200-400之间不能被7整除的整数的和。
#include
void main()
{ int i,sum=0;
for(i=200;i<=400;i++)
if(i%7!=0)
sum=sum+i;
printf("sum=%dn",sum);
}
18.计算并输出200-400之间不能被5整除的整数的和。
#include
void main()
{ int i,sum=0;
for(i=200;i<=400;i++)
if(i%5!=0)
sum=sum+i;
printf("sum=%dn",sum);
}
19、从键盘输入10个数,统计非正数的个数,并计算非正数的和
#include
void main()
{ int i,n=0,sum=0;
int a[10];
printf(“请输入10个数:”);
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<10;i++)
if(a[i]<=0)
{ sum=sum+a[i];
n++;}
printf("非正个数是%d,sum=%dn",n,sum);
}
20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。
#include
6
WRH
#include
void main()
{ int i,n;
char a[20];
printf("请输入字符串:");
gets(a);
n=strlen(a);
for(i=0;i if(a[i]>='A'&&a[i]<='Z')
a[i]=a[i]+32;
for(i=0;i printf("%c",a[i]);
printf("n");
}
21、打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
#include
void main()
{ int a,b,c,s;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
if(a*100+b*10+c==a*a*a+b*b*b*b+c*c*c)
{
s=a*100+b*10+c;
printf("%dn",s);
}
}
}
}
22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?
#include
7
WRH
void main()
{ int i;
float sum=100.0,h=50;
for(i=2;i<=10;i++)
{
sum=sum+2*h;
h=h/2;
}
printf("%f,%fn",sum,h);
}
23、输出所有0-200之间能被3整除且个位数字为6的整数。
#include
void main()
{
int i;
for(i=0;i<=200;i++)
if((i%3==0)&&((i-6)%10==0))
printf("%dn",i);
printf("n");
}
24、输入一个正整数,输出它的阶乘。
#include
void main()
{ int i,J=1,n=10;
printf(“请输入一个正整数:”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
J=J*i;
printf("%d 的阶乘是:%dn",n,J);
}
25、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。
#include
#include
void main()
{int i,x,m=0,n=0,k=0,j=0;
char a[20];
8
WRH
printf("请输入字符串:");
gets(a);
x=strlen(a);
for(i=0;i {
if(a[i]=='*')break;
else if(a[i]>='0'&&a[i]<='9')
m++;
else if(a[i]>='A'&&a[i]<='Z')
n++;
else if(a[i]>='a'&&a[i]<='z')
k++;
else
j++;
}
printf("%d,%d,%d,%dn",m,n,k,j);
}
26、编写程序,使用循环结构输出下列图形:
* * * *
* * * *
* * * *
* * * *
* * * *
#include
void main()
{ int i,j,k ;
for(i=0;i<5;i++)
{
for(j=0;j<4-i;j++)
printf(" ");
for(k=0;k<4;k++)
printf("*");
printf("n");
}
printf("n");
}
9
WRH
27、输入一串字符,逆序输出。要求使用数组实现。
#include
#include
void main()
{int i,j,t,n;
char a[10];
printf("请输入字符串:");
gets(a);
n=strlen(a);
for(i=0;i {
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
for(j=0;j printf("%c",a[j]);
printf("n");
}
28、求1-1/2+1/3-1/4+...+1/99-1/100的值。
#include
void main()
{int n,s=1;
float sum=1.0;
for(n=2;n<=100;n++)
{
s=-s;
sum=sum+1.0/n*s;
}
printf("1-1/2+1/3-1/4+...+1/99-1/100=%fn",sum);
}
29、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。
#include
void main()
{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};
int i,j;
10
WRH
float average,sum=0.0;
printf("三个学生的总分和平均成绩依次为:n");
for(i=0;i<3;i++)
{ sum=0.0;
for(j=0;j<4;j++)
sum=sum+a[i][j];
average=sum/4;
printf("%.2f,%.2fn",sum,average);
}
}
30、求两个正整数的最大公约数。
#include
void main()
{ int m,n,m1,n1,t,k;
printf(“请输入两个正整数:”);
scanf(“%d%d”,&m,&n);
if(m { t=m;
m=n;
n=t;
}
m1=m;
n1=n;
while((k=m1%n1)!=0)
{ m1=n1;
n1=k;
}
printf("%d和%d最大公约数是:%dn",m,n,n1);
}
31、求100之内自然数中奇数之和。
#include
void main()
{ int i,sum=0;
for(i=0;i<=100;i++)
if(i%2!=0)
sum=sum+i;
printf("sum=%dn",sum);
}
32、输出所有200-400之间能被3整除且个位数字为7的整数。
11
WRH
#include
void main()
{
int i;
for(i=200;i<=400;i++)
if((i%3==0)&&((i-7)%10==0))
printf("%dn",i);
printf("n");
}
33、编程计算1*2*3+4*5*6+...+97*98*99的值。
#include
void main()
{
int i,n,sum=0;
for(i=1;i<=94;i=i+3)
sum=sum+i*(i+1)*(i+2);
printf("%dn",sum);
}
34、输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。要求编写函数f求平方。
#include
void main()
{ int f(int x);
int n,sum;
printf("请输n值:");
scanf("%d",&n);
sum=f(n);
printf("%dn",sum);
}
int f(int x)
{ int j,z=0;
for(j=1;j<=x;j++)
z=z+j*j;
return z;
}
35、计算并输出1-200之间不能被3整除的整数的和。
#include
void main()
{ int i,sum=0;
12
WRH
for(i=1;i<=200;i++)
if(i%3!=0)
sum=sum+i;
printf("%dn",sum);
}
36、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。
#include
void main()
{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};
int i,j;
float average,sum=0.0;
printf("三个学生的总分和平均成绩依次为:n");
for(i=0;i<3;i++)
{ sum=0.0;
for(j=0;j<4;j++)
sum=sum+a[i][j];
average=sum/4;
printf("%.1f,%.1fn",sum,average);
}
}
37、输入一个华氏温度,输出摄氏温度,计算公式为c=5/9*(F-32)。要求结果保留两位小数。
#include
void main()
{ float F,c;
printf(“请输入一个华氏温度:”);
scanf(“%f”,&F);
c=5.0/9*(F-32);
printf("%.2fn",c);
}
38、输入任意三个数,按从大到小的顺序输出。
#include
void main()
{ int a,b,c,t;
printf(“请输入任意三个数:”);
13
WRH
scanf(“%d%d%d”,&a,&b,&c);
if(a
{ t=a;
a=b;
b=t;
}
if(a { t=a;
a=c;
c=t;
}
if(b { t=b;
b=c;
c=t;}
printf("%d,%d,%dn",a,b,c);
}
39、用1元人民币兑换5分、2分、1分的硬币共50枚,每种硬币至少一枚,问共有多少种兑换方案?输出每一种方案中三种硬币的数量。
#include
main()
{ float x=1.0;
float a=0.01,b=0.02,c=0.05;
int i,j,k;
int count=0;
printf(" 1分,2分,5分张数依次为: n");
for(i=1;i<100;i++)
for(j=1;j<50;j++)
for(k=1;k<20;k++)
if((i*a+j*b+k*c)==1&&i+j+k==50)
{printf(" %d %d %dn",i,j,k);
count++; }
printf("共有%d种方案n",count);
}
40、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。
14
WRH
#include
void main()
{ int r;
float pi=3.14159;
float c,s;
printf(“请输入半径r:”);
scanf(“%d”,&r);
s=pi*r*r;
c=2*pi*r;
printf("面积=%.2f,周长=%.2fn",s,c);
41、从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。例如,输入abcdefg,2,3,输出bcd。
#include
#include
void main()
{ int i,m,n;
char a[20];
printf("请输入字符串:");
gets(a);
n=strlen(a);
printf("请输入两个正整数:");
scanf("%d%d",&m,&n);
for(i=m-1;i printf("%c",a[i]);
printf("n");
}
42、输入一个不多于5位的正整数,判断它是几位数,并逆序输出各位数字。
#include
void main()
{ int a,b,c,d,e;
long x;
printf(“请输入一个不多于5位的正整数:”);
scanf(“%d”,&x);
a=x/10000;
b=x%10000/1000;
c=x%1000/100;
d=x%100/10;
15
WRH
e=x%10;
if(a!=0)printf("它是5位数,%d,%d,%d,%d,%dn",e,d,c,b,a);
else if(b!=0)printf("它是4位数,%d,%d,%d,%dn",e,d,c,b);
else if(c!=0)printf("它是3位数,%d,%d,%dn",e,d,c);
else if(d!=0)printf("它是2位数,%d,%dn",e,d);
else printf("它是1位数,%dn",e);
}
43, 输出Fibonacci数列的前40项
#include
void main()
{
int a[40]={1,1};
int i;
printf("%12d%12d",a[0],a[1]);
for(i=2;i<40;i++)
{
if(i%4==0)
printf("n");
a[i]=a[i-1]+a[i-2];
printf("%12d",a[i]);
}
printf("n");
}
44,判断某一年是否是闰年
#include
void main ()
{
int year,leap;
printf(“请输入一个年份:”);
scanf("%d",&year);
if (year%4==0)
{
if (year%100==0)
{
if (year%400==0)
leap=1;
else
leap=0;
}
else leap=1;
}
16
WRH
}
else
leap=0;
if (leap)
printf("%d is a leap yearn",year);
else
printf("%d is not a leap yearn",year);
45,起泡法(选择法)对十个数排序
#include
void main()
{
int i,j,t;
int a[10];
printf("请输入10个数:n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("n");
}
46,判断某个数是否为素数.
#include
#include
void main()
{
int i,m;
float k;
printf("请输入一个正整数:");
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)printf("%d is a prime numbern",m);
17
WRH
}
else printf("%d is not a prime numbern",m);
47,编程计算1!+2!+3!+„+10的值。
#include
void main()
{ int i,j,sum1=1,sum=0;
for(i=1;i<=10;i++)
{
for(j=1;j<=i;j++)
sum1=sum1*j;
sum=sum+sum1;
}
printf("1!+2!+3!+…+10!=%ldn",sum);
}
48,求以下数列前十五项的和:2/1,3/2,5/3,8/5,13/8,21/13„。
#include
void main()
{ int n;
float a=2.0,sum=0.0,b=1.0,t;
for(n=1;n<=15;n++)
{ sum=sum+a/b;
t=a;
a=a+b;
b=t;
}
printf("%fn",sum);
}
49,从键盘输入圆柱体高与底面半径,计算并输出圆柱体表面积与体积,要求结果保留两位小数。
#include
void main()
{
int h,r;
float pi=3.14159,s,v;
printf(“请输入圆柱体半径r和高h:”);
scanf(“%d%d”,&r,&h);
s=2*pi*r*r+2*pi*r*h;
v=pi*r*r*h;
printf("s=%.2f,v=%.2fn",s,v); }
18
WRH
50,从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。例如,输入1234,输出10;输入-1234,输出10。
#include
#include
void main()
{ int i1,i2,i3,i4,n,sum;
int a;
printf("请输入一个整数:");
scanf("%d",&a);
n=abs(a);
i1=n/1000;
i2=n%1000/100;
i3=n%100/10;
i4=n%10;
sum=i1+i2+i3+i4;
printf("sum=%dn",sum); }
51,已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。
#include
void main()
{
float x,y,r=0.0225;
int i,n;
printf("请输入存款本金x和存款年数n:");
scanf("%f%d",&x,&n);
y=x;
for(i=1;i<=n;i++)
y=y*(1+r);
printf("%fn",y);
}
52,编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一样,如abcba。
#include
#include
void main()
{
int i,n;
char a[20];
19
WRH
printf("请输入字符串:");
gets(a);
n=strlen(a);
for(i=0;i{
if(a[i]==a[n-i-1])
continue;
else
printf("不是回文.n");break;
}
if(i>=n)
printf("是回文.n");
}
53、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符。
#include
void main()
{ int i,j,n1;
char a[20];
printf("请输入字符串:");
gets(a);
n1=strlen(a);
for(i=0;i if((a[i]>='0'&&a[i]<='9')==0)
printf("%c",a[i]);
printf("n");
}
1.有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。
编一程序,输入x的值,输出y的值。
#include
int main()
{
int x,y;
scanf("%d",&x);
if (x>=0)
if (x>0) y=1;
else y=0;
20
WRH
else y=-1;
printf("x=%d,y=%dn",x,y);
return 0;
}
2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。
#include
int main()
{ float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a
{ t=a; a=b; b=t; }
if(a { t=a; a=c; c=t; }
if(b { t=b; b=c; c=t; }
printf("%5.2f,%5.2f,%5.2fn",a,b,c);
return 0;
}
3.有三个整数a,b,c,由键盘输入,输出其中最大者。
#include
int main()
{int a,b,c,max;
printf("请输入a,b,cn");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max
max=b;
if(maxmax=c;
printf("最大的数为%dn",max);
return 0;
}
4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。
#include
void main()
{
float r, l, s;
21
WRH
float pi=3.1415926;
printf("表输入圆半径r:");
scanf("%f", &r);
l=2*pi*r;
s=pi*r*r;
printf("圆周长为:l=%6.2fn", l);
printf("圆面积为:s=%6.2fn", s);
}
5.有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x)。
编一程序,输入x的值,输出y的值。
#include
int main()
{
int x,y;
scanf("%d",&x);
if(x<-10)
y=abs(x)+5;
else if(x<=10)
y=4*x-8;
else y=sqrt(x);
printf("x=%d,y=%dn",x,y);
return 0;
}
6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被400整除。)
#include
int main()
{int year,leap;
printf("enter year:"); scanf("%d",&year);
if (year%4==0)
if(year%100==0)
if(year%400==0) leap=1;
else leap=0;
else leap=1;
else leap=0;
if (leap) printf("%d is ",year);
else printf("%d is not ",year);
printf("a leap year.n");
22
WRH
return 0;
}
7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)
#include
int main()
{
float c,f;
printf("请输入一个华氏温度:");
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("摄氏温度为:%5.2fn",c);
return 0;
}
8.有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。编一程序,输入x的值,输出y的值。
#include
#include
void main()
{
int x, y;
printf("输入x:");
scanf("%d",&x);
if (x<1)
y=abs(x);
else if (x<10)
y=2*x-1;
else
y=3*x+11;
printf("x=%3d, y=%dn",x,y);
}
9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。
main()
{ int a,b,c,*p1,*p2,*p3,t;
scanf("%d,%d,%d",&a,&b,&c);
23
WRH
p1=&a;p2=&b;p3=&c;
if(*p1>*p2)
{t=p1;p1=p2;p2=t;}
if(*p1>*p3)
{t=p1;p1=p3;p3=t;}
if(*p2>*p3)
{t=p2;p2=p3;p3=t;}
printf("%d,%d,%dn",*p1,*p2,*p3);
}
10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。
#include
void main ( )
{
char ch;
scanf("%c",& ch);
ch=(ch>='A'&& ch<='Z')?(ch+32):ch;
printf("%cn",ch);
}
11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。
#include
void main()
{
float r, h, v, s;
float pi=3.1415926;
printf("表输入圆半径r、圆柱高h:");
scanf("%f%f", &r,&h);
v=pi*r*r*h;
s=2*pi*r*r+2*pi*r*h;
printf("圆柱体积为:v=%6.2fn", v);
printf("圆柱表面积为:s=%6.2fn", s);
}
12.有分段函数:当x<-5时,y=x+10; 当-5≤x≤5时,y=x^2;当x>5时,y=2x-10.
编一程序,输入x的值,输出y的值。
24
WRH
#include
int main()
{
int x,y;
scanf("%d",&x);
if(x<-5)
y=x+10;
else if(x<=5)
y=x^2;
else y=2*x-10;
printf("x=%d,y=%dn",x,y);
return 0;
}
13.有三个整数a,b,c,由键盘输入,输出其中最小者。
#include
int main()
{int a,b,c,max;
printf("请输入a,b,cn");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max>b)
max=b;
if(max>c)
max=c;
printf("最小的数为%dn",max);
return 0;
}
14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
#include
void main ( )
{
char ch;
scanf("%c",& ch);
ch=(ch>='A'&& ch<='Z')?(ch+32):ch;
printf("%cn",ch);
}
15.输入三角形的三边长,求三角形面积。求三角形面积的公式为
25
WRH
area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2
#include
#include
void main ( )
{
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%fn",area);
}
16.编程求2!+4!+6!+8!+10!的值,并输出结果。
#include
int main()
{
int n=1,sum=0,j,m=1,i;
for(i=1;i<=5;i++){
m=1;
for(j=1;j<=2*i;j++)
m=m*j;
sum=sum+m;
}
printf("sum=%dn",sum);
return 0;
}
17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。
#include
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;
26
WRH
}
}
x2=x1;
day--;
printf("total=%dn",x1);
return 0;
19.编程求1~100之间的所有素数,并输出结果。
#include
#include
int main()
{
int n,m=0,k,i;
for(n=1;n<=100;n=n+2)
{ k=sqrt(n);
for (i=2;i<=k;i++)
if (n%i==0) break;
if (i>=k+1)
{ printf("%d ",n);
m=m+1;
}
if(m%10==0) printf("n");
}
printf("n");
return 0;
}
21.用pi/4≈1-1/3+1/5-1/7+...公式求pi的近似值,直到某一项的绝对值小于10的-6次方为止。
#include
#include
int main()
{ int sign=1; double pi=0,n=1,term=1;
while(fabs(term)>=1e-6)
{ pi=pi+term;
n=n+2;
sign=-sign;
term=sign/n;
}
pi=pi*4;
printf("pi=%10.8fn",pi);
27
WRH
return 0;
}
22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?
#include
int main()
{
int i;
double m=100,sum=0;
for(i=0;i<10;i++){
sum=sum+m;
m=m/2;
}
printf("%fn",sum);
return 0;
}
23.输入两个正整数m和n,求其最大公约数和最小公倍数。#include
void main()
{
int p,r,n,m,temp;
printf("请输入n和m: ");
scanf("%d,%d,%d",&n,&m);
if(n{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf(":%dn",n);
printf(" :%dn",p/n);
}
28
WRH
24.利用循环,编程求1!+2!+3!+„+10!的值,并输出结果。
#include
int main()
{
int n=1,sum=0,j,m=1,i;
for(i=1;i<=10;i++){
m=1;
for(j=1;j<=i;j++)
m=m*j;
sum=sum+m;
}
printf("sum=%dn",sum);
return 0;
}
25.有一分数序列:2/1,3/2,5/3,8/5,13/8,,求出这个数列前20项之和。
#include
int main()
{
int i,n=20;
double a=2,b=1,s=0,t;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a,
a=a+b,b=t;
}
printf("sum=%16.10fn",s);
return 0;
}
26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。
#include
int main()
{ int f1=1,f2=1,f3; int i;
printf("%12dn%12dn",f1,f2);
for(i=1; i<=38; i++)
{ f3=f1+f2;
printf("%12dn",f3);
29
WRH
f1=f2;
f2=f3;
}
return 0;
}
27.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程求1000以内所有完数。
#include
int main()
{
int m,s,i;
for (m=2;m<1000;m++)
{s=0;
for (i=1;i if((m%i)==0)s=s+i;
if(s==m)
{printf("%d,its factors are ",m);
for(i=1;i if(m%i==0) printf("%d ",i);
printf("n");
}
}
return 0;
}
28.求S=a+aa+aaa+...+aa...a(n个a)之值。其中a是一个数字,n代表a的位数。例如:2+22+222+2222+22222(此时n为5),n由键盘输入。
#include
int main()
{
int a,sn=0,tn=0,k,i=1,n;
printf("a,n=:");
scanf("%d,%d",&a,&n);
while(i<=n)
{
tn=tn+a;
30
WRH
sn=sn+tn;
a=a*10;
++i;
}
printf("a+aa+aaa+...=%dn",sn);
return 0;
}
30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include
void main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf("n");
while((c=getchar())!='n')
{
if(c>='a'&&c<'z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
other++;
}
printf(":%dn:%dn:%dn:%dn",letters,space,digit,other);
}
31.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,3,2,0。要求改为0,2,3,4,6,8。
#include
#define N 6
void main()
{
int a[N],i,temp;
printf("enter array a:n");
for(i=0;iscanf("%d",&a[i]);
printf("array a:n");
31
4,
WRH
for(i=0;iprintf("%4d",a[i]);
for(i=0;i{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("n Now,array a:n");
for(i=0;iprintf("%d ",a[i]);
printf("n");
}
32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。
#include
#include
void main()
{
int i,s=1;
float n,t,a;
t=1;a=0;n=1;
printf("input n:",n);
while(i<=n)
{
a=a+t;
i=i++;
t=s/i;
}
printf("a=%10.6fn",a);
}
33.将一个二维数组int a[3][4]的行和列的元素互换,存到另外一个二维数组中。
#include
void main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:n");
for (i=0;i<=1;i++)
32
WRH
{
for (j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("n");
}
printf("array b:n");
for (i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("n");
}
}
34.利用循环输出以下图形
*****
****
***
**
*
#include
int main()
{
int i,j,m;
for (i=1;i<=5;i++)
{
m=i;
for(m=1;m
printf(" ");
for(j=0;j<=5-i;j++)
printf("*");
printf("n");
}
return 0;
}
38.利用循环,输出以下图形
33
WRH
利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形39.输出以下杨辉三角形(要求输出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
5 10 10 5 1
...
main()
{ static int m,n,k,b[11][11];
b[0][1]=1;
for(m=1;m<11;m++)
{for(n=1;n<=m;n++)
{ b[m][n]=b[m-1][n-1]+b[m-1][n];
printf("%-5d",b[m][n]);}printf("n");
}
}
40.利用循环输出以下图形
*
***
*****
*******
#include
int main()
{
int i,j,m;
for (i=1;i<=4;i++)
{
m=i;
for(m=1;m<=4-i;m++)
printf(" ");
for(j=0;j<2*i-1;j++)
printf("*");
printf("n");
}
return 0;
}
41.利用循环,输出以下图形
34
WRH
*******
*****
***
*
#include
int main()
{
int i,j,m;
for (i=1;i<=4;i++)
{
m=i;
for(m=1;m
printf(" ");
for(j=0;j<2*(5-i)-1;j++)
printf("*");
printf("n");
}
return 0;
}
44.写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。
#include
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max is %dn",c);
}
int max(int x,int y)
{
if(x>y)
return(x);
else
return(y);
}
45.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入。
#include
35
WRH
void main()
{
int cm(int x,int y);
int cd(int x,int y);
int a,b,m,n;
printf("输入两个数:");
scanf("%d %d",&a,&b);
m=cm(a,b);
n=cd(a,b);
printf("最大公约数是%dn最小公倍数%dn",n,m);
}
int cm(int x,int y)
{
int k;
k=x>y? x:y;
for(;;k++)
if(k%x==0&&k%y==0) break;
return(k);
}
int cd(int x,int y)
{
int i,j,k;
k=x>y? y:x;
for(i=1;i<=k;i++)
if(x%i==0&&y%i==0) j=i;
return(j);
}
36
发表评论