(精品)c语言电子教案2.ppt

上传人:hyn****60 文档编号:82695363 上传时间:2023-03-26 格式:PPT 页数:36 大小:445.50KB
返回 下载 相关 举报
(精品)c语言电子教案2.ppt_第1页
第1页 / 共36页
(精品)c语言电子教案2.ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《(精品)c语言电子教案2.ppt》由会员分享,可在线阅读,更多相关《(精品)c语言电子教案2.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、UNIX C编程编程yyyy-M-1age *第第2章章 数据类型、运算符与表达式数据类型、运算符与表达式学时:学时:2学时学时4学时学时 9 内容:内容:2.0 预备知识预备知识 2.1 数据类型数据类型v 2.2 常量与变量常量与变量 2.3 不同类型数据间的转换不同类型数据间的转换 2.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-2age *第第2章章 数据类型、运算符与表达式数据类型、运算符与表达式知识点:知识点:&数制的转换与数据的表示方法数制的转换与数据的表示方法&常量的分类与变量的命名常量的分类与变量的命名&整数类型与整型变量的存储整数类型与整型变量的存储&

2、实数类型与实数变量的使用实数类型与实数变量的使用&转义字符与字符变量的使用转义字符与字符变量的使用&数值型数据间的转换数值型数据间的转换&各种算术运算符的使用(自加、自减)各种算术运算符的使用(自加、自减)&赋值时的类型转换与赋值表达式赋值时的类型转换与赋值表达式&逗号表达式逗号表达式UNIX C编程编程yyyy-M-3age *q计算机中数的表示及进制转换计算机中数的表示及进制转换v数码、基与权数码、基与权数码:表示数的符号数码:表示数的符号(0 9,0 1,0 F,0 7)基:数码的个数基:数码的个数N(10,2,16,8)权:每一位所具有的值权:每一位所具有的值(Nx,x=0,1,2,)

3、v数制数制 见表见表2.0 预备知识预备知识UNIX C编程编程yyyy-M-4age *v各种进制之间的转换各种进制之间的转换二进制、八进制、十六进制转换成十进制二进制、八进制、十六进制转换成十进制方法:按权相加方法:按权相加2.0 预备知识预备知识UNIX C编程编程yyyy-M-5age *十进制转换成二进制、八进制、十六进制十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商方法:连续除以基,从低到高记录余数,直至商为为0例 把十进制数59转换成二进制数5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余

4、余例 把十进制数159转换成八进制数1598198280(159)10=(237)82 3 7 余 7余 3余 2例 把十进制数459转换成十六进制数4591628161160(459)10=(1CB)161 C B 余11余12余 12.0 预备知识预备知识UNIX C编程编程yyyy-M-6age *二进制与八进制之间的转换二进制与八进制之间的转换二进制转换成八进制二进制转换成八进制整数从右向左,小数从左向右,每整数从右向左,小数从左向右,每3位一组(不足位一组(不足3位位左或右补左或右补0),转换成八进制),转换成八进制八进制转换成二进制八进制转换成二进制用用3位二进制数代替每一位八进制

5、数位二进制数代替每一位八进制数例例 (1101001.11)2=(001,101,001.110)2=(151.6)8例例(246.2)8=(010,100,110.010)2=(10100110.01)2000 0001 1010 2011 3100 4101 5110 6111 72.0 预备知识预备知识UNIX C编程编程yyyy-M-7age *二进制与十六进制之间的转换二进制与十六进制之间的转换二进制转换成十六进制二进制转换成十六进制整数从右向左,小数从左向右,每整数从右向左,小数从左向右,每4位一组(不位一组(不足足4位左或右补位左或右补0),转换成十六进制),转换成十六进制十六进

6、制转换成二进制十六进制转换成二进制用用4位二进制数代替每一位十六进制数位二进制数代替每一位十六进制数例例 (1101010111.11)2=(0011,0101,0111.1100)2=(357.C)16例例(4B9.A)16=(0100,1011,1001.1010)2=(10010111001.101)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F2.0 预备知识预备知识UNIX C编程编程yyyy-M-8age *q字节和位字节和位v内存以字

7、节为单元组成内存以字节为单元组成v每个字节有一个地址每个字节有一个地址v一个字节一般由一个字节一般由8个二进制位组成个二进制位组成v每个二进位的值是每个二进位的值是0或或101234567012345678910.2.0 预备知识预备知识UNIX C编程编程yyyy-M-9age *q数值的表示方法数值的表示方法原码、反码和补码原码、反码和补码v原码:最高位为符号位,其余各位为数值本身的绝对值原码:最高位为符号位,其余各位为数值本身的绝对值v反码:反码:正数:反码与原码相同正数:反码与原码相同负数:符号位为负数:符号位为1,其余位对原码取反,其余位对原码取反v补码:补码:正数:原码、反码、补码

