c语言第2章数据类型、运算符和表达式.ppt

上传人(卖家):hwpkd79526 文档编号:5656984 上传时间:2023-04-29 格式:PPT 页数:50 大小:538KB
下载 相关 举报
c语言第2章数据类型、运算符和表达式.ppt_第1页
第1页 / 共50页
c语言第2章数据类型、运算符和表达式.ppt_第2页
第2页 / 共50页
c语言第2章数据类型、运算符和表达式.ppt_第3页
第3页 / 共50页
c语言第2章数据类型、运算符和表达式.ppt_第4页
第4页 / 共50页
c语言第2章数据类型、运算符和表达式.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、C语言程序设计教程1C语言程序设计教程2教学目标教学目标o 掌握掌握C语言标识符的组成语言标识符的组成o 理解理解C语言的基本数据类型语言的基本数据类型o 掌握变量定义的方法掌握变量定义的方法o 掌握常用的运算符的使用掌握常用的运算符的使用o 掌握混合运算的数据转换方法掌握混合运算的数据转换方法C语言程序设计教程32.1 C语言的数据类型语言的数据类型o 基本类型基本类型n 整整 型:短整型(型:短整型(short)、整型()、整型(int)、)、长整型长整型longn 浮点型:单精度型(浮点型:单精度型(float)、双精度型)、双精度型(double)n 字符类型字符类型(char)(ch

2、ar)o 构造类型:数组、结构体、共用体、枚举构造类型:数组、结构体、共用体、枚举o 指针类型指针类型C语言程序设计教程42.2 常量与变量常量与变量 o 2.2.1标识符命名标识符命名o 2.2.2常量常量o 2.2.3变量变量C语言程序设计教程52.2.1标识符命名标识符命名o 标识符:字符序列的总称。在标识符:字符序列的总称。在C语言里用标语言里用标示符来表示常量、变量、函数和数据类型的示符来表示常量、变量、函数和数据类型的名字名字 n 字母、数字和下划线组成;字母、数字和下划线组成;n 第一个字符不能是数字字符;第一个字符不能是数字字符;n 不能是标准字符(关键字);不能是标准字符(关

3、键字);C语言程序设计教程6举例举例osum oSum oM.D.Johnodaodateo3days ostudent_name o#33 olotus_1_2_3 ochar oab o_above o$123 X X X X X X C语言程序设计教程72.2.2常量常量o 常量:在程序运行过程中其值不发生改变的量常量:在程序运行过程中其值不发生改变的量n 直接常量直接常量n 符号常量符号常量:用一个标识符来表示常量:用一个标识符来表示常量#define#define 符号常量符号常量 常量值常量值#define PRICE 30#include int main()int num,to

4、tal;num=10;total=num*PRICE;printf(total=%d,total);return 0;运行结果:运行结果:total=300total=300 C语言程序设计教程8o 使用符号常量的优点使用符号常量的优点 n 可以使程序更清晰易读可以使程序更清晰易读 n 程序修改更加容易程序修改更加容易 o 通常用大写字母表示符号常量,小写字母表通常用大写字母表示符号常量,小写字母表示变量,以便区别示变量,以便区别 C语言程序设计教程92.2.3变量变量o 变量:在程序运行过程中其值可以发生改变的量变量:在程序运行过程中其值可以发生改变的量n 变量名变量名n 变量类型变量类型n

5、 变量的值变量的值o 定义形式定义形式n 类型名类型名 变量名变量名1,变量名,变量名2,变量名,变量名n;int a,b,c;char ch;double d,f;C语言程序设计教程102.3整型数据整型数据 o 整型常量整型常量:整数(十进制常量、八进制常量和十:整数(十进制常量、八进制常量和十六进制常量)六进制常量)类型类型组成组成组成规则组成规则举例举例十进制十进制数字数字0 09 9非非0 0数字开头数字开头12 -1234+1012 -1234+10八进制八进制数字数字0 07 70 0数字开头数字开头012 012 十六进制十六进制数字数字0 09 9字母字母a af f(或(或

6、A AF F)0 x0 x或或0X0X开头开头0 x10 0 x12f0 x10 0 x12f(1 1)常量前面的)常量前面的“+”+”和和“-”-”表示数的正、负。表示数的正、负。(2 2)常量也有类型,正型常量默认是)常量也有类型,正型常量默认是intint型(即有符号整数)型(即有符号整数)(3 3)在数的后面加上字母)在数的后面加上字母u u或或U U表示无符号整数,加上字母表示无符号整数,加上字母l l或或L L表示长整型数表示长整型数C语言程序设计教程112.3.2整型变量整型变量 o 整型数据在内存中的存储形式:整型数据在内存中的存储形式:n整型数据在内存中是以二进制补码的形式存

