C语言(基本控制结构)

上传人:仙*** 文档编号:244209064 上传时间:2024-10-03 格式:PPT 页数:44 大小:255KB
返回 下载 相关 举报
C语言(基本控制结构)_第1页
第1页 / 共44页
C语言(基本控制结构)_第2页
第2页 / 共44页
C语言(基本控制结构)_第3页
第3页 / 共44页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章,C,语言的基本控制结构,2.3 循环结构,2.2 选择结构,2.1 顺序结构,2.1,顺序结构,顺序结构:按照语句的书写顺序依次执行每条语句。,语句:,三,.,表达式语句,(,操作语句,),a,=3,a=3;,一,.,流程控制语句,二,.,函数调用语句:如,printf,(,);,i=i+1,i=i+1;,i+;,x+y;,四,.,空语句,;,五,.,复合语句,z=x+y;,t=z/100;,printf(,“,%f,”,t,);,此处没有分号,赋值运算符与赋值表达式,赋值运算符:,=,右结合,简单赋值,运算:,变量,=,表达式,过程:计算、转换、赋值,自反算术赋值,运算,(,复合,赋值,运算,),+=,自反加赋值,-=,自反减赋值,*,=,自反乘赋值,/=,自反除赋值,%=,自反模赋值,如:,a+=3,a=,a+,3,x*=y+8 x=,x*,(y+8),多重赋值运算,a=(b=5),a=b=5,a=5+(c=6),c,的值为6,,a,的值为11,表达式的值为11,2.2,选择结构,选择结构是指根据某些数据的取值或计算结果选取不同操作的处理方式。,选择结构的描述由两个基本部分组成,一是对选择条件的描述;二是对处理分支的描述。,2.2.1,关系运算与逻辑运算,运算符 功能,大于,=,大于等于,小于,c,用关系运算符将两个表达式连接起来的式子,优先级:算术 关系 赋值,高低,a=(bc),a=bc,a=(b32,如:,a=3,b=2,c=1,则:(,ab)=c,d=ab,d,的值为,1,f=abc,ab,的值为,1,1,c,的值为,0,f,的值为,0,值为1,逻辑运算符,&、|,双目运算符,如,a&b,,,左结合,&、|,的优先级低于关系运算符,,!,高于,算术运算符,&,与,,|,或,,!,非,如:(!,a)|(ab),!a|ab,(ab)&(xy),ab&xy,!,单目运算符,如,!,a,,,右结合,判断一个量是否为真时,非0为真,0为假,逻辑表达式,逻辑表达式的值:1 或 0,如:,a=4,!a,值为0,a=4,b=5,a&b,值为,1,a|b,值为,1,!,a|b,值为,1,4&0|2,值为,1,注意:不是所有的运算符都被执行,如:,a&b&c,a|b|c,如已知:,a=1,b=2,c=3,d=4,m=1,n=1,则:,(,m=ab)&(n=cd),m=0,n=cd,不被执行,,n=1,例如:,x=0&y+,如果,x,小于0,将不计算,y+。,例如:,x=0|y+,如果,x,大于或等于0,将不计算,y+,注意:数学上的,a,x,b,不同于,C,中的,a=x=b,如:,a=0,b=0.5,x=0.3,正确表示:,a=x&x=b,结果为1,a=x=b 1=b,结果为,0,2.2.2 if,语句,if(),if(),else ,if(3),printf,(“OK”);,if(a),printf,(“%d”,a);,说明:,1.表达式结果非0即为真,2.在每个分支语句后面有一分号,3.,if,和,else,后面可以只含一个内嵌的操作语句,,也可以是一个复合语句,例,1,:,P37,分析整数绝对值的计算过程。,#,include ,main(),int,input,output;,printf,(“,nEnter,a integer:”);,scanf,(“%d”,if(input 0)/*,判断,input,是否小于,0*/,output =-input;,else,output =input;,printf,(“ABS(%d)=%dn”,input,output);,例:,输入3个整数,按由小到大顺序输出。,#,include,void main(),int,a,b,c,t;,scanf,(“%d%d%d”,if(ab),t=a;a=b;b=t;,if(ac),t=a;a=c;c=t;,if(bc),t=b;b=c;c=t;,printf,(“%d,%d,%d”,a,b,c);,输入:3 7 1,输出:1,3,7,Y,交换,a、b,ab,N,Y,交换,a、c,ac,N,Y,交换,b、c,bc,N,#,include ,main(),int,x,y;,printf,(“,nEnter,2 integers:”);,scanf,(“%d%d”,if(x 0),if,(y0),printf,(“I quadrant n”);,else,printf,(“VI quadrantn”);,else,if,(y 0),printf,(“II quadrant n”);,else,printf,(“III quadrant n”);,P38,例2:,输入坐标点,判断该坐标点处于第几象限,。,内层嵌套的,if,语句,内层嵌套的,if,语句,1.输入坐标点,x,y,2.,如果,x0,且,y0,第1象限,否则第4象限,3.,否则:,如果,y0,第2象限,否则第3象限,例:当输入不同字符时,通过多分支选择结构,,显示该字符所属的种类,#,include,void main(),char c;,printf,(“Enter a character:”);,c=,getchar,();,if(c=0&c=A&c=a&c=z),printf,(“The character is a lower lettern”);,else,printf,(“is other charactern”);,if(,条件1),语句1,else if(,条件2),语句2,else if(,条件,m),语句,m,else,语句,n,格式:,switch(,表达式),case,常量1:,语句序列,break;,case,常量2:,语句序列,break;,case,常量,n:,语句序列,break;,default:,语句序列,break;,break,的作用:终止当前语句的执行,,跳出,switch,结构,首先计算表达式,将该值与每个,case,后的常量进行比较;如果等于某个常量,则执行该,case,后的语句序列,直到,switch,结束;如果该值与每个,case,常量都不相同,则执行,default,后的语句序列。,2.2.3 多路选择和,switch,语句,每个,case,后面的常量不能相同。,例:读入1,7之间的某个数,输出表示一星期中相应某一天的单词。,#,include,main(),int,number;,printf,(,“,Enter,int,number:,”,);,scanf,(,“,%d,”,switch(number),case,1,:,printf,(,“,Mondayn,”,);break;,case,2,:,printf,(,“,Tuesdayn,”,);break;,case,3,:,printf,(,“,Wednesdayn,”,);break;,case,4,:,printf,(,“,Thursdayn,”,);break;,case,5,:,printf,(,“,Fridayn,”,);break;,case,6,:,printf,(,“,Saturdayn,”,);break;,case,7,:,printf,(,“,Sundayn,”,);break;,default:,printf,(,“,Errorn,”,);,#,include,main(),char c;,scanf,(“%c”,printf,(“,nIt,s a”);/*,用输出撇号*/,switch(c),case 0:,case 1:,case 9:,printf,(“,digiter,.n”);break;,case :,case n:,case t:,printf,(“white.n”);break;,default:,printf,(“char.n”);break,例:判断由键盘输入的字符是数字、字母,还是空格。,允许几种,case,执行相同的语句序列,#,include ,main(),double a,b,c;,char op;,printf,(,“,n Enter a expression,”,);,scanf,(,“,%lf%c%lf,”,switch(op),case,+,:c=a+b;break;,case,-,:c=a,b;break;,case,*,:c=a*b;break;,case,/,:c=a/b;break;,default :,printf,(,“,Input Errorn,”,);,break;,printf,(,“,%lf%c%lf=%lfn,”,a,op,b,c);,P41,例3:,输入一个格式为,x+y,的二元算术运算表达式,输出这个表达式的计算结果。,Enter a expression,4.3-2.0,4.300000-2.000000=2.300000,例,4,(自学):,通过键盘读取两个复数和运算符,完成复数运算的操作,并输出计算的结果。,#,include ,main(),double a,b,c,d,r,i,t;,char op;/*,保存运算符,*/,printf,(“,nEnter,the first complex number:”);,scanf,(“%lf%lf”,printf,(“,nEnter,the second complex number:”);,scanf,(“%lf%lf”,getchar,();,printf,(“,nEnter,a operator:”);,scanf,(“%c”,/*,输入运算符,*/,switch(op)/*,检查运算符,*/,见下页,printf,(“The result is%lf+%,lfi,n”,r,i);,case +:,r=a+c;,i=b+d;,break;,case -:,r=a c;i=b d;,break;,case *:,r=a*c b*d;i=b*c+a*d;,break;,case /:,t=c*c d*d;,if(t=0),printf,(“The denominator is 0.n”);,return0;,r=(a*c+b*d)/t;i=(b*ca*d)/t;,break;,default:,printf,(“Invalidation operator.n”);,return0;,2.3,循环结构,2.3.1 while,语句,格式:,while(),条件,语句,非0,0,例:求,#,include,void main(),int,i,sum=0;,i=1;,while(i=100),sum=sum+i;,i+;,printf,(“%d”,sum);,循环体,注意:循环体为多个语句时,必须用大括号括起来构成复合语句,否则循环范围只到,while,后面的第一个分号处。,P45,例,5,:,从键盘输入,10,个整数,计算它们的平均值,#,include ,main(),int,sum=0,i=1;,int,x;,/*,保存当前输入的数据*/,printf,(“,nEnter,10 integers:”);,while(i=10),scanf,(“%d”,/*,读入整数,x*/,i+;,/*,累加已输入的数据个数*/,sum=sum+x;,/*,累加输入的数据总和*/,printf,(“The average value is%lfn”,sum,*,1.0/(i-1);,2.3.2,for,循环语句,格式:,for,(,初值表达式,;条件表达式;,增量表达式,),循环体语句,1,2,3,4,5,真,假,初值表达式:,给循环变量赋初值。,条件表达式:,循环的条件,,决定循环是否继续。,增量表达式:,改变循环变量的值,,给循环变量增加一个定量(步长)。,main(),int,i,n,sum=0;,scanf,(,“,%d,”,for(i=
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!