admin 管理员组

文章数量: 887021


2024年3月1日发(作者:c语言?a:b)

计算机c语言编程题库

1、求100之内自然数中最大的能被17整除的数。

void main()

{ int i;

}

for(i=100;i>0;i--)

if(i%17==0)break;

printf("%dn",i);

2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。

void main()

{

int a,b,c;

for(a=1;a<=9;a++)

{

for(b=0;b<=9;b++)

{

for(c=1;c<=9;c++)

if(a*100+b*10+c+c*100+b*10+a==1333)

printf("%d,%d,%dn",a,b,c);

}

}

}

3、计算并输出200-400之间不能被3整除的整数的和。

void main()

{ int i,sum=0;

for(i=200;i<=400;i++)

if(i%3!=0)

sum=sum+i;

printf("%dn",sum);

}

4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。

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);

}

5、求100之内自然数中偶数之和。

void main()

{ int i,sum=0;

for(i=0;i<=100;i++)

if(i%2==0)

sum=sum+i;

printf("sum=%dn",sum);

}

6、输入5个数,求和并输出。要求编写求和的函数。

void main()

{ int b(int x[],int n);

int sum=0;

int a[5];

int i;

printf("请输入5个数:");

for(i=0;i<5;i++)

scanf("%d",&a[i]);

sum=b(a,5);

printf("sum=%dn",sum);

}

int b(int x[],int n)

{ int i,sum=0;

for(i=0;i<5;i++)

sum=sum+x[i];

return sum; }

7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。

void main()

{ int i,sum=0;

for(i=1;i<=99;i=i+2)

sum=sum+i*(i+1)*(i+2);

printf("%dn",sum);

}

8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。void main()

{ int i,n;

char b[20];

printf("请输入字符串:");

gets(b);

n=strlen(b);

for(i=0;i

if(b[i]=='a')

b[i]='*';

for(i=0;i

printf("%c",b[i]);

printf("n");

}

9、编写程序,将一个一维数组的元素逆序存放并输出。例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。

void main()

{ int i;

int a[5];

printf(“请输入5个数:”);

for(i=0;i<5;i++)

scanf(“%d”,&a[i]);

for(i=0;i<2;i++)

{

t=a[i];

a[i]=a[4-i];

a[4-i]=t;

}

for(i=0;i<5;i++)

printf("%d ",b[i]);

printf("n");

}

11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j

void main()

{ int a;

printf(“请输入一个数:”);

scanf(“%d”,&a);

if(a>0)

printf("zn");

if(a<0)

printf("fn");

if(a%2==0)

printf("on");

if(a%2!=0)

printf("jn");

}

12、计算并输出1-200之间不能被5整除的整数的和。

void main()

{ int i,sum=0;

for(i=1;i<=200;i++)

if(i%5!=0)

sum=sum+i;

printf("%dn",sum);

}

13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。

void main()

{ int i,a,n;

long int sum=0,st=0;

printf("请输a和n:");

scanf("%d%d",&a,&n);

for(i=1;i<=n;i++)

{ st=st+a;

sum=sum+st;

a=a*10;

}

printf("%ldn",sum);

}

14、输入5个数,求它们中最大值和平均值并输出。

void main()

{

int a[5];

int i,j,max,sum=0;

float average;

printf("请输入5个数:");

for(i=0;i<5;i++)

scanf("%d",&a[i]);

max=a[0];

for(j=0;j<5;j++)

{

sum=sum+a[j];

if(max

max=a[j];

}

printf("max=%d,average=%fn",max,average);

}

15、输出所有200-400之间能被3整除且个位数字为6的整数。

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去掉,然后输出剩余的字符。

void main()

{ int i,j,n1;

char a[20];

printf("请输入字符串:");

gets(a);

n1=strlen(a);

for(i=0;i

if(a[i]!='a')

printf("%c",a[i]);

printf("n");

}

17、计算并输出200-400之间不能被7整除的整数的和。

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整除的整数的和。

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个数,统计非正数的个数,并计算非正数的和

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、输入一串字符,将其中的大写字母变成对应的小写字母并输出。

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。

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次反弹多高?

void main()

{ int i;

for(i=2;i<=10;i++)

{

sum=sum+2*h;

h=h/2;

}

printf("%f,%fn",sum,h);

}

23、输出所有0-200之间能被3整除且个位数字为6的整数。

void main()

{

int i;

for(i=0;i<=200;i++)

if((i%3==0)&&((i-6)%10==0))

printf("%dn",i);

printf("n");

}

24、输入一个正整数,输出它的阶乘。

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、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。

void main()

{int i,x,m=0,n=0,k=0,j=0;

char a[20];

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、编写程序,使用循环结构输出下列图形:

* * * *

* * * *

* * * *

* * * *

* * * *

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");

}

27、输入一串字符,逆序输出。要求使用数组实现。

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的值。

void main()

{int n,s=1;

for(n=2;n<=100;n++)

{

s=-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)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。

void main()

{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};

int i,j;

printf("三个学生的总分和平均成绩依次为:n");

for(i=0;i<3;i++)

for(j=0;j<4;j++)

sum=sum+a[i][j];

average=sum/4;

printf("%.2f,%.2fn",sum,average);

}

}

30、求两个正整数的最大公约数。

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之内自然数中奇数之和。

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的整数。

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的值。

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求平方。

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整除的整数的和。

void main()

{ int i,sum=0;

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)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。

void main()

{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};

int i,j;

printf("三个学生的总分和平均成绩依次为:n");

for(i=0;i<3;i++)

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)。要求结果保留两位小数。

void main()

{ float F,c;

printf(“请输入一个华氏温度:”);

scanf(“%f”,&F);

printf("%.2fn",c);

}

38、输入任意三个数,按从大到小的顺序输出。

void main()

{ int a,b,c,t;

printf(“请输入任意三个数:”);

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枚,每种硬币至少一枚,问共有多少种兑换方案?输出每一种方案中三种硬币的数量。

main()

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、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。

void main()

{ int r;

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。

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位的正整数,判断它是几位数,并逆序输出各位数字。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;

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项

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,判断某一年是否是闰年

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;

}

else

leap=0;

if (leap)

printf("%d is a leap yearn",year);

else

printf("%d is not a leap yearn",year);

}

45,起泡法(选择法)对十个数排序

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,判断某个数是否为素数.

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);

else printf("%d is not a prime numbern",m);

}

