头图

1、单分支结构

if语句格式
if(表达式) 语句
执行描述:
其中表达式可以是任意表达式,语句可以是一条语句,也可以是复合语句,执行过程,先判断表达式是否为真,如果为真,那么执行语句,如果为假,那么跳过语句执行后面的程序。
流程图:

例题

编程实现,输入C语言课程的成绩 如果大于等于60分,则输出"成绩"。
算法设计:
1.定义一个成绩变量;
2.输入成绩;
3.如果成绩大于等于60分,则输出"成绩及格"
流程图:

语句编写:

#include<stdio.h>
int main()
{
    int score;
    scanf("%d",&score);
    if(score>=60)
    printf("C语言成绩及格\n");
    return 0;
}

输入:66 运行结果:
微信图片_20230204184431.jpg

例题2

编程实现,输入两个整数,将这两个数按照从小到大的顺序输出。
算法设计:
1.定义三个变量,其中一个用于交换;
2.输入两个整数;
3.如果第一个数大于第二个数,则交换;
4.输出两个整数;
语句编写:

#include<stdio.h>
int main()
{
    int a,b,t;
    scanf("%d%d",&a,&b);
    if(a>b)
    {
    t=a;a=b;b=t;
    }
    printf("a=%d,b=%d\n",a,b);
    return 0;
}

输入:3 2 运行结果
微信图片_20230204184550.jpg

2、双分支结构

if...else...语句格式:

if(表达式)

语句1

else

语句2
流程图:

执行描述:
其中表达式可以是任意表达式,语句1和语句2可以是一条语句,也可以是复合语句。执行中先判断表达式是否为真,如果为真,那么执行行语句1,如果为假,那么执行语句2,语句1和语句2 只能执行其中一个。
例题

编程实现,输入一个整数,判断是奇数还是偶数。
算法设计:
1.定义一个整型变量
2.输入一个整数
3.如果该整数除2取余等于0,则输出该数是偶数,否则输出该数是奇数。
流程图:


语句编写:

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n%2==0)
    printf("该数是偶数\n");
    else
    printf("该数是奇数\n");
    return 0;
}

输入:215 运行结果

微信图片_20230204190854.jpg

例题2

编程实现:输入一个密码,判断这个密码是否正确。
算法设计:
1.定义一个整型变量
2.输入一个密码
3.如果该密码属于设定密码,则输出 "密码确定,登录成功!" 否则输出 "密码错误,无法登录!"
流程图:

语句编写:

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if(a=123456)
    printf("密码正确,登录成功!\n");
    else
    printf("密码错误,无法登录\n");
    return 0;
}

输入:123456 运行结果:

微信图片_20230204191238.jpg

3、多分支结构

语句格式

if(表达式1)
语句1
else if(表达式2)
语句2
...
else if (表达式n)
语句n
else
语句n+1

执行描述:
其中表达式可以是任意表达式,语句可以是 条语句,也可以是复合语句。执行过程:先判所
表达式1如果为真,那么执行语句1,否则判困新表达式2如果为真,那么执行语句2,…否则判断表达式n如果为真,那么执行语句n;否则执行语句n+1。语句1、语句2.….语句n和语句n+1只能执行其中一个。
流程图

例题:

编程实现,输入顾客购买商品的消费总额,输出顾客实际付款金额,某商场打折活动,具体细则如下:
(1)购买商品总额超过10000元(含10000元),打5折。
(2)购买商品总额超过8000元(含8000元),打6折。
(3)购买商品总额超过5000元(含5000元),打7折。
(4)购买商品总额超过3000元(含3000元),打8折。
(5)购买商品总额超过1000元(含1000元),打9折。
(6)购买商品总额小于1000元不打折。
算法设计:
1.定义两个实现变量
2.输入顾客购买商品的消费总额
3.利用多分支结构判断条件,执行相应语句
4.输出顾客实际付款金额
流程图

语句编写:

#include<stdio.h>
int main()
{
    float Amount,ActualAmount;
    scanf("%f",&Amount);
    if(Amount>=10000)
       ActualAmount=Amount*0.5;
    else if(Amount>=8000)
       ActualAmount=Amount*0.6;
    else if(Amount>=5000)
       ActualAmount=Amount*0.7;
    else if(Amount>=3000)
       ActualAmount=Amount*0.8;
    else if(Amount>=1000)
       ActualAmount=Amount*0.9;
    else 
       ActualAmount=Amount;
    printf("付款金额%f元\n",ActualAmount);
    return 0;
}

输入:5000 运行结果

微信图片_20230204193715.jpg

if...eles嵌套语句的格式:

if(表达式1)
if(表达式2)

 语句1

else

 语句2

else
if(表达式3)

 语句3

else

语句4
执行描述:
其中表达式可以是任意表达式,语句可以是一条英语句,也可以是复合语句。执行过程:如果表达式1为真,继续判断表达式2如果为真,那么抉执行语句1;如果表达式1为真,表达式2为假,那么执行语句2;如果表达式1为假,继续判断表表达式3如果为真,那么执行语句3;如果表达式1为假,表达式3为假,那么执行语句4。
例题

编程实现,输入一个点的x和y的坐标,输出改点属于哪个象限。
算法设计:
1.定义两个整型变量
2.输入两个整数
3.利用嵌套语句判断横坐标和纵坐标的大小
4.输出象限
语句编写:

#include<stdio.h>
int main()
{
    int x,y;
    scanf("%d%d",&x,&y);
    if(x>0)
      if(y>0)
        printf("该点属于第一象限!\n");
      else
        printf("该点属于第四象限!\n");
    else
      if(y>0)
        printf("该点属于第二象限!\n");
      else
        printf("该点属于第三象限!\n");
      
    return 0;
}

输入:20 –30 运行结果

微信图片_20230204193807.jpg

switch语句的格式:

switch(表达式)
{
case 常量表达式1:语句体1;[ break; ]
case 常量表达式2:语句体2;[break; ]

   ......

case 常量表达式n:语句体n;[break; ] default: 语句体n+1;
}

执行描述:
先计算表达式的值,然后依次与每一个case中的常量表达式的值进行比较,若有相等的,则从该case开始依次往下执行,若没有相等的,则从de fault开始往下执行。执行过程中遇到break语句就跳出该swtich语句,否则一直按顺序继续执行行下去,也就是会执行其它case 后面的语句,直到遇到“}”符号才停止。
例题

编程实现,输入考试成绩,其中90-100分属于A级别,80-89分属于B级别,70-79分属 于C级别,60-69分属于
D级别,低于60分属于E级别,将成绩转化为相应五级制级别并输出。
语句编写:

#include<stdio.h>
int main()
{
    int score;
    scanf("%d",&score);
    if (score>90 && score<=100)
       printf("A\n");
    else if (score>80 && score<=89)
       printf("B\n");
    else if (score>70 && score<=79)
       printf("C\n");
    else if (score>60 && score<=69)
       printf("D\n");
    else if (score>0 && score<=60)
       printf("E\n");
    else 
       printf("错误输入!\n");
    return 0;
}

输入:66 运行结果:

微信图片_20230204193912.jpg


菜鸟明轩
1 声望0 粉丝

C/C++ 领域资深者