C语言程序设计第五版ppt课件.ppt

上传人:暗伤 文档编号:101405999 上传时间:2024-10-25 格式:PPT 页数:533 大小:10.62MB
返回 下载 相关 举报
C语言程序设计第五版ppt课件.ppt_第1页
第1页 / 共533页
C语言程序设计第五版ppt课件.ppt_第2页
第2页 / 共533页
点击查看更多>>
资源描述

《C语言程序设计第五版ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第五版ppt课件.ppt(533页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,教材、参考书与课时安排,教材,C,程序设计(第二版),谭浩强编著 清华大学出版社,参考书,C,语言程序设计教程 谭浩强 高等教育出版社,C,高级实用程序设计 王士元,清华大学出版社,C,程序设计试题汇编 谭浩强,清华大学出版社,课时安排,64,学时,熟记,C,语言的基本概念,熟悉,Turbo C,的上机操作环境,会读、会编、会调试,C,程序,学习要点,熟记,C,语言的语法,学会算法分析与算法设计,课程目的,课程要求,课前请做好预习,保持课堂安静,头脑清醒,思维活跃,认真、独立、按时完成并提交作业,重视上机实践,

2、有效利用宝贵的上机时间,第,1,章,C,语言概述,第,2,章,程序的灵魂,算法,第,3,章,数据类型、运算符与表达式,第,4,章,最简单的,C,程序设计,顺序,程序设计,第,5,章,选择结构,程序设计,第,6,章,循环控制,第,7,章,数组,第,8,章,函数,第,9,章,预处理命令,第,10,章,指针,第,11,章,结构体与共用体,第,12,章 位运算,第,13,章,文件,目 录,C,语言发展历史,C,语言的特点,简单的,C,程序介绍,C,程序的上机步骤,第,1,章,C,语言概述,C,语言程序设计,第一章,C,语言概述,1,.1,C,语言发展历史,程序设计语言的发展,机器语言,汇编语言,高级语

3、言,面向过程,面向对象,CPU,指令系统,由0、1序列构成的指令码组成,如:,10000000,加,10010000,减,用助记符号描述的指令系统,可进行地址、位操作,如,ADD A,B,编写系统软件,直接对硬件操作,可读性,移植性差,面向机器的语言,C,语言程序设计,第一章,C,语言概述,可读性,移植性好,编写应用程序,一般较难实现汇编语言的某些功能,如:地址和位的操作,C,语言兼有高级和低级语言的功能,适合写系统软件和应用软件,又称中级语言,C,语言发展过程,产生背景,ALGOL 60CPL,语言,BCPLB,语言,写,UNIX,系统,产生过程,时间,:19721973,地点,:,美国贝尔

4、实验室,目的,:UNIX,操作系统,设计人,:Ken.Thompson,和,Dennis.M.Ritchie,C,标准,标准,C:1978,年,K&R,合著,The C Programming Language,ANSI C:1983,年,87 ANSI C:1987,年,1990,年国际标准的,ANSI C,,,1994,年再次修订。,C,版本,Microsoft C,或称,MS-C,Turbo C,或称,TC,C,语言程序设计,第一章,C,语言概述,1.2,C,语言的特点,语言简洁、紧凑、灵活,运算符丰富,数据结构、数据类型丰富,链表、树、栈,程序设计结构化、模块化,结构化控制语句:,if

5、else,、,while,、,switch,、,for,函数作为模块单位,语法不严格、程序设计自由度大,可以访问内存地址、进行位运算,生成目标代码质量高,可移植性好,C,语言程序设计,第一章,C,语言概述,32,个关键字,:,(,由系统定义,不能重作其它定义,),auto break case char const,continue default do double else,enum extern float for goto,if int long register return,short signed sizeof static struct,switch typedef unsig

6、ned union void,volatile while,Turbo C,扩充了,11,个关键字:,asm_cs_ds_es_sscdeclfar,hugeinterruptnearpascal,注意:在,C,语言中,关键字都是小写的。,C,语言程序设计,第一章,C,语言概述,C,语言简洁、紧凑,使用方便、灵活。,ANSI C,一共只有,32,个关键字,见,365,页 附录,B,9,种控制语句,:,if()else,for(),while(),dowhile(),continue,break,switch,goto,return,C,语言程序设计,第一章,C,语言概述,C,语言有,9,种控制

7、语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。,=!=,逻辑运算符:!,&|,位运算符 :,|&,赋值运算符:,=,及其扩展,条件运算符:,?:,逗号运算符:,指针运算符:*,&,求字节数 :,sizeof,强制类型转换:,(,类型),分量运算符:,.-,下标运算符:,其它 :,()-,注意:各种运算符混合使用,其优先级与结,合方法是难点,可先预习。,C,语言程序设计,第一章,C,语言概述,C,语言,运算符丰富(附录,C,),C,数,据,类,型,基本类型,构造类型,指针类型,空类型,void,定义类型,typedef,数值类型,字符类型,char,枚举类型,enum,整

8、型,浮点型,单精度型,float,双精度型,double,短整型,short,长整型,long,整型,int,数组,结构体,struct,共用体,union,注释,编译预处理,主函数,语句,输出:,This is a c program.,例,1.1,第一个程序,This is a c program.,y)z=x;,else z=y;,return(z);,scanf,语句中,“,&a,”,的含义是,“,取地址,”,输入:,10,20,输出:,max=20,声明部分,定义变量,调用,max,函数,返回值赋给,c,定义,max,子函数,函数值、形参,x,、,y,为整型,通过,max,函数将,z

