ImageVerifierCode 换一换
格式:PPT , 页数:72 ,大小:278.50KB ,
资源ID:12293585      下载积分:16 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/12293585.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(谭浩强c语言教程结构性程序的开发.ppt)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

谭浩强c语言教程结构性程序的开发.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,谭浩强c语言教程 结构性程序的开发,3.1 C,程序结构和语句,一、C,程序结构,每一个源文件由预编译命令和若干函数组成,(,对每个文件分别编译,然后连接),一般地,一个C,程序可由多个源文件组成,每一个函数由说明部分和语句部分组成,C,程序结构:,C,程序,源程序文件1,源程序文件i,源程序文件n,预编译命令,函数1,函数n,说明部分,执行部分(语句),函数调用语句:,如:printf(,);,二、C,程序,语句,1.,表达式语句,赋值语句:,如:i=i+1,;,i+,;,x+y,;,空语句:任何事情都不

2、做。,C,程序语句可分为五大类:,如:,;,2.,控制语句改变语句的执行顺序,if()else (,条件),for()(,循环),while()(,循环),do while (循环),switch (多分支选择),()表示条件,表示语句,continue (,结束本次循环),break (,中止整个循环),return (,函数返回),3.,限定转向(无条件转向)语句,5.,终止程序运行语句,4.,无条件转移语句,goto,exit,6.,复合语句(语句体),用 括起来的一系列语句。,如:z=x+y;,t=z/100;,printf(,%f,t);,三、结构化程序设计概念,从,结构化程序设计角

3、度出发,程序只有三种结构,:,顺序结构,选择结构,循环结构,1.顺序结构,表示,A,B,AB,先执行,A,再执行,B,.,2.选择结构,表示为,A,B,P,T,F,B,T,P,F,A,存在某条件P,若P为真,则执行A,否则执行B。,另一种,选择结构多分支结构.,K,K=K1,A1,A2,Ai,An,K=K2,K=Kn,3.,循环结构,表示为,P,F,T,A,A,P,为T,(1),当型结构,当P条件成立时(T),反复执行A,直到P为“假”时才停止循环.,有两种结构:,当型,和,直到型,(2),直到型,A,P,T,F,A,直到P,为F,先执行A,再判断P,若为F,再执行A,如此反复,直到P为F.,

4、已证明,:上述三种结构组成的程序可以解决全部的问题,所以任何一种高级语言都具备上述三种结构。,3.2 算 法,1.,按指定的语句和顺序来解决问题的过程称为算法。,2.,算法的两个重要方面:,顺序,语句,3.,算法的图形表示:流程图,4.流程图符号:,椭图,矩形,判断框,小圆圈,代表程序的开始或结束,代表程序所执行的动作,代表程序的分支,代表程序的连接,所有的流程图用一带箭头的线(流线)相连,就构成了程序的流程(顺序),如:,3.3 if,选择结构条件判断,一、,if,的三种形式,功能:,当表达式值非0时,执行语句体A,否则不执行 语句体A.,形式1,if(表达式),语句体 A,表达式,语句体A

5、0,0,例如:,if(xy);x=x%2;printf(%d,x);,其流程图:,形式2,if(,表达式),功能:,表达式为非0,执行语句体A,表达式为0,执行语句体B,else,语句体B,语句体A,表达式,语句体A,语句体B,0,=0,例:,if(xy),printf(%d,x);,else printf(%d,y);,形式3,if(,表达式1),else if(,表达式2),else if(,表达式3),else if(,表达式n),else,语句体1,语句体2,语句体3,语句体n,语句体n+1,流程:,表达1,表达2,表达3,表达n,语句体2,语句体3,语句体n,语句n+1,语句体1,

