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

来源:互联网 发布:恒生指数期货模拟软件 编辑:程序博客网 时间:2024/05/22 01:28

一、程序的三种基本结构
      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,操作数2char 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