第3章数类型据基础ppt课件.ppt

上传人:本田雅阁 文档编号:2549583 上传时间:2019-04-06 格式:PPT 页数:51 大小:634.51KB
返回 下载 相关 举报
第3章数类型据基础ppt课件.ppt_第1页
第1页 / 共51页
第3章数类型据基础ppt课件.ppt_第2页
第2页 / 共51页
第3章数类型据基础ppt课件.ppt_第3页
第3页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章数类型据基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章数类型据基础ppt课件.ppt(51页珍藏版)》请在三一文库上搜索。

1、第3章,数据类型基础,了解常量与变量的含义。 掌握基本数据类型的特点。 掌握基本输入输出函数 掌握运算符与表达式,常量、变量和标识符 基本数据类型 (整型、实型、字符型) 数据的输入、输出 运算符与表达式,讲课提纲,程序要对数据进行操作处理: 处理的对象是数据(其在程序中要有合法的表现形式) 而数据又通过运算符和表达式进行操作,例:计算半径为 5 cm的圆的面积。程序如下:,main( ) float r, area ; r=5 ; area=3.14*r*r; printf (“%fn “, area) ; ,输出:78.500000,程序中用到的数据:r、area、5、3.14 对数据进行

2、的运算:* 、=,分析:,计算机操作处理时,要完成以下工作: 在内存中给半径 r 和运算结果 area 开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值? 数据 5 和 3.14 与 r 、area 不同,编程时给出确定值且运算过程中不改变。这样的数计算机怎么处理? 对整数 5 和小数3.14 ,计算机存放时是否有区别?,涉及数据类型 的基本知识,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,数据往往都是以某种特定形式存在的, C语言提供的数据类型如下:,返回,3.2.1 常量,整型常量:10、28; 实型常量:3.14; 字符常量:a、A ;,

3、程序运行过程中,值不发生改变的量称为常量 。 直接常量 直接常量(即常数):10、3.14等都是直接常量 。 常量分为:,常量可以直接用于输入或赋给其他变量,整型常量 三种形式: 十进制整数:由数字09和正负号表示.如 32、-8、0等 八进制整数:由数字0开头(注意:不是字母o) ,后跟数 字07表示.如 012、011、016 十六进制整数:由0x(或0X)开头,后跟09,af,AF表 示.如 0x123,0Xff,注意:八进制数、十六进制数的合法数字表 示,十六进制数中字母大、小写等同,0xaa等同于0xAA,3.2.1 常量,#include main() int a,b,c; a=1

4、00; b=0100; c=0x100; printf(“a=%d,b=%d,c=%dn“,a,b,c); ,输出结果是: a=100,b=64,c=256,举例:,3.2.1 常量,2.实型常量(浮点数) 即带小数点的实数。 表示形式: 十进制数形式:(必须有小数点) 如 0.1234、.1234、1234.、0.0 指数形式: 由尾数、字母e或E、指数三部分组成。 如3.85e4 或 3.85E4 均表示 3.85104,(e或E之前必须有数字;指数必须为整数),例:判断下列指数形式的合法性 13E6 3.5e4.5 .e3 1.23456e2 e,规范化的指数形式: 在字母e(或E)之前

5、的尾数中,小数点左边应有一位(且只能有一位)非零的数字。例如: 3.478e2,3.2.1 常量,3.字符常量,字符常量区分大小写,如 a、I、A、n,如 a、A是两个不同的字符常量,字符常量的值:该字符的ASCII码值,如 a在内存的字节中存放的ASCII值是97,特殊的字符常量 :以一个“”开头的字符序列。 (转义字符),定义:用单引号括起来的单个普通字符或转义字符.,3.2.1 常量,“转义字符”:即 将反斜杠()后面的字符转换成另外的意义。 如:n 中 的 “n” 不代表字母 n 而作为 “换行” 符。 (仍代表一个字符),以“”开头的特殊字符,3.2.1 常量,main() prin