7、放整型数据在内存中是以二进制补码的形式存放 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0符符号号位位对于对于4 4个字节的整数个字节的整数-12-12C语言程序设计教程12o 整型变量的分类整型变量的分类 分类分类有无符号有无符号位数位数取值范围取值范围短整型短整型shortshortunsignedunsigned(无)(无)16160 06553565535signedsigned(有)(有)1616-32768-327683276732767整型整型intintunsignedunsigned(无)(无)1

8、616或或32320 065535655350 042949672954294967295signedsigned(有)(有)1616或或3232-32768-327683276732767-2147483648-214748364821474836472147483647长整型长整型longlongunsignedunsigned(无)(无)32320 042949672954294967295signedsigned(有)(有)3232-2147483648-214748364821474836472147483647注:判断某一数据类型占内存的字节数可用注:判断某一数据类型占内存的字节数

9、可用sizeof(数据类型说明数据类型说明)来计算来计算C语言程序设计教程13o 整型变量的定义方法整型变量的定义方法 n 符号说明符号说明 变量名表;变量名表;unsigned short a,b;signed short a,b;unsigned int a,b;int a,b;unsigned long a,b;C语言程序设计教程142.4浮点型数据浮点型数据 o 浮点型常量浮点型常量:实型常量或实数,它只有十进:实型常量或实数,它只有十进制形式,全部都是有符号数制形式,全部都是有符号数n 小数形式:小数形式:09,小数点和正负号表示,小数点和正负号表示n 指数形式:指数形式:09、小数

10、点、小数点、+-号和字母号和字母e/E 说明:说明:(1 1)浮点型常量的默认类型是)浮点型常量的默认类型是doubledouble(2 2)在常量后面加)在常量后面加f f或或F F指定为指定为floatfloat型型 (3 3)指数必须为整数)指数必须为整数(4 4)e/Ee/E之前必须有数字之前必须有数字C语言程序设计教程152.4.2浮点型变量浮点型变量o 存储形式存储形式 数数据据符符号号位位小小数数部部分分指指数数符符号号位位指指数数部部分分C语言程序设计教程16o 浮点型变量的分类浮点型变量的分类n 单精度(单精度(float)n 双精度(双精度(double)n 长双精度(长双

11、精度(long double)o 浮点型变量定义方法浮点型变量定义方法 n 类型说明符类型说明符 变量名列表;变量名列表;float a,b,c;double a,b,c;long double a,b,c;1)浮点型数据的有效数字位有限制)浮点型数据的有效数字位有限制2)有效位以外的数字将被舍去)有效位以外的数字将被舍去C语言程序设计教程172.5字符型数据字符型数据 o 字符常量字符常量:用用单引号单引号括起来的单个括起来的单个普通字普通字符符或或转义字符转义字符n 单引号中的字符不能是单引号(单引号中的字符不能是单引号()和反斜杠)和反斜杠()n 字符是按其所对应的字符是按其所对应的AS

12、CII码值来存储的,一码值来存储的,一个字符占一个字节(即个字符占一个字节(即8位)位)C语言程序设计教程18o 字符串常量字符串常量:一对:一对双引号双引号(“”“”)括起来的)括起来的一串字一串字符符 o 字符串常量在内存中存储:字符串常量在内存中存储:n保存每个字符的保存每个字符的ASCII值值n系统自动在字符串的末尾加一个串结束标志系统自动在字符串的末尾加一个串结束标志C Ch hi in na a00字符串:字符串:ChinaChina“A”和和A的区别?的区别?C语言程序设计教程19o 转义字符转义字符:用:用反斜杠反斜杠后面跟一个字符或一个八进后面跟一个字符或一个八进制或十六进制

13、数表示制或十六进制数表示 转义字符转义字符功能与意义功能与意义ASCIIASCII值值aa响铃响铃7 7bb退格退格8 8f f换页换页1212nn换行换行1010r r回车(返回到当前行首)回车(返回到当前行首)1313t t水平制表水平制表9 9vv垂直制表垂直制表11 1100ASCIIASCII为为0 0的字符的字符0 0 字符字符 9292字符字符3939 字符字符 3434dddddd八进制表示的八进制表示的ASCIIASCII码的字符码的字符三位八进制三位八进制xhhxhh十六进制表示的十六进制表示的ASCIIASCII码的字符码的字符两位十六进制两位十六进制C语言程序设计教程2