9、,值带回调用处,C,语言格式特点,习惯用,小写,字母,大小写敏感,不使用行号,,无程序行,概念,可使用空行和空格,常用,锯齿形,书写格式,C,语言程序设计,第一章,C,语言概述,main(),.,.,.,.,.,.,.,main(),int i,j,sum;,sum=0;,for(i=1;i10;i+),for(j=1;j10;j+),sum+=i*j;,printf(“%dn”,sum);,优秀程序员的素质之一,:,使用,TAB,缩进,对齐,有足够的注释,有合适的空行,C,语言结构特点,函数与主函数,程序由一个或多个函数组成,必须有且只能有一个主函数,main,(),,,可以放在程序中任一位

10、置,程序执行从,main,开始,在,main,中结束,其它函数通过嵌套调用得以执行。,程序语句,C,程序由语句组成,用“,;,”作为语句终止符,注释,/*/,为注释,不能嵌套,不产生编译代码,例:,/*This is the main /*of example1.1*/*/,非法,编译预处理命令,C,语言程序设计,第一章,C,语言概述,编辑,链接,编译,执行,1.4,C,程序的上机步骤,C,程序开发步骤,file.exe,C,语言程序设计,第一章,C,语言概述,程序代码的录入,生成源程序,*,.c,语法分析查错,翻译,生成目标程序,*,.obj,与其它目标程序或库,链接装配,生成可执行,程序,

11、*,.exe,Turbo C,集成开发环境,配置要求,UNIX,PC-DOS,MS-DOS,UCDOS,操作系统,硬盘容量约2,M,,,448K RAM,运行空间,安装,Turbo C,创建子目录,Install,若不是可安装盘,将文件拷贝到对应的目录下,TC,*.*,INCLUDE,LIB,*.*,SYS,*.*,C,语言程序设计,第一章,C,语言概述,进入,Turbo C,D:TC,TC,.exe,主控菜单,文件操作,FILE:,New,Load,Save,Write to,编辑操作,EDIT:,插入,/,修改,块,查找,/,替换,编译链接,COMPILE,LINK,MAKE,执行,RUN

12、,退出,Turbo C,Alt +x,Alt+F ,Q,帮助,Help,F1,Ctrl+F1,C,语言程序设计,第一章,C,语言概述,基本操作:,F10,-,调用主菜单,F2,-,存盘,F3,-,打开,F1,-,帮助信息,Alt+F9,-Compile,Ctrl+F9,-Run,Alt+F5,-User Screen,Alt+X,-,退出,Tc,常用热键,文本编辑:,-,移动光标,PgUp,PgDn-,上下翻页,Ctrl+PgUp,Ctrl+PgDn-,文件首尾,Home,行,首,End,行,尾,Ddelete Insert,Bkspace,块操作,:,Ctrl+KB,-,块开始标记,Ctrl

