(2)--C语言课件第02章数据与运算.ppt

上传人:奉*** 文档编号:96451885 上传时间:2023-11-29 格式:PPT 页数:62 大小:247.89KB
返回 下载 相关 举报
(2)--C语言课件第02章数据与运算.ppt_第1页
第1页 / 共62页
(2)--C语言课件第02章数据与运算.ppt_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《(2)--C语言课件第02章数据与运算.ppt》由会员分享,可在线阅读,更多相关《(2)--C语言课件第02章数据与运算.ppt(62页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第2章章 基本的数据与运算基本的数据与运算第第2章章 基本的数据与运算基本的数据与运算程序离不开数据,数据是程序处理的对象程序离不开数据,数据是程序处理的对象。本章本章主要讨论主要讨论C语言中的基本数据类型,以语言中的基本数据类型,以及这些类型的数据通过基本算术运算符及这些类型的数据通过基本算术运算符构成的各种表达式构成的各种表达式。关键字关键字在编写在编写C语言程序时,要经常用到一些预先语言程序时,要经常用到一些预先定义好的类型名(如定义好的类型名(如int、float等),等),还有一些具有特定作用的单词(如还有一些具有特定作用的单词(如if、return等)等)。在在C语言中,将这些预

2、先定义好的单词和类语言中,将这些预先定义好的单词和类型名,型名,称为称为关键字关键字(keyword)。)。标识符标识符除了关键字之外,编程者往往也需要定义除了关键字之外,编程者往往也需要定义一些名字来表示程序中的实体,如变量一些名字来表示程序中的实体,如变量名、函数名、文件名等名、函数名、文件名等。在在C语言中,将各种实体的名字统称为标识语言中,将各种实体的名字统称为标识符(符(idetifier)。标识符标识符C语言规定,标识符只能由英文字母、数字语言规定,标识符只能由英文字母、数字和下划线三种字符组成,并且首字符必和下划线三种字符组成,并且首字符必须是英文字母或下划线须是英文字母或下划线

3、。例如例如,a、x3、BOOK_1、sum5都是合法的都是合法的标识符标识符。在在标识符标识符中中严格区分字母的大小写。严格区分字母的大小写。保留保留标识符标识符:在在C语言标准库的头文件中语言标准库的头文件中定定义的义的标识符,主要是一些库函数名、类标识符,主要是一些库函数名、类型名和宏名,如型名和宏名,如printf、scanf、EOF等等。用户用户标识符:由标识符:由编程者自己定义的编程者自己定义的标识符。标识符。很显然,用户标识符既不能与关键字重很显然,用户标识符既不能与关键字重名,也不能与保留标识符重名。名,也不能与保留标识符重名。变量变量C程序中的数据可分为:程序中的数据可分为:常

4、量常量与与变量变量。1.变量是在程序运行过程中,变量是在程序运行过程中,其值可以改其值可以改变变的量。的量。2.变量用于在程序中变量用于在程序中保存数据保存数据。3.变量必须变量必须先定义后使用先定义后使用。4.C89标准规定变量定义语句只能置于标准规定变量定义语句只能置于块块的开头部分的开头部分(以一对花括号括起来的一以一对花括号括起来的一组语句称为一个块组语句称为一个块)。)。C99标准则允许在程序中的任意位置定义变标准则允许在程序中的任意位置定义变量。量。#include int main(void)int a,b;a=32767;b=99;printf(%d,%dn,a,b);retu

5、rn 0;4.所谓给所谓给变量赋值,变量赋值,就是将数据就是将数据存入到存入到该该变量所对应的变量所对应的内存单元中内存单元中。例如:例如:int a;a=3;【例例】已知地球赤道的半径为已知地球赤道的半径为6377.830千千米,编程序计算赤道的周长。米,编程序计算赤道的周长。源程序:源程序:#include int main(void)float r,c;r=6377.830;c=2*3.14159*r;printf(%f,c);return 0;常量常量常量常量是指在程序运行过程中,是指在程序运行过程中,其值不可其值不可改变改变的量。的量。包括包括直接常量直接常量和和符号常量符号常量。1

6、直接常量直接常量也称为字面常量。即直接在程序中写出来也称为字面常量。即直接在程序中写出来的常量。的常量。如如6377.830、3.141592符号常量符号常量即用一个标识符来代表一个常量。习惯上即用一个标识符来代表一个常量。习惯上使用大写字母表示符号常量。使用大写字母表示符号常量。其定义格式为:其定义格式为:#define 标识符标识符 常量常量【例例】已知地球的平均半径为已知地球的平均半径为6371.393千米,编千米,编程序计算地球的表面积。程序计算地球的表面积。#include#define PI 3.14159int main(void)float r,s;r=6371.393;s=4

