高级语言程序设计(全套ppt课件)

上传人:94****0 文档编号:241609614 上传时间:2024-07-09 格式:PPT 页数:245 大小:2.13MB
返回 下载 相关 举报
高级语言程序设计(全套ppt课件)_第1页
第1页 / 共245页
高级语言程序设计(全套ppt课件)_第2页
第2页 / 共245页
高级语言程序设计(全套ppt课件)_第3页
第3页 / 共245页
点击查看更多>>
资源描述
欢迎学习欢迎学习高级高级语言程序设计语言程序设计华北电力大学信息网络管理华北电力大学信息网络管理中心计算机基础教研室中心计算机基础教研室办公室电话:办公室电话:2474欢迎学习高级语言程序设计华北电力大学信息网络管理中心计算1引引 言言 计算机语言的作用计算机语言的作用 C C语言的语法规则语言的语法规则语言的语法规则语言的语法规则 程序设计的方法程序设计的方法程序设计的方法程序设计的方法 主要内容主要内容是人与计算机进行交流的桥梁是人与计算机进行交流的桥梁是人与计算机进行交流的桥梁是人与计算机进行交流的桥梁 计算机语言分为机器语言、计算机语言分为机器语言、计算机语言分为机器语言、计算机语言分为机器语言、汇编语言和高级语言。汇编语言和高级语言。汇编语言和高级语言。汇编语言和高级语言。C C是高级语言是高级语言是高级语言是高级语言 学习方法学习方法 多读程序多读程序多读程序多读程序 熟悉语法熟悉语法 掌握程序设计技巧掌握程序设计技巧 多写程序多写程序多写程序多写程序 多上机多上机多上机多上机 学习要求学习要求 课前预习,课后复习课前预习,课后复习课前预习,课后复习课前预习,课后复习 上机前要写好程序上机前要写好程序上机前要写好程序上机前要写好程序 上机后要总结上机后要总结上机后要总结上机后要总结 做好听课笔记做好听课笔记 程序规则程序规则 运算规则运算规则 语句规则等语句规则等引 言 计算机语言的作用 C语言的语法规则 程目录目录第一章第一章 C语言概述语言概述第二章第二章 顺序结构程序设计顺序结构程序设计第三章第三章 选择结构程序设计选择结构程序设计第四章第四章 循环控制循环控制第五章第五章 数组数组第六章第六章 函数函数第七章第七章 预处理命令预处理命令第八章第八章 指针指针第九章第九章 文件文件目录第一章 C语言概述第二章 顺序结构程序设计第第一章 C语言基础1.1计算机语言计算机语言1.3 C程序的开发及上机步骤程序的开发及上机步骤1.2 C语言概述语言概述1.4基本数据类型基本数据类型1.5 运算符和表达式运算符和表达式第一章 C语言基础1.1计算机语言1.3 .机器语言.汇编语言.高级语言.用0、1组成,执行速度快,难记、不通用.用助记符便于记忆、不通用.类似自然语言和数学语言,通用性强.例如:A=10,B=4 求A+B的值001111010000101011000110000001001111001101110110LD A,0AH LD B,04H ADD A,B HALTA=10B=4C=A+BPRINT*,CEND只能识别机器语言程序1.1 计算机语言计算机语言机器语言汇编语言高级语言用0、1组成,执行速度快,难记、不通语言处理程序001111010000101011000110000001001111001101110110LD A,0AH LD B,04H ADD A,B HALTA=10B=4C=A+BPRINT*,CEND汇编语言源程序高级语言源程序汇编程序?解释编译目的程序源程序源程序目的程序目的程序可执行程序可执行程序链接程序编译程序源程序源程序结果结果解释程序不同的语言需不同的编译程序语言处理程序001111010000101011000110vv1.1 程序设计语言发展历史CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象1.1 程序设计语言发展历史机器语言汇编语言高级语言面向过BASIC VBFORTRAN VFPASCAL DelphiCTurbo C+Visual C+Borland C+C+Builder常用高级程序设计语言BASIC VBCTurbo C+常用52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN90525456586062646668707274767880vv产产生背景生背景生背景生背景vv产产生生生生过过程程程程vv时间时间:19721973:19721973vv地点地点地点地点:美国美国美国美国贝贝尔尔尔尔实验实验室室室室vv目的目的目的目的:UNIX:UNIX操作系操作系操作系操作系统统vv设计设计人人人人:Ken.Thompson:Ken.Thompson和和和和Dennis.M.RitchieDennis.M.RitchievvC C标标准准准准vv标标准准准准C:K&RC:K&R合著合著合著合著The C Programming The C Programming LanguageLanguagevvANSI C:1983ANSI C:1983年年年年vv87 ANSI C:198787 ANSI C:1987年年年年vv19901990年国年国年国年国际标际标准的准的准的准的ANSI CANSI CvC C语言发展过程语言发展过程产生背景C语言发展过程v语言言简洁、紧凑、灵活凑、灵活v运算符和数据运算符和数据类型丰富型丰富v程序程序设计结构化、模构化、模块化化v生成目生成目标代代码质量高量高v可移植性好可移植性好1.2 C1.2 C语言特点语言特点语言简洁、紧凑、灵活1.2 C语言特点32个关键字:(由系统定义,不能重作其它定义由系统定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while1.2 C1.2 C语言特点语言特点32个关键字:(由系统定义,不能重作其它定义)1.2 C语9种控制语句:if()elsefor()while()dowhile()continuebreakswitchgotoreturn1.2 C1.2 C语言特点语言特点34种运算符:算术运算符:算术运算符:+-*/%+-+-*/%+-关系运算符:关系运算符:=!=!=逻辑运算符:逻辑运算符:!&|&|位运算符位运算符 :|&|&赋值运算符:赋值运算符:=及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:,指针运算符:指针运算符:*&*&求字节数求字节数 :sizeof sizeof强制类型转换:强制类型转换:(类型)类型)分量运算符:分量运算符:.-.-下标运算符:下标运算符:其它其它 :()-()-9种控制语句:1.2 C语言特点34种运算符:C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union1.2 C1.2 C语言特点语言特点C基本类型构造类型指针类型空类型void定义类型typede例例例例1.1 1.1 1.1 1.1 第一个程序第一个程序第一个程序第一个程序 Hello,World!Hello,World!Hello,World!Hello,World!/*example1.1 The first C Program*/#include main()printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,World!1.3 C1.3 C程序格式和结构特点程序格式和结构特点例1.1 第一个程序 Hello,World!/*ex例例例例1.21.21.21.2/*example1.1 calculate the sum of a and b*/#include/*This is the main program */main()int a,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%dn,sum);/*This function calculates the sum of x and y */int add(int x,int y)int z;z=x+y;return(z);运行结果:sum=34函数语句预处理命令注释例1.2/*example1.1 calcvv格式特点格式特点vv习惯习惯用用用用小写小写小写小写字母,大小写敏感字母,大小写敏感字母,大小写敏感字母,大小写敏感vv不使用行号,不使用行号,不使用行号,不使用行号,无程序行无程序行无程序行无程序行概念概念概念概念vv可使用空行和空格可使用空行和空格可使用空行和空格可使用空行和空格vv常用常用常用常用锯齿锯齿形形形形书书写格式写格式写格式写格式main().main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;jb _above$123M.D.John3days#33char$123ab1.4 基本数据类型常量与变量例:判断下列标识符号合法性M.1.4 基本数据类型基本数据类型vv一般用大写字母一般用大写字母一般用大写字母一般用大写字母vv是宏定是宏定是宏定是宏定义预处义预处理命令,不是理命令,不是理命令,不是理命令,不是C C语语句句句句vv直接常量直接常量直接常量直接常量:vv整型常量整型常量整型常量整型常量 vv实实型常量型常量型常量型常量 vv字符常量字符常量字符常量字符常量 vv字符串常量字符串常量字符串常量字符串常量如#define PRICE 30vv常量常量vv定定定定义义:程序运行:程序运行:程序运行:程序运行时时其其其其值值不能改不能改不能改不能改变变的量(即常数)的量(即常数)的量(即常数)的量(即常数)vv分分分分类类:vv符号常量符号常量符号常量符号常量:用用用用标识标识符代表常量符代表常量符代表常量符代表常量vv定定定定义义格式:格式:格式:格式:#define#define#define#define 符号常量符号常量符号常量符号常量 常量常量常量常量例 符号常量举例(ch2_1.c)#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:total=3001.4 基本数据类型如#define P1.4 基本数据类型基本数据类型&整型常量(整常数)整型常量(整常数)vv三种形式:三种形式:三种形式:三种形式:vv十十十十进进制整数:由数字制整数:由数字制整数:由数字制整数:由数字0 0 0 0 9 9 9 9和正和正和正和正负负号表示号表示号表示号表示.如如如如 123,-456,0 123,-456,0 123,-456,0 123,-456,0vv八八八八进进制整数:由数字制整数:由数字制整数:由数字制整数:由数字0 0 0 0开开开开头头,后跟数字后跟数字后跟数字后跟数字0 0 0 0 7 7 7 7表示表示表示表示.如如如如0123,0110123,0110123,0110123,011vv十六十六十六十六进进制整数:由制整数:由制整数:由制整数:由0 x0 x0 x0 x开开开开头头,后跟后跟后跟后跟0 0 0 0 9,a9,a9,a9,a f,Af,Af,Af,A F F F F表示表示表示表示.如如如如0 x123,0Xff0 x123,0Xff0 x123,0Xff0 x123,0Xff例 12 与 12L例 30000 为int型 65536 为long int 型vv整型常量的整型常量的整型常量的整型常量的类类型型型型vv根据其根据其根据其根据其值值所在范所在范所在范所在范围围确定其数据确定其数据确定其数据确定其数据类类型型型型vv在整常量后加字母在整常量后加字母在整常量后加字母在整常量后加字母l l l l或或或或L L L L,认为认为它是它是它是它是long intlong int 型常量型常量型常量型常量问题:0123 =()100 x123=()100Xff =()1083291255问题:0123 =()100 x123=()100Xff =()101.4 基本数据类型整型常量(整常数)例 12 与 12L1.4 基本数据类型基本数据类型&实型常量(型常量(实数或浮点数)数或浮点数)vv表示形式:表示形式:表示形式:表示形式:vv十十十十进进制数形式:(必制数形式:(必制数形式:(必制数形式:(必须须有小数点)有小数点)有小数点)有小数点)如如如如0.123,0.123,0.123,0.123,.123,123.0,0.0,123.123,123.0,0.0,123.123,123.0,0.0,123.123,123.0,0.0,123.vv指数形式:(指数形式:(指数形式:(指数形式:(e e e e或或或或E E E E之前必之前必之前必之前必须须有数字;指数必有数字;指数必有数字;指数必有数字;指数必须为须为整数)如整数)如整数)如整数)如12.3e3,123E2,1.23e4,12.3e3,123E2,1.23e4,12.3e3,123E2,1.23e4,12.3e3,123E2,1.23e4,e-5e-5e-5e-5 ,1.2E-3.51.2E-3.51.2E-3.51.2E-3.5 vv实实型常量的型常量的型常量的型常量的类类型型型型vv默默默默认认doubledoubledoubledouble型型型型vv在在在在实实型常量后加字母型常量后加字母型常量后加字母型常量后加字母f f f f或或或或F F F F,认为认为它是它是它是它是float float float float 型型型型1.4 基本数据类型实型常量(实数或浮点数)实型常量的类型1.4 基本数据类型基本数据类型&字符常量字符常量vv定定定定义义:用用用用单单引号引号引号引号括起来的括起来的括起来的括起来的单单个个个个普通字符普通字符普通字符普通字符或或或或转义转义字符字符字符字符.vv字符常量的字符常量的字符常量的字符常量的值值:该该字符的字符的字符的字符的ASCIIASCIIASCIIASCII码值码值-*/%*/%*/%*/%-+-+-+-+-(2)(3)(4)(2)(3)(4)(2)(3)(4)(2)(3)(4)说说明:明:明:明:vv“-”“-”“-”“-”可可可可为为单单目目目目运算符运算符运算符运算符时时,右右右右结结合性合性合性合性vv两整数相除,两整数相除,两整数相除,两整数相除,结结果果果果为为整数整数整数整数vv%要求两要求两要求两要求两侧侧均均均均为为整型数据整型数据整型数据整型数据例 5/2 =-5/2.0 =例 5%2 =-5%2 =1%10 =5%1 =5.5%2例 5/2 =2 -5/2.0=-2.5例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()1.5 运算符和表达式算术运算符和表达式例 5/21.5 运算符和表达式运算符和表达式vv自增、自减运算符自增、自减运算符自增、自减运算符自增、自减运算符+-+-+-+-vv作用:使作用:使作用:使作用:使变变量量量量值值加加加加1 1 1 1或减或减或减或减1 1 1 1vv种种种种类类:vv前置前置前置前置 +i,-i (+i,-i (+i,-i (+i,-i (先先先先执执行行行行i i i i+1+1+1+1或或或或i-1i-1i-1i-1,再使用再使用再使用再使用i i i i值值)vv后置后置后置后置 i+,i-(i+,i-(i+,i-(i+,i-(先使用先使用先使用先使用i i i i值值,再再再再执执行行行行i i i i+1+1+1+1或或或或i-1i-1i-1i-1)vv说说明:明:明:明:vv+-+-+-+-不能用于常量和表达式不能用于常量和表达式不能用于常量和表达式不能用于常量和表达式,如如如如5+5+5+5+,(a+b)+(a+b)+(a+b)+(a+b)+vv+-+-+-+-结结合方向:合方向:合方向:合方向:自右向左自右向左自右向左自右向左vv优优先先先先级级:-+-*/%-+-+-*/%-+-+-*/%-+-+-*/%-+-(2)(3)(4)(2)(3)(4)(2)(3)(4)(2)(3)(4)例-i+-(i+)i=3;printf(“%d”,-i+);/-3 例 j+k;(j+)+k;例-i+i=3;printf(“%d”,-i+);1.5 运算符和表达式自增、自减运算符+-说明:例-1.5 运算符和表达式运算符和表达式vv赋值运算符和表达式运算符和表达式vv简单赋值简单赋值运算符运算符运算符运算符vv符号:符号:符号:符号:=vv格式:格式:格式:格式:变变量量量量标识标识符符符符=表达式表达式表达式表达式vv作用:将一个数据(常量或表达式)作用:将一个数据(常量或表达式)作用:将一个数据(常量或表达式)作用:将一个数据(常量或表达式)赋给赋给一个一个一个一个变变量量量量vv复合复合复合复合赋值赋值运算符运算符运算符运算符vv种种种种类类:+=-=*=/=%=+=-=*=/=%=+=-=*=/=%=+=-=*=/=%=&=|=&=|=&=|=&=|=vv含含含含义义:exp1 op=exp2exp1 op=exp2exp1 op=exp2exp1 op=exp2 exp1=exp1 op exp2exp1=exp1 op exp2exp1=exp1 op exp2exp1=exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3;d=func();c=d+2;1.5 运算符和表达式赋值运算符和表达式复合赋值运算符a+=1.5 运算符和表达式运算符和表达式vv说说明明明明:vv结结合方向:合方向:合方向:合方向:自右向左自右向左自右向左自右向左vv优优先先先先级级:1414vv左左左左侧侧必必必必须须是是是是变变量,不能是常量或表达式量,不能是常量或表达式量,不能是常量或表达式量,不能是常量或表达式vv赋值赋值表达式的表达式的表达式的表达式的值值与与与与变变量量量量值值相等相等相等相等,且可嵌套且可嵌套且可嵌套且可嵌套vv赋值转换赋值转换规则规则:使使使使赋值赋值号右号右号右号右边边表达式表达式表达式表达式值值自自自自动动转换转换成成成成其左其左其左其左边变边变量的量的量的量的类类型型型型例 3=x-2*y;a+b=3;例 float f;int i;i=10;f=i;则 f=10.0例 int i;i=2.56;/结果i=2;例:a=b=c=5 a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/b=5;a=5/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=21.5 运算符和表达式说明:赋值表达式的值与变量值相等,且可1.5 运算符和表达式运算符和表达式vv逗号运算符和表达式逗号运算符和表达式vv形式:形式:形式:形式:表达式表达式表达式表达式1 1,表达式表达式表达式表达式2 2,表达式表达式表达式表达式n nvv结结合性合性合性合性:从左向右从左向右从左向右从左向右vv优优先先先先级级:1515vv逗号表达式逗号表达式逗号表达式逗号表达式的的的的值值:等于表达式:等于表达式:等于表达式:等于表达式n n的的的的值值vv用途:常用于循用途:常用于循用途:常用于循用途:常用于循环环forfor语语句中句中句中句中例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3)x=a=3,6*a例 a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);/a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号表达式,表达式值18,x=3/1,2,3/3,2,31.5 运算符和表达式逗号运算符和表达式例 a=3*5,、=、=、=(等于)、(等于)、!=!=(不等于)(不等于)关系运算符优先级从高到低为关系运算符优先级从高到低为 、=、=、!=!=结合方向从左到右。结合方向从左到右。a=bc a=bc 等价于等价于 a=(bc)a=(bc)而不等价于而不等价于 (a=b)c (a=b)的结果为,的结果为,a a B B 的结果为的结果为关系运算关系运算1.5 运算符和表达式运算符和表达式 、=、=(等于)、!=(不等于C C语言提供三个逻辑运算符:语言提供三个逻辑运算符:&(逻辑与)、(逻辑与)、|(逻辑或)、(逻辑或)、!(逻辑非)(逻辑非)逻辑运算逻辑运算1.5 运算符和表达式运算符和表达式!(非非)算术运算符算术运算符关系运算符关系运算符&和和|赋值运算符赋值运算符(高高)(低低)例如例如:(a b)&(x y)(!a)+b)|(a b)a b&x y!a+b|a bC语言提供三个逻辑运算符:逻辑运算1.5 运算符和表达式!1.5 运算符和表达式运算符和表达式 逻辑运算的结果只可能为逻辑运算的结果只可能为1或或0;逻辑运算的对象可以是任何类型的逻辑运算的对象可以是任何类型的数据数据,“非非0”为为“真真”,“0”为为“假假”。a&b&c (与短路运算)(与短路运算)(m=ab)&(n=cd)a|b|c (或短路或短路)main()int m,n=10;m=2&n+;printf(m=%d,n=%dn,m,n);1.5 运算符和表达式 逻辑运算的结果只可能为1或0;逻条件运算条件运算形式为:形式为:e1e1?e2e2:e3e3 其中其中e1e1,e2e2,e3e3都是表达式。都是表达式。一般而言,一般而言,e1e1为条件表达式,当为条件表达式,当e1e1的值为真时(即非的值为真时(即非0 0),),e2e2的值作为整个表达式的值,不再计算的值作为整个表达式的值,不再计算e3e3的值,的值,若若e1e1的值为假(即为)时,取的值为假(即为)时,取e3e3的值作为整个表达的值作为整个表达式的结果,而不计算式的结果,而不计算e2e2的值。的值。如:如:maxmax(xy?x:y);(xy?x:y);将和中较大的一个数赋值给变量将和中较大的一个数赋值给变量maxmax条件运算符的结合性是由右向左。条件运算符的结合性是由右向左。1.5 运算符和表达式运算符和表达式条件运算形式为:e1?e2:e3 其中e1顺顺 序序 结结 构构三种基本结构三种基本结构三种基本结构三种基本结构顺序结构顺序结构、选择结构、选择结构、循环结构、循环结构顺序结构顺序结构顺序结构顺序结构开开 始始赋赋 值值处处 理理int a,b,c;a=10;b=4;c=a+b;main()printf(“%d,%d,%d”,a,b,c);输输 出出结束结束流程图流程图流程图流程图赋赋 值值处处 理理输输 出出N-SN-S图图图图赋值语句赋值语句赋值语句赋值语句赋值表达式赋值表达式;格式格式顺 序 结 构三种基本结构顺序结构、选择结构、循环结构顺序结数数 据据 输输 出出 printf(“(“格式控制格式控制”,”,输出项输出项)printfprintf函数的格式函数的格式函数的格式函数的格式 如如:printf(“%d,%d,%d”,a,b,a+b)如如:printf(“t=%f,sint=%f n”,t,sin(t)格格式式说说明明%d按十进制输出整数按十进制输出整数格式控制格式控制意意 义义%f按小数形式输出实数按小数形式输出实数n换行换行其它字符其它字符原样输出原样输出例例:当当a=10,b=-5.3a=10,b=-5.3时时,写出下面语写出下面语句的输出结果句的输出结果格式输出语句格式输出语句格式输出语句格式输出语句printf(“格式控制格式控制”,输出项输出项);printf(“%d,%f”,a,b);10,-5.300000printf(“a=%d nb=%f”,a,b);a=10b=-5.300000输出项输出项:变量、表达式、函数变量、表达式、函数格式控制:格式控制:为输出项提供格式说明为输出项提供格式说明提供需要原样输出的文字或提供需要原样输出的文字或字符字符;格式说明的个数格式说明的个数=输出项个数输出项个数格式说明的类型格式说明的类型=输出项类型输出项类型数 据 输 出 printf(“格式控制”,输出项)prin数数 据据 输输 出出控制输出数据的宽度控制输出数据的宽度控制输出数据的宽度控制输出数据的宽度格式说明格式说明意意 义义数据宽度数据宽度%d按十进制输出整数按十进制输出整数%f按小数形式输出实数按小数形式输出实数系统决定系统决定%md注:注:m、n为整型常数为整型常数按十进制输出整数按十进制输出整数占占m位位例例1 a=23,b=34,c=-55,写出下面语句写出下面语句的运行结果的运行结果printf(“a=%d,b=%5d,c=%2d”,a,b,c)a=23,b=34,c=-55%m.nf按小数形式输出实数按小数形式输出实数(小数占(小数占6 6位)位).(实际位数)(实际位数)系统决定系统决定.n位位m位位例例2 t=2.346写出下面语句的运行写出下面语句的运行结果结果printf(“t=%f,%5.2f,%3.2f”,t,t,t)t=2.346000,2.35,2.35数 据 输 出控制输出数据的宽度格式说明意 义数据宽度%d按举举 例例例例1 1 已知三边长,求三角形面积已知三边长,求三角形面积(四舍五入保留两位小数四舍五入保留两位小数)。输输 入入处处 理理输输 出出如何保留小数如何保留小数?13.45613.461)移动小数点)移动小数点13.456*1002)加)加0.51345.6+0.53)取整)取整4)小数点还原)小数点还原1346/100area*100.0=1345.6=1346.11346=13.46(int)()+0.5/100用同一个程序计算边长为用同一个程序计算边长为任意值的三角形面积任意值的三角形面积设边长为设边长为a、b、c,则:则:问题问题s=(a+b+c)/2;float a,b,c,s,area;a=3.0;b=4.0;c=6.0;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%fn”,area);area=(int)(area*100+0.5)/100.0;#include“math.h”main()%f%6.2fprintf(“a,b,c=%f,%f,%fn”,a,b,c);a,b,c=area=3.000000,4.0000005.336.004.00,6.0000005.330000a,b,c=3.00area=举 例例1 已知三边长,求三角形面积(四舍五入保留两位小数数据输入数据输入 scanf scanf函数的格式函数的格式函数的格式函数的格式scanf(“格式控制格式控制”,地址地址表表)如:如:scanf(“%d,%f”,&a,&b)地址表列:地址表列:&a:变量变量a的地址的地址&b:变量变量b的地址的地址scanf(“格式控制格式控制”,地址表地址表);数据输入语句数据输入语句数据输入语句数据输入语句;%d按十进制输入整数按十进制输入整数格式格式说明说明格式控制格式控制意意 义义%f按小数形式输入实数按小数形式输入实数其它字符其它字符原样输入原样输入&:地址运算符地址运算符格式控制:格式控制:指定数据输入的格式指定数据输入的格式例如:设例如:设a=2,b=2.5,写出执行下写出执行下面的语句时,数据输入的形式。面的语句时,数据输入的形式。scanf(“%d%f”,&a,&b);scanf(“%d,%f”,&a,&b);scanf(“a=%d,b=%f”,&a,&b);2 2 2.52.5 :数据间的分隔符数据间的分隔符2 2,2.52.5 2 2,2.52.5 a=a=b=b=输输 入入缓冲区缓冲区ab内存内存单元单元P79P82 意义意义意义意义程程序序运运行行时时数据输入 scanf函数的格式scanf(“格式控制”,地址例例2 2 将将两个变量中的值互换两个变量中的值互换。分分析析ab211a2b方法一:方法一:ab21a=bb=a11方法二:方法二:酱油酱油酱油酱油醋醋2a=bb=cc醋醋酱油酱油酱油酱油=acab2a1bc12输输 入入交交 换换输输 出出main()int a,b,c;scanf(“%d,%d”,&a,&b);c=a;a=b;b=c;printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b);printf(“Please input a,b:”);中间变量的类型要与原始变量一致中间变量的类型要与原始变量一致Please input a,b:2,1 2,1 a=2,b=1a=1,b=2例2 将两个变量中的值互换。分析ab211a2b方法一:ab实际问题实际问题数学模型数学模型计算方法计算方法 编编 程程编辑程序编辑程序编译查错编译查错 连接连接错错?修改程序修改程序修改算法修改算法修改模型修改模型错错?运行程序运行程序错错?小结小结实际问题数学模型计算方法 编 程编辑程序编译查错 连接 x0?x0?YESYESNONO真真真真假假假假选选 择择 结结 构构main()()int x;scanf(“%d”,&x);if(x0)printf(“x=%d,YES”,x);else printf(“x=%d,NO”,x);选择结构选择结构选择结构选择结构 算法图示算法图示算法图示算法图示 流程图流程图流程图流程图 N-S N-S图图图图x0真真YES假假NOP22P26条件条件根据条件是否为根据条件是否为真而选择执行不真而选择执行不同的程序块同的程序块 x0?YESNO真假选 择 结 构main()选关系表达式 关系运算符及其优先级关系运算符及其优先级关系运算符及其优先级关系运算符及其优先级=(小于等于小于等于小于等于小于等于)=(大于大于大于大于)=(大于等于大于等于大于等于大于等于)!=!=(等于等于等于等于)(不等于不等于不等于不等于)同同 级级同同 级级高高高高低低低低 关系表达式关系表达式关系表达式关系表达式ab ab-1!=c+3-1!=c+3 各种运算符的优先级各种运算符的优先级各种运算符的优先级各种运算符的优先级 关系表达式的结果关系表达式的结果关系表达式的结果关系表达式的结果t=5=3 t=5=3 算术算术算术算术关系关系关系关系赋值赋值赋值赋值得整数值:得整数值:0 0或或1 10 0:假假假假1 1:真真真真例例例例 若若若若a=5,b=7a=5,b=7,计算表达式的值计算表达式的值计算表达式的值计算表达式的值b(a=4)+14 45 51 1c=abc=ab(c(c实型)实型)实型)实型)1 11.01.0c c1.01.0关系表达式 关系运算符及其优先级(小于等逻逻 辑辑 表表 达达 式式 逻辑运算符逻辑运算符逻辑运算符逻辑运算符|&(逻辑与)(逻辑与)(逻辑与)(逻辑与)!(逻辑或)(逻辑或)(逻辑或)(逻辑或)(逻辑非)(逻辑非)(逻辑非)(逻辑非)逻辑表达式逻辑表达式逻辑表达式逻辑表达式 各种运算符的优先级各种运算符的优先级各种运算符的优先级各种运算符的优先级 逻辑表达式的值逻辑表达式的值逻辑表达式的值逻辑表达式的值得整数值:得整数值:0 0或或1 10 0:假假假假1 1:真真真真运算对象运算对象运算对象运算对象非非非非0 0:真真真真0 0:假假假假例例例例 若若若若a=3,b=4,c=5,a=3,b=4,c=5,计算表达式的值计算表达式的值计算表达式的值计算表达式的值!a|b+c&b c a|b+c&b c 9 9-1 11 11 1a+bc&b=c!(x=a)&(y=b)低低低低高高高高非非非非关系关系关系关系与与与与算术算术算术算术赋值赋值赋值赋值或或或或0 0逻 辑 表 达 式 逻辑运算符|&(逻辑与)!if语句语句 if if语句的格式语句的格式语句的格式语句的格式if if(表达式)(表达式)(表达式)(表达式)if if子句子句子句子句elseelseelseelse子句子句子句子句 执行过程执行过程执行过程执行过程表达式为真表达式为真表达式为真表达式为真?if if子句子句子句子句真真真真假假假假elseelse子句子句子句子句if if(x0 x0)printf(“nx=%d,YES”,x);printf(“nx=%d,YES”,x);elseelseprintf(“nx=%d,NO”,x);printf(“nx=%d,NO”,x);if if(x0 x0)printf(“nx=%d”,x);printf(“nx=%d”,x);elseelseprintf(“nx=%d”,x);printf(“nx=%d”,x);printf(“YES”);printf(“YES”);printf(“NO”);printf(“NO”);非非非非0:0:0:0:真真真真 0:0:0:0:假假假假退出退出退出退出if子句或子句或else子句包含多个子句包含多个语句,就要用语句,就要用、括起来括起来表达式为真?表达式为真?真真If子句子句假假else子句子句if语句 if语句的格式if(表达式)if子句elseel例例例例1 1 判断一个数能否被判断一个数能否被判断一个数能否被判断一个数能否被3 3整除,若能被整除,若能被整除,若能被整除,若能被3 3整除,计算该数的立方,整除,计算该数的立方,整除,计算该数的立方,整除,计算该数的立方,并打印并打印并打印并打印yesyes,否则,计算该数的平方,并打印,否则,计算该数的平方,并打印,否则,计算该数的平方,并打印,否则,计算该数的平方,并打印nono。main()main()int x,pf,lf;int x,pf,lf;printf(“nPlease input x:”);printf(“nPlease input x:”);scanf(“%d”,&x);scanf(“%d”,&x);if(x%3=0)if(x%3=0)lf=x*x*x;lf=x*x*x;printf(“x=%d,yesnlf=%d”,x,lf);printf(“x=%d,yesnlf=%d”,x,lf);elseelsepf=x*x;pf=x*x;printf(“x=%d,nonpf=%d”,x,pf);printf(“x=%d,nonpf=%d”,x,pf);x%3=0真真计算计算x x3 3假假计算计算x x2 2输入输入x输出输出输出输出结束结束举举 例例例1 判断一个数能否被3整除,若能被3整除,计算该数的立方if语句语句 省略省略省略省略elseelse的选择结构的选择结构的选择结构的选择结构if if(表达式)(表达式)(表达式)(表达式)if if子句子句子句子句 执行过程执行过程执行过程执行过程表达式为真表达式为真表达式为真表达式为真?if if子句子句子句子句真真真真假假假假退出退出退出退出例例例例2 2 写出程序的运行结果写出程序的运行结果写出程序的运行结果写出程序的运行结果main()main()int a,b,s;int a,b,s;if(ab)s=b;if(ab)s=b;s*=s;s*=s;printf(“%dn”,s);printf(“%dn”,s);s=a;s=a;a ab bs s3 34 43 34 41616 scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);3,43,43,4 16164,3 4,3 4,3 16163 34 44 41616表达式表达式为为 真?真?真真If子句子句假假if语句 省略else的选择结构if(表达式)if子句 执行例例例例3 3比较比较比较比较a a、b b、c c三个数的大小,将最大的数放在三个数的大小,将最大的数放在三个数的大小,将最大的数放在三个数的大小,将最大的数放在a a中。中。中。中。main()main()int a,b,c,d;int a,b,c,d;if(ab)if(ab)printf(“The result is:”);printf(“The result is:”);printf(“a,b,c=%d,%d,%dn”,printf(“a,b,c=%d,%d,%dn”,a,b,c);a,b,c);scanf(“%d,%d,%d”,&a,&b,&c);scanf(“%d,%d,%d”,&a,&b,&c);printf(“nPlease input a,b,c:”);printf(“nPlease input a,b,c:”);d=a;a=b;b=d;d=a;a=b;b=d;ab?真真a、b交换交换假假输入输入a、b、c输出输出aac?真真a、c交换交换假假结束结束举举 例例if(ac)if(ac)d=a;a=c;c=d;d=a;a=c;c=d;例3比较a、b、c三个数的大小,将最大的数放在a中。maielse if语句语句 else if else if语句语句语句语句if if(表达式(表达式(表达式(表达式0 0)if if子句子句子句子句else ifelse if(表达式(表达式(表达式(表达式1 1)else ifelse if子句子句子句子句1 1else if(else if(表达式表达式表达式表达式2 2)else ifelse if子句子句子句子句2 2elseelseelse else 子句子句子句子句 执行过程执行过程执行过程执行过程式式0 0为真?为真?A真真真真假假假假退退退退 出出出出式式1 1为真?为真?式式2 2为真?为真?真真真真真真真真B假假假假C假假假假D A B C D式式0 0为真?为真?真真A假假式式1 1为真?为真?真真B假假式式2 2真?真?真真C假假Delse if语句 else if语句if(表达式0)if例例4 读程序写运行结果读程序写运行结果main()main()float a;float a;int m;int m;scanf(“%f”,&a);scanf(“%f”,&a);if(a30)m=1;if(a30)m=1;else if(a40)m=2;else if(a40)m=2;else if(a50)m=3;else if(a50)m=3;else m=4;else m=4;printf(“a=%4.1f,m=%dn”,a,m);printf(“a=%4.1f,m=%dn”,a,m);36.336.3 a=36.3,m=2a=36.3,m=29090 a=90.0,m=4a=90.0,m=44040 a=40.0,m=3a=40.0,m=316.716.7 a=16.7,m=1a=16.7,m=1举举 例例例4 读程序写运行结果main()float a;例例5 编写程序计算表达式的值:编写程序计算表达式的值:main()main()float x,y;float x,y;printf(“nInput x:”);printf(“nInput x:”);scanf(“%f”,&x);scanf(“%f”,&x);if(x0)if(x0)else if(x10)else if(x10)else else printf(“x=%5.2f,y=%5.2f”,x,y);printf(“x=%5.2f,y=%5.2f”,x,y);x0真真y=x假假x=0)if(x0)y=1;else y=0;else y=-1;x 100-9-1在在在在if if子句中嵌套具有子句中嵌套具有子句中嵌套具有子句中嵌套具有elseelse子句的子句的子句的子句的if if 语句语句语句语句,不不不不会发生语法错误会发生语法错误会发生语法错误会发生语法错误y=-1;if(x!=0)if(x0)y=1;else y=0;x 10-1-9 0y=-1;if(x!=0)if(x0)y=1;else y=0;x 10 0-9-1在在在在if if子句中嵌套没有子句中嵌套没有子句中嵌套没有子句中嵌套没有elseelse子句的子句的子句的子句的if if 语句语句语句语句,内嵌的内嵌的内嵌的内嵌的 if if语语语语句要用句要用句要用句要用、括起来括起来括起来括起来.y40y 40y 40举举 例例例6 下面的程序要计算函数的值,判断哪个程序正确.if(x举举 例例例例7 编写程序计算表达式的值:编写程序计算表达式的值:x-5&x-5&x20)if(x0)y=x;elseIf(x10)y=x-1;elsey=x+1;printf(“x=%5.2f,y=printf(“x=%5.2f,y=%5.2f”,x,y);%5.2f”,x,y);x10真真y=x-1y=x+1假假举 例例7 编写程序计算表达式的值:x多分支选择结构多分支选择结构 switch switch语句语句语句语句switch(switch(表达式)表达式)表达式)表达式)case case 常量表达式常量表达式常量表达式常量表达式1:1:语句语句语句语句1 1 case case 常量表达式常量表达式常量表达式常量表达式2:2:语句语句语句语句2 2 case case 常量表达式常量表达式常量表达式常量表达式n:n:语句语句语句语句n n default :default :语句语句语句语句n+1n+1 语语句句体体整型整型类型相同类型相同零个或一个以零个或一个以上的语句上的语句 执行过程执行过程执行过程执行过程计算表达式的值计算表达式的值 该值等于某常该值等于某常量表达式的值量表达式的值?执行该常执行该常量表达式量表达式后各语句后各语句是是执行执行default后后各语句各语句不是不是退出退出多分支选择结构 switch语句switch(表达式)c例例8 写出下面程序的运行结果。写出下面程序的运行结果。main()int g;scanf(“%d”,&g);switch(g/10)case 10:case 9:printf(“An”);case 8:printf(“Bn”);case 7:printf(“Cn”);case 6:printf(“Dn”);default:printf(“En”);main()int g;scanf(“%d”,&g);printf(“g=%d”,g);switch(g/10)case 10:case 9:printf(“An”);break;case 8:printf(“Bn”);break;case 7:printf(“Cn”);break;default:printf(“En”);100100 g=100BCDE4545 100100 g=45g=1007878 g=784545 g=45AEA跳出跳出switch语句体语句体CE举举 例例 printf(“g=%d”,g);case 6:printf(“Dn”);break;例8 写出下面程序的运行结果。main()int g;第四章循环控制第四章循环控制 循环结构实现一循环结构实现一循环结构实现一循环结构实现一 用用用用if if和和和和gotogoto构成循构成循构成循构成循环环环环 循环结构实现三循环结构实现三循环结构实现三循环结构实现三 do-whiledo-while循环循环循环循环 循环结构实现四循环结构实现四循环结构实现四循环结构实现四 forfor循环循环循环循环 循环结构的概念循环结构的概念循环结构的概念循环结构的概念 循环结构实现二循环结构实现二循环结构实现二循环结构实现二 whilewhile循循循循环环环环 循环的嵌套循环的嵌套循环的嵌套循环的嵌套 break break和和和和continuecontinue语句语句语句语句 程序举例程序举例程序举例程序举例第四章循环控制 循环结构实现一 用if和goto构成循循环结构的概念循环结构的概念 goto goto语句的格式语句的格式语句的格式语句的格式goto 语句标号语句标号 应用示例应用示例应用示例应用示例语句标号的命名规则与变量名相同语句标号的命名规则与变量名相同语句标号的命名规则与变量名相同语句标号的命名规则与变量名相同goto key;key:s+=x;带标号的语句的格式带标号的语句的格式带标号的语句的格式带标号的语句的格式语句标号:语句标号:语句语句语句语句 执行过程执行过程执行过程执行过程s+=x 循环结构的概念循环结构的概念循环结构的概念循环结构的概念 某段程序被有限次地执行某段程序被有限次地执行某段程序被有限次地执行某段程序被有限次地执行被被反反复复执执行行没有出口没有出口循环结构的概念 goto语句的格式goto 语句标号 应If语句和语句和goto语句构成循环语句构成循环 形式形式形式形式标号标号:if(表达式表达式)goto 标号标号循环体循环体 执行过程执行过程执行过程执行过程表达式为真表达式为真?真真假假退出退出当表达式为真当表达式为真循环体循环体If语句和goto语句构成循环 形式标号:if(表达式)举举 例例例例1 编写程序计算表达式的值:编写程序计算表达式的值:x0真真y=x假假x10真真y=x-1假假y=x+1当当x=20输入输入xmain()main()float x,y;float x,y;printf(“nInput x:”);printf(“nInput x:”);scanf(“%f”,&x);scanf(“%f”,&x);ks:if(x=20)ks:if(x=20)printf(“Error,again:”);printf(“Error,again:”);goto ks;goto ks;if(x0)y=x;if(x0)y=x;else if(x10)y=x-1;else if(x10)y=x-1;else y=x+1;else y=x+1;printf(“x=%5.2f,y=%5.2f”,printf(“x=%5.2f,y=%5.2f”,x,y);x,y);scanf(“%f”,&x);scanf(“%f”,&x);举 例例1 编写程序计算表达式的值:x0真y=x假xwhile循环循环 while while循环的一般形式循环的一般形式循环的一般形式循环的一般形式whilewhile(表达式)(表达式)(表达式)(表达式)循环体循环体循环体循环体whilewhile(i5i5)printf(“%d,”,i);printf(“%d,”,i);i+;i+;表达式为真?表达式为真?表达式为真?表达式为真?while while循环执行过程循环执行过程循环执行过程循环执行过程执行循环体执行循环体执行循环体执行循环体真真退退退退 出出出出假假当表达式为真时当表达式为真时 循环体循环体例例例例1 main()1 main()int i;int i;i=1;i=1;i=i+1;循环前:循环前:i=1i第一次第一次循环次数循环次数i511,第二次第二次22,第三次第三次33,第四次第四次44,退出循环:退出循环:i=5关注循环前、循环中、关注循环前、循环中、循环后控制变量的值循环后控制变量的值while循环 while循环的一般形式while(表达式)例例2 编程序,计算编程序,计算 s=1+2
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


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

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


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