13、+KK,-,块结束标记,Ctrl+KC,-,块拷贝,Ctrl+KV,-,块移动,Ctrl+KY,-,块删除,Ctrl+KH,-,块隐藏,程序调试:,F8,-Step over,F7,-Trace into,F4,-Goto Cursor,Ctrl+F7,-Add Watch,Ctrl+F8,-Toggle Breakpoint,Ctrl+F2,-Program Reset,窗口操作:,F5,-,窗口缩放,F6,-,窗口切换,C,语言程序设计,第一章,C,语言概述,课后作业,预习“题解与上机指导”一书中,P181199,页的,14.314.10,节,P236,页实验,1,教材,P12,:,1.5

14、,、,1.6,、,1.7,、,1.8,题,。,注意:有关设计程序的作业,必须经过上机调试!,C,语言程序设计,第一章,C,语言概述,算法的概念,简单算法举例,算法的特性,怎样表示一个算法,第,2,章 程序的灵魂,算法,C,语言程序设计,第二章 程序的灵魂,算法,结构化程序设计方法,C,语言程序设计,第二章 程序的灵魂,算法,程序包括的内容:,数据结构:数据的类型和组织形式,算法:操作步骤的描述,Nikiklaus Wirth,提出,:,程序,=,数据结构,+,算法,教材认为:,程序,=,算法,+,数据结构,+,程序设计方法,+,语言工具和环境,灵魂,加工对象,工具,C,语言程序设计,第二章 程

15、序的灵魂,算法,2.1,算法的概念,为解决一个问题而采取的方法和步骤,就成为算法。例如:歌曲的乐谱,建造房子等。,算法核心是解决“做什么”和“怎么做”的问题。,P15,页的例,2.1,,求,15,之积。,可以有多种方法,一般采用简单和运算步骤少的。,准确、高效,计算机算法类别,数值运算算法,非数值运算算法,C,语言程序设计,第二章 程序的灵魂,算法,2.2,简单算法举例,例,2.1,方法,1,:累乘,方法,2,:用循环结构解决,灵活、通用。,例,2.2,通过循环选择打印,例,2.3,判断闰年,例,2.4,累加求级数的和,循环改变正负号和分母加,1,。,例,2.5,判断素数,课后认真思考,加深什

16、么是算法的概念,C,语言程序设计,第二章 程序的灵魂,算法,2.3,算法的特性,有穷性,在合理范围内可完成,确定性,无歧义性,有零个或多个输入,从外界得到信息,有一个或多个输出,问题的答案,有效性,每步有确定的结果,C,语言程序设计,第二章 程序的灵魂,算法,2.4,怎样表示一个算法,自然语言表示,2.2,节例。易懂,文字冗长,易歧义性,流程图表示,用流程图符号构成,直观,易懂,N-S,流程图表示,伪代码表示,计算机语言表示,顺序结构,选择结构,循环结构,C,语言程序设计,第二章 程序的灵魂,算法,传统流程图流向混乱、可读性差,所以应该采用结构化流程图。,结构化程序设计,基本思想:任何程序都可

17、以用三种基本结构表示,限制使用无条件转移语句(,goto,),结构化程序:由三种基本结构反复嵌套构成的程序,优点:结构清晰,易读,提高程序设计质量和效率,三种基本结构,顺序结构,A,B,A,B,流程图,N-S,图,C,语言程序设计,第二章 程序的灵魂,算法,P,A,B,真,假,P,B,A,真,假,选择结构,k,A1,A2,Ai,An,k=k2,k=k1,k=kn,k=ki,.,.,二分支选择结构,多分支选择结构,C,语言程序设计,第二章 程序的灵魂,算法,循环结构,当型循环结构,直到型循环结构,P,A,假,真,当,P,为真,A,A,P,真,假,A,直到,P,为真,注:,A,B,A1.An,可以

