1、单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,getchar,(),与,putchar,(),函数,它们是,stdio.h,文件中提供的,单字符输入输出函数,getchar,()-,将从键盘读入一个字符,举例:,char c;,c=,getchar,();,将从键盘读入一个字符存于,c,中,putchar(int,c)-,输出一个字符,举例:,char b=A;,putchar(b,);,将在屏幕上输出字母,A,getchar,(),与,putchar,(),函数举例,输入一个字符,输出对应的大写字母:,#include,void main(),cha
2、r c;,c=,getchar,();,c=c-32;,putchar(c,);,putchar(n,);,#include,void main(),char c;,scanf(“%c”,&c,);,c=c-32;,printf(“%cn”,c,),实验,2,讲解,1.,注意,16,进制和,2,进制的转化:,char,类型占一个字节,0 x,1,2,3,4,-,0001,0010,0011,0100,2.,getchar,(),读入一个字符,回车也是一个字符,%c,输出字符形式,,%d,输出它的,ASCII,3.float,类型输出使用,%f,,注意后面为地址列表,&a,4.double,类型
3、输出使用,%lf,5.,控制输出长度,6.,scanf,(),函数一般不包含格式信息,如果包含,输入时要严格遵守,a=3.12,b=9.0 c=10.0,实验,2,讲解,7.,unsingned,short,int,a=65535;,11111111,11111111,=2,16-1,=65535,short,int,b=-1;,-1,原码,10000000,00000001,-1,反码,11111111,11111110,-1,补码,11111111,11111111,所以,,a,,,b,在内存中的存储是一样的。,hd,短整型十进制,-1,ho,短整型八进制,1777,hx,短整型十六进制,
4、ffff,hu,短整型无符号(十进制),65535,实现输入圆柱体的底面半径和高,输出其体积,#include,#define PI 3.14,void main(),float,r,h,s,;,printf,(,请输入圆柱的低面半径和高,);,scanf(%f%f,&r,&h,);,s=PI*r*r*h;,printf,(,圆柱的面积为,%,f,s,);,输入一个整数,分别用无符号方式、八进制方式、十六进制方式输出,#include,void main(),int,a;,printf,(,请输入一个整数:,);,scanf(%d,&a,);,printf,(,八进制,%o,十六进制,%x,无
5、符号显示,%,u,a,a,a,);,编程实现输入一个字符,输出这个字符的,ASCII,码,#include,void main(),char a;,printf,(,请输入一个字符:,);,scanf(“%c”,&a,);/,或者写成,a=,getchar,();,printf,(,输出字符的,ascii,码,%,d,a,);,输入两个整数,x,y,交换他们的值并输出,#include,void main(),int,x,y,t,;,printf,(,输入整数,x,y,:);,scanf(%d%d,&x,&y,);,t=x;,x=y;,y=t;,printf,(,输出交换后的整数,x,的值为,
6、d,y,的值为,%,d,x,y,);,输入一个,double,类型的数,对第三位小数进行四舍五入后处理,然后输出格式整数部分占,12,位,小数点后两位,进行输出。,#include,void main(),double x;,scanf(%lf,printf(x,=%15.2lfn,x);,实验注意问题:,实验,1,:注意一个程序调试完成后,一定要调用,Fle,/Close workspace,关闭工作区,否则在一个工作区内出现两个,main,函数,无法通过连接,实验,2,:,注意,scanf,(),函数中需要的是地址列表,用,scanf,(),、,printf,(),输入输出不同数据类型
7、需要不同的格式控制符,否则结果可能错误,注意不同数据类型的精度和表达范围,选择合适的数据类型,实验注意问题:,实验,3,:,注意,逻辑运算符“短路”现象,从左往右计算,得到结果,后面的运算被短路,例:,int,a=0,b=1,c=2,d=3;,b=,a+,/a,为,0,,,c+,被短路,,a=1,d=,a+,|+c;,/a,为,1,,,+c,被短路,,a=2,printf(a=%d,b=%d,c=%d,d=%dn,a,b,c,d);,逻辑运算举例,#include,void main(),int,a,b,c;,a=5;b=2;c=3;,a=,a+,|+b,printf(a,=%,d,b,=%
8、d,c,=%,dn“,a,b,c,);,b=,a,c&c,+,|,a+&c,+,|a+;,printf(a,=%,d,b,=%,d,c,=%,dn“,a,b,c,);,条件运算符,?:,一般形式:,表达式,1,?,表达式,2,:,表达式,3,C,语言中唯一的,3,目运算符,当表达式,1,的值为非,0,值时,表达式,2,的值作为表达式值,否则表达式,3,的值作为表达式值,举例:,a=-1;b=a0?10:20;/b,的值为,20,a=1;b=a0?A:B;/b,的值为,A,求,a,和,b,中的最大值,a,b?a:b,优先级仅,高于逗号运算符和赋值运算符,运算方向,具有右结合性,如:,ab?c:
9、db?c:,(,d3?e:f),逗号运算符,,格式,:,表达式,1,表达式,2,逗号运算符在所有,优先级别最低,运算方向,从左向右,逗号表达式最右侧表达式值作为逗号表达式值,举例:,求下面表达式的值及,a,变量的值,:,a=(5+4,c=6,d=7),a=5+4,c=6,d=7,a=(a=3*5,(a*4,a+5),a+10,位运算符,&|,位运算是对操作数,补码,二进制,位,的运算,,&,(按位与)、,|,(按位或)、,(按位异或)、,(按位取反),(,算数右移,),高位补符号位数字,例,5,的二进制,000101,7,的二进制,000111,表达式,值,表达式,值,5&7,57,5&7,5
10、5|7,51,位运算符,&|,位运算是对操作数,补码,二进制,位,的运算,,&,(按位与)、,|,(按位或)、,(按位异或)、,(按位取反),(,算数右移,),高位补符号位数字,例,5,的二进制,000101,7,的二进制,000111,表达式,值,表达式,值,5&7,000101,57,000010,5&7,1,5,111010,5|7,000111,51,000010,位运算符,&|,位运算是对操作数,补码,二进制,位,的运算,,&,(按位与)、,|,(按位或)、,(按位异或)、,(按位取反),(,算数右移,),高位补符号位数字,表达式,值,表达式,值,5&7,5,57,2,5&7,1,
11、5,-6,5|7,7,51,2,复合运算,C,语言中,把一些运算符和,=,组合起来,同时完成运算符所指的运算及赋值预算,称为复合运算,+=,、,-=,、*,=,、,/=,、,%=,、,&=,、,|=,、,=,、,=,a+=b,相当于,a=a+b,复合运算符优先级等同于赋值运算符,a=2;a*=2+3;,因为*,=,优先级低于,+,,所以表达式值为,10,混合运算,当不同数据类型进行运算时,称为混合运算,运算规律:不同数据类型,相遇时,,,低类型产生一个向高类型的转化值,(,操作数本身不变化,),,然后参与运算,这条规则不适应赋值运算,例子:,5/2+3.5,结果为,5.5,1/2=0,1.0/
12、2=0.5,double,float,long,unsigned,int,char,short,低,高,强制类型转换,用类型符号把表达式值转换为指定类型,格式,:(,类型名,),表达式,如:,(,int)(a+b),(float)c,;,注意只影响结果,不影响操作数,#include,void main(),float x;,int,i;,x=3.6;,i=(,int)x,;,printf(“x,=%,f,i,=%,d”,x,i,);,结果:,x=3.600000,i=3,运算符优先级,归类,运算符,结合方向,元素,()-.,自左向右,单目运算符,!+-(type)*&,sizeof,自右向左
13、算数运算符,*,/%,自左向右,+-,自左向右,移位运算符,自左向右,关系运算符,=,自左向右,=!=,自左向右,位逻辑运算符,&|,自左向右,逻辑运算符,&,自左向右,|,自左向右,条件运算符,?:,自右向左,赋值运算符,=+=-=*=/=%=&=|=,自右向左,逗号运算符,自左向右,math.h,中提供的数学函数(,P40,),double,fabs(double,d),求绝对值,int,abs(int,n),求绝对值,double,sqrt(double,d),求开平方值,double sin(double a),求正弦值,double,cos(double,a),求余弦值,double tan(double a),求正切值,double,exp(int,n),求,e,n,double log(double d),求,ln(d,),double log10(double d),求,log,10,(d),double,pow(double,x,int,n),求,X,n,运算符功能,与运算量关系,要求运算量个数,要求运算量类型,运算符优先级别,结合方向,结果的类型,小结:学习运算符应注意,