6、0,=0,=0,0,0,0,如:,if(3)prinf(o.k);,if(a),1.,表达式可以是逻辑、关系,甚至是算术表达式。,2.,语句必须以分号结束,3.,若语句不止一条,则必须用 括起来。在 外可以不用分号.,二、注意的问题:,例1,有,3,个整数,a,、,b,、,c,,由键盘输入,输出其中最大的数。,0,输入a、b、c,ab?,bc?,ac?,max=a,max=c,max=b,max=c,输出max,1,0,1,1,0,main(),int a,b,c,max;scanf(“%d,%d,%d”,if(ab),if(ac),max=a;,else,max=c;,else,if(bc)

7、max=b;,else max=c;,printf(“Max is%dn”,max);,#include main()float a,b,t;scanf(%f,%f,例2,输入两个实数,按代数值由小到大次序输出这两个数。,3.6,3.2,3.20,3.60,运行情况如下,:,开始,输入a、b、c,a b,a c,交换a、b的值,b c,交换b、c的值,交换a、c的值,打印a、b、c的值,Y,Y,Y,N,N,N,结束,例3,输入三个数,按大小顺序输出。,#include main(),float a,b,c,t;scanf(“%f,%f,%f”,if(bc)t=b;b=c;c=t;printf(

8、5.2f,%5.2f,%5.2f,a,b,c);,运行情况如下,:,3,7,1,7.00,3.00,1.00,三、if,语句的嵌套,if(,表达式1),内嵌if,else,内嵌,注意,:else,与最近的if 配对.,一般形式,在上述形式的if语句中,又可以是if语句称为嵌套。,if(,表达式2)语句1,if(,表达式3)语句3,else,语句2,else,语句4,例:,if(),if(),语句2,else 语句3,if (),if(),语句1,else,所以:必要时加.,if(),语句1,else,例3,有一函数:,y=,1 (x0),编一程序,输入一个x,值,输出y值。,有以下几种写法,

9、请判断哪些是正确的?,程序2:,将程序1的if,语句改为:,/*exp52.c*/#include main()int x,y;scanf(d,if(x=0)if(x0)y=1;else y=0;else y=-1;,printf(x=%d,y=%dn,x,y);注意ifelse 对齐,程序1:,/*exp51.c*/#include main()int x,y;scanf(d,if(x=0),if(x0),y=1;,else,y=-1;,printf(x=%d,y=%dn,x,y);,程序3:,将程序1的if,语句改为:,/*exp53.c*/,#include,main(),int x,y

10、scanf(%d,y=-1;,if(x!=0),if(x0),y=1;,else,y=0;,printf(x=%d,y=%dn,x,y);,1.,程序1 和程序2 是正确的。它们代表的函数为:,2.,程序3 和程序4 是错误的。它们代表的函数为:,y=,0 (x0),y=,1 (x0),结论,:,思考练习,:,分别画出一个程序的流程图,四、条件运算符,C,语言提供了一个简单的条件赋值语句或条件表达式。,问题:,当判断条件不论是“真”是“假”,均给同一变量赋值时。,简化条件语句运算符书写方式:,?:,属三目运算符。,功能:,先判表达式1,若非0,则值为表达式2的值,否则为表达式3的值。,一般

11、形式:,表达式1?表达式2:表达式3,max=ab?a:b;,当ab.max,a.,否则max,b,注意:,1.,条件运算符优先于赋值运算符.,例:,max=(ab?a:b),可去掉(),2.,条件运算符低于关系运算符和算术运算符。,3.,条件运算符结合性为从右至左。,例:,max=ab?a:b+1,max=ab?a:(b+1),并不是,max=(ab?a:b)+1,如:,ab?a:cd?c:d,相当于 ab?a:(cd?c:d),4.,条件表达式不能取代一般的if,语句,只有当if 的两 个分支为给,同一变量赋值,时才可替代if.,if(ab)printf(%d,a);,else print

12、f(%d,b);,可写成:,printf(%d,ab?a:b);,如:,例,#include,main(),float x=1.0;,int a=2,b=3;,x=(ab)?a:b;,printf(“%f”,x);,输出为:3.0000,条件表达式(ab)?a:b的值为整型数据,但x为实型数据,所以输出为实型数据,.,5.,表达式1、表达式2、表达式3的类型可以不同。,#include main()char ch;scanf(%c,例4,输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,运行结果如下:,A,a,一、复合赋值运算符:在,号之

13、前加一个其它运算符。,C语言规定,:凡是二目运算符均可构成复合运算符。,例:,a+=3;,相当于 a=a+3,x,=y+8;,相当于 x=x,(y+8),x%=3;,相当于x=x%3,一般形式:,二、复合赋值表达式,例,:,x=10,为一赋值表达式,其中又可以是一个赋值表达式。,例:,x=(y=10),相当于 y=10;x=y,由于赋值号为右结合性,于是,(),可省略,,即为,:x=y=10;,例:,a+=a =a,a (设a,12),又,:a=5+(c=6),c=6,a=11,a=(b=4)+(c=6),b=4,c=6,a=10,a=(b=10)/(c=2)b=10,c=2,a=5,还可用复

14、合赋值运算符作下列运算:,步骤:,aa144.,a,=a,a,a=a,a,a=12 144=132,a+=132,a=a+(,132)=264,3.4逗号运算符和逗号表达式,一般形式:,表达式1,表达式2,其计算规则:,先计算表达式1,再计算表达式2,最后值为表达式2的值。,例:,in a,b;a=3,5,a,4;b=(3*5,a*4);,结果,:a=15 b=60,略,若,:b=(a=3,5,a,4),a+5);,扩展形式:,表达式1,表达2,表达式n,结果b=20(作为逗号表达式的值),a+5,b,即 20b.,3,5=15,a,a,4=60 (,此时a值仍未变),结果为表达式n的值,略,