18、是一个简单语句,也可以是一个基本结构,C,语言程序设计,第二章 程序的灵魂,算法,三种基本结构的共同特点:,只有一个入口;,只有一个出口;,结构内的每一部分都有机会被执行到;,结构内不存在“死循环”。,C,语言程序设计,第二章 程序的灵魂,算法,2.5,结构化程序设计方法,结构化程序:用三种基本结构组成的程序,基本设计思路:,复杂问题分解成 几个最基本问题,再分别处理。,采用的方法:,自顶向下;,逐步细化;,模块化设计:复杂问题按功能分成多个子模块,结构化编码:正确采用三种基本结构实现,C,语言程序设计,第二章 程序的灵魂,算法,课后作业,P36,页习题:,2.4,、,2.8,(结合实验指导读

19、懂答案),用,N-S,图表示,2.4,题中,用传统流程图求解以下问题:将一个,16,进制数转化为,10,进制数,复习二进制的基本概念,“计算机文化基础”一书中,P2733,页,第,3,章 数据类型、运算符与表达式,C,语言程序设计,第三章 程序的灵魂,算法,C,的数据类型,常量与变量,整型数据,实型数据,字符型数据,变量赋初值,各种数值型数据间的混合运算,算术运算符和算术表达式,赋值运算符和赋值表达式,逗号运算符和逗号表达式,C,语言程序设计,第三章 程序的灵魂,算法,3.1,C,的数据类型,C,数,据,类,型,基本类型,构造类型,指针类型,空类型,void,字符型,char,整 型,实 型(

20、浮点型),单精度型,float,双精度型,double,数组类型,结构体类型,共用体类型,短整型,short,长整型,long,整型,int,枚举类型,enum,数据类型决定:,1.,数据占内存字节数,2.,数据取值范围,3.,可以进行的操作,C,语言程序设计,第三章 程序的灵魂,算法,常量和符号常量,定义:程序运行过程中,其值不能被改变的量(常数),分类:直接常量、,符号常量,3.2,常量与变量,类型,示例,整型常量,12,、,0,、,-3,实型常量,4.6,、,-1.23,字符常量,a,、,b,符号常量,PRICE,、,PAI,C,语言程序设计,第三章 程序的灵魂,算法,符号常量,:,用,

21、标识符,代表常量,一般用大写字母:,PRICE,、,PI,定义格式:,#define,符号常量 常量,其值在作用域内不能改变和再赋值。,例,3.1,符号常量举例,#define PRICE 30,#include,void main(),int num,total;,num=10;,total=num*PRICE;,printf(total=%dn,total);,total=300,运行结果:,符号常量的优点是:,见名知意、一改全改,C,语言程序设计,第三章 程序的灵魂,算法,变量,定义:其值可以改变的量。,定义格式:,数据类型 变量名;,变量应该有名字,并在内存中占据一定的存储单元。,变量

22、名和变量值有不同的含义,变量名实为一个符号地址,a,3,例 变量的使用,main(),int a;,a=3;,printf(“a=%d,a);,变量名,变量值,存储单元,C,语言程序设计,第三章 程序的灵魂,算法,标识符,定义:标识变量名、符号常量名、函数名、数组名、,文件名的字符串序列,名字,。,命名规则:,只能由,字母、数字、下划线,组成,且,第一个字符必须是字母或下划线,大小写字母含义不同,一般用,小写,不能使用,关键字,TC,允许最长,32,个字符,建议长度不超过,8,个字符,使用:,先定义、后使用,标识符应该,“,见名知意,”,,如,total,max,标识符应该,“,不宜混淆,”,

23、,如,l,与,1,O,与,0,这些标识符合法吗?,1A,、,M.D.John,、¥,123,、,#33,、,Tatol,、,int,、,max,C,语言程序设计,第三章 程序的灵魂,算法,3.3,整型数据,整型常量(整常数)的三种表示方法,十进制整数:由数字,09,和正负号表示,.,如,123,-456,0,八进制整数:由数字,0,开头,后跟数字,07,表示,.,如,0,123,0,11,十六进制整数:由,0 x,开头,后跟,09,af,AF,表示,.,如,0 x,123,0 x,ff,C,语言程序设计,第三章 程序的灵魂,算法,补充知识:,字节和位,内存以字节为单元组成,每个字节有一个地址,

