第1讲C语言基础.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础
- 资源描述:
-
浙江科技学院教信系计算机基础教学网站:,www.,Goit,.Net,第1讲,C,语言基础,第1讲,C,语言基础,要求:,(1),C,程序的组成,(2),C,语言的标识符是如何定义的。,(3),C,语言有哪些基本数据类型?各种基本数,据类型的常量和变量是如何定义的?,(4),C,语言有几种类型的表达式?各种类型表,达式是如何求值的?,(5),在,C,语言混合运算的表达式中,各种运算,符的优先级和结合性。,一、,C,程序的组成,C,程序,函数组成,由若干,函数说明部分,函数体,函数类型说明,函数名,函数形参,形参类型说明,变量定义部分,执行部分,int,sum(x,y),int,x,y;,int,z;,z=x+y;,retrun,z;,int,sum(,int,x,int,y),int,z;,z=x+y;,retrun,z;,例如:,等价,(,函数首部),1,C,程序中,必有且仅有,一个,main(),函数,程序,从,main(),开始执行,,并且,在,main(),中结束,。,main(),函数可以放在任何位置。,2,每一个说明,每一个语句都必须以,分号“;”结尾,。但预处理命令,函数头和花括号“”之后不能加分号。,3,C,语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”,和“,*/,”之间的即为注释。,在,TC+,中,,注释符以“/”开始,到本行结束。,例如:,int,a,b;/,定义2个整型变量,1.,数据的描述(数据结构),一个程序应包括两个方面的内容,:,2.,操作的描述(即操作步骤、算法),数据是操作的对象,操作的结果又会改变数据的状况。数据结构与算法的结合才成为一个程序。,C,语言提供的数据结构是以,数据类型,形式出现的,,C,的数据类型有,:,C,的数据类型,基本型,(,int),整型 短整型,(,short int),长整型,(,long int),无符号型,(,unsigned int),基本类型 实型,(,浮点型,),单精度,(,float),双精度,(,double),字符型,(,char),枚举型,(,enum),数组类型,(,type),构造类型 结构体类型,(,struct),共用体类型,(,union),指针类型,(,type*),空类型,(,void),C,语言的基本符号,1.,基本符号,:,26个英文字母,包括,大写和小写,,C,中大小写字母被认为是两个不同的字符。,数字,0,9。,特殊符号:如,初等量表达式操作符:,(),.,,;,一元操作符:*,&,-,!,,,,+,+,,-,,,sizeof,();,二,元操作符:,,*,%,=,=,1,*,2,4,+1*,2,3,+0*,2,2,+0*,2,1,+1*,2,0,=16+8 +0 +0 +1,=(25),10,1.,整型数椐在内存中存放形式,数椐在内存中是以,二进制,形式存放的,每一个,整型变量在内存中占两个字节,。,如 定义一个整型变量,i:int i=10;,10,的二进制表示为,1010,,内存中的存储形式为:,00000000 00001010,实际上,在计算机中数值是以,补码,表示的。一个,正数的补码,和其原码相同,,负数的补码,为其绝对值的二进制形式,按位取反再加,1,。,例如,若,i=-10;,二进制表示为:,00000000 00001010 10,的原码,11111111 11110101 10,的反码,11111111 11110110 -10,的补码,补充,原码、反码、补码的概念,原码,存储单元的最高位为符号位,其0,为正,1,为负,值为二进制,补码,补码,=,反码,+1,反码,代码的,0,变为,1,1,变为,0,注意,正数的原码、反码、补码是一样的,例,(-10),10,1,000 0000,0000,1010 -,原码,求反,1,111,1111 1111,0101 -,反码,+1 1,-,1,111,1111 1111,0110 -,补码,2.,整型变量的分类,可以根据数值的范围将整型变量定义为基本整型、短整型或长整型。,基本型,:,以,int,表示,变量的值范围为,-3276832767,。,短整型,:,以,short,int,或,short,表示,长整型,:,以,long,int,或,long,表示,为了充分利用变量的表数范围,可以不设符号位,而用全部二进位存放数据,只存放不带符号的整数,即定义,无符号型,。可以有无符号整型,(,unsigned,int,)、,无符号短整型,(,unsigned short,)、,无符号长整型,(,unsigned long,)。,归纳起来,可以使用以下,6,类整型变量:,int,unsigned int,short ,int,unsigned short ,int,long ,int,unsigned long ,int,C,标准并没有具体规定以上各类数据所占内存字节数,只要求,long,型数据长度不短于,int,型,,short,型不长于,int,型。,例1,整型变量的定义和使用,main(),int a,b,c,d;,/*,定义整型变量 *,/,unsigned int u;,/*,定义无符号整型变量,*,/,a=12;,b=-24;,u=10;,c=a+u;,d=b+u;,printf(a+u=%d,b+u=%dn,c,d);,运行,结果,:,a+u=22,b+u=-14,可以看到:不同种类的整型数据可以进行算术运算,.,3.,整型变量的定义,(,强制类型定义,):,int a,b;-a,b,定义为整型,unsigned short c,d;-c,d,定义为无符号短整型,long e,f;-e,f,定义为长整型,变量定义一般放在函数的开头部分的,声明部分,。,4.,整型数据的溢出,例 2,整型数据的溢出,main(),int a,b;,a=32767;,b=a+1;,printf(%d,%d,a,b);,a:0111111111111111 32767,b:1000000000000000 -32768,运行,结果:,32767,-32768,一个 整型变量只能容纳,-3276832767,(,-2,15,2,15,-1),范围内的数,无法表示大于,32767,的数,遇此情况就发生“溢出”。,(,教材,P43,表),实型数据,实型常量的表示法,C,语言中的实数又称,浮点数,,有两种表示形式,:,1.,十进制数形式:,由数字和小数点组成(必须有小数点)。,如,0.123 .123 123.0.0 ,2.,指数形式,:由数字、字母,E(,或,e),和小数点组成,且,E,后面必须是整数,,E,前面必须要有数字,。,如,123,e3 1.23e6 123.4E2,规范化的指数形式,:在字母,e,或,E,之前的小数部分中,小数点左边有且只有一位非零数字。如,1.23,e,选择题,:,以下选项中,均是不合法的实型常量的选项是,(),。,A)160.B)123 C)-.18 D)-e3,0.12 2e4.2 123e4 .234,e3 .e5 0.0 1e3,实型变量,1.,实型数据在内存中的存放形式,一个实型数据一般在内存中占用四个字节(,32,位),,按照指数形式存储。,例如,,3.14159,按照“,+0.314159,e1”,形式存储。,在,4,个字节中,究竟用多少位来表示小数部分、多少位来表示指数部分,标准,C,并无具体规定,完全由各编译系统自定。小数部分占的位数越多,数的有效数字越多,精度越高。指数部分占的位数越多,则能表示的数值范围越大。,单精度,float,型(,32,bit,67,位有效数字),2.,实型变量的分类,双精度,double,型(,64,bit,1516,位有效数字),3,.,实型变量的定义,:,每个实型变量也必须在使用之前定义,例如,float x,y;-,定义,x,和,y,为单精度型变量,double z;-,定义,z,为双精度型变量,单精度与双精度只是数据的有效位数不同,.,。,4.,实型数据的舍入误差,由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去,由此可能会产生误差(四舍五入)。,例3,main(),float a,b;,a=123456.789e5;,b=a+20;,printf(%f,b);,运行结果:,1234567,8848,.,000000,这是因为一个实型变量只能保证,7,位数字有效,。,注意:应避免将一个很大的数和一个很小的数相加或相减。,a:1234567,8900,b:123456789,20,?,一、,字符常量,C,的字符常量是指用,单引号括起来的一个,字符,,,如,a,A,$,等,除上述字符常量之外,,C,中还允许一种特殊字符常量,即以,开头的字符序列,称为,转义字符,,意思是将“,”,后面的字符转变成另外的意义。,n,换行,t,水平制表,(,跳到下一个,tab,位)(,一个,tab,位占,8列),v,竖向跳格,(,相当于换行,),b,退格,将当前位置移到前一列,r,回车,(,到行首,不换行,),f,走纸换页,将当前位置移到下页开头,字符“,”,字符“,”,ddd,13,位八进制数所代表的字符 如,074,74 4,xhh,12,位十六进制数所代表的字符 如,x74,x4,字符型数据,单引号,例,A (65),10,=(101),8,101=A P374,换行符,(10),10,=(12),8,012=,n,选择题,:,以下选项中,均是不合法的转义字符的选项是,(),。,A)B)1011 C)011 D),abc,f 101,xf,a x1f,选择题,:,以下选项中,正确的字符常量是,(),。,A)c B)C)085 D)W,三、,字符数据在内存中的存储形式及其使用方法,将一个字符常量存到一个字符变量中去,并不是把该字符本身放入内存单元之中,而是将该,字符的相应的,ASCII,码,American national Standard Code for Information Interchange(,美国国家信息交换标准代码)。,存放到存储单元之中。,例如,:,char c1,c2;,c1=a;,c2=b;,二、,字符变量,字符变量用来存放字符常量(,只能放一个字符,,而不是字符串)。,字符变量的定义,:,char c1,c2;,定义,c1,c2,为字符变量,内存中存放的不是,a,和,b,,而是,a,和,b,的,ASCII,码,97,和,98,由于字符数据以,ASCII,码存储,因此与整数有相同的形式,因此,C,语言中的,字符型数据和整型数据,之间可以,通用。,例.,char c1,c2;,c1=a;,与,c2=b;,对,c1、c2,分别赋值,结果相同。,至于是输出字符还是整数取决于,格式控制符,。,%,d:,十进制整型,%,c:,字符型,char c1,c2;,c1=97;,c2=98;,大小写字母转换。,main(),char c1,c2;,c1=a;,c2=b;,c1=c1-32;,c2=c2-32;,printf(%c%c,c1,c2);,从,ASCII,码表中可以看到,每一个小写字母比它相应的大写字母的,ASCII,大32,。因此有:,小写字母,32,大写字母,运行,结果:,A B,四、,字符串常量,字符串常量,:,是一对,双引号,括起来的,字符序列,。,如,:,How do you do.,$123.45,字符串常量与字符常量,:,字符常量是,一个字符,,字符串常量是一对双引号 括起来的,字符序列。,C,规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统椐此判断字符串是否结束。,C,规定以字符,0,作为字符串结束标志。,0,是系统自动加上的,在写字符串时不必加,0,。,a,与,a,的区别,:字符串,a,实际上包含,2,个字符:,a,和,0,,占,2,个字节;,a,占1,个字节。,注意:,不要混淆字符常量与字符串常量,!,字符串常量不能赋给一个字符变量。,如,:,c=a;,是非法的,而应该是,c=a;,C,语言中的,字符串用字符型数组来存放。,选择题,:,以下选项中,均是正确的数值常量或字符常量的是,(),。,A)0.0B)a C)3 D)+001,0f 3.9E-205 011 0 xabcd,8.9e 1e1 0 xFF00 2e2,&0a 50.,选择题,:,下面不正确的字符串常量是,(),。,A),abc,B)1212 C)0 D),练习题,选择题,:,121212,的字符串长度为,()。,A)3 B)6,C)5 D),编译出错,选择题,:,1212,的字符串长度为,(),。,A)3 B)4 C)7 D)5,练习题,变量赋初值,程序中常常需要对一些变量预先设定初始值,,C,语言中规定,可以在,定义变量的同时使变量初始化,。,如,int i=3;,float x=2.5;,变量赋初值相当于变量定义与变量赋值两部分。,如,:,int i=3;,相当于,int i;,i=3;,也可以使被定义的变量的一部分赋初值。,如,:,int a,b,c=5;(,只对,c,赋初值,5),如果对几个变量赋以同一个值,不能写成,int a=b=c=3;,而应写成,int a=3,b=3,c=3;,变量初始化一般是在程序运行、执行本函数时赋予初值的。,而定义是在编译时执行的,各数据类型之间的混合运算,高,double,-,float,即,float,必须先转换成,double,以提高精度,(,即使两个数同为,float,long,型也必须转换为,double,后进行运算,),unsigned,低,int,int,实型赋给整型,舍去小数,i=3.56 -i=3,不“四舍五入”,B.int-float,数值不变,以浮点数形式储存,补足,0,f=23-f=23.00000,(,有效数字,7位,),#,include,void main(),int,y;,double d=3.4,x;,x=(y=d/2.0)/2;,printf,(%0.2f,%d),x,y);,getch,();,程序运行结果:,A.(0.00,1)B.,(,0.85,1.7,),C.(0.50,1)D.,以上都不对,例题,赋值运算符和赋值表达式,例:,*=:,a*=3;a=a*3;,/=:x/=y+3;x=x/(y+3);,%=:a%=3;a=a%3;,3.,复合的赋值运算符,在赋值运算符之前加上其它运算符可以构成复合运算符,。,如,:,在,=,之前加上,+,,则构成,+=,。,a+=3,相当于,a=a+3,含义是,:,a+=,表达式 相当于,a=a+,表达式,如果表达式是由多项构成,则相当于有括号,即,a=a+(,表达式,),凡是二元(二目)运算符都可以与“,=”,一起组成赋值运算。,C,语言中规定可以用,10,种复合赋值运算符,:,+=-=*=/=%=&=|=,4.,赋值表达式,什么是 赋值表达式?,由(单一或复合)赋值运算符将一个变量和一个表达式连接起来的式子。,一般形式,:,赋值表达式的求解过程是,:,先对运算符右侧的表达式求值,再将该值赋给运算符左边的变量。,赋值表达式的值:,就是被赋值的变量的值。如,:,a=5,的值是,5,。,这里,既可以是一个普通的表达式,也可以是一个赋值表达式。,如,:,a=(b=5),即表示,b=5,和,a=5,由于赋值运算符是,自右至左结合,,因此,a=(b=5),等价于,a=b=5,例:,a=(b=4)+(c=6)c=6,b=4,a=10,a=(b=10)/(c=2)c=2,b=10,a=5,例:有表达式,a+=a-=a*a,,,设,a=12,,求 运行结果。,(1),a-=a*a,,,即,a=a-a*a=-132,(2),a+=a,,,即,a=a+a=-264,注意,:,如果在赋值表达式后面加上“,;”,,则成为赋值语句。,逗号运算符和逗号表达式,用“,”,将两个表达式连接起来所构成的表达式称为逗号表达式,。,如,:3+5,6+8,逗号表达式的一般形式,:,表达式,1,表达式,2,求解过程,:,先求表达式,1,的值,再求表达式,2,的值,,整个表达式的值是表达式,2,的值。,如上式,结果是,14,又如:,a=3*5,a*4,结果是,a=15,,表达式值是60。,一个逗号表达式可以与另一个逗号表达式组成新的逗号表达式。,如:,(,a=3*5,a*4),a+5,即:,(1),a=15,(2)(15,60)=,值为,60,(3)60,20 =,整个表达式的值为,20,例:,(1),x=(a=3,6*a),(2)x=a=3,6*a,赋值表达式:,a,为,3,,x,为18,;,逗号表达式:,x,为,3,,a,为,3,。,逗号表达式可以推广到多个表达式的情况,表达式,1,表达式,2,.,表达式,n,它的值是 表达式,n,的值。,由于,逗号运算符是所有运算符中级别最低的,,因此书写表达式时要注意求解的次序。,注意:并非所有的,都是运算符,如,:,printf(%d,%d,%d,a,b,c);,-,这里的,都只是分隔符,而,printf(%d,%d,%d,(a,b,c),b,c);,-,这里,(,a,b,c),中的,是运算符,逗号运算符和逗号表达式,选择题,:,下面符合,C,语言语法的赋值表达式是,(),。,A)d=9+e+f=d+9 B)d=9+e,f=d+9,C)d=(9+e,e+,d+9)D)d=9+e+=d+7,关系运算符和表达式,一、关系运算符及优先级别,比较两个量的运算符称为关系运算符。在语言中有以下关系运算符:,小于,,大于,=,大于或等于,=,等于,!=,不等于,关系运算符的优先级:,(1),、=、c-d,x3/2,a+1(bc),a!=(c=d),等也都是合法的关系表达式。,二、关系表达式,关系运算符和表达式,条件运算符为,?:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成,条件表达式的一般形式为,:,表达式1?表达式2:表达式3,其求值规则如右图:,例如条件语句:,if(ab)max=a;,else max=b;,可用条件表达式写为:,max=(ab)?a:b;,条件运算符和条件表达式,使用条件表达式时,还应注意以下几点:,1.条件运算符的运算优先级,低于关系运算符和算术运算符,高于赋值符。,因此,max=(ab)?a:b,可以去掉括号而写为,max=ab?a:b,2.,条件运算符?:是一对运算符,不能分开单独使用。,3.条件运算符的,结合方向是自右至左。,例如:,ab?a:cd?c:d,应理解为,ab?a:(cd?c:d),这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条,件表达式。,条件运算符和条件表达式,例,main(),char,ch,;,scanf(%c,&,ch,);,ch,=(,ch,=A&,ch,=A&,ch,b&cd,等价于(,ab)&(cd),!b=c|da,等价于(!,b)=c)|(dc&x+yc)&(x+y)0&42,由于50为真,42也为真,其结果也为“真”,表达式的值为1。,(2)或运算|,参与运算的两个量只要有一个为真(非0),结果就为真(值为1)。两个量都为假(值为0)时,结果为假(值为0)。,例如:50|58,结果也就为真(值为1)。,逻辑运算符和表达式,(,3)非运算!,参与运算量为真(非0)时,结果为假(值为0);参与运算量为假(值为0)时,结果为真(值为1)。,例如:!(50)的结果为假(值为0)。,注意:,语言在逻辑运算值时,以“1”代表“真”,“0”代表“假”。在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。语言中的“0”只有4个分别是:0,0.0,0,,NULL。,例如:5&3 的值为“真”,即为1。,又如:5|0的值为“真”,即为1。,逻辑运算符和表达式,二、逻辑表达式,逻辑表达式的一般形式为:,表达式&或|表达式,!表达式,逻辑表达式的值:各种逻辑运算的最后值,,以“1”和“0”,分别代表“真”和“假”。,例如:,char c=k;,int,i=1,j=2,k=3;,printf(%d n,i=5,printf(%d n,x+y|i+j+k);,逻辑运算符和表达式,说明,:,在逻辑表达式的求解中,并不是所有的逻辑运算符都执行,只有在必须执行下一个逻辑运算符才能求出表达式的值时,才执行下一个运算符。,(1),表达式1&表达式2,a+b0&b+,如果:表达式1的值是0,无论表达式2的值是什么,整个表达式的值都为0,因此表达式2就不计算了。,(2),表达式1|表达式2,a+b0|b+,如果:表达式1的值是1,无论表达式2的值是什么,整个表达式的值都为1,因此表达式2就不计算了。,逻辑运算符和表达式,判断题:,表达式,!,x,等价于,x!=1,表达式,(,z=0,(x=2)|(z=1),z),的值是,1,填空题:,执行表达式,(,z=0,(x=2)|(z=1),z),后,变量,z,的值是,逻辑运算符和表达式,0,选择题1,:,设,x,t,均为,int,型变量,则执行以下语句后,,t,的值是().,x=10;t=x,A),不定值,B)10 C)1 D)0,选择题2,:,设,x,y,z,t,均为,int,型变量,则执行以下语句后,,t,的值是().,x=y=z=1;t=+x|+y,A),不定值,B)2 C)1 D)0,逻辑运算符和表达式,选择题3,:,设有整型变量,a,b,c,其中,a,b,的值分别为,10,与,20,计算表达式,“,c=(a%2=0)?a:b”,后,c,的值为_,A,、,0 B,、,5 C,、,10 D,、,20,位运算,进行,二进制位的运算。,运 算 符 含 义,&,按位与,|,按位或,按位异或,(一目运算符)按位取反,右移运算符,位运算符和位运算,说明:,位运算符中除了,以外,均为二目(元)运算符,即要求两侧各有一个运算量。,高于关系运算“,=”,底于算术运算符“+,-”,&底于关系运算“=,!=”,高于逻辑运算符“&”,运算量,只能是整型或字符型数据,不能为实型数据。,高,底,一、“,按位与”运算符(,&,),参与运算的两个数据,按二进制,位,进行“与”运算。,运算规则:相应位都为,1,时,该位相与的结果为,1,,否则为,0,,即,0&0=0 1&0=0,0&1=0,1&1=1,例如:,3&5 3=0 0 0 0 0 0,1,1,&,5=0 0 0 0 0,1,0,1,0 0 0 0 0 0 0,1,值为,1,例如:,(-3)&(-5),先用补码表示,然后运算。,(,-3)=1 1 1 1 1 1 0 1,&,(-5)=1 1 1 1 1 0 1 1,1 1 1 1 1 0 0 1,位运算符和位运算,用途,:,清零:用,0,去“与”某一位,使,该位清零,。如想将一个单元清零,即使其全部二进制位为,0,,只要找一个二进制数,其中各个位符合以下条件:原来数中为,1,的位,新数中相应位为,0,,然后使二者进行,&,运算 即可。,例如:使低,4,位为,01 1 0 1,1 0 0 1,&,1 1 1 1,0 0 0 0,1 1 0 1,0 0 0 0,低4,位为,0,保留一个数中的某些位。用,1,去“与”某一位,,保留该位,。,如:保留低,4,位,1 0 1 0,1 1 0 0,&,0 0 0 0,1 1 1 1,0 0 0 0,1 1 0 0,保留低,4,位,位运算符和位运算,保留其中某些位,将它与这些位为,1,的数作“与”运算。,例如:有一数,01010100,,想保留其左起的第,3、4、5、7、8,位,,0 1,0 1 0,1,0 0,&,0 0,1 1 1,0,1 1,0 0,0 1 0,0,0 0,计算机中的控制字各个位表示某些设备的状态,状态发生变化,各个位通过,位运算,改变数值。,位运算符和位运算,二、,按位或运算符(,|,),两个数的相应位,按位或,(1),运算规则:相应位只要有一个为,1,,该位相或的结果就为,1,,否则为,0,即,0|0=0,1|0=1,0|1=1 1|1=1,例如:,1 1,0,1 1 0 0 1,|,0 0,0,0 1 1 1 1,1 1,0,1 1 1 1 1,(2),用途:,用,1,去与某些位“或”,,使某些位为,1,。例如:,1 1 0 1,1 0 0 1,|,0 0 0 0,1 1 1 1,1 1 0 1,1 1 1 1,低,4,位为,1,用,0,去与某些位“或”,,保留原位,。,例如:上例中 前,4,位保留原位,位运算符和位运算,三、,按位异或运算符(,),两个数的相应位按位异或,异或,判断两个相应的位值是否为,异,异,则结果为,1,,否则为,0,运算规则,:,相应位的位值不同时(相异),作,或,的运算。,即,0 0=0,1 0=1,0 1=1,1 1=0,例如:,1 1,0,1,1,0 0,1,0 0,0,0,1,1 1,1,1 1,0,1,0,1 1,0,用途,:,用,1,去与某些位“异或”,使,特定位翻转。,0 1 1 1,1 0 1 0,0 0 0 0,1 1 1 1,0 1 1 1,0 1 0 1,用,0,去与某些位异或,保留原值。,如,上例中前,4,位用,0,去异或,保留原值,0111,位运算符和位运算,对一个二进制数,按位取反,(,0 1,,,1 0,),例如:,0 0 0 1 1 0 0 1,1 1 1 0 0 1 1 0,又如:若一个整数,a,为16,位,要使,a,最低一位为,0,,可以用,a=a&,0177776,;(,常量与,a,的字长有关,),八进制数,177776,即二进制数,1111111111111110,,适于,16,位计算机系统,对于,32,位计算机系统,常量则应该用,037777777776,(八进制),这样改动移植性差。最好是用表达式:,a=a&1,;,(,与,a,的字长无关),其中:,1=(0000000000000001)=111111111111111,0,四、按位“取反”运算符(,),位运算符和位运算,将一个二进制数的各位全部左移若干位,,右端空位补,0,,高位左移后溢出,舍去不起作用。,例如:,a=a 2;(,左移二位,),若,a=15,a,二进制数为,0 0,0 0 1 1 1 1,a,左移,2,位为,0 0 1 1 1 1,0 0,其值为,60,。,左移,2,位,相当于 乘以,2,2,=4,,,但此结论,只适用于左移时被溢出舍弃的高位中不包含,1,的情况。,(见下表),a,的值,a,的二进制形式,a 1,a2,64,01000000,0 10000000,01 00000000,127,01111111,0 11111110,01 11111100,五、,(右移运算符),将一个二进制数的各位全部右移若干位,移到右端的低位被舍去。,无符号数,,高位补,0,。,有符号数,,,正数,(符号位为,0,)左边移入,0,,,负数,则取决于所用的计算机系统,有“,逻辑右移,”(移入,0,)和“,算术右移,”(正数移入,0,,负数移入,1,),称为,符号位扩张,。,(,Turbo C,采用算术右移),例如:,a=a 2;(,右移二位,),,若,a=016,a,二进制数为,0 0 0 0 1 1,1 1,,,a,右移二位为,0 0,0 0 0 0 1 1,a:100101111110110,1,a1:,0,100101111110110(,逻辑右移),a1:,1,100101111110110(,算术右移),位运算符和位运算,位运算符与赋值运算符可以组合成复合赋值运算符,位运算赋值运算符。,如:,&=,|=,=,=,=2,相当于,a=a2,七、位运算赋值运算符,位运算符和位运算,若,a,是整型变量,表达式,(,aa),等于,.,A,、,a B,、,1 C,、,0,D,、,2,例:,位运算符和位运算,小 测 验,1.,一个程序是从,_,函数开始执行的。,2.,一个,C,源程序中的基本单位是,_,。,3.,一个,C,语言程序是由,_,组成。,4.,一个,C,源程序中至少应包括一个,_,。,5.,写出下面不合法的用户标识符,_,float,b-a,_123,p_o,1ao,temp,long,_A,6.,写出下面不合法的整型常数是,_,160,,,-01,,,0668,,,011 ,0,x,01a,-0 xffff,-0 x48aa,3.4E2,6.,写出下面不合法的浮点数是,_,160.,e3,123,2e4.5,.e5,1e3,main(),函数,1,个或多个函数,1个,main(),函数,float,b-a,1ao,long,0668,0,x,01a,3.4E2,e3,123,2e4.5,.e5,8.,写出下面不合法的字符常量是,。,c,W,011,xab,9.,写出下面不正确的八进制数或十六进制数是,_。,016,0,abc,010,0a123,0 xa123,10.,写出下面不正确的字符串常量是,_,。,abc,12.12,0,11.,在,C,语言中要求操作对象必须是整型的运算符是,_,。,12.,若有代数式,3,ae/bc,,则,C,语言表达式是,_,。,13.,若,int a,b;,unsigned,int,w=5;,求:,(1),表达式,w+=-2,中的,w,值。,(2),表达式,a+=a-=(b=4)*(a=3),中的,a,和,b,值。,c,0,abc,0a123,abc,3*,a*e/(b*c),%,a=-18,b=4,w=3,小 测 验,.设,int,x=17,y=5;,执行语句,x+=-x%-y,后,x,的值为,。,.设,int,x=17,y=5;,执行语句,x%=x+/-y,后,x,的值为,。,16.,若,int,num=7,sum;,下面三个语句运行后的,sum,和,num,值。,sum=num+;sum+;+num;,17.,若,int a=8;,float x=2.5,y=4.7;,计算表达式的值:,x+a%3*(int)(x+y)%2/4,18.,若,int b=7;,float a=2.5,c=4.7;,计算表达式,a+(int)(b/3*(int)a+c/2)%4,16,2,8 ,9,2.5,4.5,小 测 验,展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




第1讲C语言基础.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/12783073.html