1、第1页,共47页。第2页,共47页。第3页,共47页。第4页,共47页。类型比特数最小取值范围signed int16-3276832767(-215 215-1)Unsigned int160 65535(0 216-1)signed short int16-3276832767(-215 215-1)Unsigned short int160 65535(0 216-1)long int32-2147483648 2147483647(-231 231-1)Unsigned long int320 4294967295(0 232-1)请大家区分:0123U 123l 0 x21L 90A
2、NSI标准定义的整数类型第5页,共47页。第6页,共47页。第7页,共47页。例如:“I say:“good by!”“C program”代表字符串分别是:I say:“good by!”C program第8页,共47页。三、字符串常量 用双引号括起来的一串字符表示。如:“shkhs”“2w2fefe”“12121214554”C语言的字符串,在内存中存储时是在一个连续的内存空间里存放每个字符的码值(ASCII码)。同时在其尾部自动追加一个0,即NULL或ASCII码0如字符串“hellow”第9页,共47页。第10页,共47页。四 符号常量C语言中,常量可以用符号代替,代替常量的符号称为
3、符号常量。为了与一般变量区别,符号常量都使用大写字符。符号常量在使用前必须先定义,其一般格式为:#define 符号常量名 常量值例:#define NULL 0#define EOF -1第11页,共47页。例:#define LOWER 0#define LPPER 200#define STEP 20 main()int f;float c;for(f=LOWER;f =!=其中后两个关系运算符的级别较前两个低,它们的结合规则都是从左到右。关系运算级别较算术运算级别低。因此,表达式:il+t-1实质就是:i(l+t-1)关系运算结果为逻辑值1或0,当关系成立时,其值为(真)1,不成立时,
4、其值为(假)0。注意:(1)在数学上,判别是否在a,b中时,习惯上写 axb.而在C语言中a=x=b 的含义与数学中的含义不同。假设a=0,b=0.5,若x=0.3,则在C语言中解a=x=b 时,先求a=x的值为1,再求1278在数学中是不允许的,而在C语言中是可以的。按自左至右的规则求解:52值为1 17值为0 08值为0,即整个表达式的值为0(3)关系表达式的值是整型数0和1,故可看作是整 型表达式例:int I=1,j=7,a;a=I+(j%7!=0)a的值为1第29页,共47页。五、逻辑运算符逻辑运算分为:逻辑与&、逻辑或|和逻辑非!其优先级别是:先非后与再或逻辑与运算1 a&b表示当
5、条件a,b同时成立时,其值为真,否则只要有一个不成立,其值为假0。2 逻辑或运算a|b表示当条件a,b中只要有一个 成立时,其值为真1,否则两个都不成立时,其 值才为假0。3 逻辑非表示:(真)1变为(假)0,(假)0变 为(真)1。第30页,共47页。表-4aba&ba|b!a!b11 1 1 0010 0 1 0101 0 1 1000 0 0 11第31页,共47页。第32页,共47页。2 运算顺序:首先计算表达式,如果其值非0(真),则只计算表达式,而不计算表达式,并且值即为整个表达式的值。如果其值为0(假),则只计算表达式,而不计算表达式,并且值即为整个表达式的值。因此,求x为a,b
6、中较大值可以写为x=(ab)?a:b;3 表达式类型:如果型不同时,则结果类型默认根据自动类型转换规则确定。如f为浮点型,n为整型,则表达式(n0)?f:n第33页,共47页。第34页,共47页。八、类型转换C语言允许不同类型数据参加混合运算,但在运算前,必须转换为相同类型后才能运算。转换分为算术转换、赋值转换、输入输出转换、强制转换、函数调用转换等五种情况。1.赋值转换当一个赋值表达式的左右两边类型不同时,则先将右边类型转换为左边类型,然后再赋值。如(Li2.c)int i=98;char ch;ch=i;printf(%c,ch);第35页,共47页。2.算术转换不同类型参加算术运算时,总
7、的转换原则是短的(窄的)向长的(宽的)转换,不带符号的向带符号的转换,具体转换原则见下图示。double float long int char,short例:9+a+1.23第36页,共47页。3 强制类型转换 将一个表达式转换成所需类型(类型标识符)(表达式)(double)a int a;(int)(x+y)float x,y;(float)(5%3)第37页,共47页。4 输入输出转换:#include main()int I=99;printf(“%cn”,I);5 函数调用转换 例子如下:int fun(float x,float y)float z;z=(xy)?x:y;retu
8、rn z;main()float a=1.2,b=3.4;int k;k=fun(a,b);printf(“%dn”,k);第38页,共47页。在C语言中,一个char型数据在内存中所占的字节数为_ int型数据在内存中所占的字节数为_ float型数据在内存中所占的字节数为_ double型数据在内存中所占的字节数为_.若有以下定义,则计算表达式y+=y-=m*=y后的y值是_.前提是int m=5,y=2;若有以下定义s是int,s=6,则下面表达式的值是_ s%2+(s+1)%2本章练习第39页,共47页。若a是int型变量,则下面表达式的值为_ (a=4*5,a*2),a+6若x和a均
9、是int型变量,则计算表达式(1)后的x值为_,计算表达式(2)后的x值为_.(1)x=(a=4,6*2)(2)x=a=4,6*2第40页,共47页。若a.b.c均是int型变量,则计算表达式后,a值为_b值为_c值为_ a=(b=4)+(c=2)第41页,共47页。若有定义:int b=7;float a=2.5;则下面表达式的值为_ a+(int)(b/3*(int)(a+2)/2)%4第42页,共47页。假设m是一个三位数,从左到右用a.b.c表示各位的数字,则从左到右各个数字 bac的三位数的表达式是_ 若有定义 int a=8,b=5,c;执行语句c=a/b+0.4后,c的值为_第4
10、3页,共47页。若定义变量a是int 类型,并执行了语句:a=A+1.6;则a的值是?第44页,共47页。在C语言中,如果下面的变量都是int类型,则输出的结果是_ sum=pad=5;pad=sum+;pad+;+pad;printf(“%dn”,pad);第45页,共47页。已知在ASCII代码中,字母A的序号是65,以下程序的输出结果是_#include main()char c1=A,c2=Y;printf(“%d,%dn”,c1,c2);第46页,共47页。本章总结1、数据类型(基本类型)2、常量(字面常量和符号常量)3、变量(变量的数据类型、变量名、变量的存储空间、变量地址和变量值)4、运算符5、类型转换第47页,共47页。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。