C语言程序设计课件.ppt
第3章 数 据 运 算3,内容提要,本章主要介绍C语言中的各种表达式的构造方法及其求值规则。 通过本章学习,应掌握数值运算、赋值运算、逗号运算、关系运算、逻辑运算及简单的位运算的一般规则,这些运算贯穿在整个程序设计的过程中。,算术运算,算术运算,也叫数值运算,是程序设计中使用最多的一种数据运算 1. 算术运算符 2. 算术表达式,赋值运算, 赋值运算符“”是一种二元运算符,必须连接两个运算量。其左边只能是变量或数组元素,不能是常量或表达式;右边则可以是任何表达式。例如,xy2,xx1等是允许的,而y2x,5x等是错误的。 赋值运算符除了“”,还有另外10种复合赋值运算符。它们由赋值号“”和另外一个二元运算符组成,具有计算和赋值双重功能。这10种复合赋值运算符是、 、*、/、、、|、、。其中,前5种复合赋值运算符具有算术运算和赋值的双重功能。,逗号运算(顺序运算),逗号运算符的作用是连接多个数据项,从而能将它们作为一个整体来处理。前面介绍的用一个类型关键字定义多个变量时,各变量之间要用逗号隔开。 在printf函数中多个输出项之间用逗号隔开,在scanf函数中多个输入项之间用逗号隔开等,目的都是将多个变量、输出项或输入项视为一个整体。本节介绍用逗号运算符将多个表达式作为一个整体时的处理原则。,关系运算和逻辑运算,在程序设计的实践中,关系运算和逻辑运算主要用来进行条件判断,以便程序能按照指定的流程运行。 关系运算和逻辑运算通常用在第4章要介绍的if语句、switch语句、for语句或while语句中 1. 关系运算符和关系表达式 2. 逻辑运算符和逻辑表达式,测试数据长度运算符sizeof,C语言并不规定各种类型的数据占用多大的存储空间,同一类型的数据在不同的宿主机上可能占用不同的存储空间,为此,C语言提供了测试数据长度运算符sizeof,以测试各种数据类型的长度,它的一般格式如下 sizeofexp 其功能是给出exp所占用的内存字节数。其中,exp可以是类型关键字、变量或表达式。例如 sizeofdouble,sizeofx,sizeofab,sizeof3*1.46/7.28等。,位操作,C语言是介于汇编语言和高级语言之间的一种中级语言,它综合了高级语言的要素和汇编语言的机能,可以实现汇编语言位操作的功能。所谓位操作,是对字节或字节内部的二进制位进行测试、设置、移位或逻辑运算。 位操作经常应用于设备驱动程序中,如调制解调器驱动程序中用于屏蔽某些位,实现奇偶校验;在磁盘文件管理中如果希望文件不可读,可用密码子程序将文件中的字符逐位取反;有些C语言编译系统用左移位实现乘2运算,用右移位实现除2运算,其速度非常快。,数学函数,C语言计算能力不强,但C语言编译系统在标题文件中定义了众多的数学函数。当需要调用这些数学函数时,要用“include ”命令行包含该标题文件。下面列出的函数中,自变量x和y为double型,n为int型,所有的函数值均为double型。三角函数的自变量以弧度为单位,反三角函数的函数值以弧度为单位。 sinx x的正弦,值域为1,1 cosx x的余弦,值域为1,1 tanx x的正切 asinx x的反正弦,定义域为1,1,值域为/2,/2 acosx x的反余弦,定义域为1,1,值域为0, atanx x的反正切,定义域为1,1 atan2y,x y/x的反正切,y/x的取值范围为1,1 sinhx x的双曲正弦,即x/2 coshx x的双曲余弦,即exex/2 tanhx x的双曲正切,即x/exex,本章总结,本章重点是在理解各种运算符的优先级和结合性的基础上,正确构造算术表达式、赋值表达式、逗号表达式、关系表达式、逻辑表达式,并掌握各种各类表达式的求值规则 初步掌握简单的位操作及测试数据长度运算符的应用。 本章的难点是算术表达式和赋值表达式中的自动类型转换和强制类型转换规则;和 运算符在表达式中的计算规则;复杂逻辑表达式的计算规则。,本章习题,一、选择题 1. C语言中要求运算量必须是整型的运算符是_。 A. B. / C. D. 2. 在C语言中,不同类型的数据混合运算时,先要转换成同一类型,然后进行计算。设一表达式中含有int、long、unsigned和char类型的常数和变量,则表达式的最后运算结果是 。这四种类型的转换规律是 。 A. int B. char C. unsigned D. long A. intunsignedlongchar B. charintlongunsigned C. charintunsignedlong D. charunsignedlongint 3. a、b均为整数且b0,则表达式a/b*bab的值为。 A. a B. b C. a被b除的整数部分 D. a被b除商的整数部分,本章习题,4. a、b均为整数且b0,则表达式aa/b*b的值为。 A. 0 B. a C. a被b除的余数部分 D. a被b除商的整数部分 5. 下列表达式中,值为0的是。 A. 35 B. 3/5.0 C. 3/5 D. 35,本章习题,6. 下列语句中符合C语言语法的语句是。 A. a7bca7; B. a7ba7; C. a7b,b,a7; D. a7b,ca7; 7. 表达式18/4*sqrt4.0/8的数据类型为。 A. int B. float C. double D. 不确定 8. 若变量已正确定义且k的值是4,执行表达式jk 后,j,k的值是。 A. j4,k4 B. j4,k3 C. j3,k4 D. j3,k3,本章习题,9. 设int x10,x3x3,则x。 A. 14 B. 15 C. 11 D. 12 10. 表达式int3.0/2.0的值是。 A. 1.5 B. 1.0 C. 1 D. 0 11. 设a为int型变量,则执行以下语句后,a的值为。 a10; aa-a-a; A. 10 B. 20 C. 40 D. 30,本章习题,12. 设变量t为int型,下列选项中,不正确的赋值语句是。 A. t; B. n1n2n30; C. ki1; D. abc1; 13. 设float m4.0, n4.0; 使m为10.0的表达式是。 A. m n*2.5 B. m/n9 C. m*n6 D. mn2 14. C语句x*y2;还可以写成。 A. xx*y2; B. x2y*x; C. xx*y2; D. xy2*x;,本章习题,15. 若变量已正确定义,要将a和b中的数进行交换,则下列不正确的语句组是。 A. aab, bab, aab; B. ta, ab, bt; C. at; tb; ba; D. tb; ba; at; 16. 设有如下变量定义int a,b,i4;double x1.42,y;则以下符合C语言语法的表达式是。 A. aab4*a3 B. x3 C. aa*32 D. yfloati 17. 设已定义int k7,x12; 下列表达式中,计算结果为0的是。 A. xk5 B. xkk5 C. xkk5 D. xk k5,本章习题,18. 若已定义x和y为double型变量,则表达式x1,yx3/2的值是。 A. 1 B. 2 C. 2.0 D. 2.5 19. 设int c5和int a,a2cc,c8,c,则a的值为。 A. 15 B. 14 C. 13 D. 16 20. 设 int a7,b8; 则printf“d,d“,ab,a,b,ab;的输出是。 A. 7,15 B. 8,15 C. 15,7 D. 出错,本章习题,21. 设int a3; 则表达式a1的运算结果和a的值分别是_。 A. 0和2 B. 0和3 C. 1和2 D. 1和3 22. 为表示关系xyz,应使用的C语言表达式是。 A. xy 则表达式xychBy的值是。 A. 0 B. 语法错 C. 1 D. 1,本章习题,24. 为表示“a和b都大于0”,应使用的C语言表达式是。 A. a0b0 B. ab C. a0b0 D. a0|b0 25. 当c的值不为0时,下列选项中能正确将c的值既赋给变量a又赋给变量b的是。 A. cba B. acbc C. acbc D. acb 26. 设a为整型变量,下列不能正确表达数学关系1010a15,本章习题,27. 下面的程序输出为。 main int a-1,b4,k; ka0 则以下表达式中,值为0的是。 A. ab B. ab C. abcbc D. abc1 29. 表达式525|2的值是。 A. 0 B. 1 C. 2 D. 3,本章习题,30. 设int i2,j1,k3,则表达式i,表达式b1的值是。 A. 0 B. 2 C. 4 D. 8 34. sizeofdouble是。 A. 一种函数调用 B. 一个双精度表达式 C. 一个整型表达式 D. 一个不合法的表达式,本章习题,二、填空题 1. 设有以下定义,并已赋确定的值 char ch; int i; float f; double d; 则表达式ch*idf的数据类型为。 2. 设有int a11;,则表达式a*1/5的值为。 3. 下列程序的输出结果是。 main double d3.2; int a1.2,b; ba3.8/5.0; printf“fn“,d*b; ,本章习题,三、编程题 1. 编写程序,其功能是从键盘输入长方体三边边长x,y,z分别为2.5,3.5,4.5,然后求其表面积a和体积v。 2. 编写程序,其功能是从键盘输入正方形的边长a,计算并输出该正方形的内接圆的面积s和周长c。,
如果觉得《C语言程序设计实现调制解调 C语言程序设计课件.ppt》对你有帮助,请点赞、收藏,并留下你的观点哦!