C基础(学习)2024.7.18

Linux基本命令,vi编译器的使用,简单的编程步骤,程序语言,gcc编译器编译过程,进制转换

相关知识可以查看文档http://t.csdnimg.cn/CmqhC

数值表示,词法符号,变量,常量相关知识可以查看文档http://t.csdnimg.cn/jJIe2

运算符和输表达式,输入输出相关知识可以查看文档http://t.csdnimg.cn/FJe89

目录

控制语句:

1.分支语句

1.1 if-else

基本结构:

分层结构:

嵌套结构:

1.2 switch-case

基本结构:

2.循环语句

2.1 for 循环

基本结构:

嵌套结构:

变形:

2.2 while循环

基本结构:

控制语句:

        控制语句即用来实现对程序流程的选择、循环、转向和返回等进行控制。

1.分支语句

1.1 if-else

基本结构:

if(表达式)

 {

        代码段1;

 }

else

{

        代码段2;

}

        执行顺序:如果条件成立,则执行代码段1,否则的话执行代码段2

        例题:输入a和b两个整数,用if语句实现两数相减

#include <stdio.h>
int main()
{
    int a, b, n;
    printf("请输入两个整数:\n");
    scanf("%d %d", &a, &b);
    if (a <= b)
    {
        n = b - a;
    }
    else
    { 
        n = a - b;
    }
    printf("两个数的差值为:%d\n", n);
    return 0;
}
分层结构:

if(表达式1)

 {

        代码段1;

 }

else if(表达式2)

{

        代码段2;

}

...

else

{

        代码段n;

}

        执行顺序:如果满足if中的表达式1则执行代码段1,如果不满足则进入下面else if中表达式2进

行判断,如果条件满足则执行代码段2,如果不满足继续往后执行,最后如果都不满足则执行else

中的代码段n。

        例题:从终端输入一个学生的成绩,判断学生成绩,打印成绩级别

#include <stdio.h>
int main()
{
    int s;
    printf("请输入学生成绩:\n");
    scanf("%d", &s);
    if (100 <= s || s <= 0)
    {
        printf("请输入正确的成绩,范围为0-100\n");
    }
    else if (90 <= s && s <= 100)
    {
        printf("该学生的成绩级别为:A\n");
    }
    else if (80 <= s && s <= 89)
    {
        printf("该学生的成绩级别为:B\n");
    }
    else if (70 <= s && s <= 79)
    {
        printf("该学生的成绩级别为:C\n");
    }
    else if (60 <= s && s <= 69)
    {
        printf("该学生的成绩级别为:D\n");
    }
    else
    {
        printf("sorry you lost\n");
    }
    return 0;
}
嵌套结构:

if(表达式1)

 {

        if(表达式2)

        {

        代码段1;

        }

        else

        {

        代码段2;

        }

}

else

{

        代码段3;

}

        执行顺序:如果满足if中的表达式1则进入下面 if中表达式2进行判断,如果条件同时满足则执

行代码段1,如果不满足则执行代码段2,如果不满足if表达式1,则执行else中的代码段3中的代码

段n。

        例题:从终端输入一个学生的成绩,判断学生成绩,打印成绩级别用,嵌套结构锁定在0大100范围内再判断等级,否则打印错误提示。

#include <stdio.h>
int main()
{
    int s;
    printf("请输入学生成绩:\n");
    scanf("%d", &s);
    if (0 <= s && s <= 100)
    {
        if (90 <= s)
        {
            printf("该学生的成绩级别为:A\n");
        }
        else if (80 <= s)
        {
            printf("该学生的成绩级别为:B\n");
        }
        else if (70 <= s)
        {
            printf("该学生的成绩级别为:C\n");
        }
        else if (60 <= s)
        {
            printf("该学生的成绩级别为:D\n");
        }
        else
        {
            printf("sorry you lost\n");
        }
    }
    else
    {
        printf("请输入正确的成绩,范围为0-100\n");
    }
    return 0;
}

总结:

(1)首先判断表达式是否成立,如果成立就执行if下面的语句块,否则就执行else下面的语句块。

