我是靠谱客的博主 高兴玉米,最近开发中收集的这篇文章主要介绍C语言总结(语句、程序设计、循环、嵌套)第五、六章,程序流程设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言总结

  • 第五、六章,程序流程设计
    • C语句概述
    • 选择型程序设计
      • if语句(条件选择语句)
        • if语句的三种形式:
        • 语句嵌套
      • switch语句(开关分支语句)
      • 循环型程序设计
        • C语言可实现循环的语句:
        • goto语句
        • while语句
        • do~while语句
        • for语句
        • 循环的嵌套
      • 辅助控制语句
        • break语句
        • continue语句
      • 举例

第五、六章,程序流程设计

C语句概述

  • C语句: 以“;”作分隔符,编译后产生机器指令。
  • C语句分类:

(1)、操作运算语句: 即表达式语句,表达式加分号构成。

  • 赋值语句
  • 函数调用语句
  • 空语句:;
  • 复合表达式语句:即逗号表达式语句

(2)、程序控制语句(9种):
在这里插入图片描述
(3)、复合语句: 用 {…}括起来的一组语句

  • 一般形式:
    {
    [数据说明部分;]
    执行语句部分;
    }

说明:

  • “}”后不加分号
  • 语法上和单一语句相同
  • 复合语句可嵌套
  • 复合语句又称分程序

选择型程序设计

if语句(条件选择语句)

if语句的三种形式:

形式一:

  • 格式:
    在这里插入图片描述
  • 执行过程:
    在这里插入图片描述

形式二:

  • 格式:
    在这里插入图片描述

  • 执行过程:
    在这里插入图片描述

形式三:

  • 格式:
    在这里插入图片描述
  • 执行过程:
    在这里插入图片描述

语句嵌套

一般形式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

if ~ else 配对原则:缺省{ }时,else总是和它上面离它最近的未配对的if配对。
在这里插入图片描述
实现if ~ else 正确配对方法:加{ }

例 :if….else的配对

#include <stdio.h>
main()
{   int x,a=1,b=3,c=5,d=4;
    if(a<b)
    if(c<d) x=1;
    else
    if(a<c)
    if(b<d) x=2;
    else x=3;
    else x=6;
    else x=7;
    printf(“x=%dn”,x);
}

运行:x=2

规范的程序书写格式如下:

#include <stdio.h>
main()
{   int x,a=1,b=3,c=5,d=4;
    if(a<b)
        if(c<d) x=1;
        else
            if(a<c)
                if(b<d) x=2;
                else x=3;
            else x=6;
    else x=7;
    printf(“x=%dn”,x);
}

流程图:
在这里插入图片描述

switch语句(开关分支语句)

一般形式:
在这里插入图片描述
执行过程:
在这里插入图片描述
说明:

  • E1,E2,…En是常量表达式,且值必须互不相同
  • 语句标号作用,必须用break跳出
  • case后可包含多个可执行语句,且不必加{ }
  • switch可嵌套
  • 多个case可共用一组执行语句

示例: 以下程序当输入:2473 时,程序执行结果为何?

#include <stdio.h>
main()
{   int c;
    while((c=getchar())!=‘n’)
       switch(c-2)
         {  case 0:
             case 1:  putchar(c+4);
             case 2:  putchar(c+4); break;
             case 3:  putchar(c+3); 
             default : putchar(c+2); break;
         }
     printf(“n”);
}

输入:2473 回车确认
输出:668977

循环型程序设计

C语言可实现循环的语句:

  • 用goto 和 if 构成循环
  • while 语句
  • do ~ while 语句
  • for 语句

goto语句

goto语句一般格式:
在这里插入图片描述

功能: 无条件转移语句

说明:
(1)、不能用整数作标号
(2)、只能出现在goto所在函数内,且唯一
(3)、只能加在可执行语句前面
(4)、限制使用goto语句

while语句

一般形式:
在这里插入图片描述
执行流程:
在这里插入图片描述

特点: 先判断表达式,后执行循环体

说明:
(1)、循环体有可能一次也不执行
(2)、循环体可为任意类型语句
(3)、循环体如果包含一个以上的语句,应该以复合语句的形式出现
(4)、在循环体内应该有使循环趋向于结束的语句
(5)、下列情况,退出while循环

  • 条件表达式不成立(为零)
  • 循环体内遇break,return,goto

(6)、无限循环: while(1) 循环体;

示例:

