![C语言数类型据基础课件_第1页](http://file4.renrendoc.com/view/1d3ac675edb6e87b21574673736d3eab/1d3ac675edb6e87b21574673736d3eab1.gif)
![C语言数类型据基础课件_第2页](http://file4.renrendoc.com/view/1d3ac675edb6e87b21574673736d3eab/1d3ac675edb6e87b21574673736d3eab2.gif)
![C语言数类型据基础课件_第3页](http://file4.renrendoc.com/view/1d3ac675edb6e87b21574673736d3eab/1d3ac675edb6e87b21574673736d3eab3.gif)
![C语言数类型据基础课件_第4页](http://file4.renrendoc.com/view/1d3ac675edb6e87b21574673736d3eab/1d3ac675edb6e87b21574673736d3eab4.gif)
![C语言数类型据基础课件_第5页](http://file4.renrendoc.com/view/1d3ac675edb6e87b21574673736d3eab/1d3ac675edb6e87b21574673736d3eab5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章数据类型基础第3章数据类型基础目 录数据的输入、输出4程序设计中的数据地位与作用1常量、变量和标识符2基本数据类型3不同类型数据间的转换6运算符与表达式5目 录数据的输入、输出4程序设计中的数据地位与作用1常量、变程序要对数据进行操作处理:处理的对象是数据(其在程序中要有合法的表现形式)而数据又通过运算符和表达式进行操作程序设计中的数据地位与作用1程序要对数据进行操作处理:程序设计中的数据地位与作用1例:计算半径为 10 cm的圆的面积。程序如下:main( ) float r, area ; r=10 ; area=3.14*r*r; printf (%fn , area) ; 输出:
2、314.000000程序中用到的数据:r、area、10、3.14对数据进行的运算:* 、=程序设计中的数据地位与作用1例:计算半径为 10 cm的圆的面积。程序如下:main( 数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作C数据类型基本类型构造类型指针类型空类型 void定义类型 typedef单精度型 float双精度型 double字符类型 char整 型实型枚举类型 enum数组共用体 nion结构体 struct短整型 short长整型 long整型 int数据往往都是以某种特定形式存在的, C语言提供的数据类型如下:程序设计中的数据地位与作用1数据类
3、型决定:C基本类型构造类型指针类型空类型 void定义3.2.1 常量 整型常量:10、28;实型常量:3.14; 字符常量:a、A ; 字符串常量:“Hello”程序运行过程中,值不发生改变的量称为常量 。直接常量 直接常量(即常数):10、3.14等都是直接常量 。常量分为: 常量可以直接用于输入或赋给其他变量常量、变量和标识符23.2.1 常量 整型常量:10、28;程序运行过程中 整型常量三种形式:十进制整数:由数字09和正负号表示.如 32、-8、0等 八进制整数:由数字0开头(注意:不是字母o) ,后跟数字07表示.如 012、011、016 十六进制整数:由0 x(或0X)开头,
4、后跟09,af,AF表 示.如 0 x123,0Xff注意:八进制数、十六进制数的合法数字表示,十六进制数中字母大、小写等同0 xaa等同于0 xAA常量、变量和标识符23.2.1 常量 整型常量注意:八进制数、十六进制数的合法数字表示,十六进#include main() int a,b,c; a=100; b=0100; c=0 x100; printf(a=%d,b=%d,c=%dn,a,b,c); %d控制按十进制格式输出 输出结果是:a=100,b=64,c=256举例:常量、变量和标识符23.2.1 常量 #include %d控制按十进制格式输出实型常量(浮点数) 即带小数点的实
5、数。 表示形式:十进制数形式:(必须有小数点) 如0.1234、.1234、1234.、0.0 指数形式:由尾数、字母e或E、指数三部分组成。如3.85e4 或 3.85E4 均表示 3.85104,(e或E之前必须有数字;指数必须为整数)规范化的指数形式: 在字母e(或E)之前的尾数中,小数点左边应有一位(且只能有一位)非零的数字。例如: 3.478e2 常量、变量和标识符23.2.1 常量 实型常量(浮点数)规范化的指数形式:常量、变量和标识符23. 字符常量 字符常量区分大小写如 a、I、A、n如 a、A是两个不同的字符常量 字符常量的值:该字符的ASCII码值如 a在内存的字节中存放的
6、ASCII值是97 特殊的字符常量 :以一个“”开头的字符序列。(转义字符) 定义:用单引号括起来的单个普通字符或转义字符. 常量、变量和标识符23.2.1 常量 字符常量 字符常量区分大小写如 a、I、A、转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符“转义字符”:即 将反斜杠()后面的字符转换成另外的意义。如:n 中 的 “n” 不代表字母 n 而作为 “换行” 符。(仍代表一个字符) 以“”开头的特殊字符常量、变量和标识符23.2.1 常量 转义字符含义nvradddtbfmain(
7、) printf(%c,%cn,a,A); printf(%d,%dn,a,A); printf(%c,%cn,a-32,A+1); %c控制字符形式输出 %d整数格式输出字符常量的ASCII码值程序输出结果是: a,A 97,65 A,B由于字符常量存放的是ASCII码值,所以字符常量可以同数值常量一样参加算术运算。常量、变量和标识符2main()%c控制字符形式输出 %d整数格式输出字符常量的字符常量与字符串常量不同字符串常量定义:用双引号(“ ”)括起来的零个或多个字符,简称:字符串 如 “STRING”存储:每个字符串尾自动加一个 0 作为字符串结束标志a a 0例 a“a”例 空串
8、“”0例 字符串“STRING”在内存中S T R I N G 0常量、变量和标识符23.2.1 常量 字符常量与字符串常量不同字符串常量a a 0例 amain() printf(Computer); printf(nI am a boy!n); printf(%sn,STRING); 程序输出结果是: Computer I am a boy! STRING 双引号、单引号是字符常量和字符串常量的标记,字符串和字符常量是两个不同的概念。常量、变量和标识符23.2.1 常量 main()程序输出结果是:双引号、单引号是字符常量和字符串#define PI 3.14 main() float r
9、,circle,area; r=2.4; circle=2*PI*r; area=PI*r*r; printf(circle=%f,area=%fn,circle,area);程序中用#define命令行定义PI代表常量3.14,此后凡在本文件中出现的PI都代表3.14,可以和常量一样进行运算。 符号常量 C语言中特殊常量符号常量 即 给常量起一个名。3.2.1 常量 常量、变量和标识符2#define PI 3.14 程序中用#define命令行用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。规定标识符只能由字母、数字和下划线三种字符组成,并且第一个字符必
10、须为字母或下划线。 例:判断下列标识符号合法性area、sum、 a&b、$234、 _above、PI 、name、Name、class、CLASS 标识符3.2.2 变 量常量、变量和标识符2用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的3.2.2 变 量#define PI 3.14 main()float r,c,area; r=2.4; printf(c=%f,area=%fn,c,area);r、c和area就是变量名 ,命名规则应遵守标识符命名规则 变量的定义 程序运行过程中,值可改变的量称为变量。每一个变量都应该有一个名字作为标识。 常量、变量和标识符23.2.2
11、 变 量#define PI 3.14 r、c和变量定义的一般格式: 数据类型 变量1,变量2,变量n;C语言所允许的任何数据类型,包括基本数据类型及构造数据类型 等合法标识符例: int i; float data;变量必须遵从“先定义,后使用”的原则。如: int i; i=10;(将10这个值赋给i这个变量) 变量定义可执行语句3.2.2 变 量常量、变量和标识符2变量定义的一般格式:C语言所允许的任何数据类型,包括基本数据变量的赋值与初始化赋值格式:变量名表达式例:a=10;变量初始化定义变量时给变量赋初值,称为变量初始化。格式:类型符 变量1=值1, 变量2=值2;例:int a=1
12、;b=3;c=100;3.2.2 变 量常量、变量和标识符2变量的赋值与初始化3.2.2 变 量常量、变量和标识符2整型数据在内存中的存放形式: 数据在内存中是以二进制形式存放的。 一个int整数VC环境下通常用4个字节存放:其中最高位用来存放整数的符号, 0表示正整数, 1表示负整数 实际上,一个有符号整数在内存中,是以补码形式存放的。 若说明为无符号整数,其中最高位不再用来存放整数的符号,二进制位全部用来存放整数数值,因此无符号整数不可能是负数3.3.1 整型数据基本数据类型3整型数据在内存中的存放形式:一个int整数VC环境下通常用数值的表示方法原码、反码和补码原码:最高位为符号位,其余
13、各位为数值本身的绝对值反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反补码:正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加1基本数据类型33.3.1 整型数据数值的表示方法原码、反码和补码基本数据类型33.3.1 原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000数的范围0111111111111111(-127+127)0111111110000000(-127+127)0111111
14、110000000(-128+127)(用一字节表示数)负数补码转换成十进制数:最高位不动,其余位取反末位加1例 补码:11111001 取反:10000110 末位加1:11000111=-7基本数据类型3原码反码补码+70000011100000111000001分类 : 归纳起来,可以用以下6种整型变量。即:有符号基本整型 signed int 有符号短整型 signed short int有符号长整型 signed long int无符号基本整型 unsigned int无符号短整型 unsigned short int无符号长整型 unsigned long int3.3.1整型数据
15、基本数据类型3分类 :3.3.1整型数据基本数据类型3 实型数据在内存中的存放形式 一个实型数据在内存中占4个字节(32位)。 实型变量的分类(注意其有效位) C实型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类。实型变量也应在使用前加以定义。如: floatx,y; (指定x、y为单精度实数) double z; (指定z为双精度实数)3.3.2 实型数据基本数据类型3 实型数据在内存中的存放形式 3.3.2 实型数据基本数据程序输出结果是: s=314.0000003.3.2 实型数据main( ) float r, area ; r=1
16、0 ; area=3.14*r*r; printf (“s=%fn , area) ; 基本数据类型3程序输出结果是:3.3.2 实型数据main( )基本数据 字符变量的定义 :一个字符变量在内存中占一个字节 charc1,c2; c1=a;c2=b;/*对c1、c2赋值 */ 字符数据在内存中的存放及其使用方法 :存放的是该字符相应的ASCII码。例如: 字符a 的ASCII码为97,b为983.3.3 字符型数据基本数据类型3 字符变量的定义 :3.3.3 字符型数据基本数据类型3#include main( ) char ch1,ch2; ch1=a; ch2=ch1-32; prin
17、tf (ch1=%c , ch2=%c n, ch1,ch2) ; printf (ch1=%d , ch2=%d n, ch1,ch2) ;%c控制字符形式输出 %d控制输出字符常量的ASCII码值程序输出结果是: a,A 97,65 由于字符数据存放的是ASCII码值,所以字符数据可以同数值数据一样参加算术运算。3.3.3 字符型数据基本数据类型3#include %c控制字符形式输出 %字符输出函数putchar()作用:向终端输出一个字符。基本格式:putchar(ch)用法说明:参数ch可以是除字符串常量之外的字符、整型、实型常量、变量或各种表达式 在程序中使用putchar()函数
18、时,该程序的开头必须用一条预编译命令“#include ”。 putchar()函数可以输出控制字符,如: putchar(n);3.4.1 putchar函数例 在putchar函数中使用不同参数输出字符A。#include stdio.hmain() char ch=A; int i=65; putchar(ch); /*输出字符变量所代表的字符,*/ putchar(i); /*输出以整型变量i的值为ASC码的字符,*/ putchar(A); /*直接输出字符常量A */ putchar(65); /*输出以十进制整型常量65为ASC码的字符 */ putchar(n); /*输出一个
19、换行符*/程序运行结果: AAAA数据的输入、输出4字符输出函数putchar()3.4.1 putchar函字符输入函数getchar() 作用:接收从终端(一般指键盘)输入的一个字符。 基本格式: getchar() 没有参数3.4.2 getchar函数例 输入单个字符#include stdio.hmain() char ch; ch=getchar(); /*从键盘上接收一个字符*/ putchar(ch); /*在屏幕上输出该字符*/运行过程: A A数据的输入、输出4字符输入函数getchar() 3.4.2 getchar例 输入输出字符练习。 #include main( )
20、 char ch1,ch2,ch3; ch1=getchar( ); ch2=getchar( ); ch3=getchar( ); putchar(ch1); putchar(ch2); putchar(ch3);ABC ABC ABCDEFGABCabc abc 运行情况:ABC AB返回数据的输入、输出4例 输入输出字符练习。 ABC ABC ABCDEFGa格式:printf(“格式控制串”,输出项表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1) 3. 4. 3 printf 函数输出表项:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:
21、包含两种信息格式说明: %修饰符格式字符 用于指定输出格式普通字符或转义序列:原样输出格式字符数据的输入、输出4格式:printf(“格式控制串”,输出项表) d,ix,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf
22、(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);5.677890e+02567ff101567AABC567.789000567.789%说明:格式字符要用小写(除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数据的输入、输出4d
23、,ix,Xoucse,Efg%格式字符:十六进制无符号整附加格式说明符.n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功 能m输出数据域宽,数据长度m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0 x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l数据的输入、输出4附加格式说明符.n对实数,指定小数点后位数(四舍五入)修饰符3. 4. 4 scanf函数格式: scanf(“格式控制串”,地址表)
24、功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 输入:10 则 a=10例 scanf(“%x”,&a); 输入:11 则 a=17数据的输入、输出43. 4. 4 scanf函数格式: scanf(“格式控制输入分隔符的指定一般以空格、TAB或回车键作为分隔符其它字符做分隔符时,输入时需原样输入。(上机调程时尤其注意)例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”
25、,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 数据的输入、输出4说明:用“%c”格式符时,空格和转义字符作为有效字符输入如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则ac1, c2, b c3输入分隔符的指定例 scanf(“
26、%d%o%x”,&a,&表达式由运算符(例如:+ * )、运算对象(也称操作数,可以是常量、变量等等)和括号组成。表达式运算所得到的结果值便是表达式的值。 例如: a+b xy C语言的运算符丰富,几乎大部分操作都由运算符来完成。归纳起来,C的运算符有以下几类: 运算符与表达式5运算符和表达式简介表达式由运算符(例如:+ * )、运算对象(也称操作算术运算符 * / % 指针运算符 * 和 & 关系运算符 = = = = != 求字节数运算符 sizeof 逻辑运算符 ! & | 强制类型转换运算符 (类型) 位运算符 | & 分量运算符 赋值运算符 =及其扩展赋值运算符 下标运算符 条件运算
27、符 ? : 其他 如函数调用运算符( ) 逗号运算符 , 运算符种类:运算符与表达式5算术运算符 * / % 指针运算符 * 二元运算符(或双目运算符):运算符需要两个操作数使用形式为: 操作数1 运算符 操作数2 一元运算符(或单目运算符):运算符需要一个操作数 优先级:决定表达式的运算顺序。 结合性:是指当一个操作数左右两边的运算符优先级相同时,按什么样的顺序进行运算。包含自左向右,自右向左两种顺序。运算符与表达式5 二元运算符(或双目运算符):运算符需要两个操作数使用形式算术运算符与算术表达式基本算术运算符和表达式基本算术运算符:+ - (正负) * / % + -(加减) 结合方向:从
28、左向右优先级: + - -* / % - + (2) (3) (4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数;一侧为实型结果为实型%要求两侧均为整型数据运算符与表达式5算术运算符与算术表达式基本算术运算符和表达式运算符与表达式5自增、自减运算符 + -作用:使变量值加1或减1种类:前置 +i, -i (先执行i+1或i-1,再使用i值)后置 i+,i- (先使用i值,再执行i+1或i-1)说明:+ - - 不能用于常量和表达式,如5+,(a+b)+ - - 结合方向: 自右向左优先级:- + - - -* / % -+ - (2) (3) (4)例 -i+ -(i+) i=
29、3; printf(“%d”,-i+); /-3 运算符与表达式5自增、自减运算符 + -例 -i+ -(i例 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; 运算符与表达式5自增、自减运算符 + - 无论是作为前缀还是作为后缀运算符,对于变量本身来说自增1或自减1都具有相同的效果,但作为表达式来说却有着不同的值。 例 j=3; k=+j; 运算符与表达式5自增、自复合赋值运算符种类:+= -= *= /= %= = = &= = |=含义
30、: 变量 op= 表达式 变量 = 变量 op 表达式a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=10 /*把常量10赋给变量a*/ 简单赋值运算符符号: =格式: 变量名 =表达式作用:将一个数据(常量或表达式)赋给一个变量运算符与表达式5赋值运算符和表达式复合赋值运算符a+=3a=a+3x*=y+8x=x*(y+8赋值表达式的值与变量值相等,且可嵌套说明:结合方向:自右向左左侧必须是变量,不能是常量或表达式例 int i; i=2.56; /结果i=2;例 3=x-2*y; a+b=3;赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/ b=5;a=5/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2运算符与表达式5赋值运算符和表达式赋值表达式的值与变量值相等,且可嵌套说明:例 int i;假设已有整型变量a,其值为3,试计算表达式:a+=a-=a*a的值。 main()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球及中国环己基甲醛行业头部企业市场占有率及排名调研报告
- 2025年全球及中国CVD基座行业头部企业市场占有率及排名调研报告
- 正确儿童观的树立讲解
- 防盗门产品购销合同
- 2025打桩机租赁合同
- 香菇菌棒销售合同样本
- 2025技术服务委托合同
- 海盐县二手房买卖合同
- 钢琴销售合同范本
- 鱼池转包合同范本
- 2024年05月浙江金华成泰农商银行员工招考笔试历年参考题库附带答案详解
- 北京市海淀区2024-2025学年七年级上学期期末考试数学试题(含答案)
- 带看协议书范本(2篇)
- 股权投资项目建议书
- 2025年北京广播电视台招聘(140人)历年高频重点提升(共500题)附带答案详解
- 2024复工复产安全培训
- 中学生宿舍日常与管理
- 【历史】秦汉时期:统一多民族国家的建立和巩固复习课件-2024-2025学年统编版七年级历史上册
- 四年级数学脱式计算练习题100道
- 幼儿剪纸-打印版
- 如何提高和加强人力资源队伍的建设
评论
0/150
提交评论