6、tf(“%c,%cn“,a,A); printf(“%d,%dn“,a,A); printf(“%c,%cn“,a-32,A+1); ,程序输出结果是: a,A 97,65 A,B,由于字符常量存放的是ASCII码值,所以字符常量可以同数值常量一样参加算术运算。,字符常量与字符串常量不同,4.字符串常量 定义:用双引号(“”)括起来的若干字符,简称:字符串 如”STRING” 存储:每个字符串尾自动加一个 0 作为字符串结束标志,3.2.1 常量,main() printf(“Computer“); printf(“nI am a boy!n“); printf(“%sn“,“STRING“)

7、; ,程序输出结果是: Computer I am a boy! STRING,双引号、单引号是字符常量和字符串常量的标记,字符串和字符常量是两个不同的概念。,3.2.1 常量,#define PI 3.14 main() float r,circle,area; r=2.4; circle=2*PI*r; area=PI*r*r; printf(“circle=%f,area=%fn“,circle,area); ,程序的运行结果是: circle=15.072001,rea=18.086401,程序中用#define命令行定义PI代表常量3.14, 此后凡在本文件中出现的PI都代表3.14

8、, 可以和常量一样进行运算。,符号常量 C语言中特殊常量符号常量即给常量起一个名。,返回,3.2.1 常量,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。 规定标识符只能由字母、数字和下划线三种字符组成,并且第一个字符必须为字母或下划线。,例:判断下列标识符号合法性 area、sum、 a&b、$234、 _above、PI 、name、Name、class、CLASS,1.标识符,3.2.2 变 量,C语言的标识符中,将区分大小写,name和Name、CLASS和class都是不同的标识符。,标识符,3.2.2 变 量,#define PI 3.14 m

9、ain() float r,c,area; r=2.4; printf(“c=%f,area=%fn“,c,area);,r、c和area就是变量名 ,命名规则应遵守标识符命名规则,2. 变量的定义 程序运行过程中,值可改变的量称为变量。每一个变量都应该有一个名字作为标识。,变量定义的一般格式: 数据类型 变量1,变量2,变量n;,C语言所允许的任何数据类型,包括基本数据类型及构造数据类型 等,合法标识符,例: int i; float data;,变量必须遵从“先定义,后使用”的原则。,3.2.2 变 量,3.变量的赋值与初始化 赋值格式:变量名表达式 例:a=10; 可在定义变量时给变量赋

10、初值,称为变量初始化。 格式:类型符 变量1=值1, 变量2=值2; 例:int a=1;b=3;c=100;,3.2.2 变 量,1.整型数据在内存中的存放形式: 数据在内存中是以二进制形式存放的。,一个int整数VC环境下通常用4个字节存放:其中最高位用来存放整数的符号, 0表示正整数, 1表示负整数 实际上,一个有符号整数在内存中,是以补码形式存放的。 若说明为无符号整数,其中最高位不再用来存放整数的符号,二进制位全部用来存放整数数值,因此无符号整数不可能是负数,3.3.1 整型数据,数值的表示方法原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原

11、码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1,负数补码转换成十进制数:最高位不动,其余位取反末位加1,例 补码:11111001 取反:10000110 末位加1:110000111=-7,2. 分类 : 归纳起来,可以用以下6种整型变量。即: 有符号基本整型 signed int 有符号短整型 signed short int 有符号长整型 signed long int 无符号基本整型 unsigned int 无符号短整型 unsigned short int 无符号长整型 unsigned long