8、相同正数:原码、反码、补码相同负数:最高位为负数:最高位为1,其余位为原码取反,再对整个数加,其余位为原码取反,再对整个数加12.0 预备知识预备知识UNIX C编程编程yyyy-M-10age *原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000(用一字节表示数)v 负数补码转换成十进制数:最高位不动,其余位减负数补码转换成十进制数:最高位不动,其余位减1取反取反例例 补码:补码:11111001 减减1:11111000

9、取反:取反:10000111=-72.0 预备知识预备知识UNIX C编程编程yyyy-M-11age *数据类型决定:数据类型决定:1.数据占内存字节数数据占内存字节数2.数据取值范围数据取值范围3.其上可进行的操作其上可进行的操作2.1 数据类型数据类型数值类型数值类型整整 型型短短整型整型short长长整型整型long整型整型int浮点型浮点型单精度单精度型型float双精度双精度型型doubleC数据类型数据类型基本基本类型类型构造类型构造类型指针类型指针类型空类型空类型void定义类型定义类型typedef字符类型字符类型char枚举类型枚举类型enum数组数组结构体结构体struc

10、t共用体共用体unionUNIX C编程编程yyyy-M-12age *2.1 数据类型数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char8

11、0255说明说明:数据类型所占字节数随机器硬件不同而不同数据类型所占字节数随机器硬件不同而不同UNIX C编程编程yyyy-M-13age *q标识符标识符v定义:用来标识变量、常量、函数等的字符序列定义:用来标识变量、常量、函数等的字符序列v组成:组成:只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是组成,且第一个字母必须是字母或下划线字母或下划线大小写敏感,区分大小写大小写敏感,区分大小写不能使用关键字不能使用关键字v长度:最长长度:最长32个字符个字符v命名原则:命名原则:见名知意见名知意不宜混淆不宜混淆 如如o与与0例:判断下列标识符号合法性sum Sum M.D.

12、John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123M.D.John3days#33char$123ab2.2 常量与变量常量与变量UNIX C编程编程yyyy-M-14age *q常量常量v定义:程序运行时其值不能改变的量(即常数)定义:程序运行时其值不能改变的量(即常数)v分类:分类:符号常量:用标识符代表常量符号常量:用标识符代表常量定义格式:定义格式:#define 符号常量符号常量 常量常量一般用大写字母一般用大写字母是宏定义预处理命令,是宏定义预处理命令,不是不是C语句语句直接常量直接常量:整型常量整型

13、常量 实型常量实型常量 字符常量字符常量 字符串常量字符串常量#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);2.2 常量与变量常量与变量total=300UNIX C编程编程yyyy-M-15age *q整型常量(整常数)整型常量(整常数)v三种形式:三种形式:十进制整数:十进制整数:由数字由数字09和正负号表示和正负号表示.如如 123,-456,0八进制整数:由数字八进制整数:由数字0开头开头,后跟数字后跟数字07表示表示.如如0123,011十六进制整数:由十六进制整数:

14、由0 x开头开头,后跟后跟09,af,AF表示表示.如如0 x123,0Xffv整型常量的类型整型常量的类型根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型例 30000 为int型;65536 为long int 型在在整常量后加字母整常量后加字母l或或L,认为它是认为它是long int 型常量型常量例 12 与 12L问题:问题:0123 =()100 x123=()100Xff =()1083291255问题:问题:0123 =()100 x123=()100Xff =()102.2 常量与变量常量与变量UNIX C编程编程yyyy-M-16age *q实型常量(实数或浮点

15、数)实型常量(实数或浮点数)v表示形式:表示形式:十进制数形式:(必须有小数点)十进制数形式:(必须有小数点)如如0.123,.123,123.0,0.0,123.指数形式:(指数形式:(e或或E之前必须有数字;指数必须为整之前必须有数字;指数必须为整数)如数)如12.3e3,123E2,1.23e4,e-5 ,1.2E-3.5 2.2 常量与变量常量与变量UNIX C编程编程yyyy-M-17age *q 字符常量字符常量v定义定义:用单引号括起来的单个用单引号括起来的单个普通字符普通字符或或转义字符转义字符.v字符常量的字符常量的值值:该字符的:该字符的ASCII码码值值v转义字符转义字符

16、:反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示如 101 -A 012 -n 376 -x61 -a 60 -0 A-101-x41-65如 A65,a97,048,n10如 a A?n 101main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Program n);printf(Turbo C);main()printf(“Yb=n”);运行结果:运行结果:屏幕显示:屏幕显示:=打印机输出:打印机输出:2.2 常量与变量常量与变量转义字符转义字符含义含义nvradddtbf“xhh转义字符转义

