
C语言数据运算实用教案.ppt
23页算术(suànshù)运算•算术运算,也叫数值(shùzí)运算,是程序设计中使用最多的一种数据运算•1.算术运算符•2.算术表达式第1页/共22页第一页,共23页赋值运算(yùnsuàn)•①赋值运算符“=”是一种二元运算符,必须连接(liánjiē)两个运算量其左边只能是变量或数组元素,不能是常量或表达式;右边则可以是任何表达式例如,x=y+2,x=x+1等是允许的,而y+2=x,5=x等是错误的•②赋值运算符除了“=”,还有另外10种复合赋值运算符它们由赋值号“=”和另外一个二元运算符组成,具有计算和赋值双重功能这10种复合赋值运算符是+=、–=、*=、/=、%=、&=、|=、^=、<<=和>>=其中,前5种复合赋值运算符具有算术运算和赋值的双重功能第2页/共22页第二页,共23页逗号运算(yùnsuàn)(顺序运算(yùnsuàn))•逗号运算符的作用是连接多个数据项,从而能将它们作为一个整体来处理前面介绍的用一个类型关键字定义多个变量时,各变量之间要用逗号隔开•在printf()函数中多个输出(shūchū)项之间用逗号隔开,在scanf()函数中多个输入项之间用逗号隔开等,目的都是将多个变量、输出(shūchū)项或输入项视为一个整体。
本节介绍用逗号运算符将多个表达式作为一个整体时的处理原则第3页/共22页第三页,共23页关系(guānxì)运算和逻辑运算•在程序设计的实践中,关系运算和逻辑运算主要用来进行条件(tiáojiàn)判断,以便程序能按照指定的流程运行关系运算和逻辑运算通常用在第4章要介绍的if语句、switch语句、for语句或while语句中•1.关系运算符和关系表达式•2.逻辑运算符和逻辑表达式第4页/共22页第四页,共23页测试数据长度(chángdù)运算符sizeof•C语言并不规定各种类型的数据占用多大的存储空间,同一类型的数据在不同的宿主机上可能占用不同的存储空间,为此,C语言提供了测试数据长度运算符sizeof,以测试各种数据类型的长度,它的一般格式如下:•sizeof(exp)•其功能(gōngnéng)是给出exp所占用的内存字节数其中,exp可以是类型关键字、变量或表达式例如:sizeof(double),sizeof(x),sizeof(a+b),sizeof(3*1.46/7.28)等第5页/共22页第五页,共23页位操作•C语言是介于汇编语言和高级语言之间的一种中级语言,它综合了高级语言的要素和汇编语言的机能,可以实现汇编语言位操作的功能。
所谓位操作,是对字节或字节内部的二进制位进行(jìnxíng)测试、设置、移位或逻辑运算•位操作经常应用于设备驱动程序中,如调制解调器驱动程序中用于屏蔽某些位,实现奇偶校验;在磁盘文件管理中如果希望文件不可读,可用密码子程序将文件中的字符逐位取反;有些C语言编译系统用左移位实现乘2运算,用右移位实现除2运算,其速度非常快第6页/共22页第六页,共23页数学(shùxué)函数•C语言计算能力不强,但C语言编译系统在标题文件
本章(běnzhānɡ)总结•本章重点是在理解各种运算符的优先级和结合性的基础上,正确构造算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式,并掌握各种各类表达式的求值规则•初步掌握简单的位操作及测试数据长度运算符的应用•本章的难点是:算术表达式和赋值表达式中的自动类型转换和强制(qiángzhì)类型转换规则;++和––运算符在表达式中的计算规则;复杂逻辑表达式的计算规则第8页/共22页第八页,共23页本章(běnzhānɡ)习题•一、选择题•1.C语言中要求运算量必须是整型的运算符是_____•A.+B./C.%D.–•2.在C语言中,不同类型的数据混合运算时,先要转换成同一类型,然后进行计算设一表达式中含有int、long、unsigned和char类型的常数和变量(biànliàng),则表达式的最后运算结果是①这四种类型的转换规律是②•①A.intB.charC.unsignedD.long•②A.int→unsigned→long→charB.char→int→long→unsigned•C.char→int→unsigned→longD.char→unsigned→long→int•3.a、b均为整数且b≠0,则表达式a/b*b+a%b的值为______。
•A.aB.b•C.a被b除的整数部分D.a被b除商的整数部分第9页/共22页第九页,共23页本章(běnzhānɡ)习题•4.a、b均为整数(zhěngshù)且b≠0,则表达式a–a/b*b的值为______•A.0B.a•C.a被b除的余数部分D.a被b除商的整数(zhěngshù)部分•5.下列表达式中,值为0的是____•A.3%5B.3/5.0C.3/5D.3<5第10页/共22页第十页,共23页本章(běnzhānɡ)习题•6.下列语句中符合C语言语法的语句是______•A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=7+b,b++,a+7;D.a=7=b,c=a+7;•7.表达式18/4*sqrt(4.0)/8的数据类型为____。
•A.intB.floatC.doubleD. 不确定•8.若变量已正确(zhèngquè)定义且k的值是4,执行表达式j=k––后,j,k的值是____•A.j=4,k=4B.j=4,k=3C.j=3,k=4D.j=3,k=3第11页/共22页第十一页,共23页本章(běnzhānɡ)习题•9.设intx=10,x+=3+x%(–3),则x=______•A.14B.15C.11D.12•10.表达式(int)(3.0/2.0)的值是____•A.1.5B.1.0C.1D.0•11.设a为int型变量(biànliàng),则执行以下语句后,a的值为____•a=10;a+=a-=a-a;•A.10B.20C.40D.30第12页/共22页第十二页,共23页。
本章(běnzhānɡ)习题•12.设变量t为int型,下列(xiàliè)选项中,不正确的赋值语句是____•A.++t;B.n1=(n2=(n3=0));C.k=i==1;D.a=b+c=1;•13.设floatm=4.0,n=4.0;使m为10.0的表达式是____•A.m–=n*2.5B.m/=n+9C.m*=n–6D.m+=n+2•14.C语句x*=y+2;还可以写成____•A.x=x*y+2;B.x=2+y*x;C.x=x*(y+2);D.x=y+2*x;第13页/共22页第十三页,共23页本章(běnzhānɡ)习题•15.若变量已正确定义,要将a和b中的数进行交换,则下列(xiàliè)不正确的语句组是____•A.a=a+b,b=a–b,a=a–b;B.t=a,a=b,b=t;•C.a=t;t=b;b=a;D.t=b;b=a;a=t;•16.设有如下变量定义:inta,b,i=4;doublex=1.42,y;则以下符合C语言语法的表达式是____。
•A.a+=a–=(b=4)*(a=3)B.x%(–3)•C.a=a*3=2D.y=float(i)•17.设已定义:intk=7,x=12;下列(xiàliè)表达式中,计算结果为0的是____•A.x%=(k%=5)B.x%=(k–k%5)C.x%=k–k%5D.(x%=k)–(k%=5)第14页/共22页第十四页,共23页本章(běnzhānɡ)习题•18.若已定义x和y为double型变量(biànliàng),则表达式:x=1,y=x+3/2的值是____•A.1B.2C.2.0D.2.5•19.设intc=5和inta,a=2+(c+=c++,c+8,++c),则a的值为______•A.15B.14C.13D.16•20.设inta=7,b=8;则printf("%d,%d",(a+b,a),(b,a+b));的输出是____。
•A.7,15B.8,15C.15,7D.出错第15页/共22页第十五页,共23页本章(běnzhānɡ)习题•21.设inta=3;则表达式a<1&&––a>1的运算结果和a的值分别是___•A.0和2B.0和3C.1和2D.1和3•22.为表示(biǎoshì)关系x≥y≥z,应使用的C语言表达式是______•A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.x>=y>=zD.(x>=y)&(y>=z)•23.已知intx=43,y=0;charch='A';则表达式(x>=y&&ch<'B'&&!y)的值是____•A.0B.语法错C.1D.–1第16页/共22页第十六页,共23页本章(běnzhānɡ)习题•24.为表示(biǎoshì)“a和b都大于0”,应使用的C语言表达式是____。
•A.(a>0)&&(b>0)B.a&&bC.(a>0)||(b>0)D.(a>0)|(b>0)•25.当c的值不为0时,下列选项中能正确将c的值既赋给变量a又赋给变量b的是____•A.c=b=aB.(a=c)||(b=c)C.(a=c)&&(b=c)D.a=c=b•26.设a为整型变量,下列不能正确表达数学关系:1010&&a<15D.!(a<=10)&&!(a>=15)第17页/共22页第十七页,共23页本章(běnzhānɡ)习题•27.下面的程序(chéngxù)输出为______•main()•{inta=-1,b=4,k;•k=(a++<=0)&&(!(b--<=0));•printf("%d%d%d",k,a,b);•}•A.003B.012C.103D.112•28.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下表达式中,值为0的是____。
•A.a&&bB.a<=bC.a||b+c&&b–cD.!((a>(int)(x–y)的值为______。
•A.2B.4C.1D.3•33.设intb=2;,表达式(b<<2)/(b>>1)的值是____•A.0B.2C.4D.8•34.sizeof(double)是______•A.一种函数调用B.一个双精度表达式•C.一个整型表达式D.一个不合法的表达式第19页/共22页第十九页,共23页本章(běnzhānɡ)习题•二、填空题•1.设有以下(yǐxià)定义,并已赋确定的值•charch;inti;floatf;doubled;•则表达式ch*i+d–f的数据类型为________•2.设有inta=11;,则表达式(a++*1/5)的值为________•3.下列程序的输出结果是________•main()•{doubled=3.2;•inta=1.2,b;•b=(a+3.8)/5.0;•printf("%f\n",d*b);•}第20页/共22页第二十页,共23页。
本章(běnzhānɡ)习题•三、编程题•1.编写程序,其功能是:从键盘输入长方体三边边长x,y,z分别为2.5,3.5,4.5,然后求其表面积a和体积v•2.编写程序,其功能是:从键盘输入正方形的边长a,计算( jìsuàn)并输出该正方形的内接圆的面积s和周长c第21页/共22页第二十一页,共23页感谢您的欣赏(xīnshǎng)!第22页/共22页第二十二页,共23页内容(nèiróng)总结算术运算(yùn suàn)cos(x) x的余弦,值域为[–1,1]tan(x) x的正切atan(x) x的反正切,定义域为[–1,1]sinh(x) x的双曲正弦,即(ex–e–x)/2cosh(x) x的双曲余弦,即(ex+e–x)/2tanh(x) x的双曲正切,即(ex–e–x)/(ex+e–x)第二十三页,共23页。












