资源描述
*,单击此处编辑母版标题样式,语言技能教程,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,(中职)c语言技能教程第2章ppt课件,第2章 数据类型、运算符、表达式,语言技能教程,第二章,2.1 技能1:基本数据类型的使用,2.2 技能2:基本数据类型间的混合运算,2.3 技能3:运算符及表达式的使用,2.4 技能4:常用数学函数的使用,语言技能教程,2.1 技能1,2.1.1 整型数据的定义、赋值和输出,【知识点】,1,整型常量的使用,在C语言中可以有三种表示方法:十进制,八进制,十六进制。,表2-1 整型常量的类型,进制类型,表示方法,举例,十进制,逢十进一,由0-9十个数字构成,123、-100等,八进制,用0(零)作前缀表示,0123,-0100等,十六进制,用0 x(零x)作前缀表示,0 x123,-0 x100等,语言技能教程,2.1 技能1,2整型变量的定义,整型变量的定义格式:,整型类型说明符 变量名表;,表2-2 整型变量的类型、字节长度和取值范围,类别,数据类型,字节长度,取值范围,一般整型,int,2,-3276832767 即-2,15,(2,15,-1),短整型,short,2,-3276832767 即-2,15,(2,15,-1),长整型,long,4,-21474836482147483647 即-2,31,(2,31,-1),无符号型,unsigned int,2,065535 即0(2,16,-1),unsigned short,2,065535 即0(2,16,-1),unsigned long,4,04294967295 即0(2,32,-1),语言技能教程,2.1 技能1,3整型变量的赋值,变量名=表达式;,变量名:为了区分不同的变量及变量对应的存储单元,给变量取的名称。,变量值:存储单元所存放的数据,是可以随时改变的,改变变量的值就要为变量赋值,,语言技能教程,2.1 技能1,【典型例题】,例2.4 求下面程序的输出结果。,main(),int x=100,y=0100,z=0 x100;,printf(d:%d%d%dn,x,y,z);,printf(o:%o%o%on,x,y,z);,printf(x:%x%x%xn,x,y,z);,语言技能教程,2.1 技能1,2.1.2,实型数据的定义、赋值和输出,【知识点】,1.实型常量的使用,实型常量有两种表示形式:一种是十进制小数形式,另一种是指数形式。,表2-4 实型常量的类型,表 示 方 法,特 点,举 例,小数方式,由数字和小数点组成,2.1,0.12,,,21.,,,0.0,指数方式,由字母e或E连接两的数字组成,2.1e 4,1e 2,0.1e,-,8,语言技能教程,2.1 技能1,2.实型变量的定义,实型类型说明型 变量名表;,表2-5 实型变量的类型、字节长度、取值范围和有效位,数据类型,字节长度,取值范围,有效位,float,4,1.0e-371.0e+38,7,double,8,1.0e-3071.0e+308,16,语言技能教程,2.1 技能1,3.实型变量的赋值,赋值语句的一般格式:,变量名=表达式;,定义时赋初值,实型类型说明符 变量名=表达式;,语言技能教程,2.1 技能1,【典型例题】,例2.9 已知圆周率为3.14159,半径为4.0,编写程序求其圆面积和圆周长。,main(),float s,l,pi=3.14159,r=4.0;,s=pi*r*r;,l=2*pi*r;,printf(s=%fn,s);,printf(l=%fn,l);,语言技能教程,2.1 技能1,2.1.3 字符型数据定义、赋值和输出,【知识点】,1.字符型常量的使用,字符型常量是用单引号引起来的单个字符,如a,0,#。,(1)字符型常量是用单引号引起来的单个字符,如a,0,#。,(2)字符型常量有可显示字符和不可显示字符两种,可显示字符有大小写字母、数字及标点符号等;不可显示字符有换行符、回车符及换页符等,具体内容见后面的附录。,(3)另外,在字符常量中,还有一些特殊的字符型常量。,语言技能教程,2.1 技能1,2.字符型变量的定义,字符型类型说明符 变量名表;,表2-7 字符型变量的类型、字节长度和取值范围,数据类型,字节长度,取值范围,char,1,-128127,unsigned char,1,0255,3.字符型变量的赋值,变量名=表达式;,语言技能教程,2.1 技能1,【典型例题】,例2.12 大小写字母的转换。,main(),char c1,c2;,c1=A;,c2=B;,c1=c1+32;,c2=c2+32;,printf(%c,%cn,c1,c2);,printf(%d,%d,c1,c2);,语言技能教程,2.1 技能1,2.1.4 字符串常量及其输出,【典型例题】,例2.13 字符串的输出。,main(),printf(%sn,This is a C program.);,语言技能教程,2.2 技能2,2.2.1 基本数据类型间的混合运算,【知识点】,各数据类型混合运算时,不同类型的数据要先转换成同一类型,然后进行运算,这种转换是由系统自动完成的,因而称为自动类型转换。,语言技能教程,2.2 技能2,2.2.2 数据类型的强制转换,【知识点】,强制类型转换格式:,(类型定义符)表达式,语言技能教程,2.2 技能2,【典型例题】,例2.15,强制类型转换,main(),int a,b;,long c;,a=20000;,b=30000;,c=(long)a+b;,printf(a+b=%ld,c);,语言技能教程,2.3 技能3,2.3.1 算术运算符和算术表达式,【知识点】,1算术运算符,表2-8 算术运算符,运算符,功 能,应 用 举 例,+,加法运算符,x+y,-,减法运算符,x-y,*,乘法运算符,x*y,/,除法运算符,x/y,%,取模(求余)运算符,x%y,+,自增运算符,x+或+x,-,自减运算符,y-或-y,语言技能教程,2.3 技能3,2算术表达式,用算术运算符连接运算的数据而得到的式,子。,3优先级及结合方向,4自增、自减运算符,+:自增运算符。,-:自减运算符。,语言技能教程,2.3 技能3,【典型例题】,例2.18 自增、自减运算符的使用。,main(),int a=3,b=3;,printf(a+)+(a+)+(a+)=%dn,(a+)+(a+)+(a+);,printf(a=%dn,a);,printf(+b)+(+b)+(+b)=%dn,(+b)+(+b)+(+b);,printf(b=%dn,b);,语言技能教程,2.3 技能3,2.3.2 赋值运算符和赋值表达式,【知识点】,1赋值运算符,表2-9 赋值运算符,赋值运算符,等 价 于,意 义,=,a=b,赋值号,+=,a+=b,a=a+b,加赋值,-=,a-=b,a=a-b,减赋值,*=,a*=b,a=a*b,乘赋值,/=,a/=b,a=a/b,除赋值,%=,a%=b,a=a%b,求余赋值,2优先级和结合性,语言技能教程,2.3 技能3,【典型例题】,例2.20 赋值运算符。,main(),int a=4;,a+=a-=a*a;,printf(a=%d,a);,语言技能教程,2.3 技能3,2.3.3 逗号运算符和逗号表达式,【知识点】,逗号表达式的一般格式:,表达式1,表达式2,表达式n,功能:先求解表达式1,再求表达式2,依次求出表达式的值,最后一个表达式的值是整个逗号表达式的值。,语言技能教程,2.3 技能3,【典型例题】,例2.21 逗号运算符的运用。,main(),int a=3,b;,printf(%dn,(b=2*4,b*4,b+6);,printf(%dn,b=(2*3,b*4,a+6);,语言技能教程,2.3 技能3,2.3.4 sizeof()运算符,【知识点】,一般格式:sizeof(exp)其中,exp可以是类型关键字、常量、变量和表达式。,功能:给出exp所占用的内存字节数。,语言技能教程,2.3 技能3,【典型例题】,例2.22 sizeof()的运用。,main(),char c1;,int a=2,b=4;,float c=2.1,d=0.7;,printf(char:%dn,sizeof(c1);,printf(int:%dn,sizeof(a);,printf(float:%dn,sizeof(c);,printf(double:%dn,sizeof(c/d);,语言技能教程,2.3 技能3,2.3.5 运算符的优先级,【知识点】,初等运算符()、-、.),单目运算符,算术运算符(先乘除,后加减),条件运算符,赋值运算符,逗号运算符,语言技能教程,2.3 技能3,2.3.6 C 语句,【知识点】,C语句可分为以下5类:,表达式语句;,函数调用语句;,控制语句;,复合语句;,空语句;,语言技能教程,2.4 技能4,【知识点】,函数名,函数类型,参数类型,函数功能及说明,fabs(x),double fabs(x),double x,计算x的绝对值,pow(x,y),double pow(x,y),double x,y,计算x的y次方 x,y,pow10(y),double pow10(y,double y,计算10的y次方10,y,sqrt(x),double sqrt(x),double x,计算x的平方根值,x0,exp(x),double exp(x),double x,计算e,x,的值,e=2.71828,fmod(x,y),double fmod(x,y),double x,y,计算浮点数x/y的余数,表2-11 常用数学函数,语言技能教程,2.4 技能4,【典型例题】,例2.23 函数的应用。,#include,main(),float x,y;,x=24.0;,y=sqrt(x);,printf(sqrt(%f)=%fn,x,y);,语言技能教程,理论与上机实习双指导,一、学习目标,本章介绍了有关C语言数据和表达式的一些基本知识,重点讲述了C语言的三种基本数据类型,即整型、实型和字符型,以及这三种数据类型的使用方法。详细介绍了算术表达式、赋值表达式、逗号表达式、递增/递减运算、求字节数运算和用于算术表达式的数学函数。通过本章学习应达到以下要求:,1了解三种基本数据类型的各自特点。,2掌握三种基本数据类型常量的表示方法。,3熟练掌握三种基本数据类型变量的定义与使用方法。,4了解混合运算中的类型转换。,5掌握各种运算符的功能、用法、优先级和结合性。,6掌握各种表达式的使用方法。,语言技能教程,理论与上机实习双指导,二、常见问题及上机注意事项,1程序中的变量必须是“先定义,后使用。”,2定义变量时易出现的语法错误。,(1)变量没有定义,出错信息为:Undefined symbol XXXX,(2)定义变量书写不当,出错信息为:Declaration syntax error,3关于运算符的结合性。,C语言中提供了一些“从右至左”运算的“右结合”运算符,如递增/递减运算、求字节数运算、赋值运算。例如,c=b=a=99,运算顺序是:将99赋给变量a,a再赋给b,b再赋给c,a,b,c的值均为99。,语言技能教程,理论与上机实习双指导,二、常见问题及上机注意事项,4.关于运算顺序与括号的使用。,C语言运算符均规定了优先级,适当使用括号可以改变运算符的优先级,同时也会使运算顺序更清楚。,例如:a+b/a-b,的运算顺序是先计算b/a,然后再加a,最后减b;,而(a+b)/(a-b),则先计算a+b,再计算a-b,最后完成除法运算。,当出现诸如x+y这种运算时,也可以适当使用括号如以限制,以避免人为的“二义性”,例如,(x+)+y与x+(+y)是两种不同的运算。,语言技能教程,
展开阅读全文