7、*PI*r*r;printf(地球表面积地球表面积=%fn,s);return 0;说明:说明:使用符号常量可以改善程序的可读性和可使用符号常量可以改善程序的可读性和可维护性。维护性。但需要注意,由于符号常量不是变量,故但需要注意,由于符号常量不是变量,故不能对符号常量进行赋值。不能对符号常量进行赋值。C语言数据类型语言数据类型整型整型数据数据1.整型常量整型常量十进制整数:十进制整数:如如129、-129等。等。八进制整数:必须八进制整数:必须以以0打头打头。如如0123、-0123等。等。十六进制整数:必须十六进制整数:必须以以0 x打头打头。如如0 x2a、-0X2A等。等。【例例2.3

8、】整型常量的使用。整型常量的使用。#include int main(void)int a,b,c;a=100;b=-0100;c=0 x100;printf(a=%d,b=%d,c=%dn,a,b,c);return 0;程序运行结果为:程序运行结果为:a=100,b=-64,c=256整型变量整型变量1.整型变量的分类整型变量的分类为了充分地利用计算机的存储空间,为了充分地利用计算机的存储空间,C语言按照语言按照整型数据在内存中的长度分为基本整型、短整整型数据在内存中的长度分为基本整型、短整型、长整型三种型、长整型三种;每每一种又分为有符号与无符号两种。一种又分为有符号与无符号两种。两种分

9、类方法组合,共有两种分类方法组合,共有六种六种整型:整型:signed int 有符号基本整型有符号基本整型unsigned int 无符号基本整型无符号基本整型signed short int有符号短整型有符号短整型unsigned short int 无符号短整型无符号短整型signed long int 有符号长整型有符号长整型unsigned long int 无符号长整型无符号长整型(方括号中的单词可缺省)(方括号中的单词可缺省)类 型 名 称类型标识符长度(bit)取 值 范 围有符号基本整型signed int322147483648 2147483647(2312311)无符号

10、基本整型unsigned int3204294967295(0 2321)有符号短整型signed short int163276832767(2152151)无符号短整型unsigned short int16065535(0 2161)有符号长整型signed long int322147483648 2147483647(2312311)无符号长整型unsigned long int3204294967295(0 2321)整型数据的内部格式整型数据的内部格式有符号整数有符号整数:以以二进制补码二进制补码形式存储(最高位是形式存储(最高位是符号位符号位)。)。例例如:如:1000 000

11、0 0000 0001-32767无符号整数无符号整数:以以无符号二进制数无符号二进制数形式存储(每一位都是形式存储(每一位都是数值位数值位)。)。例如:例如:1000 0000 0000 000132769【例例】已知已知a=100,b=200,交换两个变量的值并交换两个变量的值并输出。输出。算法分析:算法分析:交换变量交换变量a和和b的值,就是将的值,就是将b原来的值赋给原来的值赋给a,而将而将a原来的值赋给原来的值赋给b。但是若用但是若用a=b;b=a;则变量则变量a原来的值将丢失。原来的值将丢失。abab100200200200ab200200故应将故应将a a原来的值保存到第三个变量

12、中。原来的值保存到第三个变量中。100200ab100200100abt200200100abt200100100abt源程序:源程序:#include int main(void)int a,b,t;a=100;b=200;t=a;a=b;b=t;printf(a=%d,b=%dn,a,b);return 0;方法二:只用两个变量实现交换。方法二:只用两个变量实现交换。#include int main(void)int a,b;a=100;b=200;a=a+b;b=a-b;a=a-b;printf(a=%d,b=%dn,a,b);return 0;实型数据实型数据实型常量:实型常量:十进

13、制小数形式十进制小数形式例如:例如:123.45、-.123、0.0等。等。十进制指数形式十进制指数形式例如:例如:123e-3(或或123E-3),即,即12310-3。注意:注意:尾数部分不能省略尾数部分不能省略,指数部分必须为整数。指数部分必须为整数。错错例:例:e-6,1.23e3.5实型变量实型变量 单精度实型单精度实型float(4字节)字节)数值范围从数值范围从-3.4e38到到3.4e38。双精度实型双精度实型double(8字节)字节)数值范围从数值范围从-1.7e308到到1.7e308。长长双精度实型双精度实型long double(8字节)字节)数值范围从数值范围从-1