15、四、自增,自减运算符,例如:,若有:,int i=3;,+自增1,自减1,+i:先使i值+1,再使用i值;,i+:,先使用i值,再使i值+1.,则:j=+i;结果为:j=4,i=4.相当于 i=i+1;j=i;,则:j=i+;结果为:j=3,i=4.相当于 j=i;i=i+1,同理:,i,i ,均使i,值1,但:,i:,先使i值1,再使用i值;,i :先使用i,值,再使i值1,例如:,int i=3,j;,则:j=i;结果为:j=2,i=2.相当于 i=i1;j=i;,则:j=i;结果为:j=3,i=2.相当于 j=i;i=i1;,1.,+和 运算法只能用于变量,不得用于常量和表达式.,如:,

16、5+,(a+b)+均为不合法,.,几,点注意:,2.,+,的结合性为从右至左,而一般算术运算符为从左至右。,如,:,i+,和,+,为同一优先级.,i+,相当于(i+),例,:,#include,main(),int i=3,j;,j=-i+;,printf(i=%d,j=%dn,i,j);,运行结果:,i=4,j=-3,1.,要慎用+、运算符。,五、有关表达式使用中的问题说明,对于表达式(i+)+(i+)+(i+);我们可能会认为应,从左至右:3+4+5=12,例,:#include,main(),int i=3,j;,j=(i+)+(i+)+(i+);,printf(i=%d,j=%dn,i

17、j);,实际运行结果:,i=6,j=9,先对i进行3次自加,结果i的值为6,然后三个i值相加为18。,3+3+3=9 然后再把6赋给i,值,如果表达式,j=(i+)+(i+)+(i+);,改,为:,j=(+i)+(+i)+(+i);,则运行结果:,i=6,j=18,这是因为运算时是先取i的原值:3,2,.,在表达式中,有的运算符为一个字符,有的为两个字符。,一般地,:,自左至右尽可能多地将若干字符组成一个运算符,。,如:,i+j,究竟理解为(i+)+j还是i+(+j)?,例,:,#include,main(),int i=3,j=3,m;,m=i+j;,printf(i=%d,j=%d,m=

18、dn,i,j,m);,运行结果:,i=4,j=3,m=6,对语句m=i+j;,系统理解为m=(i+)+j;,3.,在函数调用时要注意参数的计算顺序,printf(,i=,%d,i=%d,i,i+);,如,:int i=3;,int j=3;,printf(,j=,%d,j=%d,j+,j);,输出结果,:i=4,i=3;,j=3,j=3;,原因:,参数的计算顺序从右到左。,数据输出,格式:putchar(c),参数:c为字符常量、变量或表达式,功能:把字符c输出到显示器上,返值:正常,为显示的代码值;出错,为EOF(-1),C,语言无,I/O,语句,,I/O,操作由函数实现,字符输出函数,#