24、一个字节一般由,8,个二进制位组成,每个二进位的值是,0,或,1,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,8,9,10,.,7,6,4,3,2,5,1,C,语言程序设计,第三章 程序的灵魂,算法,数值的表示方法,原码、反码和补码,原码:最高位为符号位,其余各位为数值本身的绝对值,反码:,正数:反码与原码相同,负数:符号位为,1,,其余位对原码取反,补码:,正数:原码、反码、补码相同,负数:最高位为,1,,其余位为原码取反,再对整个数加,1,3,12,6,9,1,2,4,5,7,8,10,11,9-5=4,9+7=16=(14),12,C,语言程序设计,第三章 程序的灵魂

25、,算法,原码,反码,补码,+7,00000111,00000111,00000111,-7,1,0000111,1,1111000,1,1111001,+0,00000000,00000000,00000000,-0,10000000,11111111,00000000,数的范围,01111111,11111111,(-127+127),01111111,10000000,(-127+127),01111111,10000000,(-128+127),(用一字节表示数),负数补码转换成十进制数:最高位不动,其余位取反加,1,例 补码:,11111001,取反:,10000110,加,1,:,1

26、0000111=-7,C,语言程序设计,第三章 程序的灵魂,算法,整型变量,整型数据在内存中的存放形式,数据在内存中以二进制补码形式存放,每一个整型变量在内存中占,2,个字节,10,的原码,反码,补码,-10,的原码,取绝对值,反码,补码,0,0 00 00 00 00 00 10 10,0,0 00 00 00 00 00 10 10,0,0 00 00 00 00 00 10 10,1,0 00 00 00 00 00 10 10,0,0 00 00 00 00 00 10 10,1,1 11 11 11 11 11 01 01,1,1 11 11 11 11 11 01 10,整数的最左

27、二进制位是符号位,,0,正、,1,负,C,语言程序设计,第三章 程序的灵魂,算法,整型变量的分类,三类整型变量,有符号,无符号,基本型(简称整型),int,unsigned int,短整型,short,或,short int,unsigned short,长整型,long,或,long int,unsigned long,整数类型和取值范围,TURBO C,所占位数,最小取值范围,int,16,-32768+32767,short,16,-32768+32767,long,32,-,2147483648+2147483647,unsigned int,16,065535,unsigned sh

28、ort,16,065535,unsigned long,32,04294967295,C,语言程序设计,第三章 程序的灵魂,算法,整型变量的定义,先定义后使用,强制类型定义,int a,b;,(指定变量,a,、,b,为整型),unsigned short c,d;,(指定变量,c,、,d,为无符号短整型),long e,f;,(指定变量,e,、,f,为长整型),0,0 00 00 00 00 00 11 01,00 00 00 00 00 00 00 00,00 00 00 00 00 00 11 01,0,0 00 00 00 00 00 11 01,0,0 00 00 00 00 00 0

29、0 00,00 00 00 00 00 00 11 01,00 00 00 00 00 00 11 01,00 00 00 00 00 00 11 01,int,型,short,型,long,型,unsigned int,型,unsigned int,型,unsigned long,型,符号位,例,3.2,整型变量的定义与使用,#include,void main(),int a,b,c,d;,unsigned u;,a=12;b=-24;u=10;,c=a+u;d=b+u;,printf(“a+u=%d,b+u=%dn,c,d);,指定,abcd,为整型变量,指定,u,为无符号整型变量,定义

30、放在函数开头的声明部分,作用域,不同类型混合运算,类型自动转换,结果:,a+u=22,b+u=-14,定义与赋值同时进行:,int a=12;,C,语言程序设计,第三章 程序的灵魂,算法,整型数据的溢出,此情况称为“,溢出,”,运行时不报错,,编程时要注意,0,1 11 11 11 11 11 11 11,整型变量最大值,32767,1,0 00 00 00 00 00 00 00,加,1,后是,32768,的补码形式,例,3.3,整型数据的溢出,#include,void main(),int a,b;,a=32767;,b=a+1;,printf(%d,%d n,a,b);,32767,-