#include <stdio.h>
main()
{   int i=0;
    while(i++<=1)
        printf(*%dn",i);
        printf(**%dn”,i);
 }
 
运行结果:
*1
*2
**3

do~while语句

一般形式:
在这里插入图片描述

执行流程:
在这里插入图片描述

特点: 先执行循环体,后判断表达式

说明:
(1)、至少执行一次循环体
(2)、do~while可转化成while结构
在这里插入图片描述
例 while和do~while比较:

#include <stdio.h>
main()
{   int i,sum=0;
    scanf("%d",&i);
    do
    {   sum+=i;
	i++;
    }while(i<=10);
    printf("%d",sum);
}
main()
{   int i,sum=0;
    scanf("%d",&i);
    while(i<=10)
    {   sum+=i;
	i++;
    }
    printf("%d",sum);
}

for语句

一般形式:
在这里插入图片描述

执行流程:
在这里插入图片描述
一般形式:
在这里插入图片描述

说明:

  • for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省
  • 无限循环: for( ;; )
  • for语句可以转换成while结构
    在这里插入图片描述

例:同一结果的多种表达方式

#include<stdio.h>
        main( )
        {    int i=0;
              for(i=0;i<10;i++)
                    putchar(‘a’+i);
         }
#include<stdio.h>
        main( )
        {    int i=0;
              for(;i<10;i++)
                    putchar(‘a’+i);
         }
#include<stdio.h>
        main( )
        {    int i=0;
              for(;i<10;)
                    putchar(‘a’+(i++));
         }
#include<stdio.h>
        main( )
        {    int i=0;
              for(;i<10;putchar(‘a’+i),i++)
                  ;
         }

在这里插入图片描述

循环的嵌套

  • 三种循环可互相嵌套,层数不限
  • 外层循环可包含两个以上内循环,但不能相互交叉
  • 嵌套循环的执行流程
  /*流程1*/
  while()
       {    ……
              while()
              {   ……
              }...
       }
  /*流程2*/
       do
       {    ……
              do
              {   ……
              }while( );...
       }while( );
  /*流程3*/
     while()
       {    ……
              do
              {   ……
              }while( );
       …….
       }
/*流程4*/
  for( ; ;)  /*外循环*/
       {    ……
              do  /*内循环*/
              {   ……
              }while();
          ……
            while() /*内循环*/
              {   ……
              }...
}

  • 嵌套循环的跳转

禁止:从外层跳入内层
跳入同层的另一循环向上跳转

示例:循环嵌套,输出九九表
在这里插入图片描述

#include <stdio.h>
main()
{   int i,j;
    for(i=1;i<10;i++)
       printf("%4d",i);
    printf("n---------------------------------------n");
    for(i=1;i<10;i++)
       for(j=1;j<10;j++)
	   printf((j==9)?"%4dn":"%4d",i*j);
}

辅助控制语句

break语句

功能: 在循环语句和switch语句中,终止并跳出循环体或开关体。

说明:
(1)、break只能终止并跳出最近一层的结构
(2)、break不能用于循环语句和switch语句之外的任何其它语句之中

结构流程:
在这里插入图片描述

在这里插入图片描述

continue语句

功能: 结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。仅用于循环语句中。

结构流程:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

举例

示例1:求输入的十个整数中正数的个数及其平均值

/*示例1*/
#include <stdio.h>
main()
{    int i,num=0,a;
     float sum=0;
     for(i=0;i<10;i++)
     {  scanf("%d",&a);
	if(a<=0)  continue;
	num++;
	sum+=a;
     }
     printf("%d plus integer's sum :%6.0fn",num,sum);
     printf("Mean value:%6.2fn",sum/num);
}

示例2:求Fibonacci数列:1,1,2,3,5,8,……的前40个数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/*示例2*/
#include <stdio.h>
main()
{    long int f1,f2;
     int i;
     f1=1;  f2=1;
     for(i=1;i<=20;i++)
     {   printf("%12ld  %12ld  ",f1,f2);
	 if(i%2==0)  printf("n");
	 f1=f1+f2;
	 f2=f2+f1;
     }
}

示例3:判断m是否素数
在这里插入图片描述

/*示例3*/
#include <stdio.h>
#include <math.h>
main()
{   int m,i,k;
    scanf("%d",&m);
    k=sqrt(m);
    for(i=2;i<=k;i++)
      if(m%i==0)  break;
    if(i>=k+1)  printf("%d is a prime numbern",m);
    else   printf("%d is not a prime numbern",m);
}

示例4:打印100以内个位数为6且能被3整除的所有数。

#include<stdio.h>
    main ( )     
     { int i,j;
            for (i=0; i<10; i++)
            {  j=i*10+6;
               if  (j%3!=0)  continue;
               printf(%d   ”,j);
             }  
       } 

最后

以上就是高兴玉米为你收集整理的C语言总结(语句、程序设计、循环、嵌套)第五、六章,程序流程设计的全部内容,希望文章能够帮你解决C语言总结(语句、程序设计、循环、嵌套)第五、六章,程序流程设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部