19、include,putchar()函数,1、功能:将,一个,字符输出到标准输出设备。,2、格式:,putchar(c),3、使用要点:,putchar,(c),中的,c,可以是字符型或整型数据;,c=98;,putchar,(c),输出字符,b,putchar,(a),输出字符,a,putchar,(0 x41),输出字符,A,使用输出函数需要调用,c,的标准,I/O,库函数,故需用预编译命令:,#,include ,将,stdio,.h,文件包含在用户源程序文件中;,putchar(),也可以输出一个控制字符或其它转义字符。,如:,putchar,(n),输出一个换行符,putchar,(

20、101),输出字符,A,putchar(),输出字符单引号,4、,举例:,格式:getchar(),功能:从键盘读一字符,返值:正常,返回读取的代码值;出错,返回EOF(-1),字符输入函数,例,/*ch3_4.c*/,#include,main(),int c;,printf(Enter a character:);,c=getchar();,printf(%c-hex%xn,c,c);,运行结果:,Enter a character:A,A-hex41,数据输入,putchar()函数,例 输入一个字符,回显该字符并输出其A S C I I码值。,#include,main(),char

21、ch;,ch=getchar();,putchar(ch);,printf(%d n,ch);,运行程序:,g,g 103,本章主要介绍的内容:,1.C,程序语句的分类,2.C,程序结构的分类,3.if,语句和条件运算符,4.逗号表达式,5.自增、自减运算符,本章小结,6.输入输出,作业1:有一函数:,x (x1),y=2x-1 (1,x10),3x-11 (x,10),用,if-else-if,结构,输入x值,输出y值,作业2:写一程序,输入年号,判断是否为闰年。,算法:,当年号能被4整除但不能被100整除时,它为闰年。,当年号能被400整除时,它为闰年。,根据闰年的判断条件为下列条件之一:

22、例如,:,判断年号是否为润年。,润年必须满足下列条件中的任意一个:,年号能被400整除。,年号能被4整除但不能被100整除。,当,(year%4!=0),(year%100=0&year%400!=0),为1时,year为非润年。,设用变量year,表示年号,当,(year%4=0&year%,100!=0),(,year%400=0),为1时,year为润年,否则为非润年。,如果要判别非润年可在上述表达式前加非(!)运算符.,当,!(year%4=0&year%100!=0),(,year%400=0),为1时,year为非润年。,或者:,即:,则:,程序举例,作业:写一程序,输入年号,判

23、断是否为闰年。,1.,算法:,当年号能被4整除但不能被100整除时,它为闰年。,当年号能被400整除时,它为闰年。,根据闰年的判断条件为下列条件之一:,流程图,开始,输入年号,判断是否为润年?,打印是润年,打印非润年,结束,Y,N,if(year%4=,0)&year%100!=0)(year%400=0),#include,main(),int year;,scanf(%d,printf(%d is,year);,else,printf(%d is not,year);,printf(a leap yearn);,程序,:,第四章 程序控制,例有一函数:,x (x1),y=2x-1 (1,x

24、10),3x-11 (x,10),这是一个求三个分支的函数值的的情况,选用,if-else-if,结构比较方便。,main(),float x,y;,scanf(“%f”,if(x1)y=x;,else if(x=10000,则tax=0.05*(price-10000);price=10000;,否则,若price =5000,则tax=0.03*(price-5000)+tax;price=5000;,否则,若price =1000,则tax=0.02*(price-1000)+tax;price=1000;,#include,main(),float price,tax=0;,print

25、f(input price:);,scanf(%f,if(price=10000.0),tax=0.05*(price-10000)+tax;price=10000;,if(price=5000.0),tax=0.03*(price-5000)+tax;price=5000;,if(price=1000.00),tax=0.02*(price-1000)+tax;,printf(the tax=%10.3 f,tax);,运行程序:,15000 the tax=480.000,例,试编写程序,数据由键盘输入,求该数的绝对值。,例,试编写程序,数据由键盘输入,求该数的绝对值。,#include“stdio.h”,main(),float x,y;,printf(“please input real number x=?”);,scanf(“%f”,y=x;,if(x0.0),y=-x;,printf(“abstr(%f)=%fn”,x,y);,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服