第四章c程序流程设计

合集下载

计算机二级 C语言第四章-第五章

计算机二级 C语言第四章-第五章

逻辑或
逻辑非
“&&”和“ ||”是双目运算符 “!”是单目运算符
C语言程序设计
第五章 选择结构程序设计
逻辑运算真值表
a 真 b 真 !a 假 !b 假 a&&b 真 a||b 真
真 假 假
假 真 假
假 真 真
真 假 真
假 假 假
真 真 假
逻辑运算符的优先次序 !(非) , &&(与),
优先次序:高(2) 结合方向:从右向左 (11) 从左向右
4.00, c=
6.00 s=
6.50
C语言程序设计
第四章 顺序程序设计
例4.11 从键盘输入大写字母,用小写字母输出
#include "stdio.h" void main() { char c1,c2; c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); }
值为0 值为1 值为1 值为1 值为1 //(5>3)&&2||(8<(4-(!0))) 值为1 值为1
C语言程序设计
第五章 选择结构程序设计
复杂逻辑条件的表述
判断某一年year是否为闰年
判别闰年的条件(int year): 能被4整除: year%4==0 能被4整除但不能被100整除: (year%4==0)&&(year%100!=0) 能被400整除: year%400==0 综合起来: ((year%4==0)&&(year%100!=0))||year%400==0 优化语句: 此表达式为真时是闰年 (year%4==0&&year%100!=0)||year%400==0

C语言程序设计第4章

C语言程序设计第4章
16
4.2.2 逻辑表达式
例:设a=3,b=4,x=0,y=0,求值: 结果:0 1、a < b && x > y 结果:1 2、a = = b || x = = y 3、! a || a > b 结果:0 4、! a && b || x > y 结果:0 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) k为0 ,m为0, n为2
当尝试对该程序进行编译时,C语言编译器会报告 "illegal else without matching if"的语法错误。 28
4.3.4使用if语句应注意的问题
void main() { int x; x=1; if(x==1) printf("x等于1\n"); else ; /*这里多加了个分号*/ printf("x不等于1\n"); }
if(表达式) 语句1 else 语句2
真 表达式 语句1 语句2 假

如果括号内的表达式为真,则执行括号后面的 语句1。如果表达式值为假,则执行else后面的 语句2;语句1和语句2只能有一个被执行。
21
4.3.2 else子句
【例4-2】输入两个整数,将较大者输出。 /*程序4-2*/ #include<stdio.h> void main () { int a, b, max; printf("Please input the data a and b:"); scanf("%d, %d",&a, &b); if(a>=b) max=a; else max=b; printf("The max is %d\n", max); }

C语言第四章.选择结构程序设计

C语言第四章.选择结构程序设计

case 常量表达式n: 语句n; default : 语句n+1; }
语句的执行过程:
先计算表达式的值,并逐个与其后的常量表达式值相 比较; 当表达式的值与某个常量表达式的值相等时,即执行
其后的语句;
然后不再进行判断,继续执行后面所有case后的语句;
如表达式的值与所有case后的常量表达式均不相同时,
a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b)
2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”
来表示。
反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”。
3)逻辑运算的规则:
(1)与运算&&
条件运算符和条件表达式
条件表达式通常用于赋值语句之中。 例如条件语句:
if(a>b) max=a;
else max=b; 可用条件表达式写为 max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a 赋予max, 否则把b 赋予max。
注意以下几点:
条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。 因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
注意:
(3) 在if 语句的三种形式中,所有的语句应为单个语句,
如果要想在满足条件时执行一组(多个)语句,则必须
把这一组语句用{ } 括起来组成一个复合语句。 例如:交换两个变量 if (a>b) { t= a; a=b; b=t; }

湖南省C语言(上)教案:第四章分支结构程序设计(高教版).doc

湖南省C语言(上)教案:第四章分支结构程序设计(高教版).doc

第四章分支结构程序设计分支程序设计章节练习题四、选择题1.若x=0,y=3,z=3,以下表达式值为0的是A. !xB.x<y? 1:0C. x%2&&y==zD. y=x||z/32.以下运算符中优先级最低的运算符为 ,优先级最高的为。

A. &&B. !C. !=D. ||E. ?:F. ==3.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的结果为。

