我是靠谱客的博主 高兴玉米,这篇文章主要介绍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的配对

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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 时,程序执行结果为何?

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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) 循环体;

示例:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
#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比较:

复制代码
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h> main() { int i,sum=0; scanf("%d",&i); do { sum+=i; i++; }while(i<=10); printf("%d",sum); }
复制代码
1
2
3
4
5
6
7
8
9
10
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结构
    在这里插入图片描述

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

复制代码
1
2
3
4
5
6
7
#include<stdio.h> main( ) { int i=0; for(i=0;i<10;i++) putchar(‘a’+i); }
复制代码
1
2
3
4
5
6
7
#include<stdio.h> main( ) { int i=0; for(;i<10;i++) putchar(‘a’+i); }
复制代码
1
2
3
4
5
6
7
#include<stdio.h> main( ) { int i=0; for(;i<10;) putchar(‘a’+(i++)); }
复制代码
1
2
3
4
5
6
7
#include<stdio.h> main( ) { int i=0; for(;i<10;putchar(‘a’+i),i++) ; }

在这里插入图片描述

循环的嵌套

  • 三种循环可互相嵌套,层数不限
  • 外层循环可包含两个以上内循环,但不能相互交叉
  • 嵌套循环的执行流程
复制代码
1
2
3
4
5
6
7
8
9
/*流程1*/ while() { …… while() { …… }... }
复制代码
1
2
3
4
5
6
7
8
9
/*流程2*/ do { …… do { …… }while( );... }while( );
复制代码
1
2
3
4
5
6
7
8
9
/*流程3*/ while() { …… do { …… }while( ); ……. }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*流程4*/ for( ; ;) /*外循环*/ { …… do /*内循环*/ { …… }while(); …… while() /*内循环*/ { …… }... }
  • 嵌套循环的跳转

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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
#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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*示例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个数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*示例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是否素数
在这里插入图片描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
/*示例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整除的所有数。

复制代码
1
2
3
4
5
6
7
8
9
10
#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语言总结(语句、程序设计、循环、嵌套)第五、六章内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部