C语言基本的数据类型.ppt

第3章 基本数据类型(1),本章内容介绍,引出标示符 3.1 C语言的数据类型 3.2 整型和实型 3.3 字符型 3.4 库函数,补充什么是标识符,标识符是一个名字,是给程序中的实体(常量、变量、类型、函数、数组、结构体以及文件起的名称,文件名也是标示符。 组成由字母、下划线、数字组成,且标示符必须由字母或下划线开头,否则程序出错。 C语言不允许同时定义2个相同变量。 C语言不同于其它语言,区分大小写。 Area _abc 4dd 长度只能识别前8位。建议变量名的长度最好不要超过8个字符,标识符分类,标识符有三类关键字、预定义标识符和用户定义标识符。 1)关键字 已被C系统所占用的标识符称为关键字,每个关键字在C程序中都有其特定的作用,关键字不能作为用户标识符。 Turbo C 20的关键字,共32个,所有关键字中只包含小写字母和下划线。,标示符,ANSI标准定义的共32个关键字,标识符分类,2)预定义标识符 C语言系统提供的库函数名和编译预处理命令等构成了预定义标识符。 printf,scanf等 3)用户标识符 禁止使用 关键字作为用户的标识符 尽量避免使用预定义标识符作为用户标识符 标识符中不能出现全角字符、空格 使用标识符最好做到见名知义 标识符必须先定义后使用,否则出现编译错误,标识符,常量的类型,在程序运行过程中,其值不能被改变的量称为常量 常量区分为不同类型, 1)整型常量 100,-100,07623 , 0 xa3f 2)实型常量 3.14 , 1.2345e3 ,-3.789 3)字符型常量 a, b,2 4)字符串常量“123“ , “Good morning“ 5)符号常量define PI 3.14159 PI、ESC与ID是符号常量,变量,变量是值可以改变的量。实质内存中的存储单元 定义方法数据类型 标示符 标识符的格式 1)只能使用字母、数字或下划线 2)首字符必须为字母或下划线 3)字符个数不超过32个 4)区分大小写 5)不能使用关键字(保留字) 如x,sum,_word,lotus_1_2_3 3df,12, ab, M.D.John,int 注意 标识符要“见名知意”,变量应“先定义后使用”变量的特性 1)应先定义后使用; 2)每一变量被指为一确定类型,在编译时就能为其分配相同的存储单元; 3)指定每一变量属于一类型,便于在编译时,据此检查该变量所进行的运算是否合法,内存,x,例 define PRICE 30 void main int num,total; num 10; total num * PRICE; printf “totald“, total; , 定义变量 赋值 赋值,int x; x -10;,-103.1 C的数据类型,数据有一个非常重要特征即数据的类型。 数据类型不仅确定了变量的取值范围、占内存空间大小,而且还确定了变量所能参加的各种运算方式。 例如一个整型(int)类型的数据,占内存空间2字节,取值范围规定为-3276832767之间的整数,能参与算术运算、位运算等。C语言中,每个变量在使用之前必须定义其数据类型。,C的数据类型,C的数据类型,基本类型由系统事先定义好的不可再分割的类型,可以直接利用这些类型名定义数据。 构造类型由基本类型组成的更为复杂的类型。 指针类型一种特殊的、具有重要作用的数据类型,其值用来表示某个量在内存中的地址。 空类型主要用于特殊指针变量和无返回值函数的说明,注意数据类型的位数和取值范围与所运行环境有很大关系(例如Turbo C与Visual C 6.0会有不同),C的数据类型3.2 整型,3.2.1整型常量 一、整型常量的表示方法 整型常量即整常数。在语言中,整常数可用以下三种形式表示 (1)十进制整数。 如123, -456.4。 (2)八进制整数。以数字0开头的数是八进制数。 如0123表示八进制数123,等于十进制数83 - 011表示八进制数-11, 即十进制数-9。 (3)十六进制整数。以0 x或X开头的数是16进制数。 如0 x123,代表16进制数123,等于十进制数 291。 -0 x12等于十进制数18 -0X8000L,16进制长整型,等于十进制数32768,二、不合法的整型常量 09876(非十进制,非八进制,因为有数字8和9) 20fa(非十进制,非八进制,不是以0 x开头) 0 xfg(出现了非法字符) 三、整数的表数范围 16位字长的整数表数的范围为-3276832767 用八进制表示则为00177777,用十六进制表示为 0 x00 xFFFF。超出上述范围的整常数,要用长整型(32位)表示。在C语言中,整型数后加l或字母L为长整型。 四、整型常量的分类基本整型、短整型、常整型、无符号整型,3.2.2整型变量,一、分类基本整型、短整型、常整型、无符号整型。 二、定义 1)基本整型变量用int进行定义; 2)一个定义语句必须用分号“;”结束,在一个定义语句中可同时定义多个变量,变量之间用逗号”,”隔开。 3)一般微机为基本整型开辟2个字节的存储单元,允许存放的数值范围是-3276832767,4)C语言规定,可以在变量定义的同时给其赋值,称为变量的初始化。,void main int a 3; float f 3.56; char c a; int i, j, k 5; int x 3, y 5; ,如果变量没有被初始化,变量的初始值将不能确定,变量参与运算前,必须先赋值,否则运算无效,先定义后使用 1、必须首先声明; 2、参与运算前必须先赋值,查看运行结果,想想为什么,程序一 main int i,j,k; printf“id,jd,kdn”,i,j,k; ,程序二 main int i,j,k; i10; j20; k30; printf“id,jd,kdn”,i,j,k; ,5)当程序中用以上方式定义变量i,j,k时,编译程序会为变量i,j,k都开辟存储单元,但并没用在存储单元中存放任何初值。 因此这些存储单元中原有的信息垃圾并没有被清除。这时,变量中的值无意义,只有赋初值才有意义。,3.2.3整型数据的分类,1、分类 1)有符号整型signed 基本整型(int) 2个字节 -3276832767 短整型(short int) 2个字节 -3276832767 长整型(long)4 -21474836482147483647 2无符号整型unsigned unsigned int 2 065535 unsigned short 2 065535 unsigned long 4 04294967295,2、C语言如何表示 若要表示一个长整型常量,则应该在一个整型常量后加一个字母后缀l或L。如 long i; i200l;注意如果一个足够大的数,即使面值在长整型范围内,但数字后未加字母l,也不可代表长整型。 3、无论是短整型还是长整型,都被识别为有符号整型,无符号整数应该在数字末尾加上u或U,长整型无符号整数常数,加lu或LU 注意无符号常量不能表示成小于0的负数。 -200u不合法,一个整数,如果其值在-3276832767范围内,认为它是int型,它可以赋值给int型和long int型变量。 一个整数,如果其值超过了上述范围,而在 -21474836372147483647范围内,则认为它是为长整型。可以将它赋值给一个long int型变量。 一个整常量后面加一个字母u或U,认为是unsigned int型,如12345u,在内存中按unsigned int规定的方式存放存储单元中最高位不作为符号位,而用来存储数据。如果写成-12345u,则先将-12345转换成其补码53191,然后按无符号数存储。,3.2.4整数在内存中的存储形式,1、存储单位 1)在计算机中,内存储器的最小存储单位为“bit”,8个二进制位组成一个字节byte. 2)如果一台计算机系统以两个字节(16个二进制位)来存放一条机器指令,就称这台计算机的字长为16位。 3)最右边一位为“最低位”,最左边一位为“最高位” 4)若是正整数,最高位为“0”,若是负整数,最高位为“1”。,2、存储方式 1)正整数用两个字节存放最大整数32767 2)负整数 aC语言中,对于负整数,在内存中是以整数的“补码”形式存放; b两个字节存放最小整数-32768 3)无符号整数用两个字节存放一个整数时,若说明为无符号整数,其中最高位不再用来存放整数的符号,16个二进制数位全部用来存放整数,因此无符号整数不可能是负数。这时,16个二进制位中全部是1,它所代表的整数就是最大数65535-32768,-1例如整数13在内存中实际存放的情况,例整型变量的定义与使用,include “stdio.h” void main int a,b,c,d; unsigned u; a12;b-24;u10; cau;dbu; printf“aud,budn”,c,d; ,运行结果 au22,bu-14,例整型数据的溢出,include void main int a,b; a32767; ba1; printf“d,dn”,a,b; ,说明 数值是以补码表示的。一个整型变量只能容纳-3276832767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。3.3实型,3.3.1实型常量(也称浮点型常量) 一、实型常量的表示方法 实型常量只能用十进制形式表示。 (1)小数形式0.123 345.0 -34. .679 0.0 小数点不能省略,不能只有一个小数点 绝对值小于1的实型常量,其小数点前面的零可以省略,如;0.123可写为.123,-0.0123e-5可写为.0123e-5。 (2)指数形式指数部分前加字母e或E 1.2345e3、12345E2、1.2345e3 指数部分必须是整数,字母e或E之前必须有数字,字母e或E 前后以及数字之间不得插空格。,1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e,规范化的指数形式,在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字. 例如 123.456可以表示为 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.23456e3称为“规范化的指数形式”。C编译系统将浮点型常量作为双精度来处理。 例如f 2.45678 * 4523.65 系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。最后取其前7位赋给浮点型变量f。如是在数的后面加字母f或F(如1.65f, 654.87F),这样编译系统就会把它们按单精度(32位)处理。 实型常量不分单精度和双精度,可赋给单精度和双精度。根据变量的类型,截取实型常量中相应的有校数位。 float a; a111111.111; 由于float只能接收7位有效数位,最后两位小数不起作用,若改为double,则全部接收。,3.3.2实型变量,1、C语言实型变量分为单精度和双精度 单精度定义float a,b; 双精度定义double a,b; 2、浮点型数据在内存中的存放形式 一个浮点型数据一般在内存中占4个字节32位。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。 小数部分所占位数越多,数据的精度越高,指数部分所占的位数越多,数据的取值范围越大。3、浮点型变量的分类 浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。4、单精度和双精度的区别 1)一般计算机系统中,为float类型变量分配4个字节的存储单元,为double类型变量分配8个字节的存储单元; 2)Turbo c中单精度实数的取值范围 10-37 1038并提供7位有效位;小于-1038的数被处理成零值;双精度实数的取值范围 10-30710308 并提供16位有效位;小于10308的数被处理成零值; 因此double类型的变量中存放的数据比float类型中存放的数据精确很多。,3)在程序中一个实数可以用小数形式表示,也可以用指数形式表示,但在内存中,实数一律是以指数形式存放; 4)注意在计算机内存中可以精确地存放一个整数,不会出现误差,但整型数值的存放范围小,使用实型数的范围大,但往往存在误差。例3.4 浮点型数据的舍入误差 include main float a,b; a123456.789e5; ba20 ; printf“fn“,b; ,说明一个浮点型变量只能保证的有效数位是7位有效数位,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数理解7位有效数字 main float a123.456789; double b123.456789; clrscr; printf“af, klfn”,a,b; ,输出结果 a123.456787,b123.4567893.3字符型数据,3.3.1字符型常量 一、字符型常量的表示方法 C语言的字符常量是ASCll码字符集里的一个字符,包括字母大、小写有区别、数字和标点符号以及特殊字符等,均为半角字符,一个字符常量在内存中占1个字节,因此字符常量不能是全角字符。C语言字符常量有三种表示方法 (1)普通字符常量用单引号 a A 0 单引号内,不能使单撇或反斜杠。 单引号内空格也是一个字符常量,但不能写成两个连续的单引号,(2)用该字符的ASCll码值表示的字符常量 例如 十进制数65表示大写字母A 十六进制数0X41也表示A 八进制数0101表示大写字母 A 。 一些不能用符号表示的特殊字符如控制符等,可以用ASCll码值来表示,如换行可用10表示,也可用十六进制数0 x0a或八进制数012来表示(3)转义字符是以 开头的用单引号括起来的字符序列。例如 用 r表示回车 用n表示换行。换行也可用12或012换行还可用xa或x0a反斜杠后跟十六进制数表示 101 用八进制表示的字符A 在C语言中,字符常量与整数是互通的。经常将字符常量等价为整数参与运算 如A 32 结果为 a 0 - 48 为 0例3.1转义字符的使用 include void main printf“ abtcdn“; printf “ 12345678012student x42n“; ,程序运行结果 ab cd 12345678 student B,3.3.2字符变量 1、字符变量的定义 字符型变量用来存放字符常量,注意只能放一个字符。 字符变量的定义形式如下char c1,c2; 在本函数中可以用下面语句对c1,c2赋值 c1a;c2 b ; 一个字符变量在内存中占一个字节。,3.3.3字符数据在内存中的存储形式及其使用方法,一个字符常量存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是将该字符的相应的ASCII代码放到存储单元中。这样使字符型数据和整型数据之间可以通用。,注意 一个字符数据既可以以字符形式输出,也可以以整数形式输出。例向字符变量赋以整数 include main char c1,c2; c197; c298; printf“c,cn“,c1,c2; printf“d,dn“,c1,c2; ,说明在第和第4行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句 c1;c2; 因为a和b的ASCII码为97和98,运行结果 , 97,98例大小写字母的转换 include main char c1,c2; c1a; c2b; c1c1-32; c2c2-32; printf“c,cn“,c1,c2; ,说明程序的作用是将两个小写字母a和b转换成大写字母A和B。从代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。语言允许字符数据与整数直接进行算术运算。,运行结果,3.3.4字符串,字符串常量 表示形式用双引号括起来的字符序列。 “How do you do.“, “CHINA“, “a“ , “123.45“ , “dn“ 字符常量与字符串常量的区别 “a“与 a 是否相同abc是否是字符串常量 “ “是否是字符串常量两个连续的双引号也是字符串常量,称为空串,占一个字节存放0 字符串的存储形式存储时每个字符串末尾自动加一个 0作为字符串结束标志。,如如果有一个字符串常量 ,实际上在内存中是,它占内存单元不是个字符,而是个字符,最后一个字符为0 。但在输出时不输出0 。,符号常量,C语言中可以用一个变量名来代表一个常量,这个变量名就称为符号常量。可以用两种方式来定义C语言中的符号常量。 利用宏定义 define来定义符号常量。例如 define PI 3.14159 define PRICE 30 则PI、PRICE是符号常量, 在程序中它们的值不能被改变。程序中用符号常量来代替一串不易记忆的数字或一串字符串, 不仅增加了程序的可读性,也减轻了程序设计人员的负担 特点便于维护、提高程序可读性、语言中习惯用大写字母表示符号常量,以区别变量例3.2 符号常量的使用 include define PI 3.14 /*定义符号常量PI*/ void main double r,s; r20.0; sPI*r*r; /*使用符号常量PI*/ printf“sfn“,s; 补充例题 define PRICE 12.5 main int num3; float total; char ch1,ch2D; totalnum*PRICE; ch1ch2-Aa; printf“totalf,ch1cn“,total,ch1; ,运行结果 total37.500000, ch1d,为了方便程序设计者实现一些常用的功能模块,各个编译系统都提供了函数库(将一些基本的常用功能定义成为函数,并将相关的原型声明放在相应的头文件中),库里的这些函数称为库函数。 C的函数库中的每个库函数是一系列的可共享的可执行函数,当我们在自己的C源程序中使用某个库函数时,我们并不需要重复书写一遍该库函数的源代码,只需要直接使用该函数即可。 如求一个角 x 的正弦值sinx,或一个正数 x 的开平方sqrtx等等,3.4库函数库函数是系统预先定义好的,分为若干类。 需要注意的是在程序中调用库函数时,应当根据库函数的种类,在程序的开头使用include,例如要使用sin, 或sqrt等数学函数时,就应当在程序开头加上 include include “math.h “例3.3 库函数的调用方式 include void main double a3.5, b4.5, c5.5; /*a,b,c表示三角形的三个边*/ double p, s; p0.5*abc; ssqrtp*p-a*p-b* p-c; /*用劳伦公式计算三角形面积*/ printf“areaf“, s; ,头文件包含include 或include “math.h “ 1.三角函数sin、cos、tan 函数原型double sindouble x; double cosdouble x; double tandouble x; 函数功能函数x以弧度为单位,求正弦、余弦及正切值 函数使用 sinx cosx tanx,例3.4 sin、cos、tan函数计算 include include define PI 3.14159 void main double x,y,z,t; x0.5*PI; ysinx; zcosx; ttanx; printf“f,f,f“, x,y,z; ,常用数学函数,2.绝对值函数abs、fabs、labs 函数原型 int absint x; 适用于整型绝对值计算 double fabsdouble x; 适用于浮点型双精度型 long labslong x; 适用于长整型数的绝对值计算 3.exp和pow函数 函数原型 double expdouble x; 函数 求 ex double powdouble x,double y; 函数 求 xy x0,y0) 英文power是“乘方“ 4.log和log10函数 函数原型 double logdouble x;求x的自然对数lnx (x0) double log10double x;以10为底的x的对数值log10x,5.sqrt函数 函数原型求平方根开方 double sqrtdouble x; 例如 sqrt2.0等于1.414等。 6.随机函数rand、sand 函数原型 int randvoid; void sandunsigned int seed; 说明srand是用来设置随机时间的种子,一般与rand结合使用。否则直接用rand的话,每次运行程序的结果都相同。,例3.5 用当前机器时间作随机数产生器,产生3个随机整数 include include void main srand unsignedtime NULL ; printf“ 6dn“, rand ; printf“ 6dn“, rand ; printf“ 6dn“, rand ;

