




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 控制结构控制结构 主要内容主要内容3.1 基本控制结构基本控制结构3.2 程序中的控制运算符程序中的控制运算符3.3 程序中的选择结构程序中的选择结构3.4 程序中的循环结构程序中的循环结构3.5 蒙特卡罗法与随机数函数蒙特卡罗法与随机数函数3.6 位运算符位运算符/173.1 基本控制结构基本控制结构结构名称结构名称传统流程图传统流程图N-SN-S流程图流程图顺序结构顺序结构选择结构选择结构循环结构循环结构3.1.1 基本语句基本语句空语句空语句(Empty Statement) ;表达式语句表达式语句(Expression Statement) 赋值语句赋值语句(Assignm
2、ent Statement)函数调用语句函数调用语句(Function Invocation Statement)控制语句控制语句(Control Flow Statement)复合语句复合语句(Compound Statement)/173.1.2 常用的输入输出函数常用的输入输出函数格式输出函数格式输出函数 printf()格式输入函数格式输入函数 scanf()字符输入函数字符输入函数 getch() 和和 getchar()同:都是从终端输入一个字符作为函数的值。异:getch() 无回显读入,不需要回车确认。 getchar() 需要回车确认。字符输出函数字符输出函数putch()和
3、和putchar()#include main()char c=B;/将将c的值输出至的值输出至Screenputch(65);/输出输出ASCII码为码为65的字母的字母Aputch(n); /输出转义字符输出转义字符n,实现换行显示,实现换行显示putch(c); /输出字符变量输出字符变量c的值字母的值字母Bgetch(); /17字符输入及输出函数示例字符输入及输出函数示例从键盘输入大写字母,输出对应的小写字母和ASCII码分析:英文字母相应的大写与小写ASCII码相差32(= a-A),将大写字母的ASCII码加32(或a-A),即可得出相应的小写字母的ASCII码。#include
4、 #include main()char c1,c2;printf(char=);/prompt语句语句c1=getchar();/从终端输入一字符并赋给从终端输入一字符并赋给c1putch(c1); /将将c1的值输出至的值输出至Screenprintf(%4dn,c1); /输出输出c1的的ASCII码值码值c2=c1+32;/大写字母转小写字母大写字母转小写字母putch(c2); /将将c2的值输出至的值输出至Screenprintf(%4dn,c2);/输出输出c2的的ASCII码值码值getch();/173.1.3顺序结构程序设计示例顺序结构程序设计示例例例 求圆的面积和周长。求
5、圆的面积和周长。 数据分析数据分析: 输入量: 半径 r, float输出量: 面积 s, 周长l, float 算法分析算法分析: 输入半径 r。计算面积s。计算周长l。输出面积s和周长l。 3.1.3顺序结构程序设计示例顺序结构程序设计示例例例 求圆的面积和周长。求圆的面积和周长。#define PI 3.141593 /定义一个宏定义一个宏PI,将,将PI作为符号常量作为符号常量#include #include main() float r, s, m; /定义所使用的变量定义所使用的变量 printf(Enter the radius:); /提示信息提示信息 scanf(%f, &
6、r); /输入已知量输入已知量 s=PI*r*r/计算待求量计算待求量 m=2*PI*r; printf(s=%fn,s);/输出所求值输出所求值 printf(m=%fn,m); getch(); Enter the radius: 1 s= 3.141593m=6.2831863.1.3顺序结构程序设计示例顺序结构程序设计示例例例已知三角形的两边边长及其夹角,求此三角形的第3边的边长。 分析分析: 设三角形的三边长分别为a、b、c,已知两边长a,b及其夹角(取变量名为alfa)。则由 c2=a2+b2-2abcos 可得出c。算法分析算法分析: 输入两边边长a,b及夹角 alfa计算第三边
7、边长c输出第三边边长 c3.1.3顺序结构程序设计示例顺序结构程序设计示例例例已知三角形的两边边长及其夹角,求第三边边长。已知三角形的两边边长及其夹角,求第三边边长。#include #include /程序中调用了数学函数程序中调用了数学函数sqrt及及cos #include main() float a, b, c, p, alfa; /将角度将角度定义为变量定义为变量alfa printf(Enter two sides of a triangle and included angle: n);/在程序运行输入数据之前给出提示信息在程序运行输入数据之前给出提示信息 scanf(%f %
8、f %f,&a,&b,&alfa); /输入两边及夹角输入两边及夹角 p=a*a+b*b-2*a*b*cos(alfa*3.14/180); c=sqrt(p); /求第三边边长求第三边边长c printf(“c=%fn”,c);/输出第三边边长输出第三边边长c的值的值 getch(); Enter two sides of a triangle and included angle: 3 4 90c=4.9980883.2程序中的控制运算符程序中的控制运算符3.2.1关系运算符关系运算符(relational operator)关系运算符关系运算符: 小于小于大于大于= 大于等于大于等于 =
9、 等于等于!= 不等于不等于Relational operators take expressions as operands and evaluate to type int. They will always evaluate to either 1 (true), or 0 (false).结果是一个逻辑量,即“真”或“假”,分别用整数1和0表示。注意注意: :区分区分=号和号和=号。号。避免对实数作相等或不等的判断。避免对实数作相等或不等的判断。正确表示数学上的连续不等式。正确表示数学上的连续不等式。 321 与与 32&21 3.2.2 逻辑运算符(逻辑运算符(logical ope
10、rator)逻辑运算符逻辑运算符: ! 逻辑非逻辑非& 逻辑与逻辑与| 逻辑或逻辑或The logical operator ! is called the negation operator. It is a unary operand because it has one operand. Dont confuse negation with unary minus. !5 = ?结果是一个逻辑量,即结果是一个逻辑量,即“真真”或或“假假”,分别用整数,分别用整数1和和0表示。表示。短路特性短路特性(short-circuit evaluation)a&b&c a|b|c 在在C语言中表示
11、条件语言中表示条件判断某一字符(变量判断某一字符(变量ch表示)是否英文字母表示)是否英文字母 A =ch & ch= Z | a =ch & chb)?a:b;等价于等价于if(ab) max=a; else max=b; 例例 判断键盘输入的一个字符是否为大写字母,如果是则转换为小判断键盘输入的一个字符是否为大写字母,如果是则转换为小写字母,否则不转换。输出处理后的字符。写字母,否则不转换。输出处理后的字符。#include main() char ch; scanf(%c,&ch); ch=(ch=A&chy) x+; y+;3.3.1 if语句语句if语句格式语句格式1示例示例例例从键
12、盘上输入一个数从键盘上输入一个数x,若,若x大于等于大于等于0,则则y=1;若;若x小于小于0,则,则y=-1。#include #include main() float x; int y; printf(“x=”); scanf(“%f”,&x); if (x=0) y=1; if (xy) x+; else y+;3.3.1 if语句语句例例已知三角形的三条边已知三角形的三条边a、b、c,求面积求面积area。分析分析:若a、b、c满足任意2数之和大于第3个数的条件,则三边可以构成三角形,此时计算并显示结果;反之,三边不构成三角形,此时给出错误提示。)(21cbas)()(csbsass
13、area,if语句格式语句格式2示例示例if if语句格式语句格式2 2示例示例#include #include #include main() float a,b,c,s,area; printf(Side a=);scanf(%f,&a); printf(Side b=);scanf(%f,&b); printf(Side c=);scanf(%f,&c); if(a+bc&a+cb&b+ca)s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%6.2fn,area); elseprintf(Data error,reentr
14、y!); getch();Side a=4 Side b=5 Side c=6 area=9.92在在if语句中的语句中的语句语句处又是处又是if语句,则称为语句,则称为if语句语句的嵌套。一般格式如下:的嵌套。一般格式如下:if(表达式表达式1)if(表达式表达式2)语句语句1else语句语句2elseif(表达式表达式3)语句语句3else语句语句4 在嵌套的在嵌套的if语句中,习惯写成锯齿形,以增加程序的可语句中,习惯写成锯齿形,以增加程序的可读性。读性。 3.3.1 if3.3.1 if语句语句内层的if语句如果是简化的if,如:if(表达式表达式1)if(表达式表达式2)语句语句1e
15、lse语句语句2从最内层开始,else总是与它上面最近的、未曾配对的if配对。嵌套的嵌套的if if语句语句if语句的格式语句的格式3 (Multiple selection)else-if格式格式if(表达式表达式1)语句语句1else if(表达式表达式2)语句语句2else if(表达式表达式3)语句语句3.else if(表达式表达式n)语句语句nelse 语句语句n+13.3.1 if3.3.1 if语句语句例:输入考试成绩的等级,打印出百分制分数段例:输入考试成绩的等级,打印出百分制分数段(A等等85分以上,分以上,B等等7084,C等等6069,D等等60以下)。以下)。main
16、() char grade;scanf(%c,&grade);if(grade=A) printf(85100n);else if(grade=B) printf(7084n);else if(grade=C) printf(6069n);else if(grade=D) printf(60n);else printf(Errorn);3.3.1 if语句语句语法格式:语法格式: switch (表达式表达式) case 常量表达式常量表达式1:语句语句1 case 常量表达式常量表达式2:语句语句2 . . . case 常量表达式常量表达式n:语句语句n default: 语句语句n+1
17、3.3.2 3.3.2 switch语句语句上例中的if部分可以考虑写成下面的switch语句:switch(grade)case A: printf(85100n);case B: printf(7084n);case C: printf(6069n);case D: printf(60n);default: printf(Errorn);if(grade=A) printf(85100n);else if(grade=B) printf(7084n);else if(grade=C) printf(6069n);else if(grade=D) printf(60n);else print
18、f(Errorn); 若grade=C,则输出:606960Error3.3.2 3.3.2 switch语句语句改进的改进的switch语句语句语法格式语法格式: :switch(表达式表达式)case 常量常量1:语句:语句1;break;case 常量常量2:语句:语句2;break; . . .case 常量常量n:语句:语句n;break;default:语句:语句n+1; 改进后的switch语句:switch(grade)case A: printf(85100n);break;case B: printf(7084n); break;case C: printf(6069n);
19、 break;case D: printf(60n); break;default: printf(Errorn);若grade=C,则输出:6069多个多个case可以共用一组执行语句。如:可以共用一组执行语句。如:switch(grade)case A: case B: case C: printf(60100n);break;case D: printf(60n);break;default: printf(Errorn);改进的改进的switch语句语句就一个表达式的判断(条件满足就一个表达式的判断(条件满足/条件不满足)而言,条件不满足)而言,一次只能产生两条分支。一次只能产生两条分
20、支。实际应用中,选择时常常有可能面临多条分支,这实际应用中,选择时常常有可能面临多条分支,这时就会使用时就会使用嵌套嵌套的的if语句或者语句或者switch语句语句或者两种语或者两种语句嵌套组合。句嵌套组合。 x (x2) 例例 y= 2x-1 (2x10) 3x+10 (x10) 任意输入任意输入x,输出输出y, 编写程序实现该函数。编写程序实现该函数。方法一:用方法一:用if语句形式编写语句形式编写方法二:用方法二:用if-else if语句形式编写语句形式编写方法三:用方法三:用switch语句编写程序语句编写程序3.3.33.3.3多重选择结构多重选择结构(Multiple selec
21、tion structure) )x=3.563.560000,6.120000选择结构程序设计综合举例选择结构程序设计综合举例方法一:用方法一:用if语句形式编写语句形式编写#include #include main()float x, y;printf(x=);scanf(%f,&x);if(x2) y=x;if(2=x & x=10) y=3*x+10;printf(%f,%fn,x,y);getch();选择结构程序设计综合举例选择结构程序设计综合举例方法二:用方法二:用if-else if语句语句#include #include main()float x, y;printf(x
22、=);scanf(%f,&x);if(x2) y=x;else if(2=x & x=10) y=3*x+10;printf(%f,%fn,x,y);getch();选择结构程序设计综合举例选择结构程序设计综合举例#include #include main()float x,y;int z;printf(x=);scanf(%f,&x);z=1*(x2)+2*(2=x & x=10); switch(z) case 1:y=x;break; case 2:y=2*x-1;break; case 3:y=3*x+10;printf(%f,%fn,x,y);getch();方法三:用方法三:用switch语句语句例 输入年、月,输出该月有多少天。分析:每年的1、3、5、7、8、10、12月有31天;4、6、9、11月有30天;2月闰年有29天,平年有28天。年号能被4整除,但不能被100整除,或者年号能被400整除的年均是闰年。设年份为year,判断year是否闰年:if(year%4=0&year%100!=0|year%400=0) 选择结构程序设计综合举例选择结构程序设计综合举例main()int year,month,days;printf(输入年输入年,月:月:);scanf(%d,%d,&year,&month);switch(month)case 1:cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024秋七年级英语上册 Unit 3 Body Parts and Feelings Lesson 14 Colours and Feelings教学实录 (新版)冀教版
- 人教版五年级下册语文教学计划(及进度表)
- 八年级物理下册 8.1 认识压强教学实录 (新版)粤教沪版
- Unit 2 Fun Numbers Lessons 2 How many ducks(教学设计)-2024-2025学年闽教版(2024)英语三年级上册
- 45°直角三角形边长公式
- 江西省九江市少年宫科学动力机械课程(教学设计)-滚筒式传送带
- mysql外键一对一设计实例
- 23《月光曲》教学设计-2024-2025学年六年级上册语文统编版
- 2025年募投金融项目建议书
- 九年级历史下册 第六单元 冷战结束后的世界 第22课 不断发展的现代社会教学实录2 新人教版
- 泰戈尔-飞鸟集中英文版全
- 车间现场管理培训
- 中小学生心理健康教育课件
- (正式版)CB∕T 4548-2024 船舶行业企业相关方安全管理要求
- 财务管理与成本控制实施方案三篇
- 智慧养老服务平台建设总体要求
- 酒店厨房消防知识培训普及消防知识课件
- 2024年山东青岛高中高一自主招生物理试卷试题(含答案)
- 2024年江苏海事职业技术学院单招职业适应性测试题库及答案1套
- 2024年江苏旅游职业学院单招职业适应性测试题库及参考答案
- 多囊肾的教学查房
评论
0/150
提交评论