12、int,3.3.1整型数据,1. 实型数据在内存中的存放形式 一个实型数据在内存中占4个字节(32位)。 2. 实型变量的分类(注意其有效位) C实型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类。 实型变量也应在使用前加以定义。如: float x,y; (指定x、y为单精度实数) double z; (指定z为双精度实数),3.3.2 实型数据,程序输出结果是: s=78.500000,3.3.2 实型数据,main( ) float r, area ; r=10 ; area=3.14*r*r; printf (“s=%fn “, ar

13、ea) ; ,1. 字符变量的定义 : 一个字符变量在内存中占一个字节 char c1,c2; c1=a;c2=b;/*对c1、c2赋值 */ 2. 字符数据在内存中的存放及其使用方法 : 存放的是该字符相应的ASCII码。 例如: 字符a 的ASCII码为97,b为98,3.3.3 字符型数据,#include main( ) char ch1,ch2; ch1=a; ch2=ch1-32; printf (“ch1=%c , ch2=%c n“, ch1,ch2) ; printf (“ch1=%d , ch2=%d n“, ch1,ch2) ; ,程序输出结果是: a,A 97,65,由

14、于字符数据存放的是ASCII码值,所以字符数据可以同数值数据一样参加算术运算。,3.3.3 字符型数据,字符输出函数putchar() 作用:向终端输出一个字符。 基本格式:putchar(ch) 用法说明: 参数ch可以是除字符串常量之外的字符、整型、实型常量、变量或各种表达式 在程序中使用putchar()函数时,该程序的开头必须用一条预编译命令“#include ”。 putchar()函数可以输出控制字符,如: putchar(n);,3.4.1 putchar函数,例 在putchar函数中使用不同参数输出字符A。 #include “stdio.h“ main() char ch=

15、A; int i=65; putchar(ch); /*输出字符变量所代表的字符,*/ putchar(i); /*输出以整型变量i的值为ASC码的字符,*/ putchar(A); /*直接输出字符常量A,*/ putchar(65); /*输出以十进制整型常量65为ASC码的字符,*/ putchar(n); /*输出一个换行符*/ ,程序运行结果: AAAA,字符输入函数getchar() 作用:接收从终端(一般指键盘)输入的一个字符。 基本格式: getchar() 没有参数,3.4.2 getchar函数,例 输入单个字符 #include “stdio.h“ main() char

16、 ch; ch=getchar(); /*从键盘上接收一个字符*/ putchar(ch); /*在屏幕上输出该字符*/ ,例 输入输出字符练习。 #include main( ) char ch1,ch2,ch3; ch1=getchar( ); ch2=getchar( ); ch3=getchar( ); putchar(ch1); putchar(ch2); putchar(ch3); ,ABCDEFG ABC,A BC A B,返回,格式:printf(“格式控制串”,输出项表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1),3. 4. 3

17、printf 函数,输出表项:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明: %修饰符格式字符 用于指定输出格式 普通字符或转义序列:原样输出 格式字符,说明 格式字符要用小写(除O、X可用大写外) 格式字符与输出项个数应相同,按先后顺序一一对应,例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 输出结果: 3 4 a=3, b=4,例 main() unsigned int u=65535; printf(”u=%dn“,u); 输出结果:u=-1,附加格式说明符(修饰符),返

