《第二轮上机结构化程序基本结构》由会员分享,可在线阅读,更多相关《第二轮上机结构化程序基本结构(113页珍藏版)》请在金锄头文库上搜索。
1、第第2轮上机轮上机 目的:结构化程序基本结构目的:结构化程序基本结构2.1用顺序结构设计程序用顺序结构设计程序2.2用分支结构设计程序用分支结构设计程序2.3用循环结构设计程序用循环结构设计程序2.4联合使用联合使用3种基本结构处理复杂问题种基本结构处理复杂问题跨卸嵌忍饰渔壶惠滞妖肇仇纵骏武两箭辟递划捻韩还搭蹬切准岭庶乎阎铁第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.1.1交换两个数据交换两个数据2.1.2设计菜单设计菜单2.1用顺序结构设计程序用顺序结构设计程序返回返回必梁逾睦夺卢近棋浦彰跌浸鸥毡科践唇册佯丈痈交芽骡酪焦闪鞋菏娃慰贞第二轮上机结构化程序基本结构第二轮上机结构化
2、程序基本结构2.1.1交换两个数据交换两个数据在日常生活中经常需要进行交换在日常生活中经常需要进行交换操作,如交换两杯水。操作,如交换两杯水。同样在同样在C语言中也经常需要交换语言中也经常需要交换两个数据,例如,为了保证在两个数据,例如,为了保证在a中存放较大者,当中存放较大者,当b比比a大时,需大时,需要交换变量要交换变量a和和b中的值。中的值。问问题题的的提提出出恳埃泽愉上皿扦洞细悟播昏螟僚椿苏颊跃忌弦邵莎淫哦灰倚僻涂垢琵列嚷第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-1】编写程序,从键盘】编写程序,从键盘输入两个数,并交换它们的值。输入两个数,并交换它们的值。
3、任任务务与与分分析析2.1.1交换两个数据交换两个数据P26东蜡轩扶崔睁滇恳她条革帖解保徽遂泵跺隅磺羞电矗亩锗谊粗驴刻血辕仍第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构程序代码程序代码#include main() int x,y,t; printf(Input x and y:); scanf(%d%d,&x,&y); printf(before:x=%d,y=%dn,x,y); t=x; x=y; y=t; printf(after:x=%d,y=%dn,x,y);之娱胚树私吃它壹缝弛琐颂燥角詹妮必消垫撕谤稠脉汕且元并姚氯意挤孜第二轮上机结构化程序基本结构第二轮上机结构化程序基
4、本结构程序设计一般包括问题分析、程序设计一般包括问题分析、确定确定算法算法、确定数据结构。、确定数据结构。归归纳纳分分析析算法是用计算机解决某个特定问题的算法是用计算机解决某个特定问题的步骤,其特性:步骤,其特性:有穷性有穷性确定性确定性有效性有效性有有0个或多个输入数据个或多个输入数据有有1个或多个输出数据个或多个输出数据算法是算法是最关键最关键纤莫孵短搭晴序座幅衅磺扦弯缅摇贞罩阿烙糕克锥阔官硫哪临古姨就郎谦第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构顺序结构流程图:顺序结构流程图: 归归纳纳分分析析语句语句A语句语句B异懈腰沁态邦懒融悯箕弥纠杰爹剁机殷聚件嗡伙式乔忠溢孜地冉峦源
5、演命第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构交换算法需要借用第交换算法需要借用第3个变量,如同交个变量,如同交换两杯水需要借用第换两杯水需要借用第3个杯子一样。个杯子一样。语句语句“t=x; x=y; y=t;”不能写成不能写成“x=y; y=x;”归归纳纳分分析析薛钟筑嘉叼踢豫网授橙侮泄害讹吃容结靡潦乞列净淫榔妄诺僻弗广忽型蕾第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-1编写程序,从键盘输入编写程序,从键盘输入3个数分别个数分别存放在存放在a、b和和c中,并交换中,并交换a和和b的值,再交换的值,再交换a和和c值。值。P27龚嫉频枚捕锥烙靠书穿
6、啄澈律讳份秉宠搽刹研每犊除肉鉴害揪阮抓苇臻鼻第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.1.2设计菜单设计菜单P27问问题题的的提提出出日常生活中经常使用菜单,例如,日常生活中经常使用菜单,例如,根据显示的菜单点播歌曲或节目、根据显示的菜单点播歌曲或节目、在自动售票机上购票等,这些操作在自动售票机上购票等,这些操作都是先给用户显示可选择的菜单。都是先给用户显示可选择的菜单。显示菜单可用显示菜单可用printf函数实现,输函数实现,输入选项可用入选项可用scanf函数实现。函数实现。 贰颠秘送遮揉硅肺凶栏魁汝抖凶菱沏虹旦邀稿龟寸眺嵌夜悸眷按柯霉汐狈第二轮上机结构化程序基本结构第二
7、轮上机结构化程序基本结构【实例【实例2-2】编写程序,设计如】编写程序,设计如下用户管理菜单。下用户管理菜单。任任务务与与分分析析2.1.2设计菜单设计菜单P27|*| |-User management -| 1-Add new user | 2-Change user password | 3-Show user information | 4-exit |*|濒老权绅距摆因卜勺贪康酵跳掏满宅汪添末汝韧走锨窖还纱矿翼气吴勘咳第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量a 显示菜单显示菜单输入选项输入选项显示
8、选项显示选项int a; printf(|*|n);printf(|-User management-|n);printf(| 1-Add new user |n);printf(| 2-Change user password|n);printf(| 3-Show user information|n);printf(| 4-Exit |n);printf(|*|n); scanf(%d,&a);printf(Select %dn,a);王狱豆淘著砌管司遣反芥恬滨贺荐朗持罪拍荆浓固贱趋固闯妆楚发展赚功第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构归归纳纳分分析析(1)菜单用)菜单用
9、printf函数显示,界函数显示,界面可根据个人爱好自由设计。面可根据个人爱好自由设计。(2)选项可用整型,也可用字符型。)选项可用整型,也可用字符型。若用字符型,输入语句改为若用字符型,输入语句改为“scanf(%c,&a);”或或“c=getchar();”归归纳纳分分析析弄燕薯洗携矢酶浓剂抉洗迈慢绦莲鼻驯盏傣喝述款酿明民蛰文嚎渗膏椿毋第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-2编写程序,设计如下购物管理菜单。编写程序,设计如下购物管理菜单。| |-Shopping management-| b-banana | a-apple | w-watermelo
10、n | e-exit |_|P29垂谰季智躇肤休寇藐弊杜商在浅套计掂谈敛劝右骑纺宁胖房翰佩生库丸萄第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.2.1处理两个分支问题处理两个分支问题 2.2.2处理一个分支又包含另一分支问题处理一个分支又包含另一分支问题2.2.3处理多个分支问题处理多个分支问题 2.2用分支结构设计程序用分支结构设计程序P29返回返回绪皮碉勇路股喇釉莱粗辣胺炎厂与超昂晋鞠乘尚本呀冤君歉昆蛰岳冈物锣第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构在程序设计中,经常根据两个不同的在程序设计中,经常根据两个不同的条件去执行不同的语句组。例如,根条件去执行不同的
11、语句组。例如,根据小朋友的年龄判断能否入学。据小朋友的年龄判断能否入学。这类问题一般通过这类问题一般通过if语句来实现。语句来实现。 问问题题的的提提出出2.2.1处理两个分支问题处理两个分支问题P29申彤窄方恶溯鸯河簇森魁碟迭任霄镰肖溉陕踩矿镀聂语蓑钱醋窜申胞匿墓第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构任任务务与与分分析析2.2.1处理两个分支问题处理两个分支问题P29【实例【实例2-3】根据函数式】根据函数式对输入的对输入的x值,计算值,计算y的值。的值。涝鸯丘隅哦涡宴练畴削冀胺灾像建赃觉作博桂纂润汹恤介愉在宅呢英玻浪第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构
12、操作步骤操作步骤#include main()定义整型变量定义整型变量x、a和和b定义双精度实型变量定义双精度实型变量y输入输入x的值的值 if(x的值为的值为2) 显示错误信息显示错误信息 else 计算分子计算分子 计算分母计算分母 计算计算y的值的值 输出输出x和和y的值的值int x,a,b; double y;scanf(%d,&x);if(x=2)printf(Error!n);a=x*x*x+2*x-5;b=x-2;y=(double)a/b;printf(x=%d,y=%lfn,x,y);关系运算符关系运算符 、=、=、=、!= 强制类型转换强制类型转换 吉而瓮服批瘴水澜昔闹赋
13、顽竹镣付销廉其麦瘩求饵适滥蹲翰娘含酒主便峡第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤int all;#include main()定义整型变量定义整型变量x、a和和b定义双精度实型变量定义双精度实型变量y输入输入x的值的值 if(x的值为的值为2) 显示错误信息显示错误信息 else 计算分子计算分子 计算分母计算分母 计算计算y的值的值 输出输出x和和y的值的值int x,a,b; double y;scanf(%d,&x);if(x=2)printf(Error!n);a=x*x*x+2*x-5;b=x-2;y=(double)a/b;printf(x=%d,
14、y=%lfn,x,y);缩进格式缩进格式 派菱尼仍曾敦庄汉侩咏列流满竣劝痘材惩闺现轮怒革疚拒拣颜伐紫拐毁真第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构x=2?是是否否a=x3+2x-5定义定义x,a,b,y输入输入x显示显示Error!b=x-2y=a/b输出输出x,y塌妨屈喝俄缝扼叔寻秆奄曾驻蹬阁施譬越匹跨疗慷沪戌牲元嘴熄惫居洋讣第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-4】输入学生平时成绩和期】输入学生平时成绩和期末成绩,计算总评成绩。总评成绩由末成绩,计算总评成绩。总评成绩由平时成绩的平时成绩的40%和期末成绩的和期末成绩的60%产生。如果学生在
15、该门课的竞产生。如果学生在该门课的竞赛中获奖,则平时成绩附加赛中获奖,则平时成绩附加10分,分,期末成绩附加期末成绩附加15分。分。P31昔刨搽弊准洋纸梯泅牲揖滦乏缅品或褥揪艰雷儒已叹斥胸酌贮铀粒愧冀拌第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main()定义整型变量定义整型变量a和和b定义字符型变量定义字符型变量ch定义双精度实型变量定义双精度实型变量total输入输入a和和b的值的值输入输入ch的值的值 if(ch的值为的值为“y”或或“Y”) 平时成绩加平时成绩加10分分 期末成绩加期末成绩加15分分 计算总评成绩计算总评成绩 输出平时成绩
16、、期末成绩和总评成绩输出平时成绩、期末成绩和总评成绩 int a,b; char ch;double total; scanf(%d%d,&a,&b);scanf( %c,&ch);if(ch=y | ch=Y)a=a+10;b=b+15;total=a*0.4+b*0.6;printf(%d,%d,%.2lfn,a,b,total);逻辑运算符逻辑运算符 & | !秉函张筋莽粳馒萧株札呼暂憎雍酒航酞苗缠稳汞郁辱淄寡庇浚漠操耿魔漏第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构ch=y或或Y?是是否否a增增10定义定义a,b,ch,total输入输入a,b,chb增增15total=a
17、*0.4+b*0.6输出输出a,b,total效缆沥绚靶酮注悲耘憋句葬橇怂绥圆遂吃杰泊刷朋磺单屁超避桐靛为灸焦第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构带带带带elseelse的的的的ifif语句格式:语句格式:语句格式:语句格式:if(if(表达式表达式表达式表达式) ) 语句语句语句语句i1 i1 语句语句语句语句i2 i2 语句语句语句语句inin else else 语句语句语句语句e1e1 语句语句语句语句e2e2 语句语句语句语句enen 归归纳纳分分析析二苍氢阳芜捉遍骋璃卉重霖由睛猿阳仇朽框贤兔鲤银匙忌名蜡咀铺石疥种第二轮上机结构化程序基本结构第二轮上机结构化程序基
18、本结构归归纳纳分分析析假假真真表达式表达式语句语句i1语句语句i2语句语句in语句语句e1语句语句e2语句语句en钦莱障屑巾盗筏坎杠于赎郸猖扣淫揖屎绘谤揣混系闷荧街凿缅庆懒碟床琅第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构不带不带不带不带elseelse的的的的ifif语句格式:语句格式:语句格式:语句格式:if(if(表达式表达式表达式表达式) ) 语句语句语句语句i1 i1 语句语句语句语句i2 i2 语句语句语句语句inin 归归纳纳分分析析假假真真表达式表达式语句语句i1语句语句i2语句语句in诸树洼饭蓬今昨七椿患杯养饰睫携蜘科恨帖锯枯忿梨邢翁杨袁斤租汗家聊第二轮上机结构化
19、程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-3根据销售员一个月的销售额提成。如根据销售员一个月的销售额提成。如果销售额为两万元以上,则提成销售果销售额为两万元以上,则提成销售额的额的3%,否则,仅提成,否则,仅提成500元。假元。假设某销售员的基础工资为设某销售员的基础工资为1500元,元,输入该销售员一个月的销售额,输出输入该销售员一个月的销售额,输出他的实际工资。他的实际工资。P34雪共制抵侯再坟望疥臀恬馒枚跌皋碟里拌琐洒槛特鸿葵题性蓖尹冉随捍沮第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-4根据职工的情况调整工资。如果工龄根据职工的情况调整工
20、资。如果工龄为为20年以上,但基本工资低于年以上,但基本工资低于800元,元,则基本工资补则基本工资补50元。输入一个职工的元。输入一个职工的工龄和基本工资,输出该职工的工龄工龄和基本工资,输出该职工的工龄和调整后的基本工资。和调整后的基本工资。P34曳仑树债宰郧毡砒孙恿籍泛踩数太狂缝习旱疡你岳根禹妇窍瑟充渤鸥蝴领第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构根据学生的性别判断该学生是根据学生的性别判断该学生是否男生,对于男生,再判断是否男生,对于男生,再判断是否大于否大于20岁。此类问题需要岁。此类问题需要在在if语句中又包含另一个语句中又包含另一个if语语句。句。问问题题的的提提
21、出出2.2.2处处理理一一个个分分支支又又包含另一分支问题包含另一分支问题P34订恭置蛾咸成羔渗古胃衷充硷壕损栽珐泊墟瞎鞋加瘟衣壬妓代桔紫维仇殆第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-5】改写实例】改写实例2-4,输入学生平,输入学生平时成绩和期末成绩,计算总评成绩。总时成绩和期末成绩,计算总评成绩。总评成绩由平时成绩的评成绩由平时成绩的40%和期末成绩的和期末成绩的60%产生。如果学生在该门课的竞赛中产生。如果学生在该门课的竞赛中获奖,则对于平时成绩高于获奖,则对于平时成绩高于90分学生,分学生,平时成绩按平时成绩按100分处理,否则附加分处理,否则附加10分
22、,分,对于期末成绩高于对于期末成绩高于85分的学生,期末成分的学生,期末成绩按绩按100分处理,否则附加分处理,否则附加15分。分。任任务务与与分分析析2.2.2处处理理一一个个分分支支又又包含另一分支问题包含另一分支问题P34朴宫壬聪认琉拐助嘱斯潘粮问附诌尔懊状存筒柬眼奈渴祈恫娥廓待颈鬼涅第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main()定义整型变量定义整型变量a和和b定义字符型变量定义字符型变量ch定义双精度实型变量定义双精度实型变量total输入输入a和和b的值的值输入输入ch的值的值酵序歧讯沸斟褥突查童凝斜煮喘空中祸互恃翼昨拜葬镁酣此
23、材亮瘦遭摄役第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构 if(ch的值为的值为“y”或或“Y”) if(平时成绩平时成绩90) 将平时成绩按将平时成绩按100处理处理 else 平时成绩加平时成绩加10分分if(期末成绩期末成绩85) 将期末成绩按将期末成绩按100处理处理 else 期末成绩加期末成绩加15分分 计算总评成绩计算总评成绩 输出平时成绩、期末成绩和总评成绩输出平时成绩、期末成绩和总评成绩弗腑磕侍驻奄桂铂酿掀鹏俯通厂素仍猾弹惕溜尸觅和玫登颓筏壕熏澜回锨第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main()定义整型变量定
24、义整型变量a和和b定义字符型变量定义字符型变量ch定义双精度实型变量定义双精度实型变量total输入输入a和和b的值的值输入输入ch的值的值int a,b;char ch;double total;scanf(%d%d,&a,&b);scanf( %c,&ch);粱极条犁砾颓口泄求展页靖秧截经僻建二赌姆包锥获缘籍唐室贫鸳乎旗亢第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构 if(ch的值为的值为“y”或或“Y”) if(平时成绩平时成绩90) 将平时成绩按将平时成绩按100处理处理 else 平时成绩加平时成绩加10分分if(期末成绩期末成绩85) 将期末成绩按将期末成绩按100处理
25、处理 else 期末成绩加期末成绩加15分分 计算总评成绩计算总评成绩 输出平时成绩、期末成绩和总评成绩输出平时成绩、期末成绩和总评成绩if(ch=y | ch=Y)a90a=100;a=a+10;b85b=100;b=b+15;total=a*0.4+b*0.6;printf(%d,%d,%.2lfn,a,b,total);嵌套的嵌套的if语句语句苦簿令吹踞贵腑铸荧坏蜡理霹敞弛蚀卿眼馅衔毙秉亨标醇八陌叶汗舷停磋第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构ch=y或或Y?是是否否a=100a90?是是a增增10否否b=100b85?是是b增增15否否挨晃豢坊届饿瞪篷越朱鹊巳亿疽押廷
26、亢侄空秒充翠柞达跳鞘步鹅掘冗总娄第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-6】编写程序,求下面分段】编写程序,求下面分段函数的值,要求函数的值,要求x的值从键盘输入。的值从键盘输入。x2-5 (1x20)y=1 (x1)20 (x20)P36帛鸟媒侣邪挑滁丽难絮思蜘疮右诊腥害署粮救路甚呛棠零短艺块飞涂六傈第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main()定义双精度实型变量定义双精度实型变量x和和y输入输入x的值的值if(x1) y得到得到1 else if(x20) y得到得到x2-5的值的值 else y得到得
27、到20 输出输出x和和y的值的值 double x,y;scanf(%lf,&x);y=1;y=x*x-5;y=20;printf(x=%lf,y=%lfn,x,y);郊嗓甲潞杜了师灭列扯寺赔梭伞茫紫羞平蛇柴刽晃跌串挣喻页积网臼胀苇第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() if(x1) else if(x20) else double x,y;scanf(%lf,&x);y=1;y=x*x-5;y=20;printf(x=%lf,y=%lfn,x,y);else if(x20) y=x*x-5;else y=20;镐盔噬曹稻碰雍食辩
28、穗晾榜窝穿阂数蕴诱庆瓢受瑞过召苍囤每梭擞动键聚第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构x11假假真真真真假假显示显示x x和和y y的值的值x2020y=x2-5y=20y=1况升贸搁恋诅拨歧蜗藏掸售恐沏稼澡疮扯滑涉双幂赶葬沮适辣拙耿萨尚骂第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构最常用的嵌套最常用的嵌套if语句格式:语句格式:if(表达式表达式1)语句组语句组1 else if(表达式表达式2)语句组语句组2 else if(表达式表达式3)语句组语句组3 else 语句组语句组n+1 归归纳纳分分析析级琐至萝丫裕洽荔黍结胀均堕坠匿床赊烬孝蹋钉签蝴投儒婚蛾宇义统
29、颈船第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-5改写实例改写实例2-4,输入学生平时成绩和,输入学生平时成绩和期末成绩,计算总评成绩。总评成绩期末成绩,计算总评成绩。总评成绩由平时成绩的由平时成绩的40%和期末成绩的和期末成绩的60%产生。如果学生在该门课的竞产生。如果学生在该门课的竞赛中获奖,则平时成绩附加赛中获奖,则平时成绩附加10分,期分,期末成绩附加末成绩附加15分。如果附加分后平时分。如果附加分后平时成绩或期末成绩超过成绩或期末成绩超过100分,按分,按100处理。处理。P38试着楷鹊沸淀瘫汝切卞兢秘晓谣善意骸封紫根怔俐蛤堆张琼蛰痕财善鹤请第二轮上机
30、结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-6编写程序,判断从键盘输入的是编写程序,判断从键盘输入的是控制字符、数字、大写字母、小控制字符、数字、大写字母、小写字母还是其他字符。写字母还是其他字符。P38噬陪遵膝哗掀认亏蚜锤肖诬驼韶禹寺拒介剿蘑且酿羊爸般砌吕众琐浊撼滴第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构在日常生活中,常常需要根据多个不在日常生活中,常常需要根据多个不同的情况做出相应的动作。例如,在同的情况做出相应的动作。例如,在一月至十二月中选择某月,就显示该一月至十二月中选择某月,就显示该月的销售额。在月的销售额。在C语言中处理这类问题语言中处理这类
31、问题时,一般使用时,一般使用switch语句。语句。问问题题的的提提出出2.2.3处理多个分支问题处理多个分支问题P39朗饼钝悄歇始捧向僻遣归婴输成茅推浚燎眩琅党陈梳酬传映塞管毗剿暖渝第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构任任务务与与分分析析【实例【实例2-7】改写实例】改写实例2-2。根据已设计。根据已设计的用户管理菜单选择某项,显示相应的的用户管理菜单选择某项,显示相应的菜单名。菜单如下:菜单名。菜单如下:|*| |*| |*| |*| |-User management-|-User management-|-User management-|-User managem
32、ent-| 1-Add new user | 1-Add new user | 1-Add new user | 1-Add new user | 2-Change user password | 2-Change user password | 2-Change user password | 2-Change user password | 3-Show user information | 3-Show user information | 3-Show user information | 3-Show user information | 4-exit | 4-exit | 4-ex
33、it | 4-exit |*|*|*|*|2.2.3处理多个分支问题处理多个分支问题P39竟孕履庇食拨擞军山寄冈先享绎塌邀济扒巫肩擦徘颖铡闪卸已撵孪剔拇唁第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量a 显示用户管理菜单显示用户管理菜单 等待输入选项等待输入选项京慰批弗滓俭澳内茵噶帝搓页栈疫柜捻察鳞锣甸菇杠烯肢相拔清作吕傍房第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤 switch(选项选项) 选项选项1:1-Add new user 选项选项2:2-Change user passw
34、ord 选项选项3:3-Show user information 选项选项4:4-Exit 否则:否则: Error! 蛙映翁僻纪僧捆拍锁悔唯藕备禹浙沾殃悬咕掳龙殖企至池珍陷妻迟缎擎地第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量a 显示用户管理菜单显示用户管理菜单 等待输入选项等待输入选项printf(|*|n);printf(|*|n);printf(|-User management-|n);printf(|-User management-|n);printf(| 1-Add new user |n);
35、printf(| 1-Add new user |n);printf(| 2-Change user password |n);printf(| 2-Change user password |n);printf(| 3-Show user information |n);printf(| 3-Show user information |n);printf(| 4-Exit |n);printf(| 4-Exit |n);printf(|*|n);printf(|*|n);int a;int a;scanf(%d,&a);scanf(%d,&a);湃价拐杜芦冯蠢贪灰土蔚啦汞盂尔轻忻虱评匆猎亨
36、妈盆育弗半锌艾卡擞瓜第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤 switch(选项选项) 选项选项1:1-Add new user 选项选项2:2-Change user password 选项选项3:3-Show user information 选项选项4:4-Exit 否则:否则: Error! switch(a)switch(a) case 1:printf(1-Add new usern);case 1:printf(1-Add new usern);case 2:printf(2-Change user case 2:printf(2-Change u
37、ser passwordn);passwordn); break; break; break; break;case 3:printf(3-Show user case 3:printf(3-Show user informationn); break; informationn); break;case 4:printf(4-Exitn); break;case 4:printf(4-Exitn); break;default: printf(Error!n); break;default: printf(Error!n); break;盼足守鳃莱缘宙屯痊桶鸵耍帕瞪眨氧艰迭想臣亢身淤竟亏轮惜
38、巍宣咐卤捌第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构switchswitch语句的一般形式:语句的一般形式:语句的一般形式:语句的一般形式:switch(switch(表达式表达式表达式表达式) ) case case 表达式表达式表达式表达式1: 1: 语句组语句组语句组语句组1 break;1 break; case case 表达式表达式表达式表达式2: 2: 语句组语句组语句组语句组2 break;2 break; case case 表达式表达式表达式表达式n: n: 语句组语句组语句组语句组n break;n break; default: default: 语句组语
39、句组语句组语句组n+1 break;n+1 break; 归归纳纳分分析析剿敬间贩恳嘎宽贫鲤肩诱尧箍兴懂蚀趋骤鹤畏赵晃欢颈扛园壬灵锹座藻撤第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-7编写程序,从键盘输入一个数字编写程序,从键盘输入一个数字09,输出对应的英文单词(如,输出对应的英文单词(如从键盘输入从键盘输入1,程序输出,程序输出one)。)。P40隐纤秧逐厂牙好汀州馋赶钱么鄂情匠娄然刘截花吃泉亩三肮什懊儡周失菇第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构表达式表达式1表达式表达式语句组语句组1表达式表达式2语句组语句组2表达式表达式n语句组语句组
40、n其他其他语句组语句组n+1尽硬辱祟八咸则爹最保苹锤碍俄氰汛憾麦瘫受杠帕换殆泄矩谍穴赞吠求构第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.3.1用用for语句处理循环问题语句处理循环问题2.3.2用用while语句处理循环问题语句处理循环问题2.3.3用用do-while语句处理循环问题语句处理循环问题2.3.4用用break语句控制循环结束语句控制循环结束 2.3用循环结构设计程序用循环结构设计程序P41返回返回茸粪拦轨钙续丸皱钡拙婪布磕芝妆崩阑蹄成耪痹垮扶疆耸僚遇夷啮海徊校第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.3.1用用for语句处理循环问题语句处理循环
41、问题P41在日常生活中经常需要处理确定在日常生活中经常需要处理确定重复次数的循环问题,例如,掷重复次数的循环问题,例如,掷100次骰子后,分别统计点数次骰子后,分别统计点数1至至6出现的次数。此类问题用出现的次数。此类问题用C语语言解决时,一般使用言解决时,一般使用for语句。语句。问问题题的的提提出出咎奶备少松简依聪憋驹娃孪亮繁堆吼吐句矿词叙趟三谋嘘资压讳埃扁餐涟第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-8】编写程序,在】编写程序,在屏幕上显示如下内容。屏幕上显示如下内容。-1-*-2-*-3-*-4-*-5-*任任务务与与分分析析2.3.1用用for语句处理循
42、环问题语句处理循环问题P41短迪峙幢亡亡政邮孝灸澎疤侈搪亚坷涝划眩盖薯枉拿微地谣肠擅吝揽髓娇第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main()定义循环变量定义循环变量i for(i=1; i=5; i+)显示显示-i- 显示显示* int i;printf(-%d-n,i); printf(*n);湃钠嚏请宣啼勃浙逾垢帕估憎吮若亡们开夷荒拽弓谨涣蹄窿浓喜钒渺踩拂第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=2-2-*轨罐甜研狂核椽座嚷脉伶科却遭酉甲泳栽塑沈淫青牙敞肺封只孟鲤
43、毙债弱第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=3-2-*-3-*培齐肥箭特毙碘苹碉那稼融哑达拳浙解诞位渝冻茁裹惧虹京却趋产蛛嘉孔第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=4-2-*-3-*-4-*衫肥迫酿针宫筛狂逼起勿超炊愁缉泪衅条霄娥寡碉炙豁篇枉杂徐攻娇结篷第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=5-2-*-3-*-4-*-5-*空挤奈箔镐雀斯哆蘸捍较位趋社丘脑谆虑单哗
44、壁舜灾逮余咖量捏悉授丫颇第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构i 5?i增增1是是i=1否否显示显示*显示显示-i-1-*i=6-2-*-3-*-4-*-5-*抚浩戌孽职舵显劲修姻率崔现泉酷瑰部榜笺樊滴澈惰撤塑胁螺澡众榷等眉第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-9】编写程序,计】编写程序,计算算1至至100的累加和。的累加和。P44允送葡泰裸锡斤茫妹黎应呵婪遭贷板阻戒弛吮糟顽喻阔粗丸租莉逗本牵淄第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main()定义循环变量定义循环变量i和存放和值的和存放和值
45、的sum 给给sum赋赋0for(i=1; i=100; i+)给给sum累加累加i 显示显示sum的值的值 int i,sum;sum=0;sum=sum+i;printf(sum=%dn,sum);sum=sum+1;sum=sum+2;sum=sum+3;sum=sum+99;sum=sum+100;踏仔瞄镇朔驯窖南须怯垢透牢祈颇酋谭瘪阵衫沈宠远呸握撵了核兼怠腑冀第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构i 100?i增增1是是sum=sum+ii=1否否束漏眠气陡月饵奖睁并议鹿重懦哇聪崎袋嗡定子沙碰焕葵簿臣馏鲁呆疵吩第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构
46、【实例【实例2-10】编写程序,分】编写程序,分别计算别计算1至至100中所有中所有2的倍的倍数之和、所有数之和、所有3的倍数之和以的倍数之和以及所有及所有5的倍数之和。的倍数之和。P45等吓颐牢忘敖倒苔坏想澎阑降闹交舟开箔歹拢抛仟涵未莽泅破拙把陛茵妒第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义循环变量定义循环变量i和和sum2、sum3、sum5 分别给分别给sum2、sum3、sum5赋赋0 for(i=1; i=100; i+) if(i为为2的倍数的倍数) 给给sum2累加累加i if(i为为3的倍数的倍数) 给给sum3
47、累加累加i if(i为为5的倍数的倍数) 给给sum5累加累加i 显示显示sum2、sum3、sum5的值的值int i,sum2,sum3,sum5;sum2=sum3=sum5=0;if(i%2=0)sum2=sum2+i;if(i%3=0)sum3=sum3+i;if(i%5=0)sum5=sum5+i;printf(%d,%d,%dn, sum2,sum3,sum5);捌裕纷掌烷裹妇暗录彻甩昌村蹿翌垛喇瞅镐磅党鹅叮粹娘纷熙望进仗驴砒第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构for语句的一般形式:语句的一般形式:for(表达式表达式1; 表达式表达式2; 表达式表达式3)
48、语句语句1 语句语句2 语句语句n 归归纳纳分分析析日脓弓扮徊聪庸穴壬储勺砸楷呕显另史焚氓旅焉甲胃波仇遥敢唬桑双儒皱第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构表达式表达式2表达式表达式3真真语句语句1表达式表达式1假假语句语句2语句语句n 归归纳纳分分析析吱豌没蛙量似姜象肋佛稼铺判歪酞仟刺墓讥淆猩痰架鬃疹馁至悸偶二钮粤第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-8编写程序,计算编写程序,计算2+5+8+11+101的值。的值。2-9编写程序,分别计算编写程序,分别计算1至至100中所有中所有偶数之和与奇数之和。偶数之和与奇数之和。2-10编写程序,
49、分别统计编写程序,分别统计1至至1000中个位中个位是是3的数个数和的数个数和3的倍数个数。的倍数个数。P47途艳卜日宙返焕彤彼幅饲乾织炙柯为轮烟廊榜辜参涧渭挥帛泞崩啼迢化焚第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.3.2用用while语句处理循环问题语句处理循环问题P47在日常生活中也经常需要处理不在日常生活中也经常需要处理不确定重复次数的循环问题,例如,确定重复次数的循环问题,例如,重复掷骰子,直到点数重复掷骰子,直到点数6出现出现20次为止。此类问题用次为止。此类问题用C语言解决语言解决时,一般使用时,一般使用while语句。语句。问问题题的的提提出出唾惑怯泼也彬岳钓沫
50、昔屈磋动亭异凌拿勉浆捌寒完忌脸倒们唬烷糜躺幸莽第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-11】编写程序,输】编写程序,输入若干职工的工资(以负数入若干职工的工资(以负数结束输入),计算平均工资。结束输入),计算平均工资。任任务务与与分分析析2.3.2用用while语句处理循环问题语句处理循环问题P47突驹疑桥疵伤估洛桃于激猛茹闺镭擎兽保蝉姐拴祸兰怒除毯婶吴恤债戈紫第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量n,并赋初值,并赋初值0 定义双精度变量定义双精度变量w、sum、ave,给
51、,给sum赋赋0 输入工资输入工资 while(工资大于等于工资大于等于0) 将工资累加到将工资累加到sum中中 累加职工人数,即累加职工人数,即n增增1 输入工资输入工资 计算平均工资计算平均工资 输出平均工资输出平均工资int n=0;double w,sum=0,ave;scanf(%lf,&w);w=0sum=sum+w;n+;scanf(%lf,&w);ave=sum/n;printf(ave=%.2lfn,ave);萧凶簧薯凡缘椭部珐倘揖磋粤覆殖啮搓笛鸣演荐乘钟址汹肢舱侍悉塌肝瑶第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构w 0?是是sum=sum+wn增增1输入工资输
52、入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1石胎镊陕款漂点散蜗跨凸烘脉韧柜揪狰介轻显晰侠麦或隧日宋科狱秦及从第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1路傅倔俩损株馒贺孺仙闺商批淤创冠压叶狮碾狙绎馁整烃种距秽如势梆姿第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构w 0?是是sum=sum+wn增增1输入
53、工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1让沾菠栽埂插侦柱宾荧惯贡植渗阔弦拍府叔余踩矫戎碗箱京烛国佃刽例淡第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+15
54、23.7n=3+1赣吩庆航暗表津魄溜滇外沁岛蚌谩憨淮定砍羹璃插讶裙奉琳沂垦忠谰厦小第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1sum=5747.0+2035.7n=4+1怔努涛备僧惯瑞唁疏踢沏桂休答硝辅骇象酉配铣珍稿蝇蒜盛石练歪姬静洛第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构w 0
55、?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1sum=5747.0+2035.7n=4+1否否7782.75寨勒产携羹衣窝扫汀订共联仍兜吠聚痛膝祭叉蚁羞哗碌倍济蹦苗徒昭汹昼第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-12】编写程序,计算】编写程序,计算的近似值,直到最后一项小于的近似值,直到最后一项小于10-6为止。最后输出计算结
56、果。为止。最后输出计算结果。P49煞戎唾吻涨哥胯幸铲符二敲踏迹吭展纽饱迈檬脉累舵军们硫痢禽使意诲捌第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义长整型变量定义长整型变量i,并赋初值,并赋初值1 定义双精度型变量定义双精度型变量t和和sum,并分别赋初值,并分别赋初值1和和0 while(t大于等于大于等于10-6) 给给sum累加累加t i增增1 计算新的一项后赋给计算新的一项后赋给t 输出计算结果输出计算结果int i=1;double t=1,sum=0;t=1e-6sum=sum+t;i+;t=(double)1/i;prin
57、tf(sum=%lfn,sum);蔓咐烷脖骆梅汽更柿琵川蜒履砍彪舵樱冻模逛焦棱牧翅搀谤筏慌点衣框缔第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构while语句的一般形式:语句的一般形式:while(表达式表达式) 语句语句1 语句语句2 语句语句n归归纳纳分分析析省贷猎讯骇贷罐厦魁韭钙言脆退呼令博消窿泄湘隐骡宫箍贫聪虾墩谚忻致第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构表达式表达式真真语句语句1假假语句语句2语句语句n 归归纳纳分分析析晴居小螺搭绅虱转烩蛋洗篷丸岔扼酵电撮籽鹰滥衙渴汀惕侧帖幽赶膝蛰梅第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2
58、-11编写程序,从键盘任意输入数据,如编写程序,从键盘任意输入数据,如果是偶数就进行累加,当累加值大于果是偶数就进行累加,当累加值大于等于等于100时,结束输入,并输出输入时,结束输入,并输出输入的所有偶数与计算结果。的所有偶数与计算结果。2-12编写程序,统计从键盘输入的字符个编写程序,统计从键盘输入的字符个数,以回车作为结束。数,以回车作为结束。P50苫赢羽张东莆篷成鳞根匠讨夹向顶燎蜗颈熄蛊勘病约徒虑疾叮笔瓶涯抱宫第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.3.3用用do-while语句处理循环问题语句处理循环问题在日常生活中也常遇到先无条件在日常生活中也常遇到先无条件完成
59、一项操作,然后根据判断条完成一项操作,然后根据判断条件确定是否重复执行,最典型的件确定是否重复执行,最典型的问题就是先显示菜单,然后根据问题就是先显示菜单,然后根据需要决定是否重复显示该菜单。需要决定是否重复显示该菜单。这时使用这时使用do-while语句实现循语句实现循环控制。环控制。问问题题的的提提出出P51冒迢岸寸歇颓坎录抱辞修伟渔菩惋搓迂叶晚姿山役竿注毙绑浓溜涝焙授褒第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-13】改写实例】改写实例2-7。重复显。重复显示用户管理菜单,选择某项后显示相应示用户管理菜单,选择某项后显示相应的菜单号。菜单如下:的菜单号。菜单如
60、下:|*| | 1-Add | 2-Change | 3-Show | 4-exit |*|任任务务与与分分析析2.3.3用用do-while语句处理循环问题语句处理循环问题P51作碾级频耻涡檄掌陀路卸鬼钉斜香校惑筛殖添针硝槛被溶努蛾堕外珊琅聊第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include #include #include main() 定义整型变量定义整型变量a do 清屏清屏 显示用户管理菜单显示用户管理菜单int a;printf(|*|n);printf(| 1-Add |n);printf(| 2-Change |n);printf(| 3
61、-Show |n);printf(| 4-Exit |n);printf(|*|n);system(cls);彦各拟猎艳护亮梅仔漂丰友恬殴剖涝救沧态削伏幌矛侥概或谢樊意篙侗酌第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤 从菜单选择一项从菜单选择一项 switch(选项选项) 选项选项1:显示:显示1 选项选项2:显示:显示2 选项选项3:显示:显示3 选项选项4:显示:显示4 否则:否则: 显示显示Error! while(没选择没选择4)scanf(%d,&a);acase 1: printf(1n); break;case 2: printf(“2n); bre
62、ak;case 3: printf(“3n); break;case 4: printf(“4n); break;default: printf(Error!n);a!=4getch();起暂停作用起暂停作用 它鉴悸脉寓熏握偷购做钳鸽冤娟骆桶羔氏得笛春爆型牢贺究煎桃我倍总帘第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构do-while语句的一般形式:语句的一般形式:do 语句语句1 语句语句2 语句语句n while(表达式表达式);归归纳纳分分析析亨鸳痈丑堤揖胆浊黍尿救淹之腾仅纳旭耶屏洽南否仪酷咆骗底叙咽寸奶诺第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构归归纳纳分分析析
63、表达式表达式真真语句语句1假假语句语句2语句语句n 虹刷击朋无执磕必女膊队艇给廷援廷遵瑰辆椿移窗烬瓮授储措逛摆狭沸众第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-13编写程序,计算编写程序,计算1357n当和值大于等于当和值大于等于500时的最小时的最小n值及和值。值及和值。P53赠肝稻档遍借乐头陡窘板哟艘甜溺陈料号虾搅迈卓绿皇艺幅递潜炳匈墙思第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.3.4用用break语句控制循环结束语句控制循环结束P53在重复进行某些操作的过程中,在重复进行某些操作的过程中,有时满足某种条件,就提前终止有时满足某种条件,就提
64、前终止循环,例如,用户输入的密码错循环,例如,用户输入的密码错误时,可以重新输入,但输入了误时,可以重新输入,但输入了3 次后仍错误,就不允许再继续次后仍错误,就不允许再继续输入。在解决这类问题时需要使输入。在解决这类问题时需要使用用break语句。语句。问问题题的的提提出出稚煤桂泳谎倔过日韦茬九环病极桂氓贮陨垣骡谭衍各瑞颜姿侩抑陡傅盆成第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-14】6位评委给一个候选位评委给一个候选人打分,采用一票否决制,即只要人打分,采用一票否决制,即只要有一位评委给了零分,此候选人就有一位评委给了零分,此候选人就被淘汰。编写程序,输入各评委
65、的被淘汰。编写程序,输入各评委的分数,输出总分数,对于被淘汰的分数,输出总分数,对于被淘汰的候选人,只显示相应信息。候选人,只显示相应信息。任任务务与与分分析析2.3.4用用break语句控制循环结束语句控制循环结束P53熬怨潮绍悄鲍泡杯刻会摇拾蠢秽佣耳度弱桌无月英舞毖釜学闷洽淑剁欲吐第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量i、a、sum,sum赋赋0 for(i=1; i=6; i+) 输入评委的分数输入评委的分数 if(a=0)退出循环退出循环 将分数累加到将分数累加到sum中中 if(i=6) 显示被
66、淘汰的信息显示被淘汰的信息 else 显示获得的总分显示获得的总分int i,a,sum=0;scanf(%d,&a);break;sum=sum+a;printf(Failed!n);printf(total:%dn,sum);辅宅杯丹疼蜗摧懒昏码扩麻沿垢发嘻扔相绪茅蛛抉嫂寓巾镰您汁缺簧郁砚第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构break语句只能在语句只能在switch语句语句和循环语句中使用,其作用是和循环语句中使用,其作用是结束结束switch语句或退出循环。语句或退出循环。归归纳纳分分析析异幼益拍幻掩挖电说阅欺吝沁草丧法者钻缚顿户耶戳傀币袜资捣镜妆唆投第二轮上机结构化
67、程序基本结构第二轮上机结构化程序基本结构归归纳纳分分析析i 6?i+真真i=1假假sum=sum+a输入输入aa=0?真真假假舵师山怕步承谓欧害泉佳次喷漫近郧架帜死惧酌揉扣楼疏折惠赞刹聂颜报第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-14编写程序,从键盘输入编写程序,从键盘输入1个大于个大于2的的整数整数 n, 判断判断n是不是素数。所谓素是不是素数。所谓素数是指那些大于数是指那些大于1,且除了,且除了1和它本和它本身以外,不能被其他任何数整除的数。身以外,不能被其他任何数整除的数。如:如:2、3、5、7、11、等都等都是素数;是素数;4、6、8、9、等则不等则
68、不是素数。为了判断输入的数是素数。为了判断输入的数x是否为是否为素数,最简单的方法是用素数,最简单的方法是用x逐一除以逐一除以2,3,4,直到直到x1,若,若x不能被不能被其中任何数整除,则其中任何数整除,则x就是素数;若就是素数;若x被其中某一个数整除,则被其中某一个数整除,则x就不是就不是素数。素数。P55苦樊桨气蓑戴由戴喝街苯脆叹拖形由驹烩晾滔浮涨宁未迟惹固暴菩粒璃创第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.4联联合合使使用用3种种基基本本结结构处理复杂问题构处理复杂问题 P55在日常生活中需要解决各种各样在日常生活中需要解决各种各样的复杂问题,这些问题一般单靠的复杂问
69、题,这些问题一般单靠某一种基本结构是解决不了的,某一种基本结构是解决不了的,如果把如果把3种基本结构联合使用,种基本结构联合使用,就能够解决所有复杂问题。就能够解决所有复杂问题。问问题题的的提提出出返回返回轴屏镀鸣填茎俱躲庞赖椅隔牟跌葬伯愉溜寥册脆唐除甜句迈鼠较绵邀河雹第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构2.4联联合合使使用用3种种基基本本结结构处理复杂问题构处理复杂问题 P55【实例【实例2-15】重复输入某年年份和月】重复输入某年年份和月份,输出该年该月所包含的天数。每份,输出该年该月所包含的天数。每年年1、3、5、7、8、10、12月份天月份天数是数是31,而,而4、
70、6、9、11月份天数月份天数是是30,对于闰年,对于闰年,2月份天数是月份天数是29,对于平年,对于平年,2月份的天数是月份的天数是28。如果。如果某年份被某年份被4整除且不被整除且不被100整除、或整除、或者某年份被者某年份被400整除,则该年是闰年,整除,则该年是闰年,否则为平年。否则为平年。任任务务与与分分析析味掇嚎画缅炒响嫌录潜赴芒岿界签雷舍沈学皮亮励檄提蛹名竹胸铜嚎紫排第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量year、month、day do 输入年份和月份输入年份和月份 switch(月份月份)
71、 对对1、3、5、7、8、10、12:给:给day赋赋31 对对4、6、9、11:给:给day赋赋30 对对2:if(闰年闰年) 给给day赋赋29 else 给给day赋赋28 对其他输入:给对其他输入:给day赋赋100 if(day!=100) 输出年份、月份、天数输出年份、月份、天数 else 显示错误信息显示错误信息 while(day!=100);佳譬恩饲逃腕卧垢罐壹忍乳鹰碘细谗校裙欺柠迁股带殉寓晨史橡噪脯稀韧第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构程序代码程序代码#include main() int year,month,day; do printf(Input
72、 year and month:);scanf(%d%d,&year,&month);庙插拯粟吊搜覆墅给祥跺赫归捐狼敦妈战耀壶轿疯藕射蹈择革肩蒲茂萨镐第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构 switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break;酮彼沽穿笋拎判包递劝镁寇脸土瑟狡煌笔副秒殿妨枯甫醚包激骨糖挨辱轮第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构 case 4: case 6: case 9: case 11: day=30; break; c
73、ase 2:if(year%4=0 & year%100!=0) | (year%400=0) day=29;else day=28; break; default: day=100; break;钮喀轮忘额班丹闺邹勋陈撤观添妒放沮欣巩趋违形罢横兜摈月帽织叙淫袖第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构if(day!=100) printf(%d,%d,%dn, year,month,day); else printf(Error!n); while(day!=100);邵家个硼厨饯炮羔饯声亢谩递咯芥诧供哑圭鹿食旋笆攘窄庙或济到孔潘穆第二轮上机结构化程序基本结构第二轮上机结构化程
74、序基本结构【实例【实例2-16】重复输入】重复输入x的值(用的值(用-1结束重复操作),计算相应的分段函结束重复操作),计算相应的分段函数值。分段函数如下:数值。分段函数如下:x2-5 (1x20)y=1 (0x1)20 (x20)P57倚兴雾临桥撼料纵挨冻垢琶瓮葫紧偷送敌砂乾缩滚乾暂间莆豢促稚嘶菩贯第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量k 定义双精度型变量定义双精度型变量x、y do 输入输入x将范围转化为固定值,并赋给将范围转化为固定值,并赋给k switch(k) 对对1:给:给y赋赋1 对对2:给
75、:给y赋赋x2-5的值的值 对对3:给:给y赋赋20 if(x!=-1) 输出输出x、y的值的值 while(x!=-1);int k;double x,y;scanf(%lf,&x);k=1*(x=0 & x=1 & x=20);case 1: y=1; break;case 2: y=x*x-5; break;case 3: y=20; break;printf(%lf,%lfn,x,y);圣狞疚瘪陇牧败无期溶椒悦疽懦眉票试乖鳃侯抒惫需抢胜往于厩诞瑞震景第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-17】改写实例】改写实例2-14。6位位评委给评委给3个候选人打分
76、,采用一票否决个候选人打分,采用一票否决制,即只要有一位评委给了零分,此制,即只要有一位评委给了零分,此候选人就被淘汰。编写程序,输入各候选人就被淘汰。编写程序,输入各评委给每个候选人的分数,输出每个评委给每个候选人的分数,输出每个候选人的总分数,对于被淘汰的候选候选人的总分数,对于被淘汰的候选人,只显示相应信息。人,只显示相应信息。P58吕颂慷辟届舟皋瀑沾潘栖护凤劳缴宇津贤铂帐赚迁舒吠恰枣槛秋鞭辉兄瑚第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤for(k=1; k=3; k+) 给给sum赋赋0; printf(Input score:); for(i=1; i=
77、6; i+) 输入评委的分数输入评委的分数 if(a=0) 退出循环退出循环将分数累加到将分数累加到sum中中 if(i=6) 显示被淘汰的信息显示被淘汰的信息 else 显示获得的总分显示获得的总分 sum=0;scanf(%d,&a);break;sum=sum+a;printf(Failed!n);printf(total:%dn,sum);援涣舀念邯率钡渴声永沫娜蝴寥雅壬亦缎吗刃猫么掳许猴则索离神初瑟最第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构【实例【实例2-18】打印九九表。】打印九九表。P59茫泼搀诅侥疑式肢钝二描往耗淤毋遗弛蜕鞘闻噎啪阐悼渣廷正夸慧翅茁佰第二轮上机结
78、构化程序基本结构第二轮上机结构化程序基本结构操作步骤操作步骤#include main() 定义整型变量定义整型变量i、j for(i=1; i=9; i+) for(j=1; j=9; j+) 输出输出i*j的结果的结果显示一行后换行显示一行后换行 int i,j;printf(%d*%d=%-4d,j,i,i*j);printf(“n);奶饯埔匿议盗谷医拐天竹莲涪迭鲸课歹汹瑟湍垄当谣抿完辽说瘦倍姓坑娟第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构一般在一个程序中联合使用顺序结构、一般在一个程序中联合使用顺序结构、分支结构和循环结构。分支结构和循环结构。break语句只能退出本层的
79、语句只能退出本层的switch语句或循环结构。语句或循环结构。解决一个问题的方法不惟一。解决一个问题的方法不惟一。编写程序时应采用规范格式。编写程序时应采用规范格式。归归纳纳分分析析哭估群谁锌晋毯翰呕怪甥絮拱瞧怀昨擅铣携何淳嚷意砧周豹检度依呈嘶眼第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-15编写程序,输出编写程序,输出1!,!,2!,!,3!,!,n!,!,n从键盘输入,但当阶乘值从键盘输入,但当阶乘值大于大于9999时,则不再计算后面阶乘时,则不再计算后面阶乘的值。的值。P61缴剂搂灸版戮绞痹诡吝遏丘改酵岔项漫鄙抠货狠持斤睬加格巡律烟旦王即第二轮上机结构化程
80、序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-16求求的值。的值。P61蛰蚜蕾盾庞姥校哪鉴兑蛆缀咆洒鲁仿津柔租走控季哮褥昼想完娶收项椎读第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-17编程输出编程输出100内的所有素数。内的所有素数。P61茎幅李孔仗叠揉内朱咒滥日冠吧瞻摊咙皱吾凯敬液邵傀膊页菏拯鳞穗喧砷第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构动动手手练练习习2-18从键盘输入一串数字字符,以从键盘输入一串数字字符,以#结束,结束,要求将数字字符转换成数值,且第一要求将数字字符转换成数值,且第一个字符转换后作为个位数,第二个字个字符转换后作为个位数,第二个字符转换后作为十位数,以此类推。如符转换后作为十位数,以此类推。如输入字符输入字符3、1、5,输出为数值,输出为数值513。P61牺戚涕一里境怕咱福跨夹誉饼辑字角屁妮茬汉街仙虫哩帅情启鹿醋孺落混第二轮上机结构化程序基本结构第二轮上机结构化程序基本结构