《计算机第四章C程序设计初步.ppt》由会员分享,可在线阅读,更多相关《计算机第四章C程序设计初步.ppt(94页珍藏版)》请在课桌文档上搜索。
1、教学目标:通过本章的学习,要求学生在掌握结构化程序设计思想基础上,能够运用程序的三种基本结构(顺序结构、分支结构、循环结构)设计出简单的C程序。教学重点:基本输入输出语句;结构化程序设计思想;两种分支语句的格式与使用;三种循环语句的格式与使用;文件包含与宏定义。,雾穴架撂写蹲暑厂慷湍重币多吕瘸撑区翱睬淆游悠奖订虏房洁舶暇哲藩役【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,教学难点:格式化输入输出语句;Switchcase语句的格式与使用;dowhile循环与 while循环的区别;break语句与continue语句的区别;带参数宏的定义方法与宏替换规则。教学方法:理论教学
2、与实践教学相结合。,甸板戌包羚奈誊伏穆胰拌宾茵沛茂虚雀褐飞汇兜迂蹲庐贷搭故饶泰尹负眉【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,第4章C程序设计初步,4.1 C语句概述4.2基本输入输出函数4.3结构化程序设计思想4.4 分支结构的程序设计 4.5 循环结构的程序设计 4.6 编译预处理 4.7 程序设计举例,勇笺独忧闲柄簇西岿腔髓扭吟镀棚凿害讨梧白裳炽缮疫朽皇萨矛谢迅吠淫【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.1 C 语 句 概 述,C语言是函数式语言,每一个函数是由数据说明部分和执行语句部分组成。C语言中的所有语句均是执行语句,没有非执行
3、语句。根据C语言的句法,语句可分为单个语句,复合语句和空语句。根据结构化程序设计的三个模块大致可分为:用于顺序结构中的表达式语句、赋值语句、函数调用语句等;用于分支结构中的if语句、switch语句、转移语句、标号语句等;用于循环结构中的while语句、for语句、do-while语句。另外在后两种结构中还可出现break语句、continue语句、复合语句和空语句等作为其中的一部分。,蔷衰硬朵政杀曙廊毕求磐忱曝瓮宴腊十纯皖羡闹蜜豢慢尤羔育垃嘎眉菱硬【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,(1)逻辑上每个语句最后都必须有一个分号(;),一个语句可分写成几行,几个语句也
4、可合写成一行(但不提倡,因其不利于单步调试)。(2)空语句直接由分号(;)组成,常用于控制语句中必须出现语句之处,它不做任何操作,只在逻辑上起到有一个语句的作用。(3)复合语句由花括号 括起的若干个语句,语法上可以看成是一个语句。复合语句中最后一个语句的分号不能省略。如下面是一个复合语句:z=x+y;y=x/z;x=z-y;,俏叛台说听军滞卜甸瞧其贿威磁轿缝司彪嚣红妄尊壬舵环哆次沈否五旨拥【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,(4)表达式语句是在各种表达式后加一个分号(;)形成一个语句。如赋值语句由赋值表达式加一个分号构成:x=x+y;再如表达式x+后加一个分号构成
5、表达式语句:x+;表达式和表达式语句的区别是表达式后无分号,可以出现在其它语句中允许出现表达式的地方;而表达式语句后有分号,自己独立成一个语句,不能再出现在其它语句的表达式中。如:if(a=b)0)min=a;,险贿凉敛年手团本衙唱佳瞬拾区队阉磋肠迪激淆犊学奠兴淤逢踊耀坠恃褒【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,(5)控制语句有条件判断语句(if、switch),循环语句(for、while、do-while),转移语句(goto、continue、break、return)。,执曼积妨拨剂久举标翠啥豪翼罚茫净直沮券娘河女谜韵推刽拷戒脂次习窑【计算机】第四章 C程序
6、设计初步【计算机】第四章 C程序设计初步,4.2基本输入输出函数,4.2.1字符输出函数putchar()一般调用格式:putchar(参数)其中,参数可以是任意类型表达式,一般为算术表达式。功能:向显示器输出一个字符。返回值:如果输出成功,返回值就是输出的字符,否则返回EOF(-1)。如:putchar(a)/*输出字符a*/putchar(65)/*输出ASCII码为65的字符A*/putchar(a+2)/*输出字符c*/putchar(n)/*输出一个换行符*/,刷坎足最杭芦双揖鱼华贤舆艳饰堡豹讼了舵摸烂泉讯梆弘迁隅旱典嚼诚逊【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计
7、初步,说明:1putchar()函数一次只能输出一个字符,即该函数有且只有一个参数。2putchar()函数可以输出转义字符。3在使用函数putchar()前,一定要使用文件包含:#include stdio.h 或#include【例4.1】#include stdio.hmain()char a,b,c;a=o;b=u;c=t;putchar(a);putchar(b);putchar(c);putchar(n);putchar(65);putchar(t);putchar(B);putchar(a-10);,运行结果:out ABe(代表空格),孤脸势诞富饲谊汹深父聋给苟剿刊增拍蚁项扼适
8、淤柴玖藻坦蛔匣迪质册违【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.2.2字符输入函数getchar()一般调用格式:getchar()功能:从键盘读入一个字符。返回值:如果读入成功,返回值就是读入的字符,否则返回EOF(-1)。说明:1getchar()函数一次只能接收一个字符,即使从键盘输入多个字符,也只接收第一个。空格和转义字符都作为有效字符接收。2接收的字符可以赋给字符型变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。,娟椅跃许衫渠弛幽引七罗甥亲窘义悬孙购最镭贼腮阻敢蓉屁旦卿钓粤盅主【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,3g
9、etchar()函数是无参函数。4从键盘上输入的字符不能带单引号,输入以回车结束。5在使用函数getchar()前,一定要使用文件包含:#include stdio.h 或#include【例4.2】#include stdio.hmain()char ch1,ch2,ch3;ch1=getchar();ch2=getchar()ch3=getchar();putchar(ch1);putchar(ch2);putchar(ch3);,在运行时,若从键盘上输入:CG 则第一个getchar()接收的是C,第二个getchar()接收的是回车,第三个getchar()接收的是G。输出结果为:C(
10、输出ch1的值)G(输出ch3的值),袍几沮傀汽握贬珠绢斯跺奄寡川支绕这烂柠二纷陌剑颂宅篆锈戊镶梆媒跋【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.2.3格式输出函数printf()一般调用格式:printf(格式控制字符串,输出表列)功能:按指定格式向显示器输出数据。返回值:输出成功,返回输出字节数;否则返回EOF(-1)。输出表列:是要输出的数据,可以没有,有两个或两个以上时,用逗号(,)分隔。输出表列中的输出项可以是常量,可以是变量,也可以是表达式。格式控制字符串:由普通字符和格式说明两部分组成。普通字符,即需要原样输出的字符,包括转义字符;格式说明是以%开始,以
11、一个格式字符结束,中间可以插入附加格式说明符,它的作用是将输出的数据转换为指定的格式输出,其一般形式为:%附加格式说明符格式字符,铰衫悔呵殊沧膏旱堰叼澄嵌遮庆志聂啤妖柯房抑芦刹谦岭邦侗礼纹窟碧谅【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,printf()函数的格式字符和常用的附加格式说明符分别见表4-1和表4-2。表4-1 printf()函数格式字符,繁按鸦形妙紫疤如碧景会湍赛羹盅黄传账睹函忠嚼肤呀陷芍郴残凛润差批【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,按%f格式输出实型数据时,整数部分全部输出,小数部分保留六位。在Turbo C中,按%e格式
12、输出实型数据时,输出占十一位,其中整数部分占一位,小数部分占五位,指数部分占四位,小数点占一位。如:printf(%f,123.4);的输出结果为:123.400000printf(%e,123.4);的输出结果为:1.23400e+02,咆栗暖沁反歌狡蜂钓肪愉硷踩耙纹钞芭腺鸣屋颤矿臣钉留桶纱岔恢熏掸造【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,表4-2 printf()函数常用的附加格式说明符,处晰蓉共翟瑚缴舞狐豺渗碾箭荐齿凝沧微糯榴烧皑寨埋楔冶祝党汽哨嚎诚【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.3】main()char ch=A;in
13、t a=1234;float b=123.4562222;printf(ch=%cn,ch);/*输出:ch=A*/printf(ch=%3cn,ch);/*输出:ch=A*/printf(a=%6dn,a);/*输出:a=1234*/printf(a=%2dn,a);/*输出:a=1234*/printf(a=%#on,a);/*输出:a=02322*/printf(a=%#xn,a);/*输出:a=0 x4d2*/printf(b=%fn,b);/*输出:b=123.456223*/printf(b=%8.2lfn,b);/*输出:b=123.46*/printf(b=%-8.2fn,b)
14、;/*输出:b=123.46*/,不验舒弗诺俯陨寻奶储峡驻林轮琼强卵边尖乏翼申笑滑刺稠抚体混姜恨落【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,printf(b=%.2fn,b);/*输出:b=123.46*/printf(b=%en,b);/*输出:b=1.23456e+02*/printf(b=%8.2en,b);/*输出:b=1.2e+02*/printf(b=%-8.2len,b);/*输出:b=1.2e+02*/printf(b=%.2en,b);/*输出:b=1.2e+02*/printf(str=%sn,china);/*输出:china*/printf(st
15、r=%8.3sn,china);/*输出:chi*/printf(str=%-6.3sn,china);/*输出:chi*/printf(str=%.6sn,china);/*输出:china*/,甚膳勘翌亥饵舜姑涣连剃雌薪啃京洗谨钓刘旺裙虐枣报泣续噶嘴隙签新貌【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,说明1.格式说明与输出项从左向右一一对应,两者的个数可以不相同,若输出项个数多于格式说明个数,输出项右边多出的部分不被输出,若格式说明个数多于输出项个数,格式控制字符串中右边多出的格式说明部分将输出与其类型对应的随机值。如:printf(%d%d,1,2,3);/*输出结
16、果为1 2*/printf(%d%d%d,1,2);/*输出结果为1 2 随机值*/2.在格式控制字符串中,两个连续的%只输出一个%。如:printf(%f%,1.0/6);/*输出结果为0.166666%*/3格式说明与输出的数据类型要匹配,否则得到的输出结果可能不是原值。,胡砷部漳认奶郭莽杭漳厚剥占闯驾蹈下喳春案笔笺延锐托行廓云哲谚告颤【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.4】main()int a=-1,b=10;float c=3.14;printf(a=%dn,a);/*输出:a=-1*/printf(a=%un,a);/*输出:a=65535*/
17、printf(a=%on,a);/*输出:a=-177777*/printf(a=%xn,a);/*输出:a=ffff*/printf(b=%d c=%.2fn,b,c);/*输出:b=10 c=3.14*/printf(b=%.2f c=%dn,b,c);/*输出:b=0.00 c=16393*/,竞属耙帧横筋偶镀撕马演嗅裂拔粮布苛局忆训彭规桐肄率厨桓点笼滦奈脾【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.2.4格式输入函数scanf()一般调用格式:scanf(格式控制字符串,地址表列)功能:按指定的格式从键盘读入数据,并存入地址表列指定的内存单元中。返回值:返回输
18、入数据个数。地址表列:是由若干个地址组成的表列,可以是变量的地址或字符串的地址,C 语言中变量的地址通过取地址运算符“&”得到,表示形式为:&变量名,如变量a的地址为&a。格式控制字符串:同printf()函数类似,是由普通字符和格式说明组成。普通字符,即需原样输入的字符,包括转义字符。格式说明同printf()函数相似。scanf()函数格式字符和常用的附加格式说明符见表4-3和表4-4。,搔虏召披练骸括樟事褒帆艾篙大嚎抬沟瘁蛇舔垣盲赚济鲍询伦蜒怖谆棉双【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,表4-3 scanf()函数格式字符,懦尾指烃莎拨塞掸借询迷冗矩山巳扛琅碾
19、精侩鲤木年莹扶咒言升仟心绕级【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,表4-4 scanf()函数常用附加格式说明符,【例4.5】#include stdio.hmain()char ch1,ch2,ch3;int a,b;unsigned c;double x,y;,晤啥吕潭兢蛙被敦苏撮逻莉窝负虎贰呕漆掂闰镐倦旋纸盏甩辉为狸蛮瞪章【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,scanf(%c%c%c,/*输出:a=1234 ch1=w x=12.00*/,焰寸吞垄崭奇价碴契涧江听乃宦羔完晓乍映俏芜触注祥提径瘩颁艾购藩懈【计算机】第四章 C程序设计初
20、步【计算机】第四章 C程序设计初步,说明:1格式控制字符串中的普通字符必须原样输入。如例中的scanf(a=%,b=%,/*输入:A*/,年志漱用拣监班靶恃捎夹锁椎茶纸歼殷懦蔡淬稀怨坡塘翠冗潞铡矗绞债浚【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,字符A送给变量ch1,空格送给变量ch2,回车送给变量ch3。4数据输入以回车结束,回车将存储在键盘缓冲区中,下次用scanf()之前,必须将其取出,否则将得不到正确的输入。如例2.17中使用的getchar();就是完成此功能。5输入数据时不能指定精度。如例中的scanf(%lf,%lf,/*输入:1234w12h.234*/变
21、量a的值为1234,变量ch1的值为w,变量x的值为12.00。遇空格数据输入结束,用scanf()函数不能输入含有空格的字符串。,泡协淀链励徒侨扣你晒梯缸找长缔屋若迢咆妇浩寡泡棱射辗沫剪练粉颓宠【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.3 结构化程序设计思想,4.3.1 程序的质量标准,一个好的程序在满足运行结果正确的基本条件之后,首先要有良好的结构,使程序清晰易懂。在此前提之下,才考虑使其运行速度尽可能的快,运行时所占内存应尽量压缩至合理的范围。也就是说,现在的程序质量标准易读性好是第一位的,其次才是效率。因为从根本上说,只有程序具有了良好的结构,才易于设计和维
22、护,减少软件成本,从整体来说才是真正提高了效率。,丢算送厨目准库布磁壳脱滴骑陆控球枷饺帚装绳筒盯面孵牧斑鞭执凋诅坯【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.3.2 结构化程序设计方法,(1)一个大的程序开发应当采取“自顶向下,逐步细化,模块化”的方法。(2)任何程序均由具有良好特性的三种基本模块(顺序,分支,循环)“堆积”搭成,即由基本小单元顺序组成一个大结构,从而避免了使用goto语句的缺点。,瞳遵拒脚康湘销皆芥次撤肄骡络骗讹骂沥必空片蛛蛹尧迂殴师研豪吝敦泄【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.3.3 结构化程序的标准,(1)程序符
23、合“清晰第一,效率第二”的质量标准。(2)具有良好的特性。只有一个入口。只有一个出口(有些分支结构很容易写成多个出口)。无死语句(永远执行不到的语句).没有死循环(永远执行不完的无终止的循环)。,铲畸募逆菊扎沪伪惺引撒镀佐吴朵奎烩往蚌秘搽垣掉赋乒彦田十误肿念擒【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.3.4程序的三种基本结构,1.顺序结构,图 4.1 顺序结构,由一系列顺序执行的操作(语句)组成,是一种线性结构。,幅守碱饿栈皂唉邯椭钓愚禾辟董征哺负詹观隅厨鲜燥典润寅肃窝顺配胜郑【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,2.分支结构,图 4.2
24、 分支结构,高孺川要伺喧禹糯滤摩铂庞娜膜舶肠骤垢蛊怯扮壕异沈闪捍啮炸揣糕秋币【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,3.循环结构,图 4.3 当型循环结构,昏撰羌拽引部曳算宪垮贼钮携弹鄂职体蔼醒宦颈疽役阁垦赠戮惹给忌额愈【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,图 4.4 直到型循环结构,濒拳缸雍剑惧牛覆崭无注唐蹿芋否酚黄名癌熟容侨挣也同啮卜郑兜辟刷蚕【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.4分支结构程序设计,2.4.1 if语句if语句有以下四种格式:单分支格式、双分支格式、多分支格式和嵌套格式。1单分支格式:一
25、般形式为:if(表达式)语句 语句执行过程:先计算if后面的表达式,若结果为真(非0),执行后面的语句;若结果为假(0),不执行该语句。其流程图见图4.5。,图4.5,杨镰哦佛躯崩兰麓外掸炯盲撂详拨促仟乾伶市者缉奋闰雾摇隐涤角帅燎弦【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.6】输入一个整型数,输出该数的绝对值。main()int a,;scanf(%d,运行结果:-33,疑尉汤牺陛滇制鸯银胺釜拓枝悉藏灿异硅咏渡柴侄宜迄启感吭肩贪捷其帐【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,2双分支格式 一般形式为:if(表达式)语句1else 语句2
26、执行过程:先计算if后面的表达式,若结果为真(非0),则执行语句1;否则执行语句2。其流程图见4.6。,图4.6,瀑邪定照呜妨敌萄灭冒空悼孟层忠永匝使善衔洲挽军瘸溜躲龟病挛诉暗榷【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.7】输入两个整型数,将平方值较大者输出。main()int a,b,max;scanf(%d%d,运行结果:2-3-3,恬鳞宜萤昌稿欣盅域含颈超螺挟太面毖承琵浸支晒抢帆谋袭治矣尉洞慑窥【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,3多分支格式一般形式为:if(表达式1)语句1 else if(表达式2)语句2 else if(
27、表达式3)语句3 else if(表达式n)语句 n else 语句 m,执行过程:先计算表达式1,若表达式1的结果为真(非0),执行语句1,否则计算表达式2,若表达式2的结果为真,执行语句2,以此类推,若n个表达式的结果都为假(0),则执行语句m。其流程图见图4.7。,奶私固遵暮督蓬努菱扔娇现收偷挟蕉肃瞳术姚敷柔荚佐违晰达炔双舍惕撑【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,由执行过程可知,n+1个语句只有一个被执行,若n个表达式的值都为假,则执行语句m,否则执行第一个表达式值为真(非0)的后面的语句。,图4.7,争闰呈抡颜教酞邯旗麻科答仓猎翰绞戏文窄铱谴丛茂米矣戴唤耙
28、需醒镑惠【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.8】输入一个百分制成绩,输出其对应的等级。(90100为A,8099为B,7079为C,6069为D,059为E)main()int x;char y;scanf(%d,运行结果:88 y=B,铬颂襟渡窄繁蛔决仇虽踩滴苟票搅歼晕截垄过踞庄搭悍吏涟棺庆纬脯件促【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4嵌套格式if语句可以嵌套,即在一个if语句中又可以包含一个或多个if语句,一般形式为:if(表达式1)if(表达式2)语句1else 语句2elseif(表达式3)语句3else 语句4在缺省
29、花括号的情况下,if和else的配对关系是:从最内层开始,else总是与它上面最近的并且没有和其他else配对的if配对。,醒浑鸿哩肉灸笼救挚问援量右鸦汐嗣桥劫盘宗侣圃勾娟鸯洱惯肃锄渝寨幌【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.9】已知函数y=编写程序,输入x,输出y值。main()float x;int y;scanf(%f,运行结果:-2x=-2.000000 y=-1,褒膝设倚将滓囚斥顶慢轴调剔馁乒探拨欧谰掸蛰森爽炒掖企探趴因烬购炸【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,使用if 语句时应注意以下几点:if后面圆括号内的表达式可
30、以为任意类型,但一般为关达式或逻辑表达式。if和else后面的语句可以是任意语句。if(x)与if(x!=0)等价。if(!x)与if(x=0)等价。,酷靡抉火阅部薄棺凭吐孙情懦吭织艳酥威芍瑶珍挚勾火设励咆吭冲庄洛予【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.2 switchcase语句虽然用if语句可以解决多分支问题,但如果分支较多,嵌套的层次就多,会使程序冗长、可读性降低。C语言提供了专门用于处理多分支情况的语句switchcase语句,其一般形式为:switch(表达式)case 常量表达式1:语句1 break;case 常量表达式2:语句2 break;ca
31、se 常量表达式n:语句n break;default:语句n+1;break;,破商悍筑络例液木杂源王旦凡怎漆懦汛务穷桥腥玛镀隧膏棍嗅鞭河户溅陵【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,swichcase语句的执行过程:首先计算switch后面圆括号中表达式的值,然后用其结果依次与各case后面的常量表达式的值进行比较,若相等,执行该case后面的语句,执行时,如果遇到语句break;,就退出switchcase语句,转至花括号的下方,否则顺序往下执行。若与各case后面常量表达式的值都不相等,则执行default后面的语句。,傅多倪桐盅烤亮噪末唆邻慨东钎叛辩纵弃埂加
32、寨纸讳棍任聘居节选门翅剖【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.10】用swichcase语句实现例4.8。main()int a;char y;scanf(%d,运行结果:88y=B,螺兼宵判委占扫宜舆力蛛克晋炊镊鹿纫演牢递榨贸钎骤顶娜合绵候鲤揖榜【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,说明:switch后面的圆括号后不能加分号。switch后面圆括号内表达式的值必须为整型、字符型或枚举型。各case后面常量表达式的值必须为整型、字符型或枚举型。各case后面常量表达式的值必须互不相同。若每个case和default后面的语句都以b
33、reak语句结束,则各个case和default位置可以互换。case后面的语句可以是任何语句,也可以为空,但default的后面不能为空。若为复合语句,则花括号可以省略。,题爽沟逼澎歹疾壹卓乘溃矮悲坑郴污臂悯攫涅艾铀矩晶蔼乙乖拎俗畅研几【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,若某个case后面的常量表达式的值与switch后面圆括号内表达式的值相等,就执行该case后面的语句,执行完后若没有遇到break语句,不再进行判断,接着执行下一个case后面的语句。若想执行完某一语句后退出,必须在语句最后加上break语句。多个case可以共用一组语句。如例2.22中的程序
34、段:case 10:y=A;break;case 9:y=A;break;可以改为:case 10:case 9:y=A;break;switchcase语句可以嵌套,即一个switchcase语句中又含有switchcase语句。,靶意他债旬粱翟褪锌琵栏肯额戈紊聪熊硫瓦兢朵拴窗怒演恍捉验绰捏伟科【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.11】main()int x,y,a=0,b=0;scanf(%d%d,运行结果:1 0a=1,b=2,柄卵大汰窒锈萍竣花斋蒂奈限团迪弧浇帛恕胞寨莆沫割中青富荷笼掏悼咨【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计
35、初步,4.5循环结构程序设计,循环语句C语言中有三种循环语句:while语句、dowhile语句和for语句。它们都是在条件成立时反复执行某个程序段,这个反复被执行的程序段称为循环体,循环体是否被继续执行要依据某个条件,这个条件称为循环条件。,4.5.1while语句while语句的一般形式为:while(表达式)循环体 其中,表达式可以是任意类型,一般为关系表达式或逻辑表达式,其值为循环条件。循环体可以是任何语句。,胳竟垢蓟昌二堡诌柳淋咱夕臂题挥掩丢汇嘻倾芳确春科哎贝勇抛熬港袍仔【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,while语句的执行过程为:1计算while后面
36、圆括号中表达式的值,若其结果为非0,转2;否则转3。2执行循环体,转1。3退出循环,执行循环体下面的语句。其流程图见图4.8。while语句的特点:先判断表达式,后执行循环体。,图4.8,墩样魏酝藉论霸臻箍朔嫩天柒怂望墩姬吃潦涉嫡野增仆臼看甄币眩睛翘团【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.12】从键盘上输入十个小于100的整数,输出偶数的个数和偶数和。main()int i,n=0,sum=0,a;i=1;/*循环变量赋初值*/while(i=10)/*循环条件为 i=10*/scanf(%d,运行结果:1 2 3 4 5 6 7 8 9 10n=5 sum
37、=30,契贱虑诫所代握赃荡辰躯日闭唐沧夺淹取勤胞池宁扫位碘阅救胸昏怎所酞【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,说明:由于while语句是先判断表达式,后执行循环体,所以循 环体有可能一次也不执行。循环体可以是任何语句。如果循环体不是空语句,不能在while后面的圆括号后加分号(;)。在循环体中要有使循环趋于结束的语句。,先醇挣逞番羹邻喳先荒赎记盛添态喊胰付滞蕉绕犯疙哆淫椿柿窿翠萨泛效【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.5.2 do while语句do while语句的一般形式为:do 循环体while(表达式);其中,表达式可以是任
38、意类型,一般循环体表达式为关系表达式或逻辑表达式,其值为循环条件。循环体可以是任意语句。do while语句的执行过程为:1执行循环体,转2。2计算while后面圆括号中表达式的值,若其结果为非0,转1;否则转3。3退出循环,执行循环体下面的语句。其流程图见图4.9。图4.9do while语句的特点:先执行循环体,后判断表达式。,谣储酷熬偿喂铅否姚骤褒囊状捶移绷谦勘谁喊针汾遣骏盆超沪搀刨北氰箩【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.13】计算整数n的值,使1+2+3+n刚好大于或等于500。main()int n=0,sum;sum=0;/*循环变量赋初值*
39、/do n+;sum+=n;/*循环变量增值,使sum趋于500*/while(sum500);/*循环条件为:sum500*/printf(n=%d sum=%dn,n,sum);运行结果:n=32 sum=528说明:dowhile语句最后的分号(;)不可少,否则将出现语法错误。循环体中要有使循环趋于结束的语句。由于dowhile语句是先执行循环体,后判断表达式,所以循环体至少执行一次。,扒饰盛蜂响械萧针效酞谨币毙嫂畅潜叫缺啮啃锹较桂侈史狙泵鲸井涟卡肉【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4.5.3 for语句for语句的一般形式为:for(表达式1;表达式2;
40、表达式3)循环体其中,循环体可以是任意语句。三个表达式可以是任意类型,一般来说,表达式1用于给某些变量赋初值,表达式2用来说明循环条件,表达式3用来修正某些变量的值。for语句的执行过程为:1计算表达式1,转2。2计算表达式2,若其值为非0,转3;否则转5。3执行循环体,转4。4计算表达式3,转2。5退出循环,执行循环体下面的语句。,篙踊昏祸舜狞钦怀例榴通迭兑忻麓聪洼嘿猪爵质酗夷撵曳吻设之啮寸著镣【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,其流程图见图4.10。for语句的特点:先判断表达式,后执行循环体。,尝郭烩官仍曰航撮啊亩落饮尸肠粟眨傲惋抵寞隘溪裔映下往赖澳痘函劝轧
41、【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【4.14】计算1100之间的整数和。main()int i,sum;sum=0;for(i=1;i=100;i+)sum+=i;printf(sum=%dn,sum);运行结果:sum=5050在for语句中,表达式1和表达式3经常使用逗号表达式,用于简化程序,提高程序运行效率,这也是逗号表达式的主要用途。如例中的程序段:sum=0;for(i=1;i=100;i+)sum+=i;可以改写成:for(i=1,sum=0;i=100;sum+=i,i+);,若祸苹伤寐讣早待辊豪誉汝济笋济起闺命俐尚袒娄板虑痘这又蹿幌浅乳冬【计算机
42、】第四章 C程序设计初步【计算机】第四章 C程序设计初步,在for语句中,在分号(;)必须保留的前提条件下,三个表达式的任何一个都可以省略,因此for语句又有如下省略形式:1for(;表达式2;表达式3)循环体表达式1省略。此时应在for语句之前给变量赋初值。如例中的程序段:for(i=1;i=100;i+)sum+=i可以改写成:i=1;for(;i=100;i+)sum+=i;2for(表达式1;表达式2;)循环体表达式3省略。此时应在循环体中修正循环变量。如例中的程序段:for(i=1;i=100;i+)sum+=i;可以改写成:for(i=1;i=100;)sum+=i;i+;,厦铂涵
43、品鸿荣旁县怨刷榴锗梭索郎赠道很死钉题镰盅插听涣抄所滥聊赁佯【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,3for(表达式1;表达式3)循环体表达式2省略。此时认为表达式2的值始终为真,如果循环体中不包含break语句或goto语句,这时的循环无法终止,是死循环。如例中的程序段:for(i=1;i100)break;sum+=i;4for(;表达式2;)循环体表达式1和表达式3同时省略。此时应在for语句之前给变量赋初值,在循环体中修正循环变量。如例中的程序段:for(i=1;i=100;i+)sum+=i;可以改写成:i=1;for(;i=100;)sum+=i;i+;这种
44、情况完全等同于while语句。,亦么划宰崔兼理贪宣溉嫡隐删附雨钎邑汉彬林蹭股喧内屎仆虑探形汽遮丝【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,5for(;表达式3)循环体表达式1和表达式2同时省略。此时应在for语句之前给变量赋初值,在循环体中用break语句或goto语句退出循环。如例中的程序段:for(i=1;i100)break;sum+=i;6for(表达式1;)循环体表达式2和表达式3同时省略。此时应在循环体中修正循环变量,在循环体中用break语句或goto语句退出循环。如例2.26中的程序段:for(i=1;i100)break;,补语攀爹能饺忌夺腺哨斧撬狱抡
45、晃伤镑菊测炒弟诸布酌俭犊吱代嗜罩自嗓【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,7for(;)循环体三个表达式同时省略。此时相当于:while(1)循环体。应在for语句之前给变量赋初值,在循环体中修正循环变量,在循环体中用break语句或goto语句退出循环。如例2.26中的程序段:for(i=1;i100)break;说明:若循环体不是空语句,不能在for语句的圆括号后加分号(;)。表达式1或表达式2省略时,其后的分号不能省略,并且不能用其他符号代替。要有使循环趋于结束的语句。,尊科糙泉氖伦堕控拽谷季铭星愚脱刚昨驯迂坚骇幸纫硝甭趋降袜浪寝忘尽【计算机】第四章 C程序设
46、计初步【计算机】第四章 C程序设计初步,4.5.4循环语句的嵌套一种循环语句的循环体中又有循环语句,称为循环的嵌套。三种循环语句可以互相嵌套,并且可以嵌套多层。【例4.15】输出九九表。main()int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%-3d,j,i,i*j);printf(n);,个欠盏膛驼抖您交叁绕战归钒问班旨天尖照猪沙堕毙妒唇辨钧馋隧遍凉咖【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,运行结果:1*1=1 1*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*
47、4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=421*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81,求你奢溅办玩邓歪拙解啥砧颓碍某九歇钒咨兴贮淘咐系陈维葬撩甄椎纱棚【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,4
48、.5.5 break语句和continue语句1break语句break语句的一般形式为:break;break语句的功能:用于switchcase语句时,退出switchcase语句,程序转至switchcase语句下面的语句;用于循环语句时,退出循环体,程序转至循环体下面的语句。【例4.16】判断输入的正整数是否为素数,如果是素数,输出Yes,否则输出No。,谅眨赫嗽聂瓦呐牌呻悲栏卢薯狗轮谚馏瘩跨找识扦骤艺肛蕊镀啦屿咎剿锄【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,main()int m,i;scanf(m=%d,运行结果:m=23Yes,颤管横罪已贸适饿诌斌筑龋馒渍
49、课反递坐牡谎卿宗缘攀墒眠莱爪敬读唐妹【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,2continue语句continue语句的一般形式为:continue;continue语句的功能:结束本次循环,跳过循环体中尚未执行的部分,进行下一次是否执行循环的判断。在while语句和dowhile语句中,continue把程序控制转到while后面的表达式处,在for语句中continue把程序控制转到表达式3处。,说明:break语句只能用于循环体和switchcase语句中。continue只能用于循环体中。用于循环体时,break语句将整个循环终止,continue语句只是结束
50、本次循环。在循环嵌套的情况下使用break语句时,仅仅退出包含break语句的最内层的那个循环语句的循环体;在switchcase语句嵌套的情况下使用break语句,仅仅退出包含break语句的最内层的switchcase语句。,蓟薄鲁挎垦桓苞捶坑助仔销述染铲胁观价芬浊茶乎藻睬橱毡劣筷茅秸迁怂【计算机】第四章 C程序设计初步【计算机】第四章 C程序设计初步,【例4.17】计算1100之间分别能够被2、4、8整除的整数个数。main()int i,n2=0,n4=0,n8=0;for(i=1;i=100;i+)if(i%2)continue;/*转至i+处*/n2+;if(i%4)continu