三.C语言练习(2)

文章包含了多个C语言编程示例,如检查有效的标识符,打印100到200之间的素数,找出1000到2000的闰年,计算特定序列的和,寻找10个数中的最大值以及输出乘法口诀表。这些示例展示了基本的循环、条件判断和算术运算在编程中的应用。
摘要由CSDN通过智能技术生成

6.下列字符序列中,可以用作C语言标识符的一组字符序列的是

S.b , sum , average , _above (×)//标识符没有.

class , day , lotus_1 , 2day(×)//2day首字符是2

#md , &12x , month , student_n!(×)//标识符没有#,&,!

D56 , r_1_2 , name , _st_1(√)

解析:

  1. 标识符由大小写字母、数字、下划线"_"组成

  2. 不能把C语言关键字作为标识符

  3. 标识符长度限制32个字符

  4. 标识符对大小写敏感

  5. 首字符只能是字母或者下划线,不能是数字

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

7.打印100~200之间的素数


#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 100; i <= 200; i++)
    {
        //思路:用试除法
        //用1和本身之间的数与该数相除,看是否有余数
        //产生2——>i-1的数
        int j = 0;
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                break;
            }
        }
        //此时break跳出的和正常循环结束的结果都会到这
        //而循环结束意味着2——>i-1的数都不能整除
        //且跳出循环时j=i,而此时j就是素数
        if (j == i)
        {
            printf("%d ", j);
        }
    }
    
    return 0;
}

运行结果:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

8.打印1000到2000的闰年

判断是否为闰年

  1. 能被4整除但不能被100整除

  2. 能被400整除


#include <stdio.h>
int main()
{
    int year = 0;
    for (year = 1000; year <= 2000; year++)
    {
        if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
        {
            printf("%d ", year);
        }
    }
    return 0;
}

运行结果:1004 1008 1012 1016 ... 1988 1992 1996 2000

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

9.编写程序数一下1~100的所有整数中有多少个9


#include <stdio.h>
int main()
{
    int i = 0;
    int count = 0;
    for (i = 1; i < 100; i++)
    {
        if (i % 10 == 9)
        {
            printf("%d ", i);
            count++;
        }
        if (i / 10 == 9)
        {
            printf("%d ", i);
            count++;
        }
        
    }
    printf("count=%d\n", count++);
    return 0;
}

运行结果:9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99 99 count=20

99包含两个9,因此需要计算两次

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

10.计算1/1-1/2+1/3-1/4+1/5-...+1/99-1/100


#include <stdio.h>
int main()
{
    int i = 0;
    int flag = 1;
    double sum = 0.0;
    for (i = 1; i <= 100; i++)
    {
        sum += flag * 1.0 / i;//给分数乘上一个会变换符号的flag
        flag = -flag;//每次给flag赋值一个负号实现符号的变换
    }
    printf("sum=%lf\n", sum);
    return 0;
}

运行结果:sum=0.688172

精度肯定会存在丢失

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

11.求十个数中的最大值


#include <stdio.h>
int main()
{
    int arr[] = { -1,-2,1,5,-9,7,-7,6,4,8 };
    int max = arr[0];//先把第一个数赋进max,可以规避负数无法比较的问题
    int i = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);
    for (i = 1; i < sz; i++)
    {
        if (arr[i] > max)
        {
            max = arr[i];
        }
    }
    printf("max=%d\n", max);
    return 0;
}

运行结果:max=8

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

12.在屏幕上输出乘法口诀表


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 0; i < 10; i++)//确认打印9行
    {
        int j = 0;
        //打印1行
        for (j = 1; j <= i; j++)
        {
            printf("%d * %d = %-2d ", i, j, i * j);
        }
        printf("\n");
    }
    return 0;
}

运行结果:

1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16

5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25

6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36

7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49

8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64

9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世长老

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值