14、.7e308到到1.7e308。实数在内存中的存储形式实数在内存中的存储形式实数在内存中一律以实数在内存中一律以二进制指数二进制指数形式存储,形式存储,故其取值范围比整数大。故其取值范围比整数大。以以float型为例:型为例:小数部分小数部分24位,其中符号位位,其中符号位1位;位;指数部分指数部分8位,其中符号位位,其中符号位1位。位。小数部分小数部分 指数部分指数部分实型数据的舍入误差实型数据的舍入误差实型数据在内存中存储的二进制位数是有限度的,实型数据在内存中存储的二进制位数是有限度的,例如例如float型数据在内存中只能存储型数据在内存中只能存储24位二进位二进制小数制小数。而而将一个

15、十进制实数转化为二进制形式时,其有将一个十进制实数转化为二进制形式时,其有效数字位数有可能会超出这个长度,从而导致效数字位数有可能会超出这个长度,从而导致有效数字丢失而产生误差。有效数字丢失而产生误差。【例例2.5】实型数据的舍入误差。实型数据的舍入误差。#include int main(void)float x;double y;x=123.4567890123456789;y=123.4567890123456789;printf(x=%.20fn,x);/*保留保留20位小数位小数*/printf(y=%.20fn,y);return 0;【例例2.6】已知某球体的半径,编程序计算已知

16、某球体的半径,编程序计算其表面积。其表面积。编程思路:编程思路:在前面计算地球表面积的例题中,只能求在前面计算地球表面积的例题中,只能求得特定半径值的球体表面积,程序的通得特定半径值的球体表面积,程序的通用性较差。用性较差。如何才能利用同一个程序求得任意半径值如何才能利用同一个程序求得任意半径值的球体表面积呢?其实,我们可以借助的球体表面积呢?其实,我们可以借助于于C语言中的语言中的scanf函数来实现这个目标。函数来实现这个目标。源程序:源程序:#include#define PI 3.14159int main(void)float r,s;scanf(%f,&r);s=4*PI*r*r;

17、printf(球体表面积球体表面积=%fn,s);return 0;【练习练习】交换两个变量的值。交换两个变量的值。#include int main(void)int a,b,t;scanf(%d%d,&a,&b);t=a;a=b;b=t;printf(a=%d,b=%dn,a,b);return 0;字符型数据字符型数据1.字符型常量字符型常量是是单个的单个的ASCII码码字符字符,在程序中在程序中用一对用一对单引号单引号括起来。括起来。例如:例如:a、$、=、+、?等。等。错例:错例:、中中、等。等。转义字符转义字符一般用于表示特殊字符。一般用于表示特殊字符。例如:例如:n-换行符换行符

18、 注意:注意:在本质在本质上转义字符是上转义字符是一个字符一个字符。用数字表示的转义字符用数字表示的转义字符qqq-代表代表ASCII码值为码值为八进制数八进制数qqq的字符。的字符。例如:例如:101代表代表ASCII码值是八进制数码值是八进制数101(二进制数(二进制数0100 0001)的字符)的字符即即A。xhh-代表代表ASCII码值为码值为十六进制数十六进制数hh的字符。的字符。例如:例如:x61代表代表ASCII码值是十六进制数码值是十六进制数61(二进制(二进制数数0110 0001)的字符)的字符即即a。字符型变量字符型变量字符型变量用来存放字符型常量。字符型变量用来存放字符

19、型常量。一个字符型变量中,只能存放一个字符型变量中,只能存放一个字符型一个字符型常量常量。例如:例如:char ch;ch=A;字符型数据在内存中的格式字符型数据在内存中的格式以以二进制二进制ASCII码码形式存储,长度为形式存储,长度为1个字个字节。节。例如:例如:字符字符A 的内存形式是的内存形式是0100 0001 字符串常量字符串常量是是字符(可以包括字符(可以包括汉字汉字等字符)的序列,在等字符)的序列,在程序中用一对双引号括起来程序中用一对双引号括起来。例如:例如:How are you中国中国a (空字符串空字符串)sizeof运算符运算符利用利用sizeof运算符,运算符,可以

20、测试可以测试出某种类型出某种类型或数据的内存长度或数据的内存长度。一般一般形式:形式:sizeof(类型名或数据类型名或数据)其中的数据可以是常量、变量、数组名和其中的数据可以是常量、变量、数组名和表达式。表达式。【例例2.7】sizeof运算符用法示例。运算符用法示例。#include int main(void)int m;float x;printf(%d,%dn,sizeof(m),sizeof(x);printf(%dn,sizeof(double);return 0;基本基本算术运算符算术运算符+(加)(加)-(减)(减)*(乘)(乘)/(除)(除)%(求余数)(求余数)+(取正)