(2)if后面可以没有else, 但是else前面必须有if

(3)if和else以及else if后面如果只有一行语句可以省略花括号{}

1.2 switch-case

基本结构:

switch(变量或者表达式)

{

        case 常量1: 代码段1; break;

        case 常量2: 代码段2; break;

        case 常量3: 代码段3; break;

        ......

        case 常量n: 代码段n; break;

        default: 代码段n+1;

}

        执行顺序:先判断switch()中的条件是否满足以下的case,如果满足则执行满足的case中的语句块,如果都不满足则执行default中的默认语句块。

        注意:1.    表达式不能是浮点型或字符串

                   2.   如果case的语句块和下面case中的语句块相同,则可以省略。形式如下:
                        case 常量1:
                        case 常量2:语句块1;break;

遵守switch语句规则

        (1)只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他

类型,则必须使用if语句。

        (2)case标签必须是常量表达式,如42或者'4'。

        (3)case标签必须是唯一性的表达式,不允许两个case具有相同的值。

2.循环语句

2.1 for 循环

基本结构:

for(表达式1;表达式2;表达式3)
{
    代码段;
}

        表达式1:赋初值

        表达式2:判断的判断条件

        表达式3:增值或减值

        执行顺序:首先执行表达式1进行赋值,然后判断表达式2是否成立,如果成立就进入循环执行语句块,再执行表达式3进行增值或减值然后继续判断表达式2是否成立,直到表达式2不成立退出循环。

例题:1到10求和

#include <stdio.h>
int main()
{
    int sum=0;
    for (int i = 1; i <= 10; i++) 
    {
        sum += i; 
    }
    printf("%d\n", sum); 
    return 0;
}
 
嵌套结构:

for(表达式1;表达式2;表达式3)

 {

        for(表达式4;表达式5;表达式6)

        {

               代码段;

        }

}

例题:用for循环打印99乘法表

#include <stdio.h>
int main()
{
    for (int i = 1; i < 10; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf("%d*%d = %d\t", j, i, i * j);
        }
        printf("\n");
    }
    return 0;
}
变形:

例题:利用for循环打印所有的水仙花数

#include <stdio.h>
int main()
{
    int a, b, c;
    int m = 0;
    for (int i = 100; i < 1000; i++)
    {
        a = i % 10;
        b = i / 10 % 10;
        c = i / 100;
        if (i == ((a * a * a) + (b * b * b) + (c * c * c)))
        {
            printf("%d 为水仙花数\n", i);
            m++;
        }
    }
    printf("所以水仙花数一共有 %d 个\n", m);
    return 0;
}

例题:利用for循环打印输出:

#include <stdio.h>
int main()
{
    int n;
    printf("请输入要显示多少行* ");
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            printf("*");
        }
        printf("\n");
    }
    for (int i = 1; i <= n; i++)
    {
        for (int k = 1; k <= i - 1; k++)
        {
            printf(" ");
        }
        for (int j = 1; j <= n - i + 1; j++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

2.2 while循环

基本结构:

定义循环变量并赋值;
while(判断条件)
{
        代码段;
        增值或减值语句;
}

        执行顺序:首先定义循环变量并赋值,然后判断是否符合终止条件,如果符合就进入循环执行代码段及增值减值语句,然后继续判断,直到不成立退出循环。

2.3 do-while循环

基本结构:

定义循环变量并赋值;

do

{

        代码段;

        增减值语句;

}while(判断条件);

        执行顺序:首先定义循环变量并赋值,先执行代码段及增值减值语句,然后判断是否符合判断条件,然后进入循环继续执行代码段及增值减值语句,直到不成立退出循环。

do-while 和 while 的区别:

        1.执行顺序不同:do while先执行后判断,while先判断后执行。

        2.执行次数不同:do while至少会执行一次。

2.4死循环

        for( ; ; ;){ }

        while(1){ };

        while(1);

2.5.循环控制语句 break,continue,goto

(1)break

        直接结束循环

(2)continue

        结束本次循环,继续进行下一次循环

(3)goto

        强制跳转到标签位置,可以应用于多重循环嵌套(尽量不要使用)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值