C语言程序设计课件完整版..pptx
- 文档编号:271639
- 上传时间:2022-10-08
- 格式:PPTX
- 页数:176
- 大小:384.48KB
C语言程序设计课件完整版..pptx
《C语言程序设计课件完整版..pptx》由会员分享,可在线阅读,更多相关《C语言程序设计课件完整版..pptx(176页珍藏版)》请在冰豆网上搜索。
C语言程序设计,第一章C语言概述,C语言的发展与特点C语言的基本程序结构C语言程序的开发过程C语言的基本词法算法,1.1C语言出现的历史背景,汇编语言依赖于计算机硬件,程序的可读性和可移植性差;一般高级语言难以实现汇编语言的某些功能如对内存地址的操作、位操作等。
第1页/共174页,1.2C语言的发展史,1960年ALGOL60;1963年英国剑桥大学提出CPL语言;1967年MatinRichards提出BCPL语言;1970年KenThompson提出B语言;1972-1973Dennis.M.Ritchie提出C语言;BrianW.Kernighan和D.M.Ritchie介绍标准C;1987年美国国家标准化协会提出ANSIC。
第2页/共174页,1.3C语言的特点,简洁、紧凑,使用方便、灵活;允许直接访问地址,能进行位操作;运算符丰富;数据类型丰富;结构化程序语言,便于实现程序的模块化;程序执行效率高,可移植性好。
第3页/共174页,1.4C语言的基本程序结构,C程序是由函数构成的,每个C程序有且只有一个主函数(main),可包含若干其他函数;每个函数由首部与函数体组成;首部包括函数类型、函数名、函数参数(形参)、参数类型,intmax(intx,inty)函数体包括声明部分和执行部分。
第4页/共174页,main函数位置任意,但总是从main函数开始执行,在main函数中结束;C程序书写自由,每个语句后需加一个分号;主函数可调用任何非主函数,非主函数之间可互相调用,但不能调用主函数;C语言本身没有输入输出语句;用/*/进行注释。
第5页/共174页,1.5C语言程序的开发过程,编辑编译链接,计算机只能识别和执行由0和1组成的二进制的指令,为了使计算机能执行高级语言源程序,必须先用“编译程序”把源程序翻译成二进制形式的“目标程序”,然后将该目标程序与系统的函数库和其他目标程序连接成为可执行的目标程序。
第6页/共174页,1.6C语言的基本词法,字符集:
包括大小写英文字母52个、数字10个、键盘符号33个、转义字符。
标识符:
是用户自定义的一组字符序列,用来表示程序中需要辨认的对象名称,如符号常量、变量、数组、函数。
规定:
标识符是由字母或下划线开头的字母、数字、下划线组成的一串符号,最长不能超过32个字符;大小写字母有区别,大写字母只用来定义宏名,其他都采用小写字母表示。
第7页/共174页,保留字:
32个,有特殊含义,主要用于构成语句,进行存储类型和数据类型的定义,不允许用户作为自定义标识符使用;词类:
常量、变量、运算符、函数、表达示、保留字;语句:
完成特定的操作,语句的有机组合序列完成指定的功能;,第8页/共174页,语句的种类,赋值语句;函数调用语句;表达式语句;流程控制语句;复合语句;空语句;,第9页/共174页,1.7算法,著名计算机科学家沃思提出公式:
程序=数据结构+算法数据结构:
对数据的描述即指定数据的类型和数据的组织形式;算法:
对操作的描述即操作步骤。
第10页/共174页,1.7.1简单算法举例,判定2000-2500年中的每一年是否闰年。
设定y为被检测的年份。
算法如下:
S1:
2000=yS2:
若y不能被4整除,则输出y“不是闰年”,然后转至S6S3:
若y能被4整除,不能被100整除,则输出y“是闰年”,然后转至S6S4:
若y能被100整除,又能被400整除,输出y“是闰年”;否则输出y“不是闰年”,然后转至S6S5:
输出y“不是闰年”S6:
y+1=yS7:
当y2500,算法停止;,第11页/共174页,1.7.2算法的特点,有穷性;确定性;有零个或多个输入;有一个或多个输出;有效性,第12页/共174页,1.7.3算法的表示,用流程图表示算法;用伪代码表示算法;用计算机语言表示算法。
第13页/共174页,第二章C语言的数据类型、运算符与表达式,C语言的数据类型;C语言的运算符与表达式;,第14页/共174页,2.1C语言的数据类型,数据类型,第15页/共174页,2.2常量,在程序运行过程中,其值不能被改变的量称为常量。
C语言中规定的常量类型有以下五种:
整型常量、实型常量、字符常量、字符串常量和符号常量。
第16页/共174页,2.2.1整型常量,1.整型常量的表示方法:
十进制整数:
无前缀,数码取值为09,如123,-456。
八进制整数:
前缀为0,数码取值为07,如0123,-011。
八进制数与十进制数的转换方法如下:
(0123)8=1*82+2*81+3*80=64+16+3=(83)10,第17页/共174页,十六进制整数:
前缀0X或0x,数码取值为09,AF或af,如0x2A,-0x12。
十六进制数与十进制数转换方法:
(-0x12)16=-(1*161+2*160)=-(16+2)=(-18)102.整型常量的后缀:
加后缀L或l,表示长整型数。
加后缀u,表示无符号数。
第18页/共174页,2.2.2实型常量,实型常量即实数又称为浮点数,C语言中实数只采用十进制,有两种表示形式:
小数形式:
由数码09和小数点组成(注意必须有小数点),如.123,-123.4567;指数形式:
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数),如-2.1e2,2.1e-2。
第19页/共174页,2.2.3字符常量,C语言中,字符常量是用单引号括起来的单个字符,如a,$等。
转义字符是一种特殊形式的字符常量,它是以一个“”开头的字符序列。
第20页/共174页,表2.1转义字符及其含义,第21页/共174页,例2.1转义字符的使用,main()printf(“abctderftgn”);printf(“htibbjk”);,第22页/共174页,例2.1结果,程序运行后在打印机上得到以下结果:
fabcgdehjik注意在显示屏上最后看到结果以与上述打印结果不同,是:
fgdehjk,第23页/共174页,2.2.4字符串常量,C语言中,字符串变量是由一对双引号括起来的字符序列,如“China”,“$3.232”。
注意:
不要将字符常量与字符串常量混淆。
第24页/共174页,字符常量与字符串常量的区别,字符常量是由单引号括起来的,字符串常量是由双引号括起来的;字符常量只能是单个字符,字符串常量则可是零个或多个字符;可把一个字符常量赋予一个字符变量,但不能把一个字符串变量赋予一个字符变量,C语言中没有相应的字符串变量,可用字符数组来存放字符串常量;字符常量占一个字节的内存,字符串常量占的内存字节数等于字符串中字节数加1,最后一个字节存放字符0作为字符串结束标志。
第25页/共174页,2.2.5符号常量,C语言中,可用一个标识符来表示一个常量,称为符号常量又称为宏定义,使用前须先定义,其定义规则为:
#define标识符常量,第26页/共174页,例2.2符号常量的使用,#definePRICE30main()intnum,total;num=10;total=num*PRICE;printf(“total=%d”,total);,使用符号常量的好处:
含义清楚;在需要改变一个常量时能做到“一改全改”;,第27页/共174页,2.3变量,变量是指在程序运行中其值是变化的量。
一个变量应该有一个变量名,在内存中占据一定的存储单元,在该存储单元中存放变量的值。
图2.1,第28页/共174页,语言中,要求对变量作强制定义,即“先定义,后使用”。
便于发现错误;为每一个变量指定确定类型,在编译时就能为其分配相应的存储单元。
第29页/共174页,整型数据在内存中的存储方式,整型数据在内存中是以二进制形式存放的。
若定义了一个整型变量i:
inti=10;图3.2(a)是数据存放的示意图,图3.2(b)是数据在内存中实际存放的情况;,i,10,(a),i,(b),图2.2,第30页/共174页,实际上,整型数值是以补码表示的。
一个正数的补码与其原码相同,求负数的补码方法:
将该数的绝对值的二进制形式按位取反再加1。
例如求-10的补码:
10的原码,取反,再加1得-10的补码,第31页/共174页,.3.1整型变量,有符号基本整型signedint有符号短整型signedshortint有符号长整型signedlongint无符号基本型unsignedint无符号短整型unsignedshortint无符号长整形unsignedlongint,.整型变量的分类:
第32页/共174页,表2.1整型数据的所占的内存字节数与取值范围,第33页/共174页,2.整型变量的说明,类型说明符变量名标识符,变量名标识符,.;如:
inta,b,c;unsignedshortx,y;,第34页/共174页,例2.3整型变量的定义和运算,见教材P34例2.3,第35页/共174页,2.3.2实型变量,单精度型float占4个字节内存,提供7位有效数字,双精度型double占8个字节内存,提供16位有效数字。
整数没有误差,实数有精度,有误差,提供6位小数,7位有效数字。
第36页/共174页,2.实型变量的说明,格式和书写规则同整型变量说明相同,如:
floats,t;doubleh,k;,第37页/共174页,例2.4实型数据的舍入误差,main()floata,b;a=123456.789e5;b=a+20;printf(“%f,%f”,a,b);,结果:
12345678848.000000,12345678848.000000,第38页/共174页,误差原因分析,b的理论值应是12345678920,而一个实型变量只能保证的有效数字是7位有效数字,后面的数字是无意义的,并不准确表示该数,从结果看出,把20加在后几位上,是无意义的,应当避免将一个很大的数与一个很小的数直接相加减,否则就会“丢失”小的数。
与此类似,用程序计算1.0/3*3的结果并不等于1。
第39页/共174页,2.3.3字符变量,字符变量用来存放字符常量,只能存放一个字符,占用1个字节内存。
字符变量定义如下:
charc1,c2;,第40页/共174页,1.字符数据在内存中的存储,将一个字符常量放到一个字符变量中,不是把该字符本身放到内存单元中,而是将该字符的相应的ASC代码存放在存储单元中,如字符a的ASC代码为97,b为98,,97,98,c1,c2,c1,c1,图2.3,第41页/共174页,在内存中,字符数据以ASC码存储,它的存储形式与整数存储形式类似,C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型量。
在输出时,允许把字符变量按整型量输出,也允许把整型变量按字符型量输出。
注意:
当整形变量按字符型量处理时,只有低八位参与处理。
第42页/共174页,例2.5向字符型变量赋以整型值,main()charc1,c2;c1=97;c2=98;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2);结果:
a,b97,98,第43页/共174页,2.补充,TurboC将字符变量中的最高位作为符号位,也就是将字符处理成带符号的整数,即signedchar型。
它的取值范围是-128127。
如果使用ASC码为0127间的字符,由于字节中最高位为0,因此用%d输出时,输出一个正整数。
如果使用ASC码为128255间的字符,由于在字节中最高位为1,用%d格式符输出时,就会得到一个负整数。
例如:
main()charc=130;printf(“%d”,c);得到-126。
如果不想按有符号处理,可以将变量定义为unsignedchar类型,这时其取值范围是0255。
signedchar和unsignedchar相仿,但它只有一个字节。
第44页/共174页,例2.6,main()charc1=130;unsignedcharc2=130;printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 完整版
![提示](https://static.bdocx.com/images/bang_tan.gif)