【C语言】第三篇·基本程序结构


一、程序的三种基本结构
      1. 顺序结构:程序自上而下顺序执行
       2.选择结构:程序中出现多个选择,但只能选择一种。例如:if、switch
       3.循环结构:根据条件程序重复执行某一段代码。例如:while、for

二、if语句
       1.语句格式
          1)if(表达式) 语句。例如:if(x>y)x=1;
          2)if(表达式) 语句1 ; else 语句2;
          3)if(表达式1) 语句1; else if(表达式2)语句2; else 语句3;
       2.if语句可以嵌套使用
       3.实例程序

#include <stdio.h> int main(){ int a; float score; //成绩 char grade; //成绩的等级 printf("请输入一个成绩:"); scanf("%f",&score); if(score>100 || score<0){ printf("输入数据不合法!\n合法范围:0<=成绩<=100\n"); return 0; //退出 } a=score/10; //将一个成绩隐式转换为小于10的整数 switch(a){ case 10: grade='A';break; case 9: grade='A';break; case 8: grade='B';break; case 7: grade='C';break; case 6: grade='D';break; default: grade='E';break; } printf("成绩等级为:%c\n",grade); }


 三、switch语句     
   1. 语句格式
      switch(表达式){
        case整型常量表达式:语句1;break;
        case整型常量表达式2:语句2;break;
        ...

       default:
         //所有的case都不满足的时候,执行default
       }

    2.语句穿透问题:当在某一个case后面,不用break的时候会产生穿透现象,即:继续执行后面的case语句。
     3.程序示例
程序一:点餐

#include <stdio.h> void main() { int a; //需要选择的序号 char *ch; printf("1.米饭 2.牛肉面 3.盖浇饭 4.刀削面\n请输入你的选择:"); scanf("%d",&a); switch(a){ case 1: ch="米饭"; break; case 2: ch="牛肉面";break; case 3: ch="盖浇饭";break; case 4: ch="刀削面";break; default: ch="不存在"; break; } printf("你的选择:%s\n",ch); }


程序二:计算器

#include <stdio.h> int main(){ float oprd1,oprd2,result=0; //操作数1,操作数2 char op='p'; //运算符 printf("请输入你需要的运算:"); scanf("%f%c%f",&oprd1,&op,&oprd2); printf("你的操作为:%f %c %f=\n",oprd1,op,oprd2); switch(op){ case '+': result = oprd1 + oprd2;break; case '-': result = oprd1 - oprd2;break; case '*': result = oprd1 * oprd2;break; case '/': result = oprd1 / oprd2;break; default: printf("你输入的运算符不合法!\n"); return 0; } printf("运算结果:%f %c %f =%f\n",oprd1,op,oprd2,result); return 0; }



四、while和do while循环语句
    1.语句形式:
       while(表达式) 语句;
       do(表达式) while(语句);
   2.两个语句区别:
      while表达式为真执行语句,反之跳出循环,向下执行。
      do while先执行语句,在判断表达式的真假。
   3.实例程序:
程序一:统计键盘输入字符个数

#include < stdio.h> void main(){ int count=0; // 统计键盘输入字符个数 char ch; scanf("%c",&ch); while(ch != '\n'){ ++count; scanf("%c",&ch); } printf("键盘输入的字符的个数为:%d\n",count); }



 
程序二:控制游戏方向

/* w.向上 a.向左 s.向下 d.向右 使用while()一直扫描键盘的状态 用switch() 输出控制状态 */ #include <stdio.h> void main(){ char direction; //用户输入的方向 printf("请控制小人运行方向:"); scanf("%c",&direction); while(direction != 'q'){ switch(direction){ case 'w': case 'W':printf("向上\n");break; case 's': case 'S':printf("向下\n");break; case 'a': case 'A':printf("向左\n");break; case 'd': case 'D':printf("向右\n");break; } scanf("%c",&direction); } }


五、for语句

   1.表达形式:

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

    2.for语句循环过程


    3. for语句可以嵌套,也可以省略部分表达式。

    4.示例程序

程序一:打印图形

#include <stdio.h> void main(){ int i,j; //打印正三角形 for(i=0;i<5;i++){ for(j=0;j<i+1;j++){ printf("* "); } printf("\n"); } printf("\n\n"); //打印倒三角形 for(i=0;i<5;i++){ for(j=0;j<6-i;j++) { printf("* "); } printf("\n"); } printf("\n"); //打印斜三角形 for(i=0;i<5;i++){ for(j=0;j<i+1;j++) { printf("* "); } printf("\n"); } for(i=0;i<4;i++){ for(j=1;j<5-i;j++) { printf("* "); } printf("\n"); } }



 

程序二:打印九九乘法表

#include <stdio.h> void main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<i+1;j++){ /* 注意事项:||运算的时候必须要加括号,或者i==3为真之后, 后面的逻辑值将不再继续运算,整个逻辑表达式为真 ||运算符短路问题 */ if((i==3 || i==4) && j==3) printf(" %d*%d=%d ",j,i,i*j); //乘法表对齐 else printf("%d*%d=%d ",j,i,i*j); } printf("\n"); } }




六、break和continue区别
      continue语句:结束本次的循环,而不是终止整个的执行,接着进行下一次是否执行循环的判定。 
      break语句:结束整个循环过程,不再判断执行循环的条件是否成立。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值