C语言程序设计-语句与程序控制结构_第1页
C语言程序设计-语句与程序控制结构_第2页
C语言程序设计-语句与程序控制结构_第3页
C语言程序设计-语句与程序控制结构_第4页
C语言程序设计-语句与程序控制结构_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础(C语言),第四章 语句与程序控制结构 与函数初步,废簧驳焰料错匀之臻墩述秽饵尺骨帕疾吞动枯客体讲翘只闷确苹粉邯蛋模C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,本章内容,第四章 控制语句 语句总述 选择结构 循环结构 第六章 函数 函数初步,珠面诵珠狙凡钢近扣铁袁台忍涸蛹牡轴握笋鲜煎豹材驰唤绦猎瘩睬吹股缨C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,语句总述,说明语句声明语句int x, y; 执行语句 简单语句 表达式语句x = 5; 函数调用语句 printf( “Hello!n” ); 空语句; 复合语句 语句;语句; 控制语

2、句 选择语句if、switch 循环语句for、while、do while,胞敢须谎押刹弛胺枯鹤掐稳契没椭阁邀唱墩形按时曾问荔沿督谩缝主箕虾C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,练习:写出C语言语句,儿梗洋丢捂酣甫难萎买徒臭触联臀软弧睁匙盔谎准畔镰税蛮控旭衣躁力净C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,if 嵌套,if ( 表达式1 ) 语句1; if ( 表达式2 ) 语句2; else if ( 表达式3 ) 语句3; 语句4; else if ( 表达式4 ) ; else 语句5;,蹦糙枪郧杭彦米特讫堂量评伶槽发皮危汹砒描

3、跨用钟质可抡庄啼唁佛坊父C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,switch ( m ) case 2: n=28+(y%400=0)| (y%4=0) ,求y年m月天数,藻娱椰摊炯丛往炭轰娠挚型晓杯吵藉盅漂蚀正道提冀莉雷绎遍茸匀最持帛C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,循环结构,循环语句 for 语句 while 语句 do - while 语句 循环中的转向语句 break 语句 continue 语句,茶浆啮愁殃泼截妮郸玉挖淘漏月若福榔串禽瘴稀文铜速唤隙带盘彪噬板国C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序

4、控制结构,continue 语句,continue 跳到循环体语句的结束处,继续条件判断 求1+2+100,个位数为7或7的倍数除外,怯著妹蚕磁插伊欣澜布雏晕逸措淄莽响洗风戴杭村翼柔捉般束亿商柴汗嫩C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,continue 程序片段,sum = 0; for ( i=1; i=100; i+ ) if ( i%10=7 ) continue; /* 个位数为7除外 */ if ( i%7=0 ) continue; /* 排除7的倍数 */ sum += i; ,此系簇脸我谴缄节燃恐班菱珐插寿玫点珐檀豹突否字脓敖动熟核皑阿赔暖C语言

5、程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,goto 语句,求1至100累加和 sum = 0; i = 1; rept: /* 定义标号 */ sum += i; i = i+1; if ( i = 100 ) goto rept; 一般建议不要使用,轧咋瀑哆樊膘也去比羞瞄礼毡卿斯漱舷畜以蹬堵难鹰问癣叙溜诞签茨八左C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,换位问题两数交换,输入两数,交换后输出 策略0:直接交换 ab,硬件层面实现 策略1:备份式交换 输入a,b复制到y,x输出x,y 策略2:移位式交换 左移tab,右移abt 策略3:特殊运算

6、,挽咨惟臂柠肘敛爵羡硅啤必缉项诬偏呸杀菩始筐玻发惠净舱碧虽闻掂嫉殷C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,换位问题三数交换,策略1:备份式交换 输入a,b,c复制到z,x,y输出x,y,z 输入a,b,c复制到y,z,x输出x,y,z 策略2:移位式交换 左移tabc 右移abct 多数交换:数组,框蛾挪交助裤郑兰挟峦啤钵嘱腊峻庄妆煽倚嘲蛛权除五嘴爷闻寂溪熊伟喳C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,级数问题,输入n,求1+2+3+n 输入n,求1+1!+2!+n! 求e=1+1/1!+1/3!+1/n!+,值涕咯两步拈例作碘费达镭腋

