C程序设计教程第2章.ppt_第1页
C程序设计教程第2章.ppt_第2页
C程序设计教程第2章.ppt_第3页
C程序设计教程第2章.ppt_第4页
C程序设计教程第2章.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

第2章数据类型、运算符和表达式,本章主要内容:2.1基本符号和标识符2.2基本数据类型2.3常量与变量2.4数据的输出2.5运算符2.6表达式,2.1基本符号和标识符,如同自然语言一样,程序设计语言也有基本符号,再由基本符号按一定的构词规则构成基本词汇,最后按语言的句法由基本词汇组成源程序。C语言的基本符号和标识符如下。,2.1.1基本符号,基本符号即字符集,是高级语言的编译系统所能识别的字母、数字和特殊符号。每种高级语言都有自己特定的基本符号。C语言的基本符号由一下七类:数字:09十个数字。英文字母:大写字母26个(AZ);小写字母26个(az)括号:(),运算符:+-*/=、/*等价于x=x+1*/x*=u+v;/*等价于x=x*(u+v),括号不能省略*/a+=a-=b+2;/*等价于a=a+(a=a-(b+2),括号不能省略*/说明:用标记一个双目运算符(、*、),复合赋值运算:x=e的等效表达式为:x=x(e)当e时一个复杂表达式时,等效表达式的括号时必须的,不能省略。赋值运算符和所有复合赋值运算符的优先级全部相同,高于逗号运算符,低于其它所有运算符,并且它们的结合性都是“自左向右”的。,2.5.2算术运算符,(1)算术运算符算术运算与数学的数值运算很相似,是C/C+中最简单和最容易理解的运算符。算术运算按运算分量划分,可分为单目运算符和双目运算符两类:单目运算符:+(取正)、(取负)双目运算符:+加法-减法*乘法/除法%求余,2.5.2算术运算符,说明:尽管算术运算符与数学的数值运算很相近,但是还是有一些差别,使用时要注意以下几点。(1)“/”为除法运算符。当除数和被除数均为整数时,结果仍为整数,商向下取整。例如9/5结果为1,10/5结果为2,5/9结果为0。若除数和被除数中有一个时浮点数,则与算术中的除法相同。例如9/5.0、9.0/5、9.0/5.0的结果均为1.8。(2)“”为求余运算。与数学中的求余运算相同,要求两个操作数都是整数。求与运算结果的符号与被除数的符号相同。例如32的结果为1,-32的结果为-1;3-2的结果为1。,2.5.2算术运算符,【例2.13】使用printf函数显示表达式的值。#include“stdio.h”voidmain()printf(“%d,%d,%dn”,9/5,10/5,5/9);printf(“%f,%f,%fn”,9/5.0,9.0/5,9.0/5.0);printf(“%d,%d,%dn”,3%2,-3%2,3%-2);,2.5.2算术运算符,(2)算术运算符的优先级算术运算符的优先级与数学中的算术运算符基本行同,即先乘除后加减。求余运算符的优先级与乘除相同。括号的优先级最高,即右括号先算括号内的,然后计算括号外的。,2.5.2算术运算符,(3)算术运算符的结合性运算符的结合性是指如果一个操作数左边和右边的两个运算符的优先级相同,应该优先计算的操作符。例如:x+y-z操作数y左右的运算符级别相同,应该先算y-z,还是应该先算x+y呢?C语言规定双目算术运算的结合性是“自左至右”,也就是说,y先与左边结合,再与右边结合。因此先算x+y,然后用x+y的结果减z。双目运算的结合性与数学运算的规则相同。,2.5.3关系运算符,(关系运算就是比较两个数值大小的运算,比较两个数值大小的运算符就是关系运算符。一共有6个关系运算符,如表2-7所示。表2-7关系运算符运算符=!=功能小于小于等于大于大于等于等于不等于在使用关系运算符时要注意以下几点:(1)6个关系运算符中的“=”和“!=”的优先级小于其它4个运算符。(2)关系运算符的结合方向是“自左至右”。(3)关系运算符的优先级低于算术运算的优先级。当多种运算符在一个表达式中混合使用时,要注意运算符的优先级,最好使用圆括号明确优先级的顺序。,2.5.3关系运算符,【例2.14】关系运算符“”和赋值运算符“”的区别。#includestdio.hvoidmain()inta,b,c1,c2;a=3;b=3;c1=(a=b);c2=(a=b);printf(%d,%dn,c1,c2);,在程序c1=(a=b)中的(a=b),表示将b的值赋值给a,然后再将表达式(a=b)的值“3”赋给c1,因此c1的值是3。在程序c2=(a=b)中的(a=b),表示比较a和b是否相等,这是关系表达式。关系表达式的结果是“真”、“假”值,在C语言中,用“1”表示结果为真,用“0”表示结果为假。此处a和b的值都为3,所以(a=b)的值为1,并将结果赋值给c2。因此程序运行结果为:3,1。,2.5.3关系运算符,【例2.15】算术运算符和关系运算符在一个表达式中混合使用。本例说明在一个表达式中即有算术运算符,又有关系运算符,如何设计更清晰的表达式。01#includestdio.h02voidmain()0304inta,b,c;05booli,j;06a=2;b=3;c=4;07i=(a=b+2);13,程序说明:(1)该程序在VC+6.0中调试。语句05中变量i,j定义为bool布尔型变量;如果定义为int整型变量,编译时出现警告错误。(2)语句07表达式i=(a=b+2中的“+”的优先级高于“=”,先计算(c+2)的值,结果是6;再计算(b+2)的值,结果是5;然后判断6=5,结果是1(为真);是输出窗口中的第五个值“1”。(8)在C语言的程序设计中,提倡使用圆括号来明确地区分运算的先后顺序,以避免二义性,使程序产生不正确的结果。,2.5.4逻辑运算符,逻辑运算用于判断分析,逻辑运算的操作数和运算结果均为逻辑值。一共有3个逻辑运算符,如表2-8所示。,2.5.4逻辑运算符,C语言系统对于任何非0的值都认为是逻辑真,仅将0认为是逻辑假。例如,305booli,j;06a=2;b=3;c=4;07i=(a+6)(8-(!0);09printf(%2d,%2dn,i,j);10,2.5.5条件运算符,条件运算是C语言中唯一一个三目运算,条件运算的运算符为(?:),需要三个操作数。条件运算的语法格式为:表达式1?表达式2:表达式3条件运算的执行过程是:(1)首先计算表达式1的值。(2)如果表达式1的值为非0(真),则计算表达式2,并以表达式2为条件运算的结果,不在计算表达式3。(3)如果表达式1的值为0(假),则计算表达式3,并以表达式3为条件运算的结果,不在计算表达式2。条件运算符(?:)的优先级高于赋值运算符,低于逻辑运算符,也低于关系运算符和算术运算符。条件运算符的结合性为“自右向左”。,2.5.5条件运算符,条件运算是C语言中唯一一个三目运算,条件运算的运算符为(?:),需要三个操作数。条件运算的语法格式为:表达式1?表达式2:表达式3条件运算的执行过程是:(1)首先计算表达式1的值。(2)如果表达式1的值为非0(真),则计算表达式2,并以表达式2为条件运算的结果,不在计算表达式3。(3)如果表达式1的值为0(假),则计算表达式3,并以表达式3为条件运算的结果,不在计算表达式2。条件运算符(?:)的优先级高于赋值运算符,低于逻辑运算符,也低于关系运算符和算术运算符。条件运算符的结合性为“自右向左”。,2.5.5条件运算符,条件运算是C语言中唯一一个三目运算,条件运算的运算符为(?:),需要三个操作数。条件运算的语法格式为:表达式1?表达式2:表达式3条件运算的执行过程是:(1)首先计算表达式1的值

温馨提示

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

评论

0/150

提交评论