31、32768,运行结果:,改为:,long b,;,结果是什么?,C,语言程序设计,第三章 程序的灵魂,算法,整型常量的类型,整型常量的值在,-32768+32767,范围内,编译器认为是,int,类型,整型常量的值超过上述范围,而在,2147483648 +2147483647,范围内,编译器认为是,long,类型,当系统定义,short int,与,int,占内存长度相同,则两种类型常量均可以赋给,int,和,short int,型变量,在整型常量后面加大写,L,或小写,l,,则告诉编译器,把该整型常量作为,long,类型处理。例:,123L,、,0L,在整型常量后面加,u,,则按无符号整型

32、方式存放,负数转换成补码再按无符号整型方式存放。,C,语言程序设计,第三章 程序的灵魂,算法,3.4,浮点型数据,浮点型常量的表示方法,浮点数(,float,)又称为实数(,real,),两种表示方法:,十进制小数形式:,必须有小数点,如,0.123,、,.123,、,123.0,、,0.0,、,123.,指数形式:,e,或,E,之前,后,必须有数字;指数必须为整数,如,123.456e0,、,12.3456e1,、,1.23456e2,、,0.123456e3,、,0.0123456e4,等,规范化指数形式,只有一位非零整数的指数形式,是指数的输出形式,6.28e-2,表示,6.28,10,

33、-2,-3.0824e4,表示,3.0824,10,4,C,语言程序设计,第三章 程序的灵魂,算法,浮点型变量,浮点型数据在内存中的存放形式,浮点型数据在内存中占,4,个字节(,32,位),在内存中分成,3,部分,指数为,2,的幂次,+,.314159 1,数符,小数部分,指数,浮点型变量的分类,单精度,float,32,位,67,双精度,double,型,64,位,1516,长双精度,long double,型,128,位,1819,类,型,位数,有效数字,float x,y;,(指定,x,、,y,为单精度浮点型变量),double z;,(指定,z,为双精度浮点型变量),long doub

34、le t,;,(指定,t,为长双精度浮点型变量),C,语言程序设计,第三章 程序的灵魂,算法,浮点型数据的舍入误差,数据超过有效位数,则产生误差,要避免一个很大的数与一个很小的数加减,例,3.4,浮点型数据的舍入误差,#include,void main(),float a,b;,a=123456.789e5;,b=a+20;,printf(%f n,b);,舍入误差使,1.0/3*3,的结果并不等于,1!,12345678848.000000,运行结果:,浮点型常量的类型,浮点型常量一般按双精度,64,位处理,数后加,F,或,f,按单精度,浮点型常量不分,float,和,double,C,语

35、言程序设计,第三章 程序的灵魂,算法,3.5,字符型数据,字符常量,定义,:,用,单引号,括起来的,单个,字符,或,转义字符,字符常量的,值,:该字符的,ASCII,码,值,定义格式:,char,变量名,=,值,转义字符,:,反斜线后面跟一个字符或一个代码值表示,如 ,a A n t,如,a,97,,,A,65,n,10,t,9,char ch=65,与,char ch=,A,与,char=101,是等效的,C,语言程序设计,第三章 程序的灵魂,算法,表,3.3,转义字符及其含义,转义字符,含义,n,v,r,a,ddd,t,b,f,“,xhh,转义字符,含义,换行,垂直制表,回车(不换行),响

36、铃,单引号,3,位,8,进制数代表的字符,水平制表(右移,8,格),退格,换页,反斜线,双引号,2,位,16,进制数代表的字符,例,3.5,转义字符的使用,#include,void main(),printf(“ab c,t,de,r,f,t,g,n,”);,printf(“h,t,i,bb,j k”);,f gde,h j k,显示结果:,打印结果:,fab gde,h jik,C,语言程序设计,第三章 程序的灵魂,算法,字符变量,存放字符常量,占用一个字节,存放,一个,字符,定义形式:赋值:,char c1,c2;c1=a;c2=b;,字符数据在内存中的存储形式及其使用方法,以二进制存放