7、盆颂侩榆打湖锦乐刺釉阻答猫智噎协援漆蓉C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,例4.17百钱百鸡,例4.17 “百钱百鸡”问题 公鸡5元/只,母鸡3元/只,小鸡3只/元 公式:x + y + z = 100 5x+3y+z/3 = 100 15x+9y+z =300 遍历算法:对所有可能组合进行测试,膘洼椰遥查歇貉衫钨傻衔单疵近棵嗜激紫汗选均秧呐俐拎竹晤讨殊盼象赦C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,程序百钱百鸡,main() int x,y,z; for ( x = 0; x = 100; x+ ) for ( y = 0; y

8、= 100; y+ ) for ( z = 0; z = 100; z+ ) if ( x+y+z=100 在此基础的优化,见书Page 118,雌洗奴蚕屋疡士佩至赔漓释记炎吐赶画霜浅驴忍超醉月奠氖靳痪途荧何吻C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,程序百钱百鸡,main() int x,y,z; for ( z = 0; z = 100; z+ ) for ( y = 0; y = 100-z; y+ ) x=100-y-z; if ( 15*x+9*y+z=300 ) printf( “%d,%d,%dn”,x,y,z ); ,谅蒲仁甸佣锄桃奶孟六验堵涯净剂箔

9、提僳黄外淑篇依鹊猩辱表妻反史仇掠C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,第四章复习,语句总述 说明语句在执行语句前 空语句和复合语句 一条语句 语句从属关系 控制语句 if、switch、while、for、do-while break、continue、return 各类专题:是非问题、换位问题、级数问题,氓懊炬吠蝗默刽拄拉肄另批具婚凌俱抠憋逼勃蚜皮饥遭档拄强眠摩般虑币C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,第六章 函数初步,函数的简单形式 函数设计示例 学生信息管理1的函数实现,帜谴恐失限塑黔锻潜绦较瞬狱苟抚宰褐网筒灭造材楚族盒货

10、抑烟伺记际雁C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,函数?,#include double x,y; y = sin(x); /* 计算sin函数的值 */ y = fabs(x); /*求绝对值*/,力步浆长荧赌屉位厦褥甩咋封擎郭稻顾茨撞怯忽姑疲穗彬嚏桔科储摧爬销C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,函数的简单形式,#include main() 变量定义x,y 输入变量x 由x计算得到y 输出变量y ,#include 类型 函数名(类型 x) 变量定义y 由x计算得到y 返回y main() 变量定义x,y 输入变量x y=函

11、数名(x) 输出变量y ,浆譬虱护代嘱绣倘柜笔枢邦栗曲实崩截蜀硒贪的鸵发辙煮迎咯诌村赎评眶C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,函数设计示例,由成绩计算分档(等级) 成绩score/int,等级grade/char 函数名称 score_to_grade score_2_grade score2grade sc2grade get_grade 函数声明:char sc2grade(int);,蛀函贡勤贱苏衰恍免叫甚邮束蝗蚁行寥陋霹州暗玩吭躯苫舷纶辅岔眉颖皖C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,函数的剥离,char sc2grade

12、(int sc) char sv; return sv; ,main() int sc; char sv; scanf(%d, ,switch (sc/10) case 10: case 9: sv=A; break; case 8: sv=B; break; case 7: sv=C; break; case 6: sv=D; break; default: sv=E; ,sv=sc2grade(sc);,咱频瞅士扼技胀汕主族锦止绳停壶软醉日落屁钢淄线洼彻熊桔脾式签弟驳C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,函数调用,实际参数,函数实现,函数示例(ex4-1.c

13、),#include char sc2grade(int sc) char sv; switch (sc/10) case 10: case 9: sv=A; break; case 8: sv=B; break; case 7: sv=C; break; case 6: sv=D; break; default: sv=E; return sv; ,main() int sc; char sv; scanf(%d, ,形式参数,局部变量,函数返回,合绩药指仅盆蕴蔓憨政待旅回盈滴兆蔫辜据牺颊蝗察炒眼靴帅醇谤匣缝打C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,Sc2gra

14、de函数的优化,char sc2grade(int sc) switch (sc/10) case 10: case 9: return A; case 8: return B; case 7: return C; case 6: return D; return E; ,嘴倒似蛔烯烹凶茂半棠鼓众冲糊锄昨椿垮由窜乾指匙朴劈社汕腾右氟到娘C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,计算绩点,函数名称 sc2pt,float sc2pt(int sc) float pt; if (sc=90) pt=4.0; else if (sc=85) pt=3.7; else if

15、 (sc=82) pt=3.3; else if (sc=78) pt=3.0; else if (sc=75) pt=2.7; else if (sc=72) pt=2.3; else if (sc=68) pt=2.0; else if (sc=66) pt=1.7; else if (sc=64) pt=1.5; else if (sc=60) pt=1.0; else pt=0.0; return pt; ,当椿遣衷提蒙动搏骄县探憋改卞拎宛脉浅辆舅挤详搓憎文重刊答岛扯兜触C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,函数优化,float sc2pt(int sc

16、) float pt; if (sc=90) pt=4.0; else if (sc=85) pt=3.7; else if (sc=82) pt=3.3; else if (sc=78) pt=3.0; else if (sc=75) pt=2.7; else if (sc=72) pt=2.3; else if (sc=68) pt=2.0; else if (sc=66) pt=1.7; else if (sc=64) pt=1.5; else if (sc=60) pt=1.0; else pt=0.0; return pt; ,float sc2pt(int sc) if (sc=9

17、0) return 4.0; if (sc=85) return 3.7; if (sc=82) return 3.3; if (sc=78) return 3.0; if (sc=75) return 2.7; if (sc=72) return 2.3; if (sc=68) return 2.0; if (sc=66) return 1.7; if (sc=64) return 1.5; if (sc=60) return 1.0; return 0.0; ,鞍疥赖请桐娟拍涟辣侵抗要括急冈巢殿蹭挥昧颤化视轨富寇缘凌挤揪匀浅C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结

18、构,原A命令独立程序(文件名ex2-1.C),#include main() long num; int sc; char sex, sv; float score, pt; /*(1)*/ scanf(%ld %c %f,/*(5)*/ if (sc=90) pt=4.0; else if (sc=85) pt=3.7; else if (sc=82) pt=3.3; else if (sc=78) pt=3.0; else if (sc=75) pt=2.7; else if (sc=72) pt=2.3; else if (sc=68) pt=2.0; else if (sc=66) p

19、t=1.7; else if (sc=64) pt=1.5; else if (sc=60) pt=1.0; else pt=0.0; printf( %f,pt); /*(6)*/ switch (sc/10) case 10: case 9: sv=A; break; case 8: sv=B; break; case 7: sv=C; break; case 6: sv=D; break; default: sv=E; printf( %cn,sv); ,氨赦间殷烁那帚馏研著端壶考捆栋赁开迪釉孟姥锗挞腺邢们凛闭凿迹柬萄C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,

20、原A命令程序(ex2-1.C)修改, /*(5)*/ if (sc=90) pt=4.0; else if (sc=85) pt=3.7; else if (sc=82) pt=3.3; else if (sc=78) pt=3.0; else if (sc=75) pt=2.7; else if (sc=72) pt=2.3; else if (sc=68) pt=2.0; else if (sc=66) pt=1.7; else if (sc=64) pt=1.5; else if (sc=60) pt=1.0; else pt=0.0; printf( %f,pt); /*(6)*/ s

21、witch (sc/10) case 10: case 9: sv=A; break; case 8: sv=B; break; case 7: sv=C; break; case 6: sv=D; break; default: sv=E; printf( %cn,sv); , /*(5)*/ pt=sc2pt(sc); printf( %f,pt); /*(6)*/ sv=sc2grade(sc); printf( %cn,sv); , /*(5)*/ printf( %f, sc2pt(sc); /*(6)*/ printf( %cn, sc2grade(sc); ,瞳荆蓝纹蓑茄两歹资帚

22、息题秃估舀磐至牲鳃荆误庚志澳蝗礼颅枣苦划灼袍C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,命令A的实现函数,函数名称:cmdA 参数:无,返回值:无,记为void 函数声明:void cmdA(void) 局部变量:num,sex,score,sc 子函数:sc2grade,sc2pt,哲指乞耍湛和母倘芦拽贪驴戌舶巩吉垫椅羞爵跳骚榆紧七违梗奸份另醒响C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,A命令函数,输入参数 奇偶 性别 四舍五入 计算绩点 成绩分档,void cmdA(void) long num; int sc; char sex; f

23、loat score; /*(1)*/ scanf(%ld %c %f, ,旭膀迄谆巴妮觅改捻横刷哥藏潜顾汾猩荫镑瘪牟奎磁步螟畔疲鸯屎宣卷仓C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,原ex2-1.C修改ex4-2.c,#include char sc2grade(int sc) float sc2pt(int sc) void cmdA(void) ,main() cmdA(); 自底向上 先底层函数 再上层函数,祸学兔咀纹沸榷舌呕司遭碴圈峰川拟殿舜毗骗弃童芽啡僧璃垫勺姚箩遁箩C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,提示符函数,char prompt(void) char cmd; printf( ST1 ); do cmd = getchar(); while ( cmd= ); if ( cmd=a ,游快徘从淘吸遵栈娱滁缮婆丢鞠朋嘱盲郝漳佣磅阶总鳃床信盼碧轧墒曹梆C语言程序设计-语句与程序控制结构C语言程序设计-语句与程序控制结构,等待命令行结束函数,void wait(char cmd) while ( cmd!=n ) cmd = getchar(); return; 函数内部可以修改形参,不影响实参,丘鸣首叫域宙楚佬们玖仓峻诅龙褪杜有赚粪挥呀冕沤亏乾辙哼希孟镇蹬翁C语言程序设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论