21、(取正)-(取负)(取负)【例例2.8】已知球体的半径,编程序计算其体积。已知球体的半径,编程序计算其体积。#include#define PI 3.14159int main(void)float r,v;scanf(%f,&r);v=4/3*PI*r*r*r;printf(v=%fn,v);return 0;C语言规定:在二元运算中,结果的类型与语言规定:在二元运算中,结果的类型与参与运算的运算量的类型相同。参与运算的运算量的类型相同。故两个整数相除的结果还是一个整数,因故两个整数相除的结果还是一个整数,因此此4/3的结果为的结果为1。这种取整方法称为这种取整方法称为截断取整截断取整(或向

22、零取整)(或向零取整),即直接截取数学运算结果的整数部分。,即直接截取数学运算结果的整数部分。修正之后的源程序:修正之后的源程序:#include#define PI 3.14159int main(void)float r,v;scanf(%f,&r);v=4.0/3*PI*r*r*r;printf(v=%fn,v);return 0;求余数运算只能用于两个整型数据之间,求余数运算只能用于两个整型数据之间,且余数总是与被除数同号。且余数总是与被除数同号。例如:例如:5%3=2-5%3=-25%-3=2-5%-3=-2公式:公式:m%n=m-m/n*n【例例】从键盘输入一个四位正整数,分离从键

23、盘输入一个四位正整数,分离出它的各位上的数字并输出。出它的各位上的数字并输出。问题分析:问题分析:根据根据C语言中语言中整除整除运算和运算和求余数求余数运算的特点,运算的特点,即可分离出正整数各位上的数字。即可分离出正整数各位上的数字。#include int main(void)int n,d4,d3,d2,d1;scanf(%d,&n);d1=n%10;/*个位个位*/d2=n/10%10;/*十位十位*/d3=n/100%10;/*百位百位*/d4=n/1000%10;/*千位千位*/printf(千位千位=%d,百位百位=%d,十位十位=%d,个位个位=%dn,d4,d3,d2,d1)

24、;return 0;【练习练习】输入一个输入一个以秒为单位以秒为单位的时间值,的时间值,转换成时分秒输出。转换成时分秒输出。表达式表达式 用用运算符运算符将将运算量运算量(常量、变量、函数调用(常量、变量、函数调用等)连接而成的符合等)连接而成的符合C语言语法的式子。语言语法的式子。例如:例如:a*b/c-1.5+a(1)表达式中的乘号不能省略。)表达式中的乘号不能省略。例如,例如,a*b*c(2)在表达式中用括号改变运算符的运算)在表达式中用括号改变运算符的运算次序时,一律使用圆括号。次序时,一律使用圆括号。例如:例如:(-b+sqrt(b*b-4*a*c)/(2*a)(3)在表达式中,可以

25、调用)在表达式中,可以调用C语言的语言的库函库函数数。最常用的数学库函数包括:绝对值函数最常用的数学库函数包括:绝对值函数fabs(x)、乘方函数、乘方函数pow(x,y)、平方根、平方根函数函数sqrt(x)等。等。在程序中调用库函数时,应该在程序的开在程序中调用库函数时,应该在程序的开头用头用include命令包含相应的头文件。命令包含相应的头文件。【例例】已知球体的半径,编程序求其体积。已知球体的半径,编程序求其体积。源程序:源程序:#include#include /*库函数可查附录库函数可查附录*/#define PI 3.14159int main(void)float r,v;s

26、canf(%f,&r);v=4.0/3*PI*pow(r,3);/*调用时只写调用时只写函数名函数名和和参数参数*/printf(v=%fn,v);【例例】已知两点的平面直角坐标值,编程序计算已知两点的平面直角坐标值,编程序计算这两点之间的距离。这两点之间的距离。#include#include int main(void)float x1,y1,x2,y2,d;scanf(%f%f%f%f,&x1,&y1,&x2,&y2);d=sqrt(pow(x1-x2,2)+pow(y1-y2,2);printf(两点之间距离两点之间距离=%fn,d);return 0;【练习练习】已知平面上已知平面上A、B两点的两点的极坐标值极坐标值(其中极角的单位为度)(其中极角的单位为度),编程序求这两,编程序求这两点之间的距离。点之间的距离。运算符的优先级运算符的优先级即一个表达式中不同运算符之间即一个表达式中不同运算符之间进行运算进行运算的先后次序的先后次序。例如:例如:a-b*c运算符的结合性运算符的结合性当一个运算量两侧的运算符当一个运算量两侧的运算符优先级相同优先级相同时,若先时,若先按左侧运算,则称为按左侧运算,则称为左结合性左结合性;反之,称为;反之,称为右右结合性结合性。例如:例如:10/5*2*与与/均为左结合性。均为左结合性。

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com