14、0例例 转义字符举例转义字符举例#includeint main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Programn);printf(Turbo C);return 0;运行结果:运行结果:A B CI say:”How are you?”C ProgramTurbo C例例 int main()printf(“Yb=n”);return 0;运行结果:运行结果:屏幕显示:屏幕显示:=打印机输出:打印机输出:C语言程序设计教程21o 字符变量字符变量n 字符变量用来存放字符,它只能存放字符变量用来存放字符,它只能存

15、放一个字符一个字符,不能存放字符串不能存放字符串 o 字符变量的定义形式字符变量的定义形式 n char 变量名表;变量名表;char c1,c2;char c1,c2;#includeint main()char c1=a,c2=b;c1=c1-(a-A);c2=c2-(a-A);printf(%c%cn,c1,c2);return 0;程序运行结果:程序运行结果:A BC语言程序设计教程222.6运算符和表达式运算符和表达式o 2.6.1算术运算符算术运算符o 2.6.2自增和自减运算符自增和自减运算符o 2.6.3关系和逻辑运算符关系和逻辑运算符o 2.6.4位运算符位运算符o 2.6.

16、5 条件运算符条件运算符o 2.6.6 逗号运算符逗号运算符o 2.6.8 复合赋值运算符复合赋值运算符C语言程序设计教程232.6.1算术运算符算术运算符o 算术运算符:算术运算符:+、-、*、/、%o 说明:说明:n 两个整数相除,所得商仍然为整数,舍去小数两个整数相除,所得商仍然为整数,舍去小数部分,即部分,即3/2结果是结果是1,而不是,而不是1.5n 取余运算要求取余运算要求运算符两端都必须为整型数据运算符两端都必须为整型数据,浮点数据不能进行取余运算浮点数据不能进行取余运算n 除数或被除数中有一个是负数,取余运算的结除数或被除数中有一个是负数,取余运算的结果可根据公式果可根据公式m

17、=pq+r 得到余数得到余数o 优先级:优先级:*、/、%的优先级高于的优先级高于+和和-o 结合性:从左向右结合性:从左向右rpqmC语言程序设计教程245+39-25*43/44%3-5%2872001-1C语言程序设计教程252.6.2自增和自减运算符自增和自减运算符 o+:变量自加:变量自加1o-:变量自减:变量自减1o 前置运算:前置运算:n+在变量的前面:变量先进行加在变量的前面:变量先进行加1运算,然后运算,然后再参与其它运算再参与其它运算n -在变量的前面:变量先进行减在变量的前面:变量先进行减1运算,然后再运算,然后再参与其它运算参与其它运算int x=5,y=6;+x -y

18、+x为为6,x值为值为6 -y 为为5,y值为值为5C语言程序设计教程26o 后置运算:后置运算:n+在变量的后面,则先参与其它运算,然后在变量的后面,则先参与其它运算,然后变量再进行加变量再进行加1运算运算n-在变量的后面:则先参与其它运算,然后变在变量的后面:则先参与其它运算,然后变量再进行减量再进行减1int x=5,y=6;+x -y x+为为6,x值为值为6 y-为为6,y值为值为5C语言程序设计教程27o 说明说明n+,-运算只能用于变量,不能用于常量和表达式运算只能用于变量,不能用于常量和表达式n+,-运算的优先级为运算的优先级为2级,高于级,高于*、/、%运算运算n+,-运算的

19、结合性是从右向左运算的结合性是从右向左 o 前置运算和后置运算可能带来副作用前置运算和后置运算可能带来副作用 n x+y n 在函数中作为参数:在函数中作为参数:printf(“%d,%dn”,i,i+)n(+i)+(+i)+(+i):在:在TC2.0和和VC+6.0的结果是不一样的结果是不一样 C语言程序设计教程28例例2.6:前置和后置运算前置和后置运算#includeint main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);return 0;程序运行结果:程序运行结果:9,11,9,10C语言程序设计教程2

