1、Teacher teaching designCONTENTS 目 录提出问题 引入新课整型常量明确考点 交流提升案例分析 仿真演练提出问题 引入新课PART 01提出问题 引入新课1、下列定义符号常量其格式正确的是()A)#define PI=3.1415926 B)#define PI 10;C)#define PI 10 D)#define PI 2、在下列C语言程序中可以用作变量名的是()A)1a B)a1 C)int D)*p3、下面符合C语言定义变量的格式是()A)int a:=b;B)int a=b=c=2;C)int 18.5%3;D)int a=2,b=2,c=2;4、C语言
2、中定义了一个变量,该变量代表内存中的一个()A)区域 B)单元 C)地址 D)容量5、以下选项中合法的用户标识符是()A)int B)a#C)5mem D)_243整型常量PART 02整型常量考点一、整型常量的表示方法整型常量就是整型常数。语言中,整型常数有八进制、十六进制和十进制三种。1、十进制整常数:十进制整型常数没有前缀。其数码为09。以下各数是合法的十进制整型常数:237、-568、65535、1627;以下各数不是合法的十进制整常数:023(不能有前导0)、23D(含有非十进制数码)。在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。2、八进制整常
3、数:八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为07。八进制数通常是无符号数。以下各数是合法的八进制数:015(十进制为13)、0101(十进制为65)、0177777(十进制为65535);以下各数不是合法的八进制数:256(无前缀0)、03A2(包含了非八进制数码)、-0127(出现了负号)。3、十六进制整常数:前缀为0X或0 x。其数码取值为09,AF或af。以下各数是合法的十六进制整常数:0X2A(十进制为42)、0XA0(十进制为160)、0XFFFF(十进制为65535);以下各数不是合法的十六进制整常数:5A(无前缀0X)、0X3H(含有非十六进制数码)。整型常
4、量考点二:整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为065535,有符号数为-32768+32767。八进制无符号数的表示范围为00177777。十六进制无符号数的表示范围为0X00XFFFF或0 x00 xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:十进制长整常数:158L(十进制为158)、358000L(十进制为358000);八进制长整常数:012L(十进制为10)、077L(十进制为63)、0200000L(十进制为65536);十六进制长整常
5、数:0X15L(十进制为21)、0XA5L(十进制为165)、0X10000L(十进制为65536)。长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如:358u,0 x38Au,235Lu均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5LU表示十六进制无符号长整数A5,其十进制为165。整型常量考点三、整型数据在内存中的存放形式1、在计算机中
6、,为了方便计算,数值是以补码形式存储的。正数的补码和原码相同;负数的补码:将该数的绝对值的二进制形式按位取反再加1。2、原码、反码、补码的求解方法原码 由于计算机中只能存储无符号二进制数,为了存储有符号数便规定,对于有符号数的存储最高位是符号位。例如整数-12转换为原码为10000000 00001100。反码 对数的原码除符号位外,其余按位取反,例如-12的反码为11111111 11110011。补码 数的反码加1。例如-12的反码为11111111 11110100例如:求-18的补码:-18的原码:10000000 00010010-18的反码:111111111 11101101 再
7、加1,得-18的补码:111111111 11101110可以看出,左面的第一位是表示符号的。整型常量考点四、整型变量的种类及对应的格式控制符整型变量的分类基本型:类型说明符为int,在内存中占2个字节。短整量:类型说明符为short int或short。所占字节和取值范围均与基本型相同。长整型:类型说明符为long int或long,在内存中占4个字节。无符号型:类型说明符为unsigned。无符号型又可与上述三种类型匹配而构成:无符号基本型:类型说明符为unsigned int或unsigned。无符号短整型:类型说明符为unsigned short。无符号长整型:类型说明符为unsign
8、ed long。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。有符号整型变量:最大表示32767无符号整型变量:最大表示6553501111111111111111111111111111111整型常量下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围类型说明符数的范围字节数格式符int-3276832767 即-215(215-1)2%dunsigned int065535 即0(216-1)2%ushort int-3276832767 即-215(215-1)2%dunsigned short int065535 即0
9、(216-1)2%ulong int-21474836482147483647即-231(231-1)4%ldunsigned long04294967295 即0(232-1)4%lu说明:在输入或输出数据时,不同的整型数据对应的格式控制符不同,基本整型和短整型的格式控制符是%d,长整型的格式控制符是%ld,无符号整型的格式控制符是%u。整型常量 例如:整数13在各种整型类型变量中的存储情况:int型:short int型:long int型:unsigned int型:unsigned short int型:unsigned long int型:0000000000001101000000
10、0000001101000000000000000000000000000011010000000000001101000000000000110100000000000000000000000000001101整型常量 考点五、整型变量的定义变量定义的一般形式为:类型说明符 变量名标识符,变量名标识符,.;例如:int a,b,c;(a,b,c为整型变量)long x,y;(x,y为长整型变量)unsigned p,q;(p,q为无符号整型变量)在书写变量定义时,应注意以下几点:1、允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间
11、隔。2、最后一个变量名之后必须以“;”号结尾。3、变量定义必须放在变量使用之前。一般放在函数体的开头部分。明确考点 交流提升PART 03明确考点 交流提升程序结果为:x=32764,y=-32767因为32767是整型数据可以表示数值的上限,加5后符号位为1,其余各位如图所示,成为-32767的补码。x=3276401111111 11111100-327671000000000000001分析:结果为什么是32767?【例1】整型变量的定义与使用。main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,
12、b+u=%dn”,c,d);【例2】整型数据的溢出main()int x,y;x=32764;y=a+5;/*整数y溢出*/printf(x=%d,y=%dn,x,y);明确考点 交流提升【例3】无符号整型数据的溢出。main()int a,b;a=65535;b=a+100;printf(a=%u,b=%un,a,b);程序运行的结果为:a=65535,b=99思考题:自行分析结果产生的原因?仿真演练 体验探索PART 04仿真演练 体验探索1、下面四个选项中均是不合法整型常量的选项是()A)160 -0 xffff 011 B)-0 xcdf 01a 0 xeC)-06 986,012 0
13、668 D)-0 x48a 2e5 0 xk2、下列不合法的十六进制数是()A)oxff B)0Xcde C)0 x11 D)0 x233、以下选项中可作为C语言合法整数的是()A)10110B B)0386 C)0Xffa D)x2a24、在C语言中,数值在计算机中的存储形式是()A)补码 B)反码 C)原码 D)ASCII码5、在C语言中,数字029是一个()。A)八进制数 B)十六进制数 C)十进制数 D)非法数仿真演练 体验探索6、分析程序写结果:#includemain()int a,b;a=32767;b=a+1;printf(%d,%d,a,b);程序运行结果为:7、若int类型
14、数据占两个字节,则下列语句的输出结果为()int k=-1;printf(%d,%u,k,k);A)-1,-1 B)-1,32767 C)-1,32768 D)-1,65535说明:考查C语言对有符号和无符号整型数据的处理,区别在于对数据最高位的解释上。对于一个有符号整数,C编译程序将把该值(二进制代码)的最高位作为符号标志位(符号标志位是0,表示正数;若为1,表示负数);而对于一个无符号整数,该数的最高位将被作为数值位处理。设int 型数据占两个字符,则-1在内存中应以16位全1来表示,因此当把k值按%d格式输出(即按有符号数处理)时,仍为-1;而按%u格式输出(即按无符号数处理时),为65535(2的16次方减1)仿真演练 体验探索8、数字字符0的ASCII值为48,若有以下程序 main()char a=1,b=2;printf(%c,b+1);printf(%dn,b-a);程序运行后的输出结果是()。A.3,1 B.50,2 C.2,2 D.2,50 9、若有以下定义和语句:main()int u=010,v=0 x10,w=10;printf(%d,%d,%dn,u,v,w);程序运行后的输出结果是()。A.8,16,10 B.10,10,10 C.8,8,10 D.8,10,10
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。