关于C语言数据类型的PPT,C语言基本的数据类型.ppt相关推荐

  1. c语言的运算符分类ppt,c语言的数据类型、运算符与表达式.ppt

    c语言的数据类型.运算符与表达式.ppt 第3章数据类型.运算符与表达式,预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式3.0 预备知识 计算机中数的表示及进制转换 数码.基与权 ...

  2. c 语言的数据类型ppt,C语言第3章数据类型.ppt

    C语言第3章数据类型.ppt 1,第 3 章 数据类型.运算符及表达式,基本数据类型的存储方式和表示方式 不同类型间数据转换的原则与方法 有关运算符与表达式的运用,2,一个C程序是由一个或多个函数组成 ...

  3. c语言基本数据类型ppt,C语言基本数据类型.ppt

    C语言基本数据类型.pptC语言基本数据类型.ppt 第2章 基本数据类型 勇串踪羹墅活的郡品炕粥乏谍蛇骤用叠掷救跟程汗脚别送蝇卖来鼎啊滓镑C语言基本数据类型C语言基本数据类型 本章介绍有关数据类型的 ...

  4. c语言常量与变量ppt,C语言 变量、常量与数据类型.ppt

    C语言 变量.常量与数据类型.ppt (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 变量.常量与数据类型回顾C语言的基本字符集有那 ...

  5. c语言谭浩强ppt课件,编程_C语言学习课件_谭浩强_PPT~1216F.ppt

    编程_C语言学习课件_谭浩强_PPT~1216F.ppt ,第一章,C语言概述本章要点,C语言的特点 C程序的结构 在计算机上运行C程序的方法主要内容,1.1 语言出现的历史背景 1.2 程序的特点 ...

  6. c语言程序设计指针何钦铭ppt,C语言程序设计 教学课件 作者 何钦铭 c2.ppt

    C语言程序设计 教学课件 作者 何钦铭 c2.ppt (65页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 Chap 2 基本数据类型和表 ...

  7. 单片机2个按键互锁c语言程序,单片机的C语言应用程序设计 2.ppt

    单片机的C语言应用程序设计 2.ppt (6) C语言中的库文件提供许多标准的例程,例如格式化输出.数据转换和浮点运算等. (7) 通过C语言可实现模块化编程技术,从而可将已编制好的程序加入到新程序中 ...

  8. c语言期末总结1000,C语言期末考试总结,看完保你过.ppt

    C语言期末考试总结,看完保你过.ppt ,C语言总结第一部分,C语言初步知识主要内容,1.1 C程序开发运行方法 1.2 数据类型 1.3 运算符与表达式,用Visual C开发C程序 项目类型Win ...

  9. c语言报告总结PPT,C语言程序总结.ppt

    C语言程序总结.ppt 例2 求两数之和#include void main( ) /*求两数之和*/{ int a,b,sum; /*声明,定义变量为整型*/ /*以下3行为C语句 */ a=123 ...

最新文章

  1. 基于OpenCV实战:绘制图像轮廓(附代码)
  2. sql 分号变成多行_SQL(2)
  3. MobIM仅为开发者提供即时通讯的消息通道服务
  4. python中单行注释_Python中的单行、多行、中文注释方法
  5. C和指针之const、#define、volatile
  6. 易于使用的人工智能_需求分析:如何使用这种易于启动的方法+一个案例研究...
  7. concurrent包下的Exchanger练习
  8. 给孩子一束安全的光 明基WiT MindDuo亲子共读灯首发评测
  9. Django restframwork实现自定义数据格式的分页与搜索
  10. C++灵活易错特性-02
  11. SSCLI中GC源码分析(1) - EE与BCL之间的调用接口FCall
  12. MPEG-2与MPEG-4
  13. Windows图标-Icon文件格式分析
  14. python入门小程序:华氏度和摄氏度换算
  15. 聚合支付:将支付宝、微信、qq钱包三码收款码合而为一
  16. 计算机excel感叹号,感叹号!在Excel中的用途,你绝对不知道!
  17. 电路+模电+电力电子基础
  18. 游戏静态HTML网页作业作品 大学生游戏介绍网页设计制作成品 简单DIV CSS布局网站
  19. sql查询结果加一行合计
  20. licheepi nano BS8112A触摸按键

热门文章

  1. Spring-bean的作用域(六)
  2. Java之Exception
  3. beta冲刺7-咸鱼
  4. ex28 布尔表达式练习
  5. 6月8日云栖精选夜读:mac下eclipse配置tomcat无法启动问题
  6. 程序员书单_数据库篇
  7. Android安全问题 钓鱼程序
  8. 一步步学习微软InfoPath2010和SP2010--第二章节--表单需求:使用决策矩阵(6)--结合基于客户端和基于浏览器的控件...
  9. dijkstra java pre_Dijkstra算法实现
  10. C++单目运算符的重载与双目运算符的重载【案例】