47,编程计算1!+2!+3!+…+10的值。

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…。

void main()

{ int n;

for(n=1;n<=15;n++)

{ sum=sum+a/b;

t=a;

a=a+b;

b=t;

}

printf("%fn",sum);

}

49,从键盘输入圆柱体高与底面半径,计算并输出圆柱体表面积与体积,要求结果保留两位小数。

void main()

{

int h,r;

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); }

50,从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。例如,输入1234,输出10;输入-1234,输出10。

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); }

void main()

{

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。

void main()

{

int i,n;

char a[20];

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、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符。

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的值。

int main()

{

int x,y;

scanf("%d",&x);

if (x>=0)

if (x>0) y=1;

else y=0;

else y=-1;

printf("x=%d,y=%dn",x,y);

return 0;

}

2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。

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; }

return 0;

}

3.有三个整数a,b,c,由键盘输入,输出其中最大者。

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(max

max=c;

printf("最大的数为%dn",max);

return 0;

}

4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。

表输入圆半径r:");

scanf("%f", &r);

l=2*pi*r;

s=pi*r*r;

printf("圆周长为:圆面积为:

5.有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x)。

编一程序,输入x的值,输出y的值。

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整除。)

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");

return 0;

}

7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)

int main()

{

float c,f;

printf("请输入一个华氏温度:");

scanf("%f",&f);

printf("摄氏温度为:

return 0;

}

8.有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。编一程序,输入x的值,输出y的值。

输入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);

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.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。

void main ( )

{

char ch;

scanf("%c",& ch);

ch=(ch>='A'&& ch<='Z')?(ch+32):ch;

printf("%cn",ch);

}

11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。

void main()

{

float r, h, v, s;

printf("表输入圆半径r、圆柱高h:");

scanf("%f%f", &r,&h);

v=pi*r*r*h;

s=2*pi*r*r+2*pi*r*h;

printf("圆柱体积为:

printf("圆柱表面积为:

}

12.有分段函数:当x<-5时,y=x+10; 当-5≤x≤5时,y=x^2;当x>5时,y=2x-10.

编一程序,输入x的值,输出y的值。

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,由键盘输入,输出其中最小者。

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.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

15.输入三角形的三边长,求三角形面积。求三角形面积的公式为

area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2

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!的值,并输出结果。

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天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。

int main()

{

int day,x1,x2;

day=9;

x2=1;

while(day>0)

{x1=(x2+1)*2;

x2=x1;

day--;

}

printf("total=%dn",x1);

return 0;

}

19.编程求1~100之间的所有素数,并输出结果。

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次方为止。

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;

return 0;

}

22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?

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,求其最大公约数和最小公倍数。

请输入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);

}

24.利用循环,编程求1!+2!+3!+…+10!的值,并输出结果。

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项之和。

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;

}

return 0;

}

26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。

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);

f1=f2;

f2=f3;

}

return 0;

}

27.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程求1000以内所有完数。

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由键盘输入。

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;

sn=sn+tn;

a=a*10;

++i;

}

printf("a+aa+aaa+...=%dn",sn);

return 0;

}

30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

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,要求改为0,2,3,4,6,8。

#define N 6

void main()

{

int a[N],i,temp;

printf("enter array a:n");

for(i=0;i

scanf("%d",&a[i]);

printf("array a:n");

for(i=0;i

printf("%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;i

printf("%d ",a[i]);

printf("n");

}

4,3,2,0。

32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。

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;

}

}

33.将一个二维数组int a[3][4]的行和列的元素互换,存到另外一个二维数组中。

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++)

{

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.利用循环输出以下图形

*****

****

***

**

*

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.利用循环,输出以下图形

利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形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.利用循环输出以下图形

*

***

*****

*******

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.利用循环,输出以下图形

*******

*****

***

*

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.写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。

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.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入。

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);

}


本文标签: 输出 输入 要求 字符