《c语言程序设计》第3章课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章C语言基础池州师专计算机中心C语言程序设计2020/2/282本章主要内容本章介绍C语言的基础,包括:–数据类型–运算符和表达式均是程序设计的基本知识为什么讨论这些知识?通常程序要对数据进行操作处理:–处理的对象是数据–通过运算符和表达式进行操作2020/2/2831.3.2标识符(1)标识符的定义:用来标识变量、常量、函数等的字符序列。(2)标识符的命名规则有效字符只能由字母、数字、下划线组成,且第一个字母必须是字母或者下划线;C语言的标识符由具体的C编译器确定,ANSIC没有相应的规定。在Turbo2.0中,允许最长的标识符长度是32。C语言的标识符区分大小写字母,标识符中大小写字母含义不同;2020/2/284(3)标识符的命名习惯变量名和函数名中的英文字母一般用小写,以增加可读性。见名知意,是指通过变量名就知道变量值的含义。如,name/xm(姓名)。C语言的标识符不能是C语言规定的关键字。2020/2/285例如:【例2.1】计算圆的面积,半径为5cm。程序如下:main(){floatr,area;r=5;area=3.14*r*r;printf(%f\n,area);}运算结果是输出圆的面积:78.500000程序中用到的数据:r、area、5、3.14对数据进行的运算:*、=例jc2_12020/2/286分析:计算机操作处理时,要完成以下工作:在内存中给半径r和运算结果area开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值?数据5和3.14与r、area不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。这样的数计算机怎么处理?对整数5和小数3.14,计算机存放时是否有区别?涉及数据类型的基本知识2020/2/287C语言的数据类型C数据类型数组类型结构体类型共用体类型枚举类型整型字符型实型(浮点型)空类型单精度型双精度型基本类型指针类型构造类型本章讨论基本类型数据2020/2/2882.2.1常量在运行程序的过程中值保持不变的量。主要包括整型常量、实型常量、字符常量、字符串常量。整型常量即整常数,在C语言中整型常量可用三种形式表示。–十进制整数:由0~9和正负号表示。–八进制整数:由数字0开头,后跟数字0~7表示。–十六进制整数:由0x或0X,后跟0~9,A~F/a~f表示。例如:100-80+12301002401000730x380x100X100XFF0x0a2020/2/289定义一个符号常量需要使用一条预处理命令#define(define的中文意思是“定义”),其格式为#define符号常量常量例如:#defineNUM20#definePI3.1415926有了上面的两行文本,NUM的值就是30,PI的值就是3.1415926。定义一个符号常量,实际上就是为一个值常量起个名字。用标识符代表一个常量2020/2/2810#definePRICE30main(){Intnum,total;Num=10;Total=num*PRICE;Printf(“total=%d”,total);}程序中用#define命令行定义PRICE代表常量30,此后凡文件中出现的PRICE都代表30,可以和常量一样进行运算,程序运行结果为Total=30用标识符代表一个常量2020/2/2811注意符号常量不同于变量,它的值在其作用域内不能改变,也不能再被赋值。如再用以下赋值语句给PRICE赋值,则是错误的。PRICE=40;2020/2/2812变量1.变量的定义在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量名。变量均分配一定量的存储空间,处在数据区、堆栈区、堆区中,运行中可以改变。相当于给内存地址取个名字-变量。2变量的两个要素变量名,每个变量构必须有一个名字-变量名,变量名遵循标识符命名规则。变量值,再程序运行过程中,变量值存储在内存中。在程序中,通过便两名来引用变量的值。3变量的初始化与定义2020/2/28131变量定义的一般格式[存储类型]数据类型变量名1[,变量名2,。。。,变量名n];例如:floatradius,length,area2变量初始化的一般格式:[存储类型]数据类型变量名1[=初值1][,变量2[=初值2]…];例如:floatradius=2.5,length,area;2020/2/28142.2.2变量注意:变量必须“先定义后使用”系统为变量分配存储单元,存储变量的值。编写程序时通过变量名来存、取变量值。在程序中从变量中取值,实际上就是通过变量名找到相应的内存地址,从其存储单元中读取数据。a510变量值为变量分配的存储单元变量名例如:有变量a它的值是5102020/2/2815整型数据整型常量的表示方法整型变量1、整型数据在内存中的存放形式2、整型变量的分类3、整型变量的定义4、整型变量的溢出2020/2/2816整型数据在内存中的存放形式数据在内存中是以二进制形式存放的如:十进制数10的二进制形式为1010,在微机上使用的C编译系统,每一个整型变量在内存中占2个字节的空间。其中,整型变量对应该2字节内存单元的第一个字节内存单元,即对应“低地址”。下图表示了数据在内存中实际存放的情况。00000000000010102020/2/2817实际上,数值是以补码表示的。一个正数的补码和其原码的形式相同。如果数值是负的,,求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1。最高位表示符号位,该位为0,表示数值为正;为1则数值为负。2020/2/28181方括号表示可选项int分配2Byte,long分配4Byte类型名称类型符bit取值范围整型(短整型)[signed]int[signed]short[int]16-215~215-1(-32768~32767)无符号整型unsigned[int]160~216-1(0~65535)长整型[signed]long[int]32-231~231-1无符号长整型unsignedlong[int]320~232-12020/2/28193.4浮点型数据3.4.1浮点型常量的表示方法3.4.2浮点型变量1。浮点型数据在内存中的存放形式2。浮点型变量的分类3。浮点型数据的舍入误差3.4.3浮点型常量的类型2020/2/2820浮点型常量的表示方法C语言中的浮点数就是实数。浮点数有两种表示形式:(1)十进制小数形式:它由数字和小数点组成(必须有小数点)。如,0.123,123.,等都是十进制数。注意:0.0和0的区别(2)指数形式:1e31.8e-3-123E-6-.1E-31×1031.8×10-3-123×10-6-0.0.1×10-3字母e(或E)之前必须有数字,且e后面的指数必须为整数。2020/2/2821注意:一个浮点数在用指数形式输出时,是按规范化的指数形式输出的。“规范化的指数形式”,即在字母e之前的小数部分中,小数点左边应有一位,且只能有一位非零的数字。如:2.3478e23.0999E56.46e12都属于规范化的指数形式。12.908e100.4578e3属于不规范的指数形式。2020/2/2822浮点型变量一、浮点型数据在内存中的存放形式一个浮点型数据在内存中一般占4个字节。浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。如,3.14159在内存中的存放方式可以用如下的图示表示:+.31415912020/2/2823注意:1、标准C语言并无具体规定在32位中,用多少位表示小数,多少位来表示指数部分,这由各C语言编译系统自定。2、小数部分占的位(bit)数愈多,数的有效数字愈多,精度也就愈高。指数部分占的位数愈多,则能表示的数值范围愈大。3、不少编译系统以24位表示小数部分(包括符号),以8位表示指数部分(包括指数的符号)。2020/2/2824二、浮点型变量的分类类型比特(位)数有效数字数值范围float326~7-3.4x10-38~3.4x1038double6415~16-1.7x10-308~1.7x10308longdouble12818~19-1.2x10-4932~1.2x1049322020/2/2825ANSIC并未具体规定每种类型数据的长度、精度和数值范围。有的系统将double型所增加的32位全用于存放小数部分,这样可以增加数值的有效位数,减少舍入误差。有的系统则将所增加位的一部分用于存放指数部分,这样可以扩大数值的范围。对于每一个浮点型变量都应在使用前加以定义。例如:floatx,y;(指定x,y为单精度浮点数)doublez;(指定Z为双精度浮点数)longdoublet;(指定t为长双精度浮点数)2020/2/2826三、浮点型数据的舍入误差浮点型数据是由有限的存储单元组成,因此能提供的有效数字总是有限的。在有效位以外的数字将被舍去。这样以来,就会产生一些误差。例题3。4(教材47页)。2020/2/2827浮点型常量的类型C语言编译系统将浮点型常量作为双精度来处理。例如已定义一个浮点型变量f,有如下语句:f=2.45678*2.45678;系统首先把2.45678作为双精度数,然后进行相乘的运算,得到的乘积也是双精度数。最后,取其前7位赋给浮点型变量f。若在数的后面加字母f或F(如1.65f、1.65F),这样编译系统就会把他们按照单精度(32位)来处理。2020/2/28283.5字符型数据字符型数据char是那些用来表征英文字母、符号、汉字的数据。字符型数据实际上就是整型数据,但是,它只占用1个字节(8位)的内存单元,用于存放该字符号所对应的ASCII码的值。当然也可把这一个字节的内存单元用于存放一般的数据。本节主要介绍以下内容:字符常量、字符变量、字符数据在内存中的存储形式及其使用方法、字符串常量2020/2/28293.5.1字符常量字符常量主要有以下两种表示方法:(1)用单引号括起来一个直接输入的字符如,‘A’、’a’、’3’等都是合法的字符。字符常量只能用单引号括起来,不能用双引号或其它括号。(2)使用转义字符转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一个或者几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。2020/2/2830常用的转义字符及其含义:\0字符串结束标志\n回车换行\t跳到下一个输出位置\双引号字符\dddddd为1到3位八进制数所代表的字符\xhhhh为1到2位十六进制数所代表的字符例题3.5:转义字符的使用。书48页2020/2/28313.5.2字符变量字符变量用来存放字符常量,它只能放一个字符。在所有的编译系统中都规定以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。如,charc1,c2;c1=‘a’,c2=‘b’;表示C1和C2为字符变量,各存放一个字符,对C1,C1赋初值分别为‘a’和‘b’.2020/2/28323.5.3字符数据在内存中的存储形式及其使用方法将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中,而是将该字符的ASCII代码放到存储单元中。如字符‘a’的ASCII代码为十进制数97,那么它在内存中的存放形式为一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII代码换成相应字符,然后输出。以整数形式输出时,直接将ASCII代码作为整数输出。例题3.6、3.7。书50-53页011000012020/2/28333.5.4字符串常量字符串常量是由一对双引号括起来的字符序列。如“china”、”$12.5”。字符串常量有2个字节的存储单元。不要将字符常量和字符串常量混淆,它们是有区别的:(1)字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量只能是单个字符,字符串常量则可以包含一个或多个字符。(3

1 / 96
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功