17、字符含义含义换行换行垂直制表垂直制表回车回车响铃响铃单引号单引号3位位8进制数代表的字符进制数代表的字符水平制表水平制表退格退格换页换页反斜线反斜线双引号双引号2位位16进制数代表的字符进制数代表的字符A B CI say:”How are you?”C ProgramTurbo CUNIX C编程编程yyyy-M-18age *v字符常量与字符串常量不同字符常量与字符串常量不同q字符串常量字符串常量v定义:用双引号定义:用双引号(“”)括起来的字符序列括起来的字符序列v存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 0 作为字符串结束作为字符串结束标志标志h e l l o 0例例

18、 字符串字符串“hello”在内存中在内存中a a 0例例 a“a”例例 空串空串 “”02.2 常量与变量常量与变量UNIX C编程编程yyyy-M-19age *q变量变量v概念:其值可以改变的量概念:其值可以改变的量v变量名变量名与变量值与变量值v变量定义的一般格式:变量定义的一般格式:数据类型数据类型 变量变量1,变量变量2,变量变量n;v变量初始化变量初始化:定义时赋初值定义时赋初值v变量的使用:变量的使用:先定义,后使用先定义,后使用v变量定义位置:变量定义位置:一般一般放在函数开头放在函数开头int a,b,c;float data;合法标识符合法标识符int a=2,b,c=4

19、;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;int student;stadent=19;int a,b,c;c=a%b;main()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);main()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data);2.2 常量与变量常量与变量决定分配字节数决定分配字节数和数的表示范围和数的表示范围UNIX C编程编程yyyy-M-20age *

20、q整型变量整型变量v占字节数随机器不同而不同占字节数随机器不同而不同,一般占一个机器字一般占一个机器字vshort(2字节)字节)int(2字节)字节)long(4字节)字节)v可用可用sizeof(类型标识符类型标识符)测量测量q实型变量实型变量 vfloat:占占4字节,提供字节,提供7位有效数字位有效数字vdouble:占占8字节,提供字节,提供1516位有效数字位有效数字q字符型变量字符型变量v字符变量存放字符字符变量存放字符ASCII码码vchar与与int数据间可进行算术运算数据间可进行算术运算例例 float a;a=111111.111;/*a=111111.123*/doub

21、le b;b=111111.111;/*b=111111.111*/例例 a=D;/*a=68;*/x=A+5;/*x=65+5;*/s=!+G /*s=33+71;*/没有字符串变量没有字符串变量,用字符数组存放,用字符数组存放2.2 常量与变量常量与变量UNIX C编程编程yyyy-M-21age *#define PRICE 12.5 main()int num=3;float total;char ch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);宏定义宏定义变量定义变量定义输出结果输出

22、结果total=37.500000,ch1=d2.2 常量与变量常量与变量UNIX C编程编程yyyy-M-22age *q隐式转换隐式转换v什么情况下发生什么情况下发生运算转换运算转换 -不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换 -把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时输出转换输出转换 -输出时转换成指定的输出格式输出时转换成指定的输出格式函数调用转换函数调用转换 -实参与形参类型不一致时转换实参与形参类型不一致时转换v运算转换规则运算转换规则:不同类型数据运算时先不同类型数据运算时先自动自动转换成同一类转换成同一类型型2.3 不同类型数据间的转

23、换不同类型数据间的转换UNIX C编程编程yyyy-M-23age *doublefloatlongunsignedintchar,short低低高高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换例 char ch;int i;float f;double d;ch/i +f*d -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a +i*f -d/l例例 int i;float f;double d;long l;2.3 不同类型

24、数据间的转换不同类型数据间的转换UNIX C编程编程yyyy-M-24age *q显式转换(强制转换)显式转换(强制转换)v一般形式:一般形式:(类型名类型名)(表达式表达式)例例 (int)(x+y)(int)x+y (double)(3/2)(int)3.6 v强制转换得到所需类型强制转换得到所需类型的中间变量,原变量类型不变的中间变量,原变量类型不变 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);精度损失问题精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生2.3 不同类型数据间的转换不同类