18、回,3. 4. 4 scanf函数,格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”, 输入:10 则 a=10,例 scanf(“%x”, 输入:11 则 a=17,附加格式说明符(修饰符),例 scanf(“%4d%2d%2d”, 输入 19991015 则1999yy, 10 mm, 15 dd,例 scanf(“%3d%*4d%f”, 输入 12345678765.43 则

19、123k, 8765.43f,例 scanf(“%2d%*3d%2d”, 输入 1234567 则12a, 67b,例 scanf(“%3c%2c”, 输入 abcde 则ac1, d c2,输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符时,输入时需原样输入。 (上机调程时尤其注意),例 scanf(“%d%o%x”, 输入 123 123 123 输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d”, 输入 12:30:45 则12 h, 30 m, 45 s,例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b,例

20、scanf(“a=%d,b=%d,c=%d”, 输入 a=12,b=24,c=36 ,说明: 用“%c”格式符时,空格和转义字符作为有效字符输入,如 scanf(“%c%c%c”, 若输入abc 则ac1, c2, b c3,输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入,如 scanf(“%d%c%f”, 若输入1234a123o.26 则 1234 a, a b, 123 c,例 int x; char ch; scanf(“%d”, 执行:123 输出:x=123,ch=10,例 int x; char ch; scanf(“%d”, 执行:123

21、 输出:x=123,ch=10,例 int x; char ch; scanf(“%d”,返回,35 运算符与表达式,一、运算符和表达式简介 表达式由运算符(例如:+ * )、运算对象(也称操作数,可以是常量、变量等等)和括号组成。表达式运算所得到的结果值便是表达式的值。,例如: a+b xy,C语言的运算符丰富,几乎大部分操作都由运算符来完成。归纳起来,C的运算符有以下几类:,35 运算符与表达式,运算符种类:,二元运算符(或双目运算符):运算符需要两个操作数使用形式为: 操作数1 运算符 操作数2 一元运算符(或单目运算符):运算符需要一个操作数 优先级:决定表达式的运算顺序。 结合性:是

22、指当一个操作数左右两边的运算符优先 级相同时,按什么样的顺序进行运算。包含自左向 右,自右向左两种顺序。,35 运算符与表达式,二、算术运算符与算术表达式,基本算术运算符和表达式 基本算术运算符:+ - (正负) * / % + -(加减) 结合方向:从左向右 优先级: + - -* / % - + (2) (3) (4) 说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数;一侧为实型结果为实型 %要求两侧均为整型数据,35 运算符与表达式,自增、自减运算符 + - 作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先

23、使用i值,再执行i+1或i-1) 说明: + - - 不能用于常量和表达式,如5+,(a+b)+ + - - 结合方向: 自右向左 优先级:- + - - -* / % -+ - (2) (3) (4),例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3,例 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;,无论是作为前缀还是作为后缀运算符,对于变量本身来说自增1或自减1都具有相同的效果,但作为表达式来说却有着不同的

24、值。,35 运算符与表达式,复合赋值运算符 种类:+= -= *= /= %= = = &= = |= 含义: 变量 op= 表达式 变量 = 变量 op 表达式,例 a=10 /*把常量10赋给变量a*/,赋值运算符和表达式 简单赋值运算符 符号: = 格式: 变量名 =表达式 作用:将一个数据(常量或表达式)赋给一个变量,35 运算符与表达式,赋值表达式的值与变量值相等,且可嵌套,说明: 结合方向:自右向左 左侧必须是变量,不能是常量或表达式,例 int i; i=2.56; /结果i=2;,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,35 运算符与表达式,假设已有整型变

25、量a,其值为3,试计算表达式: a+=a-=a*a的值。 main() int a=3; printf(“%dn“,a+=a-=a*a); ,程序的运行结果是: -12,1. 先计算“a*a” ; 2. 计算“a-=9”; 3 .计算“a+=-6”。,35 运算符与表达式,说明: (1) 逗号运算符的结合性为从左到右,因此逗号表达式将从左到右进行运算。,a=3*5,a*4,整个逗号表达式的值为60,(a=3*5,a*4),a+5,printf(“%d,%d,%d“,a,b,c);,(3)一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式。,(4)并不是任何地方出现的逗号都是作为逗号运算符

26、。例如函数参数也是用逗号来间隔的。,(2)逗号的运算优先级最低,四、逗号运算符和逗号表达式 形式:表达式1,表达式2,表达式n 逗号表达式的值:等于表达式n的值,整型、实型可以混合运算。运算时不同类型的数据要先转换成同一类型,然后进行运算。(隐式转换),返回,3.6 不同类型数据之间的转换,强制类型转换运算符 : 一般形式:(类型名)(表达式) 例 (double)a (将a转换成double类型) (int)(x+y) (将x+y的值转换成整型) (float)(5%3) (将5%3的值转换成float型) 说明:强制转换得到所需类型的中间变量, 原变量类型不变。,强制类型转换。 main() float x; int i; x=4.5; i=(int)x; /*强制类型转换 */ printf(“x=%f,i=%dn“,x,i); ,程序的运行结果是: x=4.500000, i=4,3.6 不同类型数据之间的转换,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1