概述
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语言总结(语句、程序设计、循环、嵌套)第五、六章,程序流程设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复