20、92.6.3关系和逻辑运算符关系和逻辑运算符运算符运算符符号符号含义含义举例举例优先级优先级结合性结合性关系运算符关系运算符大于大于54,xy54,xy6 6从左向右从左向右5,x5,x=大于等于大于等于5=4,x=y5=4,x=y6 6从左向右从左向右=小于等于小于等于5=4,x=y5=4,x3&x3&x=811 11从左向右从左向右|或或x5x51212从左向右从左向右!非非!(x5)!(x5)2 2从右向左从右向左C语言程序设计教程30pq!p!q p&q p|q110011100101011001001100逻辑运算真值表逻辑运算真值表(1 1)关系和逻辑运算符的关键是)关系和逻辑运算

21、符的关键是TrueTrue(真)和(真)和FalseFalse(假)(假)(2 2)C C语言中,非语言中,非0 0为真,为真,0 0为假为假 C语言程序设计教程312.6.4位运算符位运算符o 按位运算时,必须将运算对象转化为二进制按位运算时,必须将运算对象转化为二进制o 位运算必须是整型和字符型数据位运算必须是整型和字符型数据 符号符号含义含义举例举例优先级优先级结合性结合性&按位与5&48从左向右|按位或5|410从左向右按位异或549从左向右按位反52从右向左按位右移1025从左向右按位左移10b?a:b 1(0)0(0)1(0)xyxxC语言程序设计教程33o 说明:说明:n 运算对

22、象运算对象1、运算对象、运算对象2、运算对象、运算对象3可以是任可以是任意类型,一般运算对象意类型,一般运算对象1为关系或逻辑运算对象为关系或逻辑运算对象的式子,其类型可以相同,也可以不相同。的式子,其类型可以相同,也可以不相同。n 条件运算符的优先级为条件运算符的优先级为13级级n 条件运算符的结合性是从右向左结合的条件运算符的结合性是从右向左结合的C语言程序设计教程342.6.6 逗号运算符逗号运算符o 定义:定义:用逗号把几个运算对象连接起来用逗号把几个运算对象连接起来 o 格式:格式:n 运算对象运算对象1,运算对象,运算对象2,运算对象,运算对象no 功能:功能:n 先计算运算对象先

23、计算运算对象1的值,再计算运算对象的值,再计算运算对象2的值,的值,直到最后计算运算对象直到最后计算运算对象n的值的值 x=5*6,x+10 a=3,b=4,a+,b+,a+b 40 9 说明:说明:(1 1)逗号运算符的优先级是)逗号运算符的优先级是1515。(2 2)逗号运算符的结合性是从左向右)逗号运算符的结合性是从左向右C语言程序设计教程352.6.7 赋值运算符赋值运算符o 赋值运算符:赋值运算符:=o 格式:格式:变量变量=运算对象运算对象o 功能:把右边运算对象的值赋给左边变量功能:把右边运算对象的值赋给左边变量 o 赋值运算符赋值运算符“=”和判断相等(和判断相等(=)的区别)

24、的区别 o 赋值运算符的优先级为赋值运算符的优先级为14级级 o 赋值运算符的结合性是从右向左赋值运算符的结合性是从右向左 o 赋值中的类型转换以左边变量的类型为主赋值中的类型转换以左边变量的类型为主 C语言程序设计教程362.6.8 复合赋值运算符复合赋值运算符o 定义:复合赋值运算符是在赋值的同时,进定义:复合赋值运算符是在赋值的同时,进行了运算行了运算 o 格式:格式:变量变量 OP=运算对象运算对象 相当于:变量相当于:变量=变量变量OP(运算对象)(运算对象)o 优先级:优先级:14o 结合性:从右向左结合性:从右向左C语言程序设计教程37运算符运算符含义含义举例举例优先级优先级结合

25、性结合性+=+=加赋值加赋值x+=5x+=5相当于相当于x=x+5x=x+51414从右向左从右向左-=-=减赋值减赋值x-=5x-=5相当于相当于x=x-5x=x-51414从右向左从右向左*=乘赋值乘赋值x x*=5=5相当于相当于x=xx=x*5 51414从右向左从右向左/=/=除赋值除赋值x/=5x/=5相当于相当于x=x/5x=x/51414从右向左从右向左%=%=取余赋值取余赋值x%=5x%=5相当于相当于x=x%5x=x%5 1414从右向左从右向左&=&=按位与赋值按位与赋值x&=5x&=5相当于相当于x=x&5x=x&51414从右向左从右向左=按位异或赋值按位异或赋值x=

