《c语言教学资料》2基本数据类型及运算.ppt
《《c语言教学资料》2基本数据类型及运算.ppt》由会员分享,可在线阅读,更多相关《《c语言教学资料》2基本数据类型及运算.ppt(147页珍藏版)》请在三一办公上搜索。
1、第2章 基本数据类型及运算,第2章 基本数据类型及运算,本章内容,2.2 标准输入输出函数,2.3 运算符与表达式,2.4 算术运算符与算术表达式,2.1 数据类型,2.5 自增自减运算符及其表达式,第2章 基本数据类型及运算,2.7 关系运算符和关系表达式,2.8 逻辑运算符和逻辑表达式,2.9 其他类型运算符和表达式,2.6 赋值运算符和赋值表达式,2.11 库函数,2.10 表达式的运算顺序和类型转换,2.1 数据类型,本节内容,2.1.2 常量与变量,2.1.3 整型,2.1.4 实型,2.1.1 标识符,2.1.5 字符型,2.1 数据类型,C语言数据类型,数组类型结构体类型共用体类
2、型枚举类型,整型字符型实型(浮点型),基本类型,指针类型,构造类型,空类型,单精度型 双精度型,2.1.1 标识符,C程序是基本字符的序列。基本字符包括:数字(09)大小写字母(az,AZ)标点符号特殊字符:空格、换行、制表符等,起分隔的作用。增删空白一般不影响程序的意义。,2.1.1 标识符,标识符是一个字符序列,用来标识程序中用到的常量、变量、函数、数组、语句标号以及符号常量等的名称。C语言规定标识符应满足以下规则:只能由字母、下划线和数字组成第一个字符不能是数字标识符中的字母区别大小写不能使用C语言的关键字C语言中有3类标识符:关键字,系统预定义的标识符,用户标识符。,2.1.1 标识符
3、,关键字:C语言规定的具有特定意义的字符串,通常也称保留字(小写字母)。标识数据类型(14个):int、long、char、float、double等标识存储类型(5个):auto、static、register等标识流程控制(12个):goto、break、if、else、continue等标识运算符(1个):sizeof,2.1.1 标识符,2.1.1.2 预定义标识符总是以固定的形式用于专门的地方,例如标识库函数名和编译预处理命令。编译预处理命令:define,endef,ifdef,endif,include等。标准库函数:数学函数:sqrt,sin,cos,pow,log,fabs,
4、exp等。输入输出函数:scanf,printf,getchar,gets等。2.1.1.3 用户自定义标识符用户根据自己的需要定义的一类标识符,主要用于标识变量、函数、数组名等。,2.1.2 常量与变量,2.1.2.1 常量常量是指在程序中固定不变的数据量。常量又可分为直接常量和符号常量。直接常量:就是在程序中直接引用的数据:整型常量:1,0,-50,32767。实型常量:3.14,-55.6,1.7e4。字符常量:A,$,s。字符串常量:Good morning,how are you。,2.1.2 常量与变量,符号常量:是用标识符表示一个数据。定义符号常量:#define 标识符 常量#
5、define是一条预处理命令,称为宏定义,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母。#define PI3.14159标识符PI代表常量3.14159。程序中,凡是出现标识符PI的地方都用3.14159替换。,2.1.2 常量与变量,【例2-1】分析以下程序中,常量有哪些?,#include#define N 10void main()int a=6;int sum;float b=4.5,c;sum=a+N;c=b*N;printf(a=6,sum=%dn,sum);printf(%f,c);,2.1
6、.2 常量与变量,2.1.2.2 变量变量代表内存中的一个存储单元,它用来存放数据,也就是变量的值,在程序运行期间,可以读出所存放的值或写入新值。变量名实际上是一个以一个名字对应代表一个内存单元的地址,在对程序编译时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,2.1.2 常量与变量,2.1.2.2 变量C语言中要求对所有用到的变量作强制定义,也就是“先定义,后使用”。在定义变量时要指定变量名和变量的数据类型,也可以同时为定义的变量赋初值。变量的数据类型决定了编译系统为其分配的空间大小。变量“先定义,后使用”的目的:未
7、定义的,系统不作为变量名(编译时出错);编译时为变量分配相应存储单元;根据变量类型,检查运算是否合法,如整型变量的求余运算 a%b,2.1.2 常量与变量,变量定义必须放在变量使用之前,一般放在函数体的开头部分,之后是程序的执行语句。主函数main()的结构为:main()变量声明语句 执行语句序列,2.1.2 常量与变量,定义变量的语句格式为:类型 变量表;类型可以是int、float、char、void或自定义类型。变量表可以是一个或多个变量名,各变量之间要用逗号分开,声明语句要以分号作为结束。int abc;/声明一个名为abc的整型变量float m,n,p;/声明3个实型变量,名字分
8、别为m、n、p定义变量的同时赋初值:float m=1,n=2,p;应注意,在初始化中不允许连续赋值,如int a=b=c=5是不合法的。,2.1.3 整型数据,2.1.3.1 整型常量十进制整型常量:十进制整常数没有前缀。八进制整型常量:以数字0作为前缀。所用数码为07。八进制数通常是无符号数。例如:012(十进制为10)、0103(十进制为67)、0177777(十进制为65535)十六进制整型常量:十六进制整型常量以0X或0 x为前缀。所用数码为09,AF或af。例如:0X1B(十进制为27)、0XC2(十进制为194)、0XFFFF(十进制为65535)。,2.1.3 整型数据,长整型
9、数的表示:在基本整型数后加大写字母“L”或小写字母“l”来表示。例如:72767L(十进制为72767)、0200000L(十进制为65536)、0X21FFFL(十进制为139263)等。长整型数占4个字节(32位)存储空间。整型常量的无符号数的后缀为“U”或“u”。例如:625u,0 x12Du,115Lu 均为无符号数。程序中是根据前缀来区分各种进制数的。整型常量后面加u或U,则认为是unsigned int型,整型常量后面加l或L,则认为是long int型。,2.1.3 整型数据,2.1.3.2 整型变量整型变量用来存放整型常量。整型变量按其取值范围可分为以下几类:基本型类型说明符为
10、int,在内存中占4个字节(TC编译系统为2个字节),其取值为基本整常数。短整型类型说明符为short int或short。所占字节和取值范围均与基本型相同。长整型类型说明符为long int或long,在内存中占4个字节,其取值为长整型数。,2.1.3 整型数据,整型变量还可添加类型说明符unsigned,表示该变量是无符号型变量。无符号型与上述三种类型匹配可构成:无符号基本型 类型说明符为unsigned int或unsigned。无符号短整型 类型说明符为unsigned short无符号长整型 类型说明符为unsigned long,2.1.3 整型数据,2.1.3 整型数据,【例2-
11、2】将八进制数0100赋给变量a,十六进制数0 x1F赋给变量b,十进制数10赋值给变量c,然后计算d=a+b+c,最后以十进制和八进制形式显示a,b,c,d的值。,#include void main()int a=0100,b=0 x1F;int c=10,d;d=a+b+c;printf(a=%d b=%d c=%d d=%d,a,b,c,d);printf(n);printf(a=%o b=%o c=%o d=%o,a,b,c,d);,2.1.3 整型数据,2.1.3.3 整型数据在内存中的存储方式一个数分为正数和负数,在计算机中为了表示数,可以采用多种方法,一般有原码、反码、补码这三
12、种表示形式。实际上,在计算机中,数值是用补码表示的。原码:将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值,即转换成相应的二进制形式,我们以短整型(int)来举例:+7的原码:0000000000000111-7的原码:,2.1.3 整型数据,反码:一个数如果为正,则它的原码与反码表示方法相同;一个数如果为负,则符号位为1,其余各位是对原码取反。+7的反码:0000000000000111-7的反码:补码:在计算机中,数值是用补码表示的。一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。+7的补码:00000
13、000 00000111-7的补码:第一步,7的原码:00000000 00000111第二步,按位取反:11111111 11111000第三步,整个数+1,得-7的补码:11111111 11111001,2.1.3 整型数据,已知一个负数的补码,将其转换为十进制数:步骤如下:(1)先将各位取反;(2)将其转换为十进制数;(3)加上负号,再减去1。例如:,最高位为1,是负数,先对各位取反得0000000000000101,转换为十进制数得5,加上负号得-5,再减1得-6。在计算机中,数值是采用补码表示的。这样做可以把减法运算转换成加法运算,仍然能获得正确的结果。使得计算机的运算器具备加法器
14、就可以完成各种运算了,简化了计算机的硬件结构。,2.1.3 整型数据,计算机所能表达的数的范围叫做“模”。模与某数的差,叫做某数的“补数”。如果丢弃超出模的进位的话,数A减数B所得的差,与数A加数B的补数所得的和是一致的。例如:以10为模,9-4=5。9+6=15,丢掉进位也是5。,如果计算机用一个字节表示数。模就是1 00000000(256)107-3这个减法运算就可以变成7+3的补码(253)的加法运算。,00000111(7的补码),+11111101(3的补码253),1 00000100(丢掉进位为4),2.1.4 实型数据,2.1.4.1 实型常量实数有两种表示形式:小数形式和指
15、数形式。小数形式由数码09和小数点组成。指数形式指数形式也称科学计数法,由十进制小数加阶码标志“e”或“E”以及阶码组成。指数表示的一般形式为:a E n(a为实数,n为整数)表示a10n。注意:实型常数不分单、双精度,都按双精度double型处理。,2.1.4 实型数据,2.1.4.2 实型变量实型变量分为两类:单精度实型和双精度实型。float为单精度说明符,double为双精度说明符。单精度型占4个字节(32位)内存空间,其数值范围为3.4E-383.4E+38,只能提供7位有效数字。双精度型占8个字节(64位)内存空间,其数值范围为1.7E-3081.7E+308,可提供16位有效数字
16、。,2.1.4 实型数据,#includevoid main()float a;double b;a=1.0/3;b=1.0/3;printf(a=%.20fnb=%.20fn,a,b);,【例2-3】编写一个程序,用float和double两种类型变量保存1/3的计算结果。,2.1.5 字符型数据,一个字符,占1个字节的存储空间。字节中存放字符的8位二进制的ASCII码,总共256种,对应0255的整数。,2.1.5 字符型数据,2.1.5.1 字符常量字符类型常量或变量都占用1个字节。字符型变量用于存放一个ASCII码。C语言是把字符型的数据当成整型数处理的,因此,对于整型数据的所有处理均
17、可用于字符型数据。在C语言中,字符型常量是由一对单引号引起来的单个字符构成。例如:A,5,$等。a的ASCII码为:0110 0001(十进制97,十六进制61),2.1.5 字符型数据,字符常量有以下特点:字符常量只能用单引号括起来,不能用双引号或其它括号。字符常量只能是单个字符,不能是字符串。字符常量占用一个字节的存储单元,而实际在存储单元内存放的是该字符的ASCII码值,即一个整型量。因此,字符常量可以参加数值运算。,2.1.5 字符型数据,#includevoid main()char m=a;printf(%cn,m);,【例2-5】分析以下程序运行结果。,2.1.5 字符型数据,转
18、义字符是在一些字符前加上反斜杠“”构成,用于表示某些控制字符(如n表示回车)或一些特殊字符(”表示双引号,还可以表示任意ASCII字符(bbb、0 xhh)。,2.1.5 字符型数据,#includevoid main()printf(1t2t3t4n);,#includevoid main()printf(Yb=n);,【例2-6】输出1、2、3、4,要求以制表符(tab)分隔,【例2-7】转义字符的使用,2.1.5 字符型数据,#includevoid main()printf(101 x42 Cn);printf(He said:Thank youn);printf(C Programn
19、);printf(Turbo C n);,【例2-8】判断输出结果,字符数据在内存中的存储形式及其使用方法一个字符常量存放到一个字符变量中,即将该字符的相应的ASCII码放到存储单元中。因而字符型数据和整型数据之间可以通用。例如:char c=A;int y;y=c+32;,字符型数据,2.1.5 字符型数据,2.1.5.2 字符串常量字符串常量是由一对双引号括起的字符序列。例如:“ABC”、“123”、“a”、“nt”、“nGood morning”等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间主要有以下区别:字符常量由单引号括起来,字符串常量由双引号括起来。字符常量只能是
20、单个字符,字符串常量则可以包含一个或多个字符。,2.1.5 字符型数据,可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在语言中没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。这一内容将在数组一章详细介绍。字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字符数加1。增加的一个字节中用来存放字符串结束标志字符“0”(ASCII码为0000 0000)。字符串 C program在内存中的存储形式为:,2.1.5 字符型数据,2.1.5.3 字符型变量同其他类型的变量一样,必须在使用前声明。字符型变量占一个字节,字符型变量的取值是字符
21、常量,即单个字符。类型说明符是char。例如,声明两个字符型变量:char c1,c2;在声明时,也可以直接赋初值:char c1=x,c2=y;char c3=,c4=95;,2.1.5 字符型数据,字符x的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量c1,c2赋予x和y值:c1=x,c2=y;实际上是在c1,c2两个单元内存放120和121的二进制代码:c10 1 1 1 1 0 0 0 xc20 1 1 1 1 0 0 1 y所以也可以把它们看成是整型量。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型
22、量按字符量输出。,2.1.5 字符型数据,#includevoid main()char tab;tab=t;printf(1%c2%c3%c4n,tab,tab,tab);,【例2-9】判断输出结果,2.1.5 字符型数据,#include void main()int sum=0;sum=sum+a;printf(“sum=%dn,sum);,【例2-10】判断输出结果,2.1.5 字符型数据,#includevoid main()char c1=A;int y;y=c1+32;printf(c1:%c,%dn,c1,c1);printf(y:%c,%dn,y,y);,【例2-11】编写一
23、程序,将字符A赋给字符型变量c1,计算y=c1+32,最后以字符和整数两种形式显示c1和y的值。,2.2 标准输入输出函数,本节内容,2.2.2 格式输出函数printf,2.2.1 格式输入函数scanf,2.2 标准输入输出函数,C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现例如:字符输入函数:getchar 字符输出函数:putchar格式输入函数:scanf 格式输出函数:printf字符串输入函数:gets 字符串输出函数:puts,2.2 标准输入输出函数,在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。例如:在调
24、用标准输入输出库函数时,文件开头应该有:#include“stdio.h”或:#include 用双引号表示先在当前程序所在的目录查找所包含的文件,一般在要包含自己写的文件时使用。用尖括号表示先在系统目录查找所包含的文件,一般在要包含系统头文件时使用。,2.2.1 格式输入函数scanf,此处所说的数据输入指的是程序从键盘上输入数据。注意:scanf()函数的声明包含在stdio.h头文件中。因此,要调用这个函数,必须在程序开始处添加#include 预处理命令。,2.2.1 格式输入函数scanf,格式int scanf(“格式化字符串”,地址表);地址表:地址表是一系列要求输入数据的变量的
25、地址。对普通变量而言,变量地址就在变量前加“变量n的地址是&n。格式化字符串:格式化字符串包括空白字符、普通字符(非空白字符)和格式说明符3部分。scanf()函数按从左到右的顺序扫描格式化字符串,对其进行处理。,2.2.1 格式输入函数scanf,空白字符包括空格、“t”水平制表符和“n”回车换行符等。空白符将被跳过。普通字符(非空白字符)包括除百分号“%”以外的所有ASCII字符。普通字符必须原样输入。格式说明符用于规定所读入数据的类型,它是由百分号加特定字符组成。常用格式说明符及含义如下表:,2.2.1 格式输入函数scanf,2.2.1 格式输入函数scanf,格式说明符按从左到右的顺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言教学资料 语言 教学 资料 基本 数据类型 运算
链接地址:https://www.31ppt.com/p-5896075.html