C语言编程小练习

C语言编程小练习

1.1降序输出1~30中的所有偶数。

#include<stdio.h>
int main(void)
{
        int i;
        int a = 2;
        for(i = 30; i>0; i--)
                if (i % a ==0)
                printf("%3d", i);
        return 0;
}

1.2求1*2*3……*10的值。

#include<stdio.h>
int main(void)
{
        int i, mul;
        mul = 1;
        for (i = 1; i <= 10; i++)
        mul *= i;
        printf("%d", mul);
        return 0;
}

1.3求1! + 2! + 3! +……+10!的值。

  1 #include<stdio.h>
  2 int main(void)
  3 {
  4     int i, mul, mul2;
  5     mul = 1;
  6     mul2 = 0;
  7     for (i = 1; i <= 10; i++) {
  8     mul = mul * i;
  9     mul2 += mul;
 10     }
 11     printf("%d", mul2);
 12     return 0;
 13 }

1.4根据用户输入的正整数a(1-9)和正整数n,求a + aa + aaa……+a….aa(n个a)的值,例如当用户输入的正整数为6时,n为5时,6 + 66 +666 +6666 + 66666 = 74070 。
 

  1 #include<stdio.h>
  2 int main(void)
  3 {
  4     int a, n, i, t, sum;
  5     sum = 0;
  6     t = 0;
  7     printf("请用空格间隔输入a和n:");
  8     scanf("%d %d",&a, &n);
  9     for (i = 1; i<=n; i++) {
 10         t = t * 10 + a;
 11         sum += t;
 12     }
 13     printf("sum = %d\n", sum);
 14     return 0;
 15 }

1.5根据用户输入的正整数n,求1 + 1/3 + 1/5 + ……的前n项之和。

  1 #include<stdio.h>
  2 int main(void)
  3 {
  4     int i,a, n;
  5     double sum = 0;
  6     scanf("%d", &n);
  7     for (i = 1, a = 1; i <= n;i++, a +=2)
  8         sum += 1.0/a;
  9
 10     printf("sum = %lf\n", sum);
 11     return 0;
 12 }

1.6根据用户输入的正整数n,求1 - 1/2 + 1/3 - 1/4 + (1)n+1 ( − 1 ) n + 1 /n的值。

  1 #include<stdio.h>
  2 int main(void)
  3 {
  4     int i, j, n;
  5     double sum = 0;
  6     scanf("%d", &n);
  7         for (i = 1 ; i <= n; i++) {
  8             if ( i % 2)
  9                 sum  +=1.0 / i;
 10             else
 11                 sum -= 1.0 / i;
 12          }
 13     printf("sum = %f\n", sum);
 14     return 0;
 15 }

1.7求2/1 + 3/2 + 5/3 + 8/5 + ……的前n项之和。

  1 #include<stdio.h>
  2 int main(void)
  3 {
  4     int i ,n, f1, f2, f3 ;
  5     f1 = 1;
  6     f2 = 1;
  7     f3 = 0;
  8     double sum = 0;
  9     printf("Please enter integer :");
 10     scanf("%d", &n);
 11     for (i =1; i <= n; i++) {
 12         f3 = f1 + f2;
 13         f1 = f2;
 14         f2 = f3;
 15         sum += (double)f2 / f1;
 16     }
 17     printf("sum = %lf\n", sum);
 18     return 0;
 19 }

1.8求1 - 2/3 + 3/5 - 4/7 + 5/9 - 6/11 …… 的前n项之和。

  1 #include<stdio.h>
  2
  3 int main(void)
  4 {
  5     int  i, j, n;
  6     double sum = 0;
  7     scanf("%d", &n);
  8     for (i = 1, j = 1; i <= n; j += 2, i++) {
  9         if ( i % 2)
 10             sum += (double)i / j;
 11         else
 12             sum -= (double)i / j;
 13
 14     }
 15     printf("%lf\n", sum);
 16     return 0;
 17 }

1.9求数列1,2,3,5,8,13,21,34,……中第n项的值。

  1 #include<stdio.h>
  2
  3 int main(void)
  4 {
  5     int i, n, f1, f2, f3, sum;
  6     scanf("%d", &n);
  7     f1 = 1;
  8     f2 = 1;
  9     f3 = 1;
 10     for (i = 2; i <= n; i++) {
 11         f3 = f2 + f1;
 12         f1 = f2;
 13         f2 = f3;
 14     }
 15     printf("%d\n", f3);
 16     return 0;
 17 }

1.10输出数列0,1,2,3,6,11,20,37,68,……的前n项,每行输出5项。(每行输出多少项可自行调整)。

  1 #include<stdio.h>
  2
  3 int main(void)
  4 {
  5     int i, n, f1, f2, f3, f4;
  6     printf("Please enter integer n(n >= 4):");
  7     scanf("%d", &n);
  8     f1 = 0;
  9     f2 = 1;
 10     f3 = 2;
 11     printf("%8d%8d%8d", f1, f2 ,f3);
 12     for ( i = 4 ; i <= n; i++) {
 13         f4 = f1 + f2 + f3;
 14         printf("%8d", f4);
 15         if ( i % 5 == 0 )
 16             printf("\n");
 17         f1 = f2;
 18         f2 = f3;
 19         f3 = f4;
 20     }
 21     return 0;
 22 }

1.11输入15个字符,统计其中英文字母、数字字符、空格和其他字符的个数。

  1 #include<stdio.h>
  2
  3 int main(void)
  4 {
  5     char ch;
  6     int i, a, b,c, n ;
  7     a = 0;
  8     b = 0;
  9     c = 0;
 10     n = 0;
 11     printf("Please input 15 characters:");
 12     for (i = 1; i <= 15; i++) {
 13         scanf("%c", &ch);
 14         if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
 15             a++;
 16         else if (ch >= '0' && ch <= '9')
 17             b++;
 18         else if (ch == ' ')
 19             c++;
 20         else
 21             n++;
 22     }
 23     printf("letters = %d\n", a);
 24     printf("numbers = %d\n", b);
 25     printf("spaces  = %d\n", c);
 26     printf("others  = %d\n", n);
 27
 28     return 0;
 29 }

1.12输出2000~2100年之间所有的闰年。每行输出5项(可自行调整)。

  1 #include<stdio.h>
  2
  3 int main(void)
  4 {
  5     int year;
  6     int a = 0;
  7     for (year = 2000; year <=2100; year ++){
  8         if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
  9         printf("%5d", year);
 10         a++;
 11         if(a % 5 ==0)
 12             printf("\n");
 13         }
 14     }
 15     return 0;
 16 }
  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值