37、字符的,ASCII,码值(,0255,整数),与整数的存储形式类似,以字符或整数形式输出,例,3.6,向字符变量赋整数,#include,void main(),char c1,c2;,c1=97;,c2=98;,printf(“%c%c n,c1,c2);,printf(“%d%d n,c1,c2);,a b,97 98,运行结果:,输出形式取决于,printf,函数中的格式符,格式符为,“,%c,”,时输出的变量值为,字符,格式符为,“,%d,时输出的变量值为,整数,C,语言程序设计,第三章 程序的灵魂,算法,对字符数据进行算术运算,实质是对其,ASCII,值进行算术运算,例,3.7,大小

38、写字母的转换,#include,void main(),char c1,c2;,c1=a;,c2=b;,c1=c1-32;,c2=c2-32;,printf(“%c%c,c1,c2);,A B,运行结果:,字符型与整型间互相赋值,例:互相赋值,#include,void main(),int c1;,char c2;,c1=a;,c2=98;,c1=c1-32;,c2=c2-32;,printf(“%c%c,c1,c2);,小写字母比大写字母的,ASCII,码大,(32),10,C,语言程序设计,第三章 程序的灵魂,算法,字符串常量,定义:用双引号,(,“”,),括起来的字符序列,“,How

39、do you do”,“CHINA”,“a”,“$123.45”,存储:,每个字符串尾,自动,加一个,0,作为字符串结束标志,h e l l o,0,例 字符串,“,hello,”,在内存中,例,空串 “”,0,字符常量与字符串常量不同,a,a 0,例,a,“a”,例,:char ch;,ch=“A”;,例,:char ch;,ch=A;,没有字符串变量,,只能用字符数组存放,C,语言程序设计,第三章 程序的灵魂,算法,3.6,变量赋初值,变量的使用:,先定义,后使用,变量定义位置:,一般,放在函数开头,变量初始化,:,可以在定义时赋初值,例,:,int a=1,b=-3,c;,float d

40、ata=3.67;,char ch=A;,int x=1,y=1,z=1;,int x=y=1;,(,),编译程序根据变量定义为其,分配指定字节的内存单元,.,地址,int a=1,b=-3,c;,a,b,c,2,字节,2,字节,2,字节,地址,地址,.,内存,1,-3,随机数,错!,int a=b=c=3,C,语言程序设计,第三章 程序的灵魂,算法,3.7,各类数值型数据间的混合运算,整型、实型、字符型数据间可以混合运算,自动转换,什么情况下发生,运算转换,-,不同类型数据混合运算时,赋值转换,-,把一个值赋给与其类型不同的变量时,输出转换,-,输出时转换成指定的输出格式,函数调用转换,-,

41、实参与形参类型不一致时转换,运算转换规则,:,不同类型数据运算时先,自动,转换成同一类型,C,语言程序设计,第三章 程序的灵魂,算法,double,float,long,unsigned,int,char,short,低,高,说明,:,必定的转换,运算对象类型不同时转换,例,char ch;,int i;,float f;,double d;,ch/i +f*d -(f+i),int,int,double,double,double,double,double,double,int,int,double,double,double,double,double,double,10+a +i*f

42、-d/l,例,int i;,float f;,double d;,long l;,C,语言程序设计,第三章 程序的灵魂,算法,强制转换(见,P56,强制类型转换运算符部分),一般形式:,(,类型名,),(,表达式),例:,(int)(x+y),(int)x+y,(double)(3/2),(int)3.6,说明:强制转换得到,所需类型的中间变量,,原变量类型不变,例,3.8,#include,main(),float x;,int i;,x=3.6;,i=(int)x;,printf(“x=%f,i=%d”,x,i);,结果:,x=3.600000,i=3,精度损失问题,较高类型向较低类型转换

43、时可能发生,强制类型转换运算符,表达式仅一个变量时,括号可以省略,C,语言程序设计,第三章 程序的灵魂,算法,3.8,算术,运算符和算术表达式,C,运,算,符,算术运算符:(,+-*/%+-,),关系运算符:(,=!=,),逻辑运算符:(!,&|,),位运算符 :(,|&,),赋值运算符:(,=,及其扩展),条件运算符:(,?:,),逗号运算符:(,),指针运算符:(*,&,),求字节数 :(,sizeof,),强制类型转换:(类型),分量运算符:(,.-,),下标运算符:(,),其它 :(,()-,),学习运算符应注意:,运算符功能,与运算量关系,要求运算量个数,要求运算量类型,运算符优先级

