c语言结构化程序设计讲课文档
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语句2;
else
if ( )
语句3;
else 语句4;
内嵌if 内嵌if
返回到本章目录
第31页,共104页。
3)嵌套的说明
以上形式的嵌套if语句执行过程可以这样理解
:从上向下逐行对if后的表达式进行检测。当某一个
表达式的值为非零时,就执行与此有关子句中的语句 ,阶梯形中的其余部分被越过去。如果所有表达式的
返回到本章目录
第14页,共104页。
二、标准if语句
思考题3-2:从键盘上输入一个数,如果大于等于零
输出“Positive Number”(正数),否则输出
“Negative Number”(负数)(要求用标准if语句
实现)。 (一)程序分析
(1)从键盘输入一个数;
(2)判断该数是否大于等于零; (3)输出结果。
/*接受输入的数赋值
if(x>=0) 否大于0*/
/*判断x是
printf("%d is Positive Number!\n",x);
/*如果大于0,输出结果为正数*/
if(x<0)
小于0*/
/*判断x是否
printf("%d is Negative Number!\n返",回x到)本; 章目录
第8页,共104页。
if语句实现)。
(一)程序分析
(1)从键盘输入一个整数;
(2)判断该数是大于等于零或者小于零; (3)输出对应结果。
返回到本章目录
第7页,共104页。
(二)编写程序代码
main()
{ int x; /*定义整型变量x*/
printf ("input x:"); /*提示从键盘输入 一个数*/
scanf("%d",&x); 给x*/
返回到本章目录
第26页,共104页。
3. if语句复合形式
1)复合if语句定义格式
if(表达式1)
语句1;
else if(表达式2) 语句2; ……
else if(表达式n)
语句n; else
语句n+1;
返回到本章目录
第27页,共104页。
2)复合if语句执行过程 首先计算表达式1的值,若表达式
返回到本章目录
第20页,共104页。
② 无论是否有else子句,if子句中如 果只有一条语句,则此语句后的分号 不能省略。
例如: if(x!=0)
printf("%f",x ); else
printf("%f",y);
返回到本章目录
第21页,共104页。
4)基本if语句的流程示意图
真(≠0) 语句1
返回到本章目录
第15页,共104页。
(二)编写程序代码
main() { int x;
printf ("input x:"); scanf("%d",&x);
if(x>=0) /*判断x是否大于0*/
printf("%d is Positive Number!\n",x);
/*如果x大于0成立,输出结果为正数*/
}
返回到本章目录
第25页,共104页。
(三)调试运行结果
输入x的值为5,输出“5 is Positive Number!”;再次运行程序,输入一个x的值为-3, 输出“-3 is Negative Number!”;第三次运 行程序,输入x的值为0,输出“0 is Zero!”。
程序运行结果如下:
程序运行结果如下:
返回到本章目录
第17页,共104页。
2. if语句标准形式
1)标准if语句定义格式
if(表达式) 语句1;
例如:
else 语句2;
if(a!=0)
printf("a!=0\n");
else
printf("a==0\n");
返回到本章目录
第18页,共104页。
在这里,“语句1”称为if子句,“语句2”称为 else 子句,这些子句只允许是一条语句,若需
值都为零,则执行最后的else子句;此时,如果程 序中最内层的if语句没有else子句,即没有最后 的那个else子句,那么将不进行任何操作。 注意:C语言的语法规定,else子句总是与前面最近
的未曾配对(不带else)的if组成一对。
返回到本章目录
第32页,共104页。
五、switch语句
思考题3-4:设计一个程序,用switch语句实现由键盘输入 一个成绩,输出该成绩的等级。其中A代表90分以上,B 代表80~89,C代表70~79,D代表60~69,E代表 60分以下。如果成绩不在0-100之间则输出错误信息
scanf("%f",&score);
if(score>=0&&score<=100) { switch ((int)score/10)
{ case 10: case 9:printf("\n%.2f class is A!",score);break;
case 8:printf("\n%.2f class is B!",score);break; case 7:printf("\n%.2f class is C!",score);break; case 6:printf("\n%.2f class is D!",score);break; default:printf("\n%.2f class is E!",score); }
以下四个流程图结构分别为顺序结构、选择结构、 当型循环结构、直到型循环结构
返回到本章目录
第5页,共104页。
第五讲 选择结构
一、 基本if语句
二、 标准if语句
三、 复合if语句
四、 if语句的嵌套 五、 switch语句
返回到本章目录
第6页,共104页。
一、基本if语句
思考题3-1:从键盘上输入一个整数,如果大于等于 零输出“Positive Number” (正数),如果小于零 输出“Negative Number”(负数)(要求用基本的
。
(一)程序分析 (1)定义score变量,存放由键盘输入的学生成绩; (2)输入学生成绩给变量score; (3)根据学生score整除10得到其十位上的数字,确定该成
绩范围,并输出其等级。
返回到本章目录
第33页,共104页。
(二)编写程序代码
main() {float score; printf("\nPlease input a score:");
if(表达式) 语句;
例如:
if(a<b) { t=a; a=b; b=t; } 其中,if是C语言的关键字,表达式两侧的圆括 号不可少,一条“语句”称为if子句。如果在if子
句中需要多条语句,则应该使用花括号把一组语句括 起来组成复合语句,这样在语法上仍满足“一条语句 ”的要求。
返回到本章目录
第10页,共104页。
假(=0) 表达式
真(≠0)
语句
返回到本章目录
第12页,共104页。
4)说明
① if语句自动结合一个语句,当满足 条件需要执行多个语句时,应用一对大括号{}将 需要执行的多个语句括起,形成一个复合语 句。
② if语句中表达式形式很灵活,可以 是常量、变量、任何类型表达式、函 数、指针等。只要表达式的值为非零 值,条件就为真,反之条件为假。
返回到本章目录
第23页,共104页。
流程图
返回到本章目录
第24页,共104页。
(二)编写程序代码
main()
{ int x;
printf ("input x:");
scanf("%d",&x);
if(x>0)
/*判断x是否大于0*/
printf("%d is Positive Number!\n",x);
/*如果x大于0成立,输出结果为正数*/
else if(x<0) /*否则继续判断x是否小于0*/
printf("%d is Negative Number!\n",x);
/*如果x小于0成立,输出结果为负数*/
else
printf("\n%d is Zero!\n",x);
/*否则输出结果为零*/
c语言结构化程序设计
第1页,共104页。
优选c语言结构化程序设计
第2页,共104页。
本章目录
第五讲 选择结构 第六讲 循环结构 第七讲 循环语句的嵌套和流程转向语句 本章小结
结束
第3页,共104页。
结构体程序设计有三种基本结构: ① 顺序结构 ② 选择结构 ③循环结构
返回到本章目录
第4页,共104页。
首先计算紧跟在if 后面一对圆括号内表达式的值。 如 果 表 达 式 的 值 为 非 零 , 执 行 if 子 句 , 然 后 跳 过
else子句,去执行if语句后的下一条语句;如果表
达式的值为零,跳过if子句,去执行else子句,接
着去执行if语句后的下一条语句。
3)说明
① if后面圆括号中的表达式,可以是任 意合法的C语言表达式(如:逻辑表达式、关系表 达式、算术表达式、赋值表达式等),也可以是 任意类型的数据(如:整型、实型、字符型等) 。
}
else
printf("\nThe score is wrong!");
}
返回到本章目录
第34页,共104页。
(三)调试运行结果
程序运行结果分析:运行6次程序,每次输入一个区 间的成绩(其中最后一次输入一个错误成绩,不在0100之间)。 程序运行结果如下:
返回到本章目录
第35页,共104页。
5.switch语句(多分支选择语句) 1)switch语句定义格式
的值为“真”(表达式具有非0值), 则执行语句1;否则继续判断表达式2 ,若表达式的值为“真”,则执行语 句2;否则继续判断下一个条件, …… 直到最后前面n个条件都不成立时,执 行else后面的语句n+1。
返回到本章目录
第28页,共104页。
3)复合if语句的流程图
返回到本章目录
第29页,共104页。
四、if语句的嵌套
4. if语句的嵌套
1)复合if语句定义格式 在if语句中,语句1和语句2本身也可以是if语句,此时 称为if语句的嵌套。
2)嵌套的格式
if语句可以内嵌在if子句中,又可以内嵌在else子句中。
返回到本章目录
第30页,共104页。
例如:
if ( ) if ( ) 语句1;
else
switch(表达式)
{ case 常量表达式1: 语句组1; break;
case 常量表达式2: 语句组2; break;
else /*如果x大于0的条件不成立*/
printf("%d is Negative Number!\n",x);
/*输出x小于0的结果为负数*/
} 返回到本章目录 第16页,共104页。
(三)调试运行结果 输入x的值为5,输出“5 is
Positive Number!”;再次运行程序 ,输入一个x的值为-3,输出“-3 is Negative Number!”。
返回到本章目录
第13页,共104页。
二、标准if语句
思考题3-2:从键盘上输入一个数,如果大于等于零输出
“Positive Number”(正数),否则输出“Negative
Number”(负数)(要求用标准if语句实现)。
(一)程序分析
(1)从键盘输入一个数; (2)判断该数是否大于等于零; (3)输出结果。
(三)调试运行结果 输入x的值为5,输出“5 is Positive
Number!”;再次运行程序,输入一个x 的值为-3,输出“-3 is Negative Number!”。
程序运行结果如下:
返回到本章目录
第9页,共104页。
1. if语句基本形式
1)基本if语句定义格式为if(表达式)语句;
2)if语句的执行过程
首先计算紧跟在if后面一对圆括号中表达式的值
,如果表达式的值为非零(“真”) ,则执行其后的if子句,然后去执行if 语句后的下一个语句。如果表达式 的值为零(“假”),则跳过if 子句, 直接执行if语句后的下一个语句。
返回到本章目录
第11页,共104页。
3)基本if语句的流程示意图 流程图如图3-2所示。表达式假(=0) ,真(≠0)语句 图3-2 基本if语句的流程示意图
要多条语句时,则应该使用花括号把这些语句括
起来组成复合语句。注意,else不是一条独立 的语句,它只是if 语句的一部分,不允许有 这样的语句:
else printf("***"); 在程序中else必须与if配对,共同组成一 条if-else语句。
返回到本章目录
第19页,共104页。
2)if-else语句的执行过程
表达式
假(=0)
语句2
返回到本章目录
第22页,共104页。三、合if语句思考题3-3:从键盘上输入一个整数,如果大于零输
出“Positive Number” (正数),如果小于零输出 “Negative Number” (负数),否则输出“Zero”( 零)。
(一)程序分析 (1)从键盘输入一个整数; (2)判断该数是大于零、小于零还是等于零; (3)输出结果。
else
if ( )
语句3;
else 语句4;
内嵌if 内嵌if
返回到本章目录
第31页,共104页。
3)嵌套的说明
以上形式的嵌套if语句执行过程可以这样理解
:从上向下逐行对if后的表达式进行检测。当某一个
表达式的值为非零时,就执行与此有关子句中的语句 ,阶梯形中的其余部分被越过去。如果所有表达式的
返回到本章目录
第14页,共104页。
二、标准if语句
思考题3-2:从键盘上输入一个数,如果大于等于零
输出“Positive Number”(正数),否则输出
“Negative Number”(负数)(要求用标准if语句
实现)。 (一)程序分析
(1)从键盘输入一个数;
(2)判断该数是否大于等于零; (3)输出结果。
/*接受输入的数赋值
if(x>=0) 否大于0*/
/*判断x是
printf("%d is Positive Number!\n",x);
/*如果大于0,输出结果为正数*/
if(x<0)
小于0*/
/*判断x是否
printf("%d is Negative Number!\n返",回x到)本; 章目录
第8页,共104页。
if语句实现)。
(一)程序分析
(1)从键盘输入一个整数;
(2)判断该数是大于等于零或者小于零; (3)输出对应结果。
返回到本章目录
第7页,共104页。
(二)编写程序代码
main()
{ int x; /*定义整型变量x*/
printf ("input x:"); /*提示从键盘输入 一个数*/
scanf("%d",&x); 给x*/
返回到本章目录
第26页,共104页。
3. if语句复合形式
1)复合if语句定义格式
if(表达式1)
语句1;
else if(表达式2) 语句2; ……
else if(表达式n)
语句n; else
语句n+1;
返回到本章目录
第27页,共104页。
2)复合if语句执行过程 首先计算表达式1的值,若表达式
返回到本章目录
第20页,共104页。
② 无论是否有else子句,if子句中如 果只有一条语句,则此语句后的分号 不能省略。
例如: if(x!=0)
printf("%f",x ); else
printf("%f",y);
返回到本章目录
第21页,共104页。
4)基本if语句的流程示意图
真(≠0) 语句1
返回到本章目录
第15页,共104页。
(二)编写程序代码
main() { int x;
printf ("input x:"); scanf("%d",&x);
if(x>=0) /*判断x是否大于0*/
printf("%d is Positive Number!\n",x);
/*如果x大于0成立,输出结果为正数*/
}
返回到本章目录
第25页,共104页。
(三)调试运行结果
输入x的值为5,输出“5 is Positive Number!”;再次运行程序,输入一个x的值为-3, 输出“-3 is Negative Number!”;第三次运 行程序,输入x的值为0,输出“0 is Zero!”。
程序运行结果如下:
程序运行结果如下:
返回到本章目录
第17页,共104页。
2. if语句标准形式
1)标准if语句定义格式
if(表达式) 语句1;
例如:
else 语句2;
if(a!=0)
printf("a!=0\n");
else
printf("a==0\n");
返回到本章目录
第18页,共104页。
在这里,“语句1”称为if子句,“语句2”称为 else 子句,这些子句只允许是一条语句,若需
值都为零,则执行最后的else子句;此时,如果程 序中最内层的if语句没有else子句,即没有最后 的那个else子句,那么将不进行任何操作。 注意:C语言的语法规定,else子句总是与前面最近
的未曾配对(不带else)的if组成一对。
返回到本章目录
第32页,共104页。
五、switch语句
思考题3-4:设计一个程序,用switch语句实现由键盘输入 一个成绩,输出该成绩的等级。其中A代表90分以上,B 代表80~89,C代表70~79,D代表60~69,E代表 60分以下。如果成绩不在0-100之间则输出错误信息
scanf("%f",&score);
if(score>=0&&score<=100) { switch ((int)score/10)
{ case 10: case 9:printf("\n%.2f class is A!",score);break;
case 8:printf("\n%.2f class is B!",score);break; case 7:printf("\n%.2f class is C!",score);break; case 6:printf("\n%.2f class is D!",score);break; default:printf("\n%.2f class is E!",score); }
以下四个流程图结构分别为顺序结构、选择结构、 当型循环结构、直到型循环结构
返回到本章目录
第5页,共104页。
第五讲 选择结构
一、 基本if语句
二、 标准if语句
三、 复合if语句
四、 if语句的嵌套 五、 switch语句
返回到本章目录
第6页,共104页。
一、基本if语句
思考题3-1:从键盘上输入一个整数,如果大于等于 零输出“Positive Number” (正数),如果小于零 输出“Negative Number”(负数)(要求用基本的
。
(一)程序分析 (1)定义score变量,存放由键盘输入的学生成绩; (2)输入学生成绩给变量score; (3)根据学生score整除10得到其十位上的数字,确定该成
绩范围,并输出其等级。
返回到本章目录
第33页,共104页。
(二)编写程序代码
main() {float score; printf("\nPlease input a score:");
if(表达式) 语句;
例如:
if(a<b) { t=a; a=b; b=t; } 其中,if是C语言的关键字,表达式两侧的圆括 号不可少,一条“语句”称为if子句。如果在if子
句中需要多条语句,则应该使用花括号把一组语句括 起来组成复合语句,这样在语法上仍满足“一条语句 ”的要求。
返回到本章目录
第10页,共104页。
假(=0) 表达式
真(≠0)
语句
返回到本章目录
第12页,共104页。
4)说明
① if语句自动结合一个语句,当满足 条件需要执行多个语句时,应用一对大括号{}将 需要执行的多个语句括起,形成一个复合语 句。
② if语句中表达式形式很灵活,可以 是常量、变量、任何类型表达式、函 数、指针等。只要表达式的值为非零 值,条件就为真,反之条件为假。
返回到本章目录
第23页,共104页。
流程图
返回到本章目录
第24页,共104页。
(二)编写程序代码
main()
{ int x;
printf ("input x:");
scanf("%d",&x);
if(x>0)
/*判断x是否大于0*/
printf("%d is Positive Number!\n",x);
/*如果x大于0成立,输出结果为正数*/
else if(x<0) /*否则继续判断x是否小于0*/
printf("%d is Negative Number!\n",x);
/*如果x小于0成立,输出结果为负数*/
else
printf("\n%d is Zero!\n",x);
/*否则输出结果为零*/
c语言结构化程序设计
第1页,共104页。
优选c语言结构化程序设计
第2页,共104页。
本章目录
第五讲 选择结构 第六讲 循环结构 第七讲 循环语句的嵌套和流程转向语句 本章小结
结束
第3页,共104页。
结构体程序设计有三种基本结构: ① 顺序结构 ② 选择结构 ③循环结构
返回到本章目录
第4页,共104页。
首先计算紧跟在if 后面一对圆括号内表达式的值。 如 果 表 达 式 的 值 为 非 零 , 执 行 if 子 句 , 然 后 跳 过
else子句,去执行if语句后的下一条语句;如果表
达式的值为零,跳过if子句,去执行else子句,接
着去执行if语句后的下一条语句。
3)说明
① if后面圆括号中的表达式,可以是任 意合法的C语言表达式(如:逻辑表达式、关系表 达式、算术表达式、赋值表达式等),也可以是 任意类型的数据(如:整型、实型、字符型等) 。
}
else
printf("\nThe score is wrong!");
}
返回到本章目录
第34页,共104页。
(三)调试运行结果
程序运行结果分析:运行6次程序,每次输入一个区 间的成绩(其中最后一次输入一个错误成绩,不在0100之间)。 程序运行结果如下:
返回到本章目录
第35页,共104页。
5.switch语句(多分支选择语句) 1)switch语句定义格式
的值为“真”(表达式具有非0值), 则执行语句1;否则继续判断表达式2 ,若表达式的值为“真”,则执行语 句2;否则继续判断下一个条件, …… 直到最后前面n个条件都不成立时,执 行else后面的语句n+1。
返回到本章目录
第28页,共104页。
3)复合if语句的流程图
返回到本章目录
第29页,共104页。
四、if语句的嵌套
4. if语句的嵌套
1)复合if语句定义格式 在if语句中,语句1和语句2本身也可以是if语句,此时 称为if语句的嵌套。
2)嵌套的格式
if语句可以内嵌在if子句中,又可以内嵌在else子句中。
返回到本章目录
第30页,共104页。
例如:
if ( ) if ( ) 语句1;
else
switch(表达式)
{ case 常量表达式1: 语句组1; break;
case 常量表达式2: 语句组2; break;
else /*如果x大于0的条件不成立*/
printf("%d is Negative Number!\n",x);
/*输出x小于0的结果为负数*/
} 返回到本章目录 第16页,共104页。
(三)调试运行结果 输入x的值为5,输出“5 is
Positive Number!”;再次运行程序 ,输入一个x的值为-3,输出“-3 is Negative Number!”。
返回到本章目录
第13页,共104页。
二、标准if语句
思考题3-2:从键盘上输入一个数,如果大于等于零输出
“Positive Number”(正数),否则输出“Negative
Number”(负数)(要求用标准if语句实现)。
(一)程序分析
(1)从键盘输入一个数; (2)判断该数是否大于等于零; (3)输出结果。
(三)调试运行结果 输入x的值为5,输出“5 is Positive
Number!”;再次运行程序,输入一个x 的值为-3,输出“-3 is Negative Number!”。
程序运行结果如下:
返回到本章目录
第9页,共104页。
1. if语句基本形式
1)基本if语句定义格式为if(表达式)语句;
2)if语句的执行过程
首先计算紧跟在if后面一对圆括号中表达式的值
,如果表达式的值为非零(“真”) ,则执行其后的if子句,然后去执行if 语句后的下一个语句。如果表达式 的值为零(“假”),则跳过if 子句, 直接执行if语句后的下一个语句。
返回到本章目录
第11页,共104页。
3)基本if语句的流程示意图 流程图如图3-2所示。表达式假(=0) ,真(≠0)语句 图3-2 基本if语句的流程示意图
要多条语句时,则应该使用花括号把这些语句括
起来组成复合语句。注意,else不是一条独立 的语句,它只是if 语句的一部分,不允许有 这样的语句:
else printf("***"); 在程序中else必须与if配对,共同组成一 条if-else语句。
返回到本章目录
第19页,共104页。
2)if-else语句的执行过程
表达式
假(=0)
语句2
返回到本章目录
第22页,共104页。三、合if语句思考题3-3:从键盘上输入一个整数,如果大于零输
出“Positive Number” (正数),如果小于零输出 “Negative Number” (负数),否则输出“Zero”( 零)。
(一)程序分析 (1)从键盘输入一个整数; (2)判断该数是大于零、小于零还是等于零; (3)输出结果。