第3章数据运算学习资料_第1页
第3章数据运算学习资料_第2页
第3章数据运算学习资料_第3页
第3章数据运算学习资料_第4页
第3章数据运算学习资料_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章数据运算3内容提要本章主要介绍C语言中的各种表达式的构造方法及其求值规则。通过本章学习,应掌握数值运算、赋值运算、逗号运算、关系运算、逻辑运算及简单的位运算的一般规则,这些运算贯穿在整个程序设计的过程中。算术运算算术运算,也叫数值运算,是程序设计中使用最多的一种数据运算1.

算术运算符2.

算术表达式赋值运算①赋值运算符“=”是一种二元运算符,必须连接两个运算量。其左边只能是变量或数组元素,不能是常量或表达式;右边则可以是任何表达式。例如,x=y+2,x=x+1等是允许的,而y+2=x,5=x等是错误的。②赋值运算符除了“=”,还有另外10种复合赋值运算符。它们由赋值号“=”和另外一个二元运算符组成,具有计算和赋值双重功能。这10种复合赋值运算符是+=、–=、*=、/=、%=、&=、|=、^=、<<=和>>=。其中,前5种复合赋值运算符具有算术运算和赋值的双重功能。关系运算和逻辑运算在程序设计的实践中,关系运算和逻辑运算主要用来进行条件判断,以便程序能按照指定的流程运行。关系运算和逻辑运算通常用在第4章要介绍的if语句、switch语句、for语句或while语句中1.

关系运算符和关系表达式2.

逻辑运算符和逻辑表达式测试数据长度运算符sizeofC语言并不规定各种类型的数据占用多大的存储空间,同一类型的数据在不同的宿主机上可能占用不同的存储空间,为此,C语言提供了测试数据长度运算符sizeof,以测试各种数据类型的长度,它的一般格式如下:

sizeof(exp)其功能是给出exp所占用的内存字节数。其中,exp可以是类型关键字、变量或表达式。例如:sizeof(double),sizeof(x),sizeof(a+b),sizeof(3*1.46/7.28)等。位操作C语言是介于汇编语言和高级语言之间的一种中级语言,它综合了高级语言的要素和汇编语言的机能,可以实现汇编语言位操作的功能。所谓位操作,是对字节或字节内部的二进制位进行测试、设置、移位或逻辑运算。位操作经常应用于设备驱动程序中,如调制解调器驱动程序中用于屏蔽某些位,实现奇偶校验;在磁盘文件管理中如果希望文件不可读,可用密码子程序将文件中的字符逐位取反;有些C语言编译系统用左移位实现乘2运算,用右移位实现除2运算,其速度非常快。数学函数C语言计算能力不强,但C语言编译系统在标题文件<math.h>中定义了众多的数学函数。当需要调用这些数学函数时,要用“#include<math.h>”命令行包含该标题文件。下面列出的函数中,自变量x和y为double型,n为int型,所有的函数值均为double型。三角函数的自变量以弧度为单位,反三角函数的函数值以弧度为单位。

sin(x) x的正弦,值域为[–1,1]cos(x) x的余弦,值域为[–1,1]tan(x) x的正切

asin(x) x的反正弦,定义域为[–1,1],值域为[–π/2,π/2]acos(x) x的反余弦,定义域为[–1,1],值域为[0,π]atan(x) x的反正切,定义域为[–1,1]atan2(y,x) y/x的反正切,y/x的取值范围为[–1,1]sinh(x) x的双曲正弦,即(ex–e–x)/2cosh(x) x的双曲余弦,即(ex+e–x)/2tanh(x) x的双曲正切,即(ex–e–x)/(ex+e–x)本章总结本章重点是在理解各种运算符的优先级和结合性的基础上,正确构造算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式,并掌握各种各类表达式的求值规则初步掌握简单的位操作及测试数据长度运算符的应用。本章的难点是:算术表达式和赋值表达式中的自动类型转换和强制类型转换规则;++和––运算符在表达式中的计算规则;复杂逻辑表达式的计算规则。本章习题一、选择题1.C语言中要求运算量必须是整型的运算符是_____。A.+B./C.%D.–2.在C语言中,不同类型的数据混合运算时,先要转换成同一类型,然后进行计算。设一表达式中含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是

①。这四种类型的转换规律是

②。①A.intB.charC.unsignedD.long②A.int→unsigned→long→charB.char→int→long→unsignedC.char→int→unsigned→longD.char→unsigned→long→int3.a、b均为整数且b≠0,则表达式a/b*b+a%b的值为______。A.aB.bC.a被b除的整数部分D.a被b除商的整数部分本章习题4.a、b均为整数且b≠0,则表达式a–a/b*b的值为______。A.0B.aC.a被b除的余数部分D.a被b除商的整数部分5.下列表达式中,值为0的是____。A.3%5B.3/5.0C.3/5D.3<5本章习题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.若变量已正确定义且k的值是4,执行表达式j=k––后,j,k的值是____。A.j=4,k=4B.j=4,k=3C.j=3,k=4D.j=3,k=3本章习题9.设intx=10,x+=3+x%(–3),则x=______。A.14B.15C.11D.1210.表达式(int)(3.0/2.0)的值是____。A.1.5B.1.0C.1D.011.设a为int型变量,则执行以下语句后,a的值为____。

a=10;a+=a-=a-a;A.10B.20C.40D.30本章习题12.设变量t为int型,下列选项中,不正确的赋值语句是____。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+214.C语句x*=y+2;还可以写成____。A.x=x*y+2;B.x=2+y*x;C.x=x*(y+2);D.x=y+2*x;本章习题15.若变量已正确定义,要将a和b中的数进行交换,则下列不正确的语句组是____。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;下列表达式中,计算结果为0的是____。A.x%=(k%=5)B.x%=(k–k%5)C.x%=k–k%5D.(x%=k)–(k%=5)本章习题18.若已定义x和y为double型变量,则表达式:x=1,y=x+3/2的值是____。A.1B.2C.2.0D.2.519.设intc=5和inta,a=2+(c+=c++,c+8,++c),则a的值为______。A.15B.14C.13D.1620.设inta=7,b=8;则printf("%d,%d",(a+b,a),(b,a+b));的输出是____。A.7,15B.8,15C.15,7D.出错本章习题21.设inta=3;则表达式a<1&&––a>1的运算结果和a的值分别是___。A.0和2B.0和3C.1和2D.1和322.为表示关系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本章习题24.为表示“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=b26.设a为整型变量,下列不能正确表达数学关系:10<a<15的C语言表达式是____。A.10<a<15B.a==11||a==12||a==13||a=14C.a>10&&a<15D.!(a<=10)&&!(a>=15)本章习题27.下面的程序输出为______。

main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d",k,a,b);}A.003B.012C.103D.11228.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下表达式中,值为0的是____。A.a&&bB.a<=bC.a||b+c&&b–cD.!((a<b)&&!c||1)29.表达式5&2||5|2的值是____。A.0B.1C.2D.3本章习题30.设inti=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值为______。A.0B.2C.1D.331.整型变量x和y的值相等、且为非0值,则以下选项中,结果为0的表达式是____。A.x||yB.x|yC.x&yD.x^y32.设inta=4,floatx=7.5,y=4.8,则表达式a+(int)((int)(x)+y)>>(int)(x–y)的值为______。A.2B.4C.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论