A. 4B. 3C. 2D. 14.若w,x,z均为int型变量,则执行以下语句后的输出为。

w=3;z=7;x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",!w>z);printf("%d\n",w&&z);A. 0B. 1C. 0D. 01 1 1 11 1 0 01 1 1 05.分析以下程序, 下列说法正确的是。

main(){ int x=5,a=0,b=3;if(x=a+b) printf("* * * *\n");else printf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #6.分析以下程序, 下列说法正确的是。

main(){ int x=0,a=0,b=0;if(x=a+b) printf("* * * *\n");else printf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #7.分析以下程序, 下列说法正确的是。

C语言程序设计-第四章简单计算器小程序-分支程序设计

C语言程序设计-第四章简单计算器小程序-分支程序设计

P1 逻辑运算符 P2

逻辑运算符 P2
课堂练习: 求下面逻辑表达式的值: 2>1 && 4 && 7<3+!0
值为0
等价于((2>1)&&4)&&(7<(3+(!
1 条件运算符和条件表达式 1.2 逻辑运算—逻辑运算的重要规则
a&&b:当a为0时,不管b为何值,结果为0
课堂练习:有下面定义的语句和逻辑表达式: int a=0,b=10,c=0,d=0 a && b && (c=a+10,d=100) 逻辑表达式执行后,a,b,c,d的值各为多少?
任务实现效果演示 例题源代码:switchcalculator.c
相关知识 1. switch语句 2. break语句
1 switch多分支选择结构
❖ 尽管用if…else if结构可以实现多分支,注但意当:分常支量较表多达时式,必程须序是结整构型较、复字杂符。型或枚举类型,不能是 实型表达式,每个case关键字后的常量表达式应互不相同
值为0 等价于i==(k>j),值为1
1 条件运算符和条件表达式 1.2 逻辑运算—逻辑运算符与逻辑表达式
&&(逻辑与)、||(逻辑或)、!(逻辑非)(单目)
逻辑表达式的一般形式:
优先级: 1.由低到高: ||→ && → !; 2.多种运算符一起: = →|| →&& →关系运算符 →算术运算符→ !。
【】 简单计算器小程序:由用户输入运算数和四则运算符(+、-、*、/),输出计算结果。
【】

C程序设计题目集答案之第4章

C程序设计题目集答案之第4章

第四章判断题1-1continue 不是结束本次循环,而是终止整个循环的执行。

(1分)T F1-2do-while循环的while后的分号可以省略。

(1分)T F1-3do-while循环至少要执行一次循环语句。

(1分)T F1-4C语言的三种循环不可以互相嵌套。

(1分)T F1-5continue 只能用于循环体中。

(1分)T F在多层循环中, 一个break语句只向外跳一层。

(1分)T F1-7do - while语句的一般形式如下,其中的循环体语句至少执行一次。

(1分)T F1-8在嵌套循环(多层循环)中, 每一层循环都应该使用自己的循环变量,以免互相干扰。

(1分)T F1-9while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了。

(1分)T F在循环中使用break语句或者continue语句,其作用是相同的。

(1分)T F选择题答案BCDCD CCCBC2-1The following piece of code prints out__. (2分)A. 2 3 1B.-1C. 1 2 0D.32-2A.15B.9C.6D.52-3A.15B.10C.9D.62-4The following code fragment prints out __. (2分)A.B.C.D.2-5A.15B.10C.9D.62-6A.8B.9C.10D.112-7若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足()。

(2分)A.item的绝对值小于0.0001B.item的绝对值大于0.0001C.item的绝对值大于等于0.0001D.item的绝对值小于等于0.00012-8设有程序段则下面描述中正确的是()。

(2分)A.B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2-9下面的这个循环的循环次数是()。

(2分)A.语法错误,不能执行B.无限次C.10D.12-10对下列代码的描述:正确的是:(2分)A.程序有编译错误,不能执行B.循环条件永为真,循环无限次,程序根本停不下来,打印输出无限行C.循环有限次,程序正常结束,打印输出有限行D.程序运行过程必定会出错(崩溃),结果打印输出有限行。

《C语言程序设计课件》第四章-数组

《C语言程序设计课件》第四章-数组
提示:程序在读入数时将其存储在一个数组中, 然后通过数组反向开始一个接一个地显示出数组 元素。
#include <stdio.h> #define N 10 int main(void)
{ int a[N], i; printf("Enter %d numbers: ", N);
for (i = 0; i < N; i++)
for(i=0;i<1;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
a[0]
20
a[1]
02
a[2]
44
a[3]
55
a[4]
88
a[5]
99
for(i=0;i<5;i++) if (a[i]>a[i+1]) { ……}
for(i=0;i<4;i++) if (a[i]>a[i+1]) { ……}
4.2 一维数组
一维数组主要用来存储一组类型相同并且数量一定 的数据。其中,每个数据称为数组的一个元素。
4.2.1 一维数组定义 一维数组的定义形式如下: 类型名 数组名[常量表达式]; int x[100]; char string[10]; double data[10];
常量表达式给出了数组的长度,在C语 言中定义数组时必须确定数组的长度。
600
xxx[[[654]]]
700
xxx[[[765]]]
800
xxx[[[876]]]
900
xxx[[[987]]]

C语言程序设计第四章 选择结构程序设计

C语言程序设计第四章 选择结构程序设计

辑量。
Page 4
4.1 逻辑量
逻辑表达式 1.逻辑运算符 逻辑运算符有以下3种:&&(逻辑与)、||(逻辑或)、!(逻辑非) “&&”和“||”是双目运算符,“!”是单目运算符,逻辑运算的运算对 象是逻辑量。其中“!”的优先级别高于“&&”,“&&”的优先级高于
“||”。“&&”和“||”是左结合运算符,“!”是右结合运算符。
Page 6
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ① “&&”运算的短路规则。 例如:a&&b
当左目a为逻辑假时,有当左目a为逻辑真时,才运算右目b。
Page 7
4.1 逻辑量
逻辑运算的短路 2.逻辑表达式 &&”和“||”在运算时,存在运算的短路。 ②“||”运算的短路规则。 例如:a||b
逗号运算符高,结合性为右结合。
Page 12
4.2 if语句
条件表达式 2.条件表达式 用条件运算符将运算对象连接起来的符合C语言规则的表达式称为条 件表达式。 条件表达式的运算过程为:先判断第1目逻辑量,如果逻辑量为真,
选取第2目的结果作为整个表达式的值,否则选取第3目结果作为整个
表达式的值。 条件表达式中存在类型的自动转换,条件表达式的值的类型是第2目
立的表达式对待。
Page 14
4.2 if语句
if语句的嵌套 从if语句的格式来看,if( )~else只能解决双分支问题。如果要解决多 分支问题,则需使用if语句的嵌套。 例如多分支函数:
1 x0 y= 0 x 0 1 x 0

《C程序设计》作业参考答案(1-4章)

《C程序设计》作业参考答案(1-4章)

第1章C语言概述习题(P13):1.3 写出一个C程序的构成。

答:C程序由一个main函数和0个或多个自定义函数构成,每个函数的构成如下:函数类型函数名(函数参数列表){说明部分执行部分}1.4 C语言以函数为程序的基本单位,有什么好处?答:一个函数实现一个相对独立的功能,便于实现程序的模块化。

1.5 请参照本章例题,编写一个C程序,输出以下信息:*************************************************Very good!*************************************************答:参照例1.1编程如下# include <stdio.h>void main(){printf("********************************************\n");printf(" Very good!\n");printf("********************************************\n");}1.6 编写一个C程序,输入a、b、c 3个值,输出其中最大者。

答:参照例1.3编程如下法一:修改例1.3的主函数,自定义max函数不变。

# include <stdio.h>void main(){int max(int x,int y); /*函数声明*/int a,b,c,m; /*定义4个变量,m用于存放最大值*/scanf("%d%d%d",&a,&b,&c);/*从键盘上输入3个整数*/m=max(a,b); /*第一次调用max函数求出前两个数的最大值放在m中*/m=max(m,c); /*再调max函数求出m和第三个数的最大数*/printf("max is %d\n",m); /*输出结果*/}int max(int x,int y) /*定义求两个数的最大数的函数max */{int z;if(x>y) z=x;else z=y;return(z);}法二:修改例1.3的主函数和max函数,将max函数改为求3个数的最大数。

《C语言程序设计课件》第四章-循环语句

《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)

高树芳C语言程序设计--第四章

高树芳C语言程序设计--第四章
37
4.5 switch语句
案例4-10 计算成绩级别 案例4-11 根据月份求季度 案例4-12 输入算式做四则运算
38
4.5 switch语句
案例4-10 [案例任务]
计算成绩级别
输入百分制成绩,输出成绩级别A、B、C、D、E。 90~100分以上为A,80~89分为B,70~79为C, 60~69为D,0~59为E,其他成绩则显示“成绩 错误!”。
26
4.4
if语句
4.4.3多分支
案例4-7 用多分支求解分段函数
27
4.4
if语句
4.4.3多分支
案例4-7 用多分支求解分段函数
[案例任务]
对于如下函数: 用scanf函数输入x的值,输出y的值。 运行结果如下(输入的数据是9)
[解决方案]使用if „ else if„else语句。
28
4.4
分析下列程序的运行结果,掌握“与”、 “或”、“非”三个逻辑运算符及其优先级。
程序代码
11
4.3 逻辑运算符和逻辑表达式
相关知识: 1.逻辑运算符及其优先级 2. 逻辑表达式 3. 逻辑表达式的优先级与结合性
12
4.3 逻辑运算符和逻辑表达式
案例4-4 [案例任务]
逻辑运算中的“短路”现象
分析下列程序的运行结果,掌握多个运算对象 进行“与”、“或”情况下的“短路”现象。
22
4.4
if语句
4.4.2双分支
案例4-6 求两个数中的最大者
23
4.4
if语句
4.4.2双分支
案例4-6 求两个数中的最大者
[案例任务]
由键盘输入两个整数,输出它们中的最大 者。运行结果如下:

C语言程序设计第四章

C语言程序设计第四章

运行情况: 1989↙ 1989is not a leap year.
2000↙
2000 is a leap year.
C程序设计
第五章
选择结构程序设计
例4.6 求
2 ax bx c 0 方程的解
#include "stdio.h" #include "math.h" main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if (fabs(a)<=1e-6) printf("is not a quadratic"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }

c语言 第四章 选择结构课件

c语言 第四章 选择结构课件

if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)

《c语言程序设计教学资料》第4章---键盘输入与屏幕输出

《c语言程序设计教学资料》第4章---键盘输入与屏幕输出
%m.ne printf(”%13.2e”,123.456); 输出: 1.23e+002 (前面有4个空格)
编辑ppt
编辑ppt
格式化输出
例: m.n 例:int a=1234; float f=123.456; char ch=‘a’; printf(“%8d\n%2d\n”,a,a); printf(“%f\n%8f\n%8.1f\n%.2f\n%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch);
float f=123.456; printf(“%f\n%10f\n%10.2f\n%.2f\n%-10.2f\n”,f,f,f,f ,f ); }
编辑ppt
%e格式符
指定以指数形式输出实数 VC++给出小数位数为6位
指数部分占5列 小数点前必须有而且只有1位非零数字 printf(”%e”,123.456); 输出:1.234560 e+002
补空格。
编辑ppt
输出实数时的有效位数。
#include <stdio.h> void main() { float x,y;
x=111111.111; y=222222.222; printf(″%f″,x+y); }
编辑ppt
例4.8 输出实数时指定小数位数。
#include <stdio.h> void main() {
有以下几种用法:
① %f。不指定字段宽度,由系统自动指定字段宽度,使整数
部分全部输出,并输出6位小数。应当注意,在输出的数字中
并非全部数字都是有效数字。单精度实数的有效位数一般为7位。
②%m.nf。指定输出的数据共占m列,其中有n位小数。如果

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案完整版教学设计第一章:C语言概述1.1 教学目标让学生了解C语言的历史背景和发展趋势。

让学生掌握C语言的特点和基本语法。

让学生了解C语言的应用领域。

1.2 教学内容C语言的历史背景和发展趋势。

C语言的特点:简洁、高效、灵活、跨平台。

C语言的基本语法:变量、数据类型、运算符、表达式。

C语言的应用领域:操作系统、嵌入式系统、游戏开发等。

1.3 教学方法采用讲解和案例相结合的方式,让学生了解C语言的历史背景和发展趋势。

通过举例和练习,让学生掌握C语言的基本语法和特点。

通过实际案例和项目,让学生了解C语言的应用领域。

1.4 教学评估通过课堂提问和讨论,了解学生对C语言的认知程度。

通过课后练习和项目,评估学生对C语言基本语法的掌握情况。

第二章:数据类型、运算符和表达式2.1 教学目标让学生掌握C语言的数据类型:整型、浮点型、字符型等。

让学生掌握C语言的运算符:算术运算符、关系运算符、逻辑运算符等。

让学生掌握C语言的表达式:赋值表达式、逻辑表达式、算术表达式等。

2.2 教学内容C语言的数据类型:整型、浮点型、字符型等。

C语言的运算符:算术运算符、关系运算符、逻辑运算符等。

C语言的表达式:赋值表达式、逻辑表达式、算术表达式等。

2.3 教学方法通过讲解和案例相结合的方式,让学生掌握C语言的数据类型。

通过举例和练习,让学生掌握C语言的运算符和表达式。

2.4 教学评估通过课堂提问和讨论,了解学生对C语言数据类型的认知程度。

通过课后练习和项目,评估学生对C语言运算符和表达式的掌握情况。

第三章:控制语句3.1 教学目标让学生掌握C语言的控制语句:条件语句、循环语句等。

3.2 教学内容C语言的控制语句:条件语句、循环语句等。

3.3 教学方法通过讲解和案例相结合的方式,让学生掌握C语言的控制语句。

3.4 教学评估通过课堂提问和讨论,了解学生对C语言控制语句的认知程度。

通过课后练习和项目,评估学生对C语言控制语句的掌握情况。

c语言详解(第五版)第四章程序设计项目答案

c语言详解(第五版)第四章程序设计项目答案

C语言详解(第五版)第四章程序设计项目答案1.Keith的Sheet Music需要一个程序来实现其为音乐教师定制的折扣政策。

程序提示用户输入购买总额并且表明购买者是不是教师。

#include<stdio.h>#include<stdlib.h>#define discount_1 0.12#define discount_2 0.1#define tax_rate 0.05void instruct_purchase(void);double total(double total_purchase,char a[1]);int main(void){void instruct_purchase(void);double total(double,char);double total_purchase,total_payment,total1;char a;instruct_purchase();printf("Please enter the creer teacher(enter t) or not(enter n).>>>\n");scanf("%c",&a);printf("Please enter the total purchase.>>>\n");scanf("%lf",&total_purchase);total1=total(total_purchase,a);printf("The total payment is %.2f.",total1);system("pause");return(0);}void instruct_purchase(void){printf("This program figure a total bill.");printf("The tax rate is $%.2f.\n",tax_rate);printf("The discount of total purchase which is more than 100 dollars is $%.2f.\n",discount_1); printf("The discount of total purchase which is less than 100 dollars is $%.2f.\n",discount_2); printf("Please press <return> or <enter> button after typing in each number.\n\n\n");}double total(double total_purchase,char a){double discount_total,total_payment,tax;if(a=='t')if(total_purchase>100){discount_total=total_purchase*discount_1;tax=total_purchase*tax_rate;total_payment=total_purchase+tax-discount_total;}else{discount_total=total_purchase*discount_2;tax=total_purchase*tax_rate;total_payment=total_purchase+tax-discount_total;}else{ tax=total_purchase*tax_rate;total_payment=total_purchase+tax;}return(total_payment);}3.罗盘的度数换算为罗盘的方位。

第4章c语言的三种基本结构

第4章c语言的三种基本结构

程序1: /*exp51.c*/ #include <stdio.h> main ( ) { int x, y;
scanf(“%d", &x); if (x<0)
y= -1; else if (x==0)
y=0; else
y=1; printf ("x=%d, y=%d\n", x, y); }
程序2:将程序1的if语句改为: /*exp52.c*/ #include <stdio.h> main ( ) { int x, y; scanf(“%d", &x); if (x>=0)
1. 顺序结构 先执行A, 再执行B.
A 表示 A B
B
2. 选择结构 存在某条件P, 若P为真,则执行A, 否则执行B。
TP F
A
B
表示为
TP F AB
另一种选择结构––多分支结构.
K
K=K1 K=K2
K=Kn
A1 A2 … Ai … An
3. 循环结构
有两种结构:当型和直到型 (1) 当型结构
例:计算10!并输出结果。
main()
main()
{
{
int i=1, sum=1;
int i=1; long sum=1;
loop: if (i<=10)
loop: if (i<=10)
{
{
sum=sum*i;
sum=sum*i;
i++;
i++;
goto loop;
goto loop;
}
}
printf(“10!=%d\n”,sum); printf(“10!=%ld\n”,sum
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
第四章 C程序流程设计
C语句概述 程序的三种基本结构 选择型程序设计 循环型程序设计 辅助控制语句
1
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
4.1 C语句概述
C语句:以“;”作分隔符,编译后产生机器指令. C语句分类
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
4.3 选择型程序设计
if语句(条件选择语句)
if语句的三种形式 形式一: 格式:if (expression)
=0 expr
非0 statement
statement
执行过程:
例形:式if 二(x>:y) 格p式rin:tf(i“f %(edx”p,rxe)s;sion)
#include <stdio.h>
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(……) if(……) if(……) else…... else…...
else…...
12
你现在例所处:的位if置(a:=首=b页)C语言教学幻灯片版第四章 C程序流程设计 if(b==c) 实现ifp~rienltsfe(正“a确==配b=对=方c”法);
非0
=0
expr
statement1
else
statement1
statement2
statement2
执行过程:例:if (x>y) max=x;
else max=y;
7
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
if ( expr1 ) 选择型程序设计形式 三:
格式:else if (expr2 )
说明: if后面的表达式类型任意
语句可以是复合语句 如:if(ifx()a==b&if(&xx!==0=)y) printf(“a=b,x=y”);
if(if!(x3)) priinf(tfx(=“=O0K)”);
例 考i虑f(‘下a’)面p程ri序ntf的(“%输d出”,结’a’果); :
#include <stdio.h>
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
else if (salary>600) else if (sala非ry0>400)
index=0=0.2; expinr3dex=0.1;
else
非0 index=0;
statemnt1 statemnt2 statemnt3 statemntn
8
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
statement1 statement2
else if (expr3 ) statement3
执行过程:
…... [ else
statementn ]
=0
例:ifex(spar1lary>1000)
index=0.4;
非el0se if (salareyx>p8r200) =0 index=0.3;
选择结构


P
二分支选择结构 A
B
真 P假 AB
多分支选择结构
k k=k1
k=k2
A1
A2 ...
k=kn k=ki
Ai ... An
5
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
循环结构 当型循环结构
假 P

A
当P为真 A
直到型循环结构
A
假 P 真
A 直到P为真
注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构 6
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
10
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
例 输入两数并判断其大小关系
/*ch4_4.c*/
return
2
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
复合语句 :用 {…}括起来的一组语句 一般形式: { [数据说明部分;] 执行语句部分; } 说明: “}”后不加分号 语法上和单一语句相同 复合语句可嵌套
3
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
4.2 程序的三种基本结构
结构化程序设计
基本思想:任何程序都可以用三种基本结构表示,限 制使用无条件转移语句(goto)
结构化程序:由三种基本结构反复嵌套构成的程序叫 ~
优点:结构清晰,易读,提高程序设计质量和效率
三种基本结构
顺序结构
A
流程图
B
A B
N-S图
பைடு நூலகம்
4
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y; y=x;
Compile Error!
else
x++; y++;
printf(“%d,%d\n”,x,y);
}
9
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
❖: if语句嵌套 一般形式:
表达式语句:表达式加分号构成。
空程如语序句控aftu=:o制n3tac;语l;(=)t句;ota(9l+种lim)i:t; printf(“Hello,world!\n”);
分支 if( )~else~ switch
for( )~
循环 while( )~
do~while( )
continue
辅助控制 break goto
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
11
你现在所处的位置:首页C语言教学幻灯片版第四章 C程序流程设计
if ~ else 配对原则:
缺省{ }时,else总是和它上面离它最近的未配 对的if配对
相关文档
最新文档