《C语言程序设计》电子教案第2章数据类型及基本运算量.ppt

上传人:xin****828 文档编号:15591489 上传时间:2020-08-22 格式:PPT 页数:53 大小:571KB
返回 下载 相关 举报
《C语言程序设计》电子教案第2章数据类型及基本运算量.ppt_第1页
第1页 / 共53页
《C语言程序设计》电子教案第2章数据类型及基本运算量.ppt_第2页
第2页 / 共53页
《C语言程序设计》电子教案第2章数据类型及基本运算量.ppt_第3页
第3页 / 共53页
点击查看更多>>
资源描述
1,目录,2.1数据类型 2.2常量 2.3变量 2.4库函数 2.5运算符及表达式,2,2.1数据类型,数据类型分四大类:,3,2.1数据类型,1.基本数据类型 1)整型:不带小数点和指数的数,4,2.1数据类型,1.基本数据类型 2)浮点型:带有小数点或指数的数,注:在Visual C+6.0中long double被作为double处理。,5,2.1数据类型,1.基本数据类型 3)字符型:由字母、数字、空白符、标点和特殊字符组成,以1个字节的ASCII存储。 (1)字母:小写字母az、大写字母AZ; (2)数字:09; (3)空白符:空格符、制表符、换行符等,在字符常量和字符串常量中起作用; (4)标点符号及特殊字符:详见ASCII字符集。,6,2.1数据类型,1.基本数据类型 4)枚举类型(enum) 指把可能的值一一列举出来,变量的值只可以在列举出来的值的范围内取。,7,2.1数据类型,2.构造数据类型 1)构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的数据类型; 2)一个构造类型的值可以分解成若干个成员或元素。每个成员都是一个基本数据类型或又是一个构造数据类型; 3)种类:数组类型( )、结构体类型(struct)和共用体类型(unoin),8,2.1数据类型,3.指针类型(*) 指针用来表示所指向内容在内存中的地址( area=pi*r*r; printf(“area=%f”,area); 程序结果:,17,2.3变量,在程序运行期间,值可以改变的量称为变量 1.变量的种类 1)局部变量(也称为内部变量) 在函数体的声明部分定义。其作用域仅限于本函数内,离开本函数后不能再使用这个变量。 2)全局变量(也称为外部变量) 在函数外部定义的变量。它不属于哪一个函数,它的作用域是整个文件。 注意:同一个源文件中,在不同作用域内可以定义同名变量,在使用时,作用域小的变量屏蔽作用域大的变量。,18,2.3变量,2.变量的定义 1)定义方法 变量定义的一般形式为: 类型声明符变量名,变量名,.; 其中,类型声明符可以是基本数据类型、构造数据类型或指针类型, 如:int a; /a为整型变量,19,2.3变量,2.变量的定义 2)变量定义注意事项 (1)允许在一个类型声明符后,定义多个相同类型的变量。各变量名之间用逗号分隔。类型声明符与变量名之间至少用一个空格分隔。 long x,y; /x,y为长整型变量 unsigned p,q; /p,q为无符号整型变量 (2)最后一个变量名之后必须以西文分号“;”结尾。 (3)变量定义必须放在变量使用之前,局部变量的定义放在函数体中的声明部分。,20,2.3变量,2.变量的定义 3)定义变量小结 (1)在实际应用中,应根据需要设置变量的类型。能用整型时就不要用浮点型;如果所要求的精度不高,能用单精度型时就不用双精度型。 (2)根据需要合理选择变量的作用域。 (3)在同一作用域内不能定义同名变量;在不同作用域内可以定义同名变量。,21,2.3变量,3.变量的使用 1)变量的初始化 在C语言中,变量被定义之后,在第一次赋值之前,其值是随机的。 在程序中常常需要对变量赋初值,以便使用变量。 在变量定义同时赋初值的一般形式为: 类型声明符变量1=值1,变量2=值2,;,22,2.3变量,3.变量的使用 1)变量的初始化 例2_2】变量的初始化 #include void main() int a=3,b=5,c; c=a+b; printf(%d+%d=%dn,a,b,c); 程序结果:,23,2.3变量,3.变量的使用 2)变量的赋值与取值 (1)变量的赋值 用赋值语句把计算得到的表达式的值赋给变量。变量的值只有被赋以新值,旧值才被覆盖。对于数值类型变量,如果被赋的新值超出其可表示的范围,会出现溢出错误。,24,2.3变量,3.变量的使用 2)变量的赋值与取值 (1)变量的赋值 【例2_3】整型数据的溢出。 #include void main() int a,b; a= 2147483647; b=a+1; printf(%d,%dn,a,b); 由于Visual C+6.0中int型数据占4个字节,有符号整数的表示范围为-21474836482147483647,所以对2147483647加1得到的2147483648溢出了。,25,2.3变量,3.变量的使用 2)变量的赋值与取值 (2)使用的变量值 将变量名写在表达式中,或给其他变量赋值,或用作函数的参数,表示使用变量的值。如例2_2中的语句c=a+b;是将变量a和b的当前值求和后赋给变量c。c的值变为新值,a和b的值被引用,不会被改变。,26,2.3变量,3.变量的使用 3)变量与符号常量的区别 (1)变量占用内存空间,在程序运行过程中,值可能发生变化;符号常量不占用内存空间,在程序运行过程中,值也可能发生变化。 (2)变量的定义及声明是用语句实现的,在执行阶段为变量分配相应的内存空间;符号常量的定义是通过宏定义命令#define实现的,在编译阶段就用直接常量代替了全部符号常量。,27,2.4库函数,1.数学函数 int abs( int x)求整数x的绝对值 double fabs(double x)求双精度实数x的绝对值 double sqrt(double x)计算x的开方 double pow(double x,double y)计算xy的值 double log10(double x)求lgx double exp(double x)求ex的值 double log(double x)求x double sin(double x)计算sin(x)的值 double cos(double x)计算cos(x)的值,28,2.4库函数,2.输入输出函数 int scanf(char *format,args,)从标准输入设备按format指定的格式把输入数据存入到“args,”所指的内存中 int printf(char *format,args,)把“args,”的值以format指定的格式输出到标准输出设备 int getchar(void)从标准输入设备读取下一个字符int putchar(char ch)把ch输出到标准输出设备 char *gets(char *s)从标准设备读取一行字符串放入s所指存储区,用0替换读入的换行符int puts(char *str)把str所指字符串输出到标准设备,将0转成回车换行符,29,2.5运算符及表达式,1.运算符及表达式简介 1)运算符的种类 (1)算术运算符 用于数值运算:加+、减-、乘*、除/、求余%、自增+、自减-。 (2)赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=、-=、*=、/=、%=)和复合位运算赋值( printf(%f,%fn,20.0/7,-20.0/7); 程序运行结果:,38,2.5运算符及表达式,2.算术运算符及算术表达式 3)算术运算符的优先级及结合性 【例2_5】求余运算。 #include void main() printf(%dn,10%3); 程序运行结果 :,39,2.5运算符及表达式,2.算术运算符及算术表达式 4)自增、自减运算符 自增1运算符记为“+”:使变量的值自增1。 自减1运算符记为“-”:使变量值自减1。 自增1和自减1运算符均为单目运算,具有右结合性。 可有以下几种形式: +i /i自增1后再参与其它运算 -i /i自减1后再参与其它运算 i+ /i参与运算后,i的值再自增1 i- /i参与运算后,i的值再自减1,40,2.5运算符及表达式,2.算术运算符及算术表达式 4)自增、自减运算符 【例2_6】自增自减运算。 #include void main() int i=10; printf(%dn,i+); printf(%dn,i-); printf(%dn,+i); printf(%dn,-i); printf(%dn,-i+); printf(%dn,-i-); ,41,2.5运算符及表达式,2.算术运算符及算术表达式 4)自增、自减运算符 【例2_7】复杂的自增自减运算。 #include void main() int i=5,j=5,p,q; p=(i+)+(i+)+(i+); q=(+j)+(+j)+(+j); printf(%d,%d,%d,%dn,p,q,i,j); ,42,2.5运算符及表达式,2.算术运算符及算术表达式 5)各类数值型数据之间的混合运算 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。 转换方法:自动转换、强制转换 (1)自动转换:发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换规则为由少字节类型向多字节类型转换。,43,2.5运算符及表达式,2.算术运算符及算术表达式 5)各类数值型数据之间的混合运算 (2)强制类型转换 强制类型转换是通过类型转换运算来实现的。 一般形式为:(类型声明符)(表达式) 功能:把表达式的运算结果强制转换成类型声明符所表示的类型。在使用强制转换时应注意以下问题: 类型声明符和表达式都必须加括号(变量可不加) 强制转换和自动转换只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变原来对该变量定义的类型。,44,2.5运算符及表达式,2.算术运算符及算术表达式 5)各类数值型数据之间的混合运算 (2)强制类型转换 【例2_8】强制类型转换。 #include void main() float f=5.75; printf(int)f=%d,f=%fn,(int)f,f); ,45,2.5运算符及表达式,3.赋值运算符及赋值表达式 1)简单赋值运算符和简单赋值表达式 由简单赋值运算符 “=” 连接的式子称为简单赋值表达式。 (1)简单赋值表达式格式:变量=表达式 (2)简单赋值表达式使用说明 赋值运算符的功能具有单向性,将表达式的值传送变量。 赋值运算符左边只能是单个变量名,不能是其它运算量。 赋值运算符右边可以是常量、变量、函数或表达式。 赋值运算符兼有计算与赋值双重功能。 赋值运算符具有右结合性。 赋值运算符的优先级低于算术运算符。 在赋值表达式末尾加分号就构成了赋值语句。,46,2.5运算符及表达式,3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值运算符右边的类型换成左边的类型。具体规定如下: (1)实型赋给整型,舍去小数部分。 (2)整型赋给实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。 (3)字符型赋给整型,由于字符型为一个字节,故将字符的ASCII码值放到整型量的低八位中,高位为0。整型赋给字符型,只把低八位赋给字符量。,47,2.5运算符及表达式,3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 【例2_9】赋值运算中的自动类型转换。 #include void main() int a,b=322; float x,y=8.88; char c1=k,c2; a=y; x=b; printf(%d,%f ,a,x); a=c1; c2=b; printf(%d,%c,a,c2); ,48,2.5运算符及表达式,3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 (4)右边量的数据类型长度比左边长,丢失的部分按四舍五入舍入。 【例2_10】赋值运算中的自动类型转换。 #include void main() float pi=3.14159; int s,r=10; s=r*r*pi; printf(s=%dn,s); ,49,2.5运算符及表达式,3.赋值运算符及赋值表达式 2)赋值中的自动类型转换 【例2_11】不同类型的量参与运算。 #include void main() long x=5,y=6; int a=7,b=8,c,d; c=x+a; d=y+b; printf(c=x+a=%d,d=y+b=%dn,c,d); ,50,2.5运算符及表达式,3.赋值运算符及赋值表达式 (3)复合的赋值运算符 在赋值符之前加其它二目运算符可构成复合赋值符。 +=、-=、*=、=、%=、=、 y=(x=a+b),(b+c); printf(y=%d,x=%d,y,x); ,53,2.5运算符及表达式,4.逗号运算符及逗号表达式 (4)逗号表达式注意事项 (1)扩展形式:表达式1,表达式2,表达式n 整个逗号表达式的值等于表达式n的值。 (2)程序中使用逗号表达式,通常是要分别计算逗号表达式内各表达式的值,并不一定要计算整个逗号表达式的值。 (3)并不是在所有出现逗号的地方都组成逗号表达式,如在变量定义中和函数参数表中的逗号只是用作各变量之间的分隔符。 (4)赋值运算符的优先级高于逗号运算符。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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