26、5x=5相当于相当于x=x5x=x5 1414从右向左从右向左|=|=按位或赋值按位或赋值x|=5x|=5相当于相当于x=x|5x=x|51414从右向左从右向左=按位右移赋值按位右移赋值x=5x=5相当于相当于x=x5x=x51414从右向左从右向左=按位左移赋值按位左移赋值x=5x=5相当于相当于x=x5x=x51414从右向左从右向左C语言程序设计教程382.7 表达式求值表达式求值o 2.7.1 算术表达式算术表达式o 2.7.2 赋值表达式赋值表达式o 2.7.3 关系表达式和逻辑表达式关系表达式和逻辑表达式C语言程序设计教程392.7.1 算术表达式算术表达式o 定义:定义:用算术

27、运算符号将运算对象(常量、用算术运算符号将运算对象(常量、变量、函数等)、圆括号连接起来的式子变量、函数等)、圆括号连接起来的式子*7%12)3/(aba*7%12)3/(aba25XC语言程序设计教程40o 表达式的求值表达式的求值*7%12)3/(aba*7%12)3/(aba41597485486a=10b=3C语言程序设计教程41o 数学公式数学公式 的的C语言表示语言表示acb42baba211xcabb*4*)/()(babasqrt)*1/(1xxC语言程序设计教程42o 表达式值的类型表达式值的类型n 同一表达式中的不同类同一表达式中的不同类型常量及变量,均应转型常量及变量,均

28、应转换为同一类型的量换为同一类型的量 n C语言的编译程序将所有语言的编译程序将所有操作数转换为与最高类操作数转换为与最高类型操作数同类型型操作数同类型 doublefloatlongunsignedintshortchar高高低低自动类型转换自动类型转换C语言程序设计教程43o 强制类型转换强制类型转换n(类型名)(表达式)(类型名)(表达式)n 原来变量的数据类型不发生变化原来变量的数据类型不发生变化(int)(x+y)(int)x+y(double)(3/2)(int)3.6 精度损失问题精度损失问题较高类型向较低类型转换时可能发生C语言程序设计教程444/2)%(int)(*3%yxa

29、xdoubleint7.27int1int7int2int1intint40double2.5double2.5例例2.8:已知已知int a=7;float x=2.5,y=4.7;计算表达式的值;计算表达式的值C语言程序设计教程452.7.2 赋值表达式赋值表达式o 定义:定义:赋值运算符将一个变量和表达式连接赋值运算符将一个变量和表达式连接起来构成的式子起来构成的式子 o 一般形式:一般形式:=将表达式的值求出来,赋给左边的变量,使变量的值为表达式的值将表达式的值求出来,赋给左边的变量,使变量的值为表达式的值 a=3;d=func();c=d+2;x=20/4;C语言程序设计教程46n

30、表达式的值的类型以变量的类型为主表达式的值的类型以变量的类型为主 int x;x=10+30/7+1.5double y;y=10+30/7+100n 赋值表达式的值又可以作为另外一个赋值表达式赋值表达式的值又可以作为另外一个赋值表达式)10(ban 赋值表达式也可以包含复合赋值运算符赋值表达式也可以包含复合赋值运算符 aaaa*C语言程序设计教程472.7.3 关系表达式和逻辑表达式关系表达式和逻辑表达式o 关系表达式关系表达式:用关系运算符将两个运算对:用关系运算符将两个运算对象(算术表达式、赋值表达式、关系表达式象(算术表达式、赋值表达式、关系表达式和逻辑表达式等)连接起来构成的式子和逻

31、辑表达式等)连接起来构成的式子 a+3b+4(ab)(c=2)(ch!=getchar()注:关系表达式的值是一个逻辑值,即注:关系表达式的值是一个逻辑值,即“真真”或或“假假”例例2.9:求下面关系表达式的值求下面关系表达式的值int a=0;double b=0.5,x=0.3;求a=x278int i=1,j=7,a;a=i+(j%4!=0);求a002C语言程序设计教程48o 逻辑表达式逻辑表达式:用逻辑运算符将运算对象连用逻辑运算符将运算对象连接起来的式子接起来的式子 n 逻辑表达式的值只能是逻辑表达式的值只能是“真真”或或“假假”n 表示逻辑运算结果:以数值表示逻辑运算结果:以数值1代表代表“真真”,以数,以数值值0代表代表“假假”n 判断是否为判断是否为“真真”:以非:以非0表示表示“真真”,以,以0表表示示“假假”!5的值是0a=2&b=4 的值是1a=0|b=2 的值是1C语言程序设计教程49!a a&b a|b !a|b 4&0|2 53&2|8b)&(n=cd)/m=0,n=1

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(c语言第2章数据类型、运算符和表达式.ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|