欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计教程件.ppt

    • 资源ID:24174708       资源大小:355KB        全文页数:49页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计教程件.ppt

    5.1 关系运算符和关系表达式 6 种关系运算符种关系运算符: (小于)(小于) (小于或等于)(小于或等于) (大于)(大于) (大于或等于)(大于或等于) (等于)(等于) ! (不等于)(不等于) 5.1.1 关系运算符关系运算符优先级相同(高)优先级相同(低)结合性结合性:自左向右:自左向右 关系运算符的优先次序关系运算符的优先次序 与其它运算符优先级的比较与其它运算符优先级的比较:算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符(高)(高)(低)(低)例如: c=da+b等效于:c=(d(a+b)1. 什么是关系表达式?什么是关系表达式?5.1.2 关系表达式关系表达式如:(ab)(bc) 、ay 、s+fd2. 关系表达式的值关系表达式的值运算结果运算结果 逻辑值逻辑值 1“真真” ,0“假假”如:如: 设设 a=3, b=2, c=1 求下面关系表达式求下面关系表达式 的值:的值: cb (a-b) = = 1 b+ca值为值为值为值为值为值为如果关系运算对象的类型不同,也要先进行类型转换如果关系运算对象的类型不同,也要先进行类型转换。关系表达式的应用。关系表达式的应用。main()char c=k;int i=4,j=2,k=5;float x=3e+5,y=7.56;printf(“%d,%dn”,a+3=k+1);printf(“%d,%dn”,i+j=-3*j,k=j=i+7);printf(“%d,%dn”,xa+b&ab等效于: c=(d(a+b)&(ab)1. 什么是逻辑表达式?什么是逻辑表达式?5.2.2 逻辑表达式逻辑表达式用逻辑运算符将逻辑运算对象连结起来的式子用逻辑运算符将逻辑运算对象连结起来的式子。如:(ab)&(bb 2. 逻辑表达式的值逻辑表达式的值运算结果运算结果 逻辑值逻辑值(只有假为只有假为0、真为、真为1两种取值两种取值)如:如: 53 & 2 | 84 b&d值为值为 1值为值为运算对象运算对象 以以数值非数值非0为真、为真、0为假为假注意事项:注意事项:(1)代数式不等式代数式不等式0 x0)&(x5),而不能直接写成而不能直接写成0 x y ) z = x;2. 双分子语句双分子语句if (表达式表达式) 语句语句1 else 语句语句2 执行过程: 当表达式的值为“真”(非零)时,执行语句1,否则,执行语句2。如如: if (xy) z=x ; else z=y ;3. 多分子语句多分子语句if (表达式表达式1) 语句语句1 else if(表达式表达式2) 语句语句2 else if(表达式表达式3) 语句语句3 : else if(表达式表达式m) 语句语句m else 语句语句n如:if (grade=85) level=A; else if (grade=70) level=B; else if (grade=60) level=C; else level=D; if 语句说明:语句说明: if后面的表达式一般为逻辑表达式或关系表后面的表达式一般为逻辑表达式或关系表 达式,也可以是任意数值类型表达式。达式,也可以是任意数值类型表达式。该语句是合法的:if(3) printf(“ok!”); if 语句中的语句中的“语句语句”为一个简单语句或复合语句。为一个简单语句或复合语句。 如:下面程序段是否有错?if (x=0) printf(“X is positive.”); x+;else printf(“X is negative.”);if (x=0) printf(“X is positive.”); x+;else printf(“X is negative.”);4. if 语句的嵌套语句的嵌套 在 if 语句中又包含一个或多个if 语句称为 if 语句的嵌套语句的嵌套。 一般形式:if (条件1) if (条件2)语句1 else 语句2else if (条件3)语句3 else 语句4内嵌if内嵌if如:if(x0) if(y0) printf(x0,y0); else printf(“x0,y0) printf(“x0); else printf(“x=0, y6) if (n12) printf(“6n12”);else printf(“n6) if (n12) printf(“6n12”);else printf(“n=6”); 缩缩 排排 #inclde main() int x; scanf(“%d”,&x); if (x0) printf(“X is positive.”); x=x+1; else printf (“X is negative.”); 缩进缩进缩进用用if 语句实现选择结构举例语句实现选择结构举例 -1 ;x0 main( ) int x,y; scanf(%d,&x); if(x0) y=-1; else if(x= =0) y=0; else y=1; printf(x=%d y=%d,x,y);例例 : 托运行李计费。用托运行李计费。用f代表收费,代表收费,w代表重量,并将它们定义代表重量,并将它们定义成实型数。则有关系成实型数。则有关系: w*0.205 (0=w=50) f = w*0.313 (50w200)main()float f,m;printf(“input weight:”);scanf(“%f”,&w);if(w200)f=(w-120)*0.413+10*0.23;else if(w50)f= w*0.313;else f= w*0.205;printf(“w=%f,f=%fn,w,f);5.3.2 条件运算符条件运算符1.条件运算符与条件表达式条件运算符与条件表达式条件表达式的一般形式条件表达式的一般形式:表达式1 ? 表达式2 表达式3如:如:max= (ab) ? a : b ; 若若 a=3, b=2, 则则 max=?如: (ab) ? a : b 目的目的 简化 if 语句。 if (ab) max=a; else max=b;等效于:条件运算符的优先级:条件运算符的优先级: 算数运算符算数运算符=关系运算符关系运算符=逻辑运算符逻辑运算符(除!除!) 赋值运算符赋值运算符c & cd ? a+b : d 等效于等效于: x = (a+b)c) & (cd) ? (a+b) : d) 条件运算符的结合方向条件运算符的结合方向: 自右至左自右至左 如:如:ab ? a : cd ? c : d等效于:等效于:ab ? a : (cd ? c : d)2.条件表达式与条件表达式与if语句的比较语句的比较 当当if语句中嵌套的语句是赋值语句,而且语句中嵌套的语句是赋值语句,而且两个分支都给同一个变量赋值时,条件表达式两个分支都给同一个变量赋值时,条件表达式能替代能替代if 语句语句 。 如下面的写法是错误的:如下面的写法是错误的: a0?printf(“abs(a)=%dn”,a):printf(“abs(a)=%dn”,(-1)*a); 此语句的本意是:此语句的本意是:if(a0)printf(“abs(a)=%dn”,a);elseprintf(“abs(a)=%dn”,(-1)*a);可以改写为:可以改写为:printf(“abs(a)=%dn”,a0?a:(-1)*a);例:把输入字符中的小写字符转换成大写并输出例:把输入字符中的小写字符转换成大写并输出 。#include main() char ch; scanf(%c,&ch); ch=(ch=a &chb) ? a : b ; max=(tc) ? t : c ; printf(max=%dn,max); 5.3.3 switch 5.3.3 switch 语句语句一般形式:一般形式:switch(表达式)(表达式) case 常量表达式常量表达式1:语句序列:语句序列1 case 常量表达式常量表达式2:语句序列:语句序列2 break; : case 常量表达式常量表达式n:语句序列:语句序列n break; default :语句序列:语句序列n+1 此处break用于退出switch语句break;执行过程:执行过程:例如:例如: switch(grade) case A : printf(“85100 ”); case B : printf(“7084 ”); case C: printf(“6069 ”); case D :printf(“60 ”); default : printf(“error ”); 若若grade = A,输出结果是什么?,输出结果是什么?85100 7084 6069 60 error 用用break语句处理后的程序段:语句处理后的程序段: switch(grade) case A : printf(“85100 ”); break; case B : printf(“7084 ”); break; case C : printf(“6069 ”); break; case D : printf(“60 ”); break; default : printf(“error ”); 若若gread= A,输出结果又是什么?,输出结果又是什么?85100完整程序完整程序 :main() char grade; printf(“Input grade(A,B,C,D):”); scanf(“%c”,&grade); switch(grade) caseA : printf(“85100 ”); break; case B : printf(“7084 ”); break; case C : printf(“6069 ”); break; case D : printf(“60 ”); break; default : printf(“error !”); 流程图为: grade输出 “85100”输出 “60”输出 “60-69”输出 “error”输出 “70-84”5.3.4 5.3.4 标号语句和标号语句和gotogoto标号语句一般形式:标号语句一般形式:语句标号:语句语句标号:语句例如:例如:end:,该标志符就成了语句标号,但标号不能用数值表该标志符就成了语句标号,但标号不能用数值表示,例如:示,例如:12:,:,3:,:,5:都是错误的。标号可以与变量同:都是错误的。标号可以与变量同名。名。 goto语句一般形式:语句一般形式:goto 语句标号;语句标号; goto语句的作用是使程序改变原来的执行顺序,语句的作用是使程序改变原来的执行顺序,而跳到指定的语句上执行。而跳到指定的语句上执行。 例如:例如:goto sd; sd:printf(“this is a cat!n”);说明: C语言允许在任何语句前加一个语句标号,作语言允许在任何语句前加一个语句标号,作为为goto语句的目标。给语句加标号的形式:语句的目标。给语句加标号的形式: 语句标号:语句语句标号:语句 goto语句是一种非结构化语句,结构化程语句是一种非结构化语句,结构化程序设计方法不提倡使用序设计方法不提倡使用goto语句,因为滥用语句,因为滥用goto语句将使程序流程无规律,可读性差。但语句将使程序流程无规律,可读性差。但也不是绝对禁止使用,只有在能够大大提高程也不是绝对禁止使用,只有在能够大大提高程序效率时才使用。序效率时才使用。且记:不要从循环体外跳到循环体内且记:不要从循环体外跳到循环体内!main() int i,sum=0;i=1; loop: if(i100)sum=sum+1;i+;goto loop;printf(“%d”,sum);一、例一、例 用用if 语句和语句和goto语句构成循环求语句构成循环求 1+2+3+100。二、用二、用goto语句和语句和 if 语句构成循环语句构成循环计算计算10!并输出结果。!并输出结果。 main() int i=1, sum=1;loop: if (i=10) sum=sum*i; i+; goto loop; printf(“10!=%dn”,sum); 运行结果:10!=24320本应是:10!=3628800 main() int i=1; long sum=1;loop: if (i=10) sum=sum*i; i+; goto loop; printf(“10!=%ldn”,sum); 5.4 5.4 选择结构程序设计举例选择结构程序设计举例例例 写程序,判断某一年是否闰年。写程序,判断某一年是否闰年。设:设:leap代表闰年信息,代表闰年信息,leap=1闰年,闰年,leap=0 非闰年非闰年不能被4整除非闰年被4整除,但不能被100整除闰年被100整除,又能被400整除闰年其他,非闰年非闰年main( ) int year, leap=0; scanf(“%d”, &year); /* 输入年份值 */ if (year%4= =0&year%100!=0)|(year%400= =0) leap=1; else leap=0; if(leap= =1) printf(“%d is leap ”, year); else printf(“%d is not leap ”, year); main( ) int year, leap=0; scanf(“%d”, &year); /* 输入年份值 */ if(year%4 != 0) leap=0; else if(year%100 != 0) leap=1; else if(year%400 != 0) leap=0; else leap=1; if(leap= =1) printf(“%d is leap ”, year); else printf(“%d is not leap ”, year); 例例 已知基本运费、货重,以及路程已知基本运费、货重,以及路程(s)和折扣的关和折扣的关系标准如下:系标准如下: s250km 没有折扣 250s500 %2折扣 500s1000 5%折扣 1000s2000 8%折扣 2000s=3000) c=12; else c= s / 250; /* 按按250分类分类 */ switch( c ) case 0: d=0 ; break ; /* s250 */ case 1: d=2 ; break ; /*250s500*/ case 2: /*500s750*/ case 3: d=5; break; /*750s1000*/ case 4: /*1000s1250*/ case 5: /*1250s1500*/ case 6: /*1500s1750*/ case7: d=8 ; break ; /*1750s2000*/ case8: /*2000s2250*/ case9: /*2250s2500*/ case10: /*2500s2750*/ case11: d=10 ; break; /*2750s=3000) d=15; else if (s=2000&s=1000&s=500&s=250&s0, 有两个不相等的实根有两个不相等的实根 4、b2-4ac0, 有两个共轭复根有两个共轭复根 5、如何判断实数为零(或大于零,或小于零)、如何判断实数为零(或大于零,或小于零) 特殊条件的处理特殊条件的处理#includemain() else if( disc1e-6) float a,b,c,d,disc,x1,x2,realpart,imapart; x1=(-b+sqrt(disc)/(2*a); scanf(“%f,%f,%f”,&a,&b,&c); x2=(-b-sqrt(disc)/(2*a); printf(“The equation ”); if(fabs(a)=1e-6) else printf(“is not a quadratic”) ; realpart=-b/(2*a); else imagpart=sqrt(-disc)/(2*a); disc=b*b-4*a*c; printf(“has complex roots:n”) ; if(fabs(disc)=1e-6) 打印虚根; printf(“has two equal roots: %7.4fn”,-b/(2*a); 有问题吗?有问题吗?习题习题 给一个不多于给一个不多于5位的正整数位的正整数,要求要求:求出它是几位数求出它是几位数;分分别打印出每一位数字别打印出每一位数字;按逆序打印出各位数字按逆序打印出各位数字,例如原数为例如原数为321,应输出应输出123。 #include main() long int num; int n1,n2,n3,n4,n5,bits; scanf(“%ld”,&num); if (num9999) bits=5 else if (num999) bits=4; else if(num99) bits=3; else if(num9) bits=2; else bits=1; printf(“bits=%dn”,bits); n5=num/10000; n4= (int)(num-n5*10000)/1000; n3=(int)(num- n5*10000- n4*1000)/100; n2=(int)(num- n5*10000- n4*1000- n3*100)/10; n1=(int)(num-n5*10000-n4*1000-n3*100- n2*10); switch(bits) case 5:printf(“Every bit is:%d,%d,%d,%d,%dn”, n5,n4,n3,n2,n1); printf(“Reverse is: %d,%d,%d,%d,%dn”, n1,n2,n3,n4, n5); break; case 4: printf(“Every bit is: %d,%d,%d,%dn”, n4,n3,n2,n1); printf(“Reverse is: %d,%d,%d,%dn”, n1,n2,n3,n4); break; case 3: printf(“Every bit is: %d,%d,%dn”, n3,n2,n1); printf(“Reverse is: %d,%d,%dn”, n1,n2,n3); break; case 2: printf(“Every bit is: %d,%dn”, n2,n1); printf(“Reverse is:%d,%dn”, n1,n2); break; case1: printf(“Bit is: %dn”, n1); printf(“Reverse is: %dn”, n1); 运行情况:运行情况:12345 Inputbits=5Every bit is: 1,2,3,4,5Reverse is: 5,4,3,2,1Output5.5 5.5 小结小结(1)(1)C C语言提供的关系运算符有语言提供的关系运算符有6 6种:种:(小于小于) ),=(大于大于) ),=大于等于大于等于) ),= =(= =(等于等于) ),!=(!=(不等于不等于) )。用关系运算符将两个表达式连。用关系运算符将两个表达式连接起来,进行关系运算的式子称为关系表达式。接起来,进行关系运算的式子称为关系表达式。(2)(2)C C语言提供的逻辑运算符有语言提供的逻辑运算符有3 3种:种:&(&(逻辑与逻辑与) ),|(|(逻辑或逻辑或) ),!(!(逻辑逻辑非非) )。用逻辑运算符将一个或多个表达式连接起来,进行逻辑运算的式子。用逻辑运算符将一个或多个表达式连接起来,进行逻辑运算的式子称为逻辑表达式。称为逻辑表达式。(3)(3)ifif语句的三种基本形式如下:语句的三种基本形式如下: 单分支单分支if语句语句 双分支双分支if语句语句 多分支多分支if语句语句 (4)(4)使用使用ifif语句的注意事项如下:语句的注意事项如下: ifif语句中的语句中的“表达式表达式”必须用必须用“()()”括起来。括起来。 “ “表达式表达式”,除常见,除常见的关系表达式或逻辑表达式外,也允许是其他类型的数据,如整型、实的关系表达式或逻辑表达式外,也允许是其他类型的数据,如整型、实型、字符型等。型、字符型等。 elseelse子句子句( (可选可选) )是是ifif语句的一部分,必须与语句的一部分,必须与ifif配对使用,不能单独配对使用,不能单独使用。使用。 “语句组语句组1 1”和和“语句组语句组2 2”,可以只包含一个简单语句,也可以是,可以只包含一个简单语句,也可以是复合语句。当复合语句。当ifif和和elseelse后面的语句组,仅由一条语句构成时,也可不使后面的语句组,仅由一条语句构成时,也可不使用复合语句形式用复合语句形式( (即去掉花括号即去掉花括号) )。 if语句允许嵌套,但嵌套的层数不宜太多。语句允许嵌套,但嵌套的层数不宜太多。 (5)switch语句用来实现多分支结构的程序设计。语句用来实现多分支结构的程序设计。

    注意事项

    本文(C语言程序设计教程件.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开