C语言课件第2章基本数据类型.ppt

上传人:max****ui 文档编号:11494941 上传时间:2020-04-25 格式:PPT 页数:58 大小:633.50KB
返回 下载 相关 举报
C语言课件第2章基本数据类型.ppt_第1页
第1页 / 共58页
C语言课件第2章基本数据类型.ppt_第2页
第2页 / 共58页
C语言课件第2章基本数据类型.ppt_第3页
第3页 / 共58页
点击查看更多>>
资源描述
1,第2章,基本数据类型,2,一、数据类型概述二、标识符、常量和变量三、基本数据类型整型、实型、字符型四、数据的输入与输出,主要内容,3,在程序中对用到的所有数据都必须指定其数据类型.,?,不同类型的数据,所占内存的字节数不同,对应的操作也不相同。,一、数据类型概述,4,1、标识符2、常量3、变量,二、标识符、常量和变量,5,1、标识符,标识符identifier,(1)标识符就是一个名字(如常量名、变量名、函数名)。(2)组成:只能由字母、数字、下划线组成。且第一个字符必须为字母或下划线。(3)长度:标识符的有效长度随系统而异,如果超长,则超长部分被舍弃。VC+6.0中规定最大长度为255个字符。(4)标识符大小写是有区别的。例如:SUM和sum是不同的标识符(5)标识符命名的良好习惯见名知意例如,name(姓名)、age(年龄),6,标识符的分类,根据不同的用处,标识符分为:,(1)关键字,由程序员自己定义的变量名、符号常量名、数组名、函数名等。,(2)预定义标识符,(3)用户标识符,C语言中有特定含义的标识符,主要用于描述库函数名(如printf、scanf等)和编译预处理命令名(如define、include等)。,又叫保留字,是指C语言规定的、有特殊含义和专门用途的标识符,主要用于描述数据类型、存储类型、类型定义和语句控制。C语言中规定的关键字有32个。,用户标识符不能使用关键字,尽量避免使用预定义标识符。,7,下列用户标识符是否合法,为什么?suma1b2s_name123#ssa.b.c1a8bc,思考?,合法,不合法,8,概念,在程序运行过程中,其值不能被改变的量。,分类,字面常量(直接常量):12-44.6aHello!符号常量:用一个标识符代表一个常量。,字符串常量,符号常量的定义,格式:#define符号常量常量举例:#definePRICE100#definePI3.14#defineC1a,习惯上常量名用大写,变量名用小写。,意义,1、含义清楚。2、在需要改变一个常量时,能够做到“一改全改”。,符号常量的定义放在函数外面。,2、常量,9,概念,其值可以改变的量称为变量。,3、变量,要素,(1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。(3)变量的数据类型。用来确定变量所占存储空间的大小以及可进行的操作种类。,10,变量的声明,数据类型变量名,变量名2;,inta1,a2;floatx1,x2;doubley1,y2;charc1,c2;,习惯上,变量名用小写字母。常量名用大写字母。,11,在声明变量的同时为其赋初值,称为变量的初始化。例如:intlength=100;,变量的初始化,如果要对几个同类型变量赋相同的初值,必须各自分别赋初值,不能连写。,例如:inta=0,b=0;/正确inta=b=0;/错误,12,举例,includeintmain()intstudent,age;intif=adrress=1;floatscore=90;stadent=2;Age=20.7;printf(%d%d%d%f,if,student,age,score);return0;,本程序中有几处错误?,undeclaredidentifier,13,例2.1常量和变量的使用。,#includestdio.h#defineWIDTH80/定义符号常量WIDTHintmain()intlength=100,circumference,area;/声明变量circumference=(length+WIDTH)*2;area=WIDTH*length;printf(circumference=%d,area=%dn,area);return0;,circumference=360,area=8000,运行结果:,14,1、整型2、实型3、字符型,三、基本数据类型,15,SizesofFundamentalTypesinMicrosoftC+.,16,十进制:123,-456,0八进制:0123,-0456十六进制:0 x123,-0 x456,以数字0开头,以0 x或0X开头,1、整型,例2.2以下整型常量哪些是合法的,哪些是非法的。-297,029,0625,O11,0 x35BH,0XFF,-0 x53,0 x1F2d,合法的整型常量:-297,0625,0XFF,-0 x53,0 x1F2d非法的整型常量:029,O11,0 x35BH,(1)整型常量的表示,17,(2)整型变量,整型变量的分类、取值范围,int32-231231-1unsignedint3204294967295,short16-3276832767unsignedshort16065535,long32-231231-1unsignedlong3204294967295(0232-1),各类型整型变量占用的内存字节数,随系统而异。,18,注意:整型常量分为基本整型和长整型。,整型常量的分类,基本整型(数据范围与int型一样)长整型(在数值后面加“L(l)”,数据范围与longint型一样),如123l,315L,19,#includeintmain()longintc,d=9L;unsignedinte=-3,f;f=5;c=-6;printf(%ldn%ldn%un%u,c,d,e,f);return0;,举例,-6942949672935,运行结果,20,整型数据在内存中是以补码表示的。,(3)整型数据在内存中的存放形式,21,12和-12在内存中的存放形式,22,n位无符号整数的取值范围:,n位带符号整数的取值范围:,即-2n-12n-1-1,即02n-1,23,整数类型溢出举例,#includevoidmain()inta,b;a=2147483647;b=a+1;printf(%dn%d,a,b);,21474836472147483648,运行结果,24,表示方法,十进制小数形式:123.34,-0.0045,0.0指数形式:E(e)如0.23e2,-0.45e-3,3.0+5,规范化指数形式,数字和小数点组成,2.实型,关于分类,C编译系统将实型常量作为双精度来处理。一个实型常量,可以赋给一个实型变量(float型或double型)。,(1)实型常量的表示,25,指数形式(数符+小数部分+指数部分),小数部分占的位数越多,数的有效数字越多,精度越高.指数部分占的位数越多,表示的数值范围越大.,(2)实型数据在内存中的存放形式,实型数据在内存中是按指数形式存储的。,规范化指数形式:小数部分有且仅有1位非0数字。,IEEE754标准,转换成十进制底计算公式,float,double,s*2(E-127)*(1.M)B,26,分类及取值范围,(3)实型变量,实型常量默认是double类型,27,3、字符型,存储方式,以ASCII码存储,占一个字节,注意:字符型数据与整型数据在存储方式上的相似性使得两者之间可以通用。但字符型数据的表示范围是:0255。,字符变量ch中存放字符a,其ASCII码为97,在内存中以二进制形式存放,其格式如下:,01100001,ch,举例,28,字符常量,用单撇号括起来的一个字符.aA9=?,n换行,从当前位置移到下一行开头t水平制表(跳到下一个tab位置)单撇号字符反斜杠字符双撇号字符ddd13位8进制数所代表的字符xhh12位16进制数所代表的字符,语言还允许使用一种特殊形式的字符常量,就是以反斜杠开头的转义字符。,将后面的字符转换为另外的意义.即是一种控制符号.,不同的两个字符,转义字符,表示方法,29,#includeintmain()printf(x4Fx4Bx21n);/*等价于printf(“OK!n”);*/printf(“x15xABn”);/*等价于什么?*/return0;,!,程序运行结果:,举例,30,字符变量,类型标识符,char,举例,charch1=a,ch2;,存放数据范围,大小写英文字母、数字、运算符、标点符号等,31,例字符变量的字符形式输出和整数形式输出。#includevoidmain()charch1,ch2;ch1=a;ch2=b;printf(ch1=%c,ch2=%cn,ch1,ch2);printf(ch1=%d,ch2=%dn,ch1,ch2);,字符类型举例1,一个字符型数据,既可以字符形式输出,也可以整数形式输出,ch1=a,ch2=bch1=97,ch2=98,程序运行结果:,32,字符类型举例2,允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算,例字符数据的算术运算(参考教材附录的ASCII码表)。#includevoidmain()charch1,ch2;ch1=a;ch2=B;/*字母的大小写转换*/printf(ch1=%c,ch2=%cn,ch1-32,ch2+32);/*用字符形式输出一个大于256的数值*/printf(ch1+200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200);printf(ch1+256=%dn,ch1+256);printf(ch1+256=%cn,ch1+256);,ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353ch1+256=a,程序运行结果:,33,概念,字符串常量,用一对双撇号括起来的若干字符序列,字符串长度,字符串中字符的个数。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为(一对紧连的双撇号)。,存储方式,C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。,举例,hello、a、a*b3n,34,思考?,1、字符串常量Howdoyoudo.和Goodmorning.的长度分别是多少?,2、字符串C:msdosv6.22和Isay:Goodbye!在C语言中的字符串常量形式如何表示?,3、字符串CHINA在内存中的实际存储形式是怎样的?占用多少个字节的内存空间?,14和13,C:msdosv6.22和Isay:Goodbye!,占用字节而非字节内存空间,35,注意:1、a是字符,a是字符串。2、不能把一个字符串赋给一个字符变量。如c=a、c=Hello!都是错误的。3、C语言中没有字符串变量,可以用字符数组来表示。,36,总结:字符与字符串的区别有哪些?,定界符不同:字符常量使用单引号,而字符串常量使用双引号;长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,37,(一)、C的输入与输出(二)、单个字符的输出(三)、单个字符的输入(四)、格式化输出(五)、格式化输入,四、数据输入与输出,38,说明,1、所谓输入输出是以计算机为主体而言的。2、输入输出操作是由函数实现的。,标准输入输出函数,putchar()getchar()puts()gets()printf()scanf(),预编译命令,在使用C语言库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。,举例,#include“stdio.h”intmain()printf(“Hello!”);return0;,#include,(一)、C的输入与输出,39,作用,向终端(或系统默认的输出设备)输出一个字符。,(二)、单个字符的输出putchar函数,显示器,格式,putchar(ch);,?,A,注:其中ch可以是一个字符型(整型)变量、常量或表达式,也可以是一个转义字符,如putchar(n)、putchar(101)。,40,#includestdio.hintmain()charch1=B,ch2=o,ch3=k;putchar(ch1);putchar(ch2);putchar(ch2);putchar(ch3);putchar(t);putchar(ch1+32);putchar(ch2);putchar(ch2);putchar(ch3);putchar(n);putchar(ch2-32);putchar(ch3-32);return0;,例2.2,BookbookOK,41,作用,从终端(或系统默认的输入设备)输入一个字符。,键盘,(三)、单个字符的输入getchar函数,格式,getchar();,getchar函数没有参数,返回值为输入的字符。,#includestdio.hintmain()charch;ch=getchar();putchar(ch);return0;,例2.3,输入:a,a,42,#includestdio.hintmain()charch1,ch2,ch3,ch4,ch5;ch1=getchar();ch2=getchar();ch3=getchar();ch4=getchar(),ch5=getchar();putchar(ch1);putchar(ch2);putchar(ch3);putchar(ch4);putchar(ch5);return0;,abcde,abc,输入:,?,43,格式,printf(“格式控制字符串”,输出列表);,说明,1、“格式控制字符串“是用双撇号引起来的字符串,包括三种信息:(1)格式说明:由%和格式字符组成。(如%d、%7.2f)(2)转义字符:(如t、n、b、r等)(3)普通字符:需要按原样输出的字符。2、可以没有输出列表,只用来输出字符串常量。如:printf(helloworld!);3、“输出列表”是需要输出的一些数据,可以是表达式。,将输出的数据转换为指定的格式输出。,(四)格式化输出printf函数,作用,向显示器输出若干个任意类型的数据。,44,例2.5,#includeintmain()inta,b;a=3;b=4;printf(“输出结果为:”);printf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);printf(“a+b=%d”,a+b);return0;,输出结果为:34a=3,b=4a+b=7_,举例,printf(“sum=%dn%c”,x,ch);,普通字符,格式说明,转义字符,如果x=100,ch=A,那么下面的输出语句将输出什么结果?,输出列表,sum=100A_,45,格式说明必须以开始,以格式字符结束。一般形式如下:%标志宽度.精度l格式字符,输出数据向左靠拢,输出数据最小宽度,对实数:输出小数点位数;对字符串:截取字符的个数,格式说明的一般形式,46,格式字符,附加格式说明字符,格式字符,47,格式输出举例d格式符,%d,%md,%-md,10020,100,20,10020,10020,10020,10020,48,#includestdio.hintmain()floatx,y;x=111111.111;y=222222.222;printf(%f,x+y);return0;,输出,333333.328125,整数部分全部输出,小数部分输出6位,因有效位数为7位,因此后面数字不准确。,格式输出举例f格式符,%f,例2.6,49,#includestdio.hintmain()floaty=12.6789;printf(%f,%10f,%10.2f,%.2f,%-10.2f,y,y,y,y,y);return0;,输出,12.678900,12.678900,12.68,12.68,12.68,实数最常用的两种输出格式,格式输出举例f格式符,%.nf%m.nf%-m.nf,例2.7,50,格式输出举例c格式符,#includeintmain()charc=A;inti=65;printf(%c,%dn,ch,ch);printf(%c,%d,a,a);return0;,A,65A,65,注意,在C语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该数与256的余数,然后将余数作为ASCII码,转换成相应的字符输出。,例2.8,51,格式,scanf(“格式控制字符串”,地址列表);,说明,1、“格式控制字符串”与printf函数类似。可以包含以下三种类型的信息:格式说明:与printf类似,以开始,以一个格式字符结束;空白字符(空格、t、n):输入多个数据时的缺省分隔符,可以省略,在输入数据时可以以任一种空白字符分隔;普通字符(照原样输入)。2、“地址表列”是由若干个地址组成的列表,各地址之间用逗号分隔。如变量的地址表示为:scanf(“%d%d”,102010,20,inta,b;scanf(“%d,%d”,10,2010,20,格式输入举例d格式符,注意,举例,当输入多个数据时,若各个格式说明之间没有其他字符,则系统默认使用空格键、回车键和Tab键进行间隔;若格式说明之间有其他字符,则必须照原样输入。,102010,20,53,inta,b;printf(“Pleaseinput2integers:”);scanf(“%d%d”,建议,Pleaseinput2integers:,在输入语句之前配上一条printf语句,用来显示输入提示。,举例,1020,10,20,54,floata;scanf(“%f”,输入:3.2,floata;scanf(“%3.2f”,格式输入举例f格式符,举例,3.200000,输出:,输入:3.218,-107374176.000000,输出:,注意,当输入实型数据时,不能规定精度。如果指定了精度,编译时不会报错,但输入的数据将不可预知。,55,doublea;scanf(“%f”,doublea;scanf(“%lf”,格式输入举例f格式符,举例,输入:3.2,3.200000,输出:,注意,当输入双精度实型数据时,使用lf;当输出双精度实型数据时,使用f或lf。当输入/出单精度实型数据时,使用f;,56,charch1,ch2,ch3;scanf(“%c%c%c”,格式输入举例c格式符,注意,举例,使用格式说明符“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。,输入:abc,ch1=a,ch2=,ch3=b,输出:,其中:ch2的值为空格。,57,使用scanf时,双引号的格式控制字符串中建议只写格式说明符,不要加入其他字符。,inta,b;printf(Pleaseinput2integers:n);scanf(%d%d,inta,b;printf(Pleaseinputa,b:n);scanf(“%d,%d,inta,b;printf(Pleaseinputa=,b=n);scanf(“a=%d,b=%d,Pleaseinput2integers:,Pleaseinputa,b:,Pleaseinputa=,b=,推荐1,推荐2,不推荐,35,3,5,a=3,b=5,58,作业,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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