资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第二章,C,程序设计初步知识,常量与变量,数据类型,1,整型浮,2,点型字,3,符型,重点:标识符 常 量和变量,难点:进制转换,易混同点:变量类型所占字节数,1/18,2.,1,常量与变量和标识符,标识符,定义:用来标识变量、常量、函数等字符序列,组成:,只能由,字母,、,数字,、,下划线,组成,且第一个字符必须是字母或下划线,区分大小写,一、关键字,二、预定义标识符,三、用户标识符,2/18,用户标识符,命名标准:,见名知意,不宜混 如,1,与,l,o,与,0,不能使用关键字,例,:,判断以下用户标识符正当性,sum Sum M.D.John day Date 3days,If _int,student_name#33 lotus_1_2_3,char ab _above$123,尽可能做到,必须做到,3/18,符号常量,用一个标识符来代表一个,常量,,程序运行期间其值,不可改变,定义格式:,#define,符号常量 常量,#define PRICE 20,main(),int a=2,b;,b=a*PRICE;,printf(“%d”,b);,注意:,1.,习惯用大写,2.,后面没分号,不是一条语句,3.,定义多个符号常量时要分行写,4/18,例,12,为,int,型,12L,为,long int,型,12u,为,unsigned int,型,12LU,为,unsigned long,型,依据其值所在范围确定其数据类型,默认为,signed,int,型,在整常量后加字母,l,或,L,,认为它是,long int,型常量,无符号型整数在数字末尾应加上后缀,u,或,U,,长整型加,lu,或,LU,unsigned,无符号型无法表示负数,惯用整型类型为,int,(基本整型),例 在,c,语言中,正当长整型常数是,A)0L,B)4962710,C)0.054838743,D)2.1869e10,整型,(,书本,12,页,),5/18,位(,bite)-,内存中最小存放单位,字节(,byte)-,8,个二进制位组成一个字节,通常把一个字节中,最右边,一位为,最低位,,,最左边,一位为,最高位,.,对于一个有符号整数,其中最高位,(,最左边一位,),用来存放整数符号,称为符号位,.,正整数,最高位为,0,,,负整数,为,1,.,内存中单位,6/18,例:,short,型,+7,和,-7,7,二进制形式为,:,111 short,型在内存中占,2,个字节,16,位,.,正数,直接按其二进制形式,高位补,0,存放,符号位为,0,(,原码,形式),符号位 数值位,+,7,原,=0 000000000000111,负数,按正数原码形式,进行,取反加一,存放,.,(,补码,形式),符号位 数值位,+,7,原,=0 000000000000111,(原码),取反,=1 111111111111000,(反码),加一,=1 111111111111001,-,7,补,=1 111111111111001,(补码),整数,存放形式,(,书本,12,页,),7/18,实型,(,书本,13,页,),类型,默认,double,(双精度)型,占,8,个字节,在其后加字母,f,或,F,,认为是,float,(单精度)型,占,4,个字节,2.3,默认是双精度,2.3f,(单精度),表示形式:,小数形式:(,必须有小数点,),如,0.123,.123,123.0,0.0,123.,1,指数形式:,12.34=1.23410 =123.410,在,c,语言,中可表示为,1.234e1,或,123.4e-1,(,e,或,E,),e,前,e,后必须有数字,且,e,后,(,指数,),必须为整数,如,12.3,e3,123E2,1.23e4,e-5,1.2E-3.5,(,),8/18,字符型,*/%,-,+-,(,正、负号,),(加、减号),(14),(13)(12),说明:,“,+,-,”,(正负号)可为,单目,运算符时,右结合性,两整数相除,结果为整数,有一方是实数形式,结果保留小数,%,要求两侧均为整型数据,数值取余,符号与被除数一致,例,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.,5,运算符和表示式,13/18,上机作业,1,输入一个小写字母,将其转换为大写字母。,#include,main(),char m,n;,m=c;/*scanf(%c,*/,n=m-a+A;/*,或者,n=m-32*/,printf(,小写字母,%c,转换为大写后为,:%cn,m,n);,14/18,上机作业,2,输入一字母,输出其,ASCII,码。,#include,main(),char m;,m=c;/*scanf(%c,*/,printf(,字母,%c,ASCII,码为,:%dn,a,a);,15/18,上机作业,3,、求一个四位数各个位上数字之和。,例:四位数为,1234,各个位上数字之和为,10,#include,main(),int m=1234,a,b,c,d,sum;,a=m%10;,b=m/10%10;,c=m/100%10;,d=m/1000;,sum=a+b+c+d;,printf(sum=%dn,sum);,16/18,上机作业,4,、两个两位数,现重新组合成一个新四位数,第一个数十位放在新四位数个位,第二个数个位放在新四位数十位,第一个数个位放在新四位数百位,第二个数十位放在新四位数千位。,例:,80,和,20,重新组合后为,86,和,57,重新组合后为,5678,#include,main(),int m=86,n=57,a,b,c,d,sum;,a=m/10;,b=n%10;,c=m%10;,d=n/10;,sum=a+b*10+c*100+d*1000;,printf(sum=%dn,sum);,17/18,上机作业,5,输入一个数字字符,将其转换为与其面值相等数字。,#include,main(),char m,n;,m=1;/*scanf(%c,*/,n=m-0;/*,或者,n=m-48*/,printf(%dn,n);,18/18,
展开阅读全文