25、型数据间的转换x=3.600000,i=3UNIX C编程编程yyyy-M-25age *2.4 运算符和表达式运算符和表达式C运运算算符算术运算符:算术运算符:(+-*/%+-)关系运算符:(关系运算符:(=!=)逻辑运算符:(!逻辑运算符:(!&|)位运算符位运算符 :(:(|&)赋值运算符:(赋值运算符:(=及其扩展)及其扩展)条件运算符:(条件运算符:(?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(sizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-)下标运算符:(下标运算符:()其它其它 :(:

26、(()-)UNIX C编程编程yyyy-M-26age *q学习运算符应注意:学习运算符应注意:v运算符功能运算符功能v与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型v运算符优先级别运算符优先级别v结合方向结合方向v结果的类型结果的类型2.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-27age *q算术运算符和表达式算术运算符和表达式v基本算术运算符:基本算术运算符:+-*/%结合方向:从左向右结合方向:从左向右优先级:优先级:-*/%+-(2)(3)(4)说明:说明:“-”可为可为单目单目运算符时运算符时,右结合性右结合性两整数相除,结

27、果为整数两整数相除,结果为整数%要求两侧均为整型数据要求两侧均为整型数据例例 5/2 =-5/2.0 =例例 5%2 =-5%2 =1%10 =5%1 =5.5%2例例 5/2 =2 -5/2.0=-2.5例例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()2.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-28age *v自增、自减运算符自增、自减运算符+-作用:使变量值加作用:使变量值加1或减或减1种类:种类:前置前置 +i,-i (先执行先执行i+1或或i-1,再使用再使用i值)值)后置后置 i+,i-(先使用先使用i值值,再执行再执行i

28、+1或或i-1)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;/k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=42.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-29age *说明:说明:+-不能用于常量和表达式不能用于常量和表达式,如如 5+,(a+b)+-结合方向:结合方向:自右向左自右向左优先级:优先级:-+-*/%+-(2)(3)(4)例:例:i=3;printf(“%d”,-i+);/-i+-(i+)-

29、3 例:例:j+k;(j+)+k;2.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-30age *q赋值运算符和表达式赋值运算符和表达式v简单赋值运算符简单赋值运算符符号:符号:=格式:格式:变量标识符变量标识符=表达式表达式作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量 a=3;d=func();c=d+2;2.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-31age *说明说明:结合方向:结合方向:自右向左自右向左左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式3=x-2*y;a+b=3;

30、赋值转换赋值转换规则规则:使赋值号右边表达式值使赋值号右边表达式值自动自动转换成其转换成其左边变量的类型左边变量的类型 float f;int i=10;f=i;则则 f=10.0 int i;i=2.56;/结果结果i=2;赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套 a=b=c=5 a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)/表达式值为表达式值为5,a,b,c值为值为5/表达式值表达式值11,c=6,a=11/表达式值表达式值10,a=10,b=4,c=6/表达式值表达式值5,a=5,b=10,c=22.4 运算符和表达式运算符和表达

31、式UNIX C编程编程yyyy-M-32age *v复合赋值运算符复合赋值运算符种类种类:+=-=*=/=%=含义:含义:exp1 op=exp2 exp1=exp1 op exp2 a+=3;a=a+3;x*=8+y;x=x*(8+y);int a=12;a+=a-=a*a等价于等价于a=a+(a=a-(a*a)/a=-264 int a=2;a+=a*=a-=a*=3;等价于等价于a=a+(a=a*(a=a-(a=a*3)/a=0 2.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-33age *q逗号运算符和表达式逗号运算符和表达式v形式:形式:表达式表达式1,表达式表

32、达式2,表达式表达式nv结合性结合性:从左向右从左向右v逗号表达式逗号表达式的值:等于表达式的值:等于表达式n的值的值v用途:用途:常用于循环常用于循环for语句中语句中 a=3*5,a*4 a=3*5,a*4,a+5 x=(a=3,6*3)x=a=3,6*a a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);/逗号表达式,逗号表达式,a=15,表达式值表达式值60/逗号表达式,逗号表达式,a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表

33、达式值18,x=3/1,2,3/3,2,32.4 运算符和表达式运算符和表达式UNIX C编程编程yyyy-M-34age *练习:练习:1、int m=5,y=2;y+=y-=m*=y y=-162、int s=6;s%2+(s+1)%2 表达式的值为:表达式的值为:13、int a;(a=4*5,a*2),a+6 表达式的值为:表达式的值为:26UNIX C编程编程yyyy-M-35age *练习:练习:(10)10=(1010)2=(12)8=(A)16(75)10=(01001011)2=(113)8=(4B)16(617)10=(0 0 0 0 0 0 1 0 0 1 1 0 1 0

34、 0 1)2(-617)10=(1 1 1 1 1 1 0 1 1 0 0 1 0 1 1 1)2.补码补码 =(1 7 6 6 2 7)8=(F D 9 7)16作业作业:P46-16UNIX C编程编程yyyy-M-36age *数制基权表示数码特点10,10,10,十进制数0910逢十进一二进制数0122,2,2,逢二进一八进制数0788,8,8,逢八进一十六进制数09,AF,af1616,16,16,逢十六进一十进制:4956=410+910+510+610二进制:1011=12+02+12+12十六进制:81AE=816+116+1016+1416八进制:4275=48+28+78+582.0 预备知识预备知识

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