44、别,结合方向,结果的类型,C,语言程序设计,第三章 程序的灵魂,算法,算术运算符和算术表达式,基本算术运算符:,+,-,*/%,结合方向:从左向右,优先级:,-,-,*/%,-,+-,(2)(3)(4),说明:,“,-,”,可为,单目,运算符时,右结合性,两整数相除,结果为整数,%要求两侧均为整型数据,+-*/,运算的两个数中有一个数为实数,结果是,double,型,例,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%

45、2,(,),C,语言程序设计,第三章 程序的灵魂,算法,自增、自减运算符,+,作用:使变量值加,1,或减,1,种类:,前置,+i,-i (,先执行,i,+1,或,i-1,,,再使用,i,值),后置,i+,i-(,先使用,i,值,再执行,i,+1,或,i-1,),例,j=3;k=+j;,j=3;k=j+;,j=3;printf(,“,%d,”,+j);,j=3;printf(,“,%d,”,j+);,a=3;b=5;c=(+a)*b;,a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,j=4,/3,j=4,/c=20,a=4,/c=15,a=4,C,语言程序设计,第三

46、章 程序的灵魂,算法,几点说明:,例,-,i+,i=3;printf(,“,%d,”,-i+);,-(i+),/-3,+-不能用于常量和表达式,如,5+,(,a+b)+,+-,结合方向:,自右向左,优先级:,-+-*/%-+-,(2)(3)(4),该运算符常用于循环语句中,使循环变量加减,1,有关表达式使用中的问题说明,不同系统对运算符和表达式的处理次序不同,尽可能写通用性强的语句,不要写有歧义和不知系统如何执行的程序,C,语言程序设计,第三章 程序的灵魂,算法,3.9,赋值运算符和赋值表达式,简单赋值运算符,符号:,=,格式:,变量标识符,=,表达式,作用:将一个数据(常量或表达式)赋给一个

47、变量,左侧必须是变量,不能是常量或表达式,例,a=3;d=func();c=d+2;,例,3=x-2*y;a+b=3;,(,),C,语言程序设计,第三章 程序的灵魂,算法,赋值表达式,形式:,赋值表达式的值与变量值相等,且可嵌套,例,: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=2,C,语言程序设计,第三章 程序的灵魂,算法,3.10,逗号运

48、算符和逗号表达式,形式:,表达式,1,表达式,2,表达式,n,结合性,:,从左向右,优先级,:,15,,,级别最低,逗号表达式,的值:等于表达式,n,的值,用途:,常用于循环,for,语句中,例,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,3,C

49、,语言程序设计,第三章 程序的灵魂,算法,例,:,逗号表达式使用,main(),int x,y=7;,float z=4;,x=(y=y+6,y/z);,printf(x=%dn,x);,X=3,运行结果:,本章的内容散乱而复杂,但却是程序设计的基础,要认真看书,通过编程序才可以深入理解。,C,语言程序设计,第三章 程序的灵魂,算法,课后作业,P6668,页习题:,3.2,3.5,(思考),3.3,3.4,3.9,3.12,(写出答案),3.6,3.10,(上机验证),上机:实验教材:实验,2,(做好上机准备),预习第四、第五章,第,4,章 最简单的,C,程序设计,顺序程序设计,C,语言程序设

50、计,第四章 顺序程序设计,C,语言概述,赋值语句,数据输入输出的概念及在,C,语言中的实现,字符数据的输入输出,格式输入与输出,顺序结构程序设计举例,4.1,C,语句概述,C,程序结构:,一个,C,程序可以由多个源程序文件构成,一个源程序文件由若干函数、预编译命令及全局变量声明部分构成,函数包括数据定义部分和执行部分,执行部分是,C,语言语句,完成对数据的操作,C,语言程序设计,第四章 顺序程序设计,C,语句分为,5,类,控制语句:共,9,种,完成一定的控制功能,这些语句能够根据一定的测试条件决定某些语句是否被执行,如分支、循环、跳转等语句。,C,语言程序设计,第四章 顺序程序设计,if()e

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

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

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