数据的运算与输入输出培训课件_第1页
数据的运算与输入输出培训课件_第2页
数据的运算与输入输出培训课件_第3页
数据的运算与输入输出培训课件_第4页
数据的运算与输入输出培训课件_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

数据的运算与输入输出数据的运算与输入输出1优选数据的运算与输入输出Ppt优选数据的运算与输入输出Ppt23.1运算符和表达式概述运算(即操作)是对数据的加工,被运算的对象——数据称为运算量或操作数。一个表达式包含一个或多个操作,操作的对象称为操作数,而操作本身是通过运算符(也称操作符)体现的。表达式:用来计算值的式子.一个表达式由运算符和运算对象组成.C语言运算符按其功能分类:算术运算符、关系运算符、逻辑运算符、逗号运算符、位运算符、赋值运算符等。运算对象:常量,变量,函数,表达式.C语言提供有丰富的运算符,构成多种表达式,主要有:算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式。

3.1运算符和表达式概述运算(即操作)是对数据的加工,被运算33.2算术运算符和算术表达式算术运算符1.基本算术运算符:+-*/%(求余)说明:(1)/(除运算):若参加运算的对象为两个整数,结果仍为整数.(向下取整,不进行四舍五入).若其中之一为负数,则结果视机器系统而定,但多数采用“向零取整”.(2)%(求余运算):要求参加运算的数据均为整数.3.2算术运算符和算术表达式42.自增自减运算符:使变量的值增加一个单位或减少一个单位。算符:++自加--自减用法:

++i;--i;前置运算:在使用i之前,先使i的值加1或减1.i++;i--;后置运算:先使用i的值,再使i的值加1或减1.例:inti=2,j;j=++i;j=i++;注::(1)++,--运算符只能用于变量,不能用于表达式.

例:++55++(a+b)++均为错误的表达式.2.自增自减运算符:使变量的值增加一个单位或减少一个单位。5(2)++和--的结合方向是自右至左,其优先级高于加、减、乘、除,与负号属同一优先级。例:intj=5,k;k=-j++;(3)前置和后置要使用正确。如果仅是为了对变量的值进行加1或减1,那么语句i++;与++i;效果一样,语句i--;与—i;效果一样。当自加和自减运算出现在表达式中时,前置和后置运算效果不同;(2)++和--的结合方向是自右至左,其优先级高于加、减6【例3.1】自增、自减运算符前置、后置形式的差异程序示例。#include<stdio.h>intmain(void){intk,x,y;k=10;x=k++;y=++k;printf("k=%d,x=%d,y=%d\n",k,x,y);k=10;x=--k;y=k--;printf("k=%d,x=%d,y=%d\n",k,x,y);return0;}【例3.1】自增、自减运算符前置、后置形式的差异程序示例。73.算术运算符的优先级与结合性(1)二目运算符:乘(*)、除(/)、求余(%)的优先级相同,高于加(+)、减(-);结合方向为“自左至右”,即先左后右。(2)一目算符:负(-)、自增(++)、自减(--)的优先级相同,高于二目运算符加(+)、减(-)、乘(*)、除(/)、求余(%);结合方向为“自右至左”,即先右后左。3.算术运算符的优先级与结合性8算术表达式

用算术运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子,称为算术表达式。如:

3+a*b/2-1.5+'a'算术表达式

用算术运算符和括号将运算对象(常量、变量和函数等9【例3.2】程序示例。#include<stdio.h>intmain(void){inta=3,b=8,c=2,d;d=a+b*-c;printf("d=%d\n",d);return0;}【例3.2】程序示例。103.3赋值运算符和赋值表达式赋值运算符:=

使用格式:变量名=表达式

如:a=3,r=x%y

注:赋值运算符的左边只能是变量名或变量的地址,右边可以是变量名、常量、函数、可求值的表达式。例:inta=3a=a+32.赋值运算符的优先级及结合方向赋值运算符(包括下面将要讲的复合赋值运算符)的优先级低于算术算符的优先级,结合方向是右结合,即从右至左进行运算。3.赋值表达式

(1)由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。它的一般形式为:<变量><赋值运算符><表达式>(2)在赋值表达式的一般形式中,表达式仍可以是一个赋值表达式。赋值表达式的值是被赋值后变量的值。例:inta,b,c;a=(b=3)a=b=c=8a=5+(c=6)a=(b=10)/(c=2)3.3赋值运算符和赋值表达式114.复合的赋值运算符:+=-=/=*=%=a+=3a=a+3a-=10a=a-10a*=y+6a=a*(y+6)a/=b+5a=a/(b+5)a%=b-6a=a%(b-6)例:(1)求下列表达式中a的值

a=b=c=5a=(b=4)+(c=6)a=(b=10)/(c=2)(2)若a=12,求

a-=a*aa+=aa+=a-=a*aa+=a-=a*=a注:赋值运算符的优先级低于算术算符的优先级.4.复合的赋值运算符:+=-=/=*=123.4关系运算符和关系表达式

关系运算符1.关系运算符、优先次序及结合方向

关系运算符:<(小于)<=(小于等于)

>(大于)>=(大于等于)==(等于)!=(不等于)优先次序:①<,<=,>,>=优先级相同②==,!=优先级相同,且低于前四个算符③关系算符的优先级低于算术算符,高于赋值算符的优先级.④结合方向为自左至右,即同级关系运算自左至右算。3.4关系运算符和关系表达式

关系运算符13(5)其他弄虚作假的行为。采取民主推荐与组织考察相结合的方法,确定各级优秀青年人才,每年推荐一次,具体程序是:4.7新从业人员的安全生产培训内容:30.1评标期间,评标委员会有权要求投标人对投标文件中含义不明确、同类问题表述不一致或者有明显文字和计算错误的内容等作必要的澄清、说明或者补正。投标人必须按照招标代理机构通知的澄清内容和时间做出澄清。除按本须知第32条规定改正算术错误外,投标人对投标文件的澄清不得超出投标文件的范围或者改变投标文件的实质性内容。监督机制是实现物业管理各项工作开展的必要外在约束条件,防止或纠正工作中出现的偏差。保证管理机构及其工作人员依法办事。上岗工作的实施办法〈试行〉15.投标报价⑶过信息反馈监督,通过各种手段及实现监督管理的闭环机制,保证大厦管理监督机制的有效实现。(5)投标文件附有招标人或监管机构不能接受的条件;8、响应文件的递交4.4协助站长、班长,做好站内的日常管理工作。2.关系表达式:用关系运算符将两个C语言合法的表达式连接起来的式子.例:a>b,a+b>b+c,(a=3)>(b=5)‘a’<‘b’,(a>b)>(b<c)3.关系表达式的值:当关系表达式成立时,即为真时关系表达式的值为1,否则其值为0.即1代表真,0代表假.例:inta=3,b=2,c=1;例:inta=3,b=2,c=1,d,f;a>3的值:d=a>bd的值:a>b的值:f=a>b>cf的值:(a>b)==c的值:a==b<c的值:011010(5)其他弄虚作假的行为。2.关系表达式:用关系运算符将两个143.1逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序逻辑算符:&&逻辑与||逻辑或!非运算规则:设有a,baba&&ba||b!a真真假假真真假假真假假假真真真假假假真真3.1逻辑运算符和逻辑表达式真真假假真真假假真假假假真真真15逻辑算符优先次序及结合方向

:①!(非)→&&(与)→||(或)②逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符。③&&、||的结合方向为自左至右,即同级逻辑运算自左至右算,!(非)的结合方向为自右至左。例:inta=2,b=2,x=4,y=5;(a>b)&&(x>y)a>b&&x>y(a==b)||(x==y)a==b||x==y(!a)||(a>b)!a||a>b逻辑算符优先次序及结合方向:162.逻辑表达式逻辑表达式:由逻辑运算符连接起来的C合法的式子。逻辑表达式的值:是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即非0即“真”。例:inta=2,b=3;a&&b!a5>3&&8<4-!0‘a’&&’b’2.逻辑表达式17aba&&ba||b!a注:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行:例:inta=1,b=1,c=1;求:

(1)a&&b&&c(2)--a&&--b&&--c(3)++a||++b||++c(4)--a||--b||--c非0非000非0非000100011100011aba&18对逻辑运算符说明(逻辑运算中的“短路”现象):⑴&&、||其运算对象可为基本型和指针型,操作数的值为0是假,非0是真,它们的两个运算对象不一定是同类型的。⑵运算顺序:&&、||的运算顺序严格按从左至右,两个操作数的位置不可交换。⑶&&、||的运算特点:与(&&)运算若左操作数为0,则不计算右操作数;或(||)运算若左边的操作数不为0,则不计算右边的操作数。对逻辑运算符说明(逻辑运算中的“短路”现象):19例:若x=y=z=-1,则下列表达式的运算结果及x,y,z的值分别是什么?①++x&&++y&&++z②++x&&++y||++z③++x||++y&&++z④++x||++y||++z例:若x=y=z=-1,则下列表达式的运算结果及x,y,z的20

作业:1.若x=y=z=0,则下列各式运算后x,y,z的值及表达式的值。①++x&&++y&&++z②++x&&++y||++z③++x||++y&&++z④++x||++y||++z2.若x=2,y=1,z=0,则表达式x||!y&&++z的值;

若x=0,y=0,z=0,则表达式x||!y&&++z的值;作业:213.6条件运算符和条件表达式格式:表达式1?表达式2:表达式3说明:①条件运算符的运算顺序:先求解表达式1,若为非0(真),则求解表达式2,此时表达式2的值就作为整个表达式的值,不再求解表达式3的值;若表达式1的值为0(假),则求解表达式3的值,表达式3的值作为整个表达式的值,不再求解表达式2的值.

例:inta=1,b=1;a=(a>b?++a:++b);3.6条件运算符和条件表达式22②条件表达式可以嵌套,即一个条件表达式又可以与另一个条件表达式组成一个新的表达式。如:

max=a>b?a:c>d?c:d

条件运算符的结合方向为“自右至左”,但运算顺序自左至右。③条件运算符的优先级高于赋值运算符,但低于关系算符、逻辑算符和算术算符的优先级。例:输入一个字符,判断它是否大写,如果是将它转换成小写字母,如果不是不转换,然后输出最后得到的字符。

c=(c>='A'&&c<='Z')?(c+32):c;②条件表达式可以嵌套,即一个条件表达式又可以与另一个条件表达233.7逗号运算符和逗号表达式在C语言中逗号在下列几种情形下出现:(1)逗号作分隔符,如用于说明语句中的变量标示符之间.intj,k;(2)作为运算符,构成逗号表达式,其一般形式:

表达式1,表达式2,表达式3说明:①逗号表达式的求解顺序:按自左至右顺序求表达式的值,整个表达式的值为最右边表达式的值.如:k=10,f=50.1f=50.1,k=10②逗号表达式中的表达式可以是算术表达式,也可以是赋值表达式,如(a=3),a*4(x=8*2,x*4),x*2

③逗号运算符的优先级最低,低于其他所有运算符.3.7逗号运算符和逗号表达式24例:求下列表达式的值:x=(a=3,6*a)x=a=3,6*a例:变量均为int型,值不等于7的表达式为()(A)x=y=6,x+y,x+1(B)x=y=6,x+y,y+1(C)x=6,x+1,y=6,x+y(D)y=6,y+1,x=y,x+1例:main(){inta,b,c,d=5;a=(c=3,c*d);printf(“a=%d\tc*d=%d\n”,a,c*d);b=c=3,c*d;printf(“a=%d\tb=c=3,c*d=%d\n”,b,(b=c=3,c*d));}例:求下列表达式的值:251.定期检测的方式【本讲小结】26.4投标人所提交的投标文件在评标结束后无论中标与否都不退还,留招标公司存档。1.2本制度适用于缅甸旦多淼公司各部门。应用于产品产、销、存统计,质量统计、主要财务指标统计、劳动工资统计、能源消耗统计、原燃材料统计、产品生产能力统计、产品价格统计、技术开发统计,以及确定抽样方案、数据分析、性能评定、不合格品分析和生产经营活动评价等。2.7负责落实加气站工艺、压力容器、设备及消防设施的维护保养工作,确保加气站安全运行无事故。当客户亲临企业的时候,如果该企业内为接待式的前台服务,接待人员要表现得亲切而有效率,让客户觉得可靠,值得信赖,能够热心帮助他们解决专业问题。通过确立这种质量标准,让大家去追求和具体执行。4.人人是人才,“赛马不相马”(3)投标人不接受招标人按本须知第32条所做的对其投标报价修正的;22.4投标文件的正本必须用不褪色的墨水笔填写或打印,注明“正本”字样,正本须逐页小签。②增加成功率。(1)如果单价乘数量不等于总价,应以单价为准,并修正总价;3.9数据类型转换

不同类型的数据进行混合运算时要考虑以下问题:运算符的优先级。运算符的结合方向。数据类型转换。1.定期检测的方式3.9数据类型转换

不同类型的数据进26自动转换规则

不同数据类型的数据在赋值时的类型转换规则是“就左不就右”,即将赋值运算符右边表达式的数据转换成左边变量的数据类型,然后进行赋值。例如:

inta:floatb;b=2/3;a=5.0/2.0;(2)在同一表达式中各数据的类型不同,编译程序会自动进行如下方式,将不同数据类型转变成同一类型后再进行运算。转换规则如图3-3所示:自动转换规则

不同数据类型的数据在赋值时的类型转换规则是“就27例:inti;floatf;doubled;longe;10+’a’+i*f-d/e①int②double③double④double⑤double在进行运算时,若一个算符两侧的数据类型不同,则需要进行转换为同一类型,转换规则:将两个不同的操作对象转换为占空间较大的那种类型,以保不失精度.例:inti;floatf;doubl28强制转换

格式:(类型名)(表达式)注:(1)作用:将表达式强制转换为指定类型;(2)表达式:可以是单个变量或可求值的表达式.例:inta=2;floatx,y=1.5;(double)a(int)(y+x)(int)y+xa=(int)y(float)(5%3)a%(int)ya%y强制转换

格式:(类型名)(表达式)293.10数据的输入、输出C的输入输出:C本身不提供输入输出语句,(在C中输入输出是由函数来实现的.在C标准函数库中提供了一些输入输出函数如printf()scanf()等,它们不是C语句.)这样C在编译阶段不涉及硬件,可以使编译简单,在连接阶段它们与源程序的目标文件相连接,生成一个可执行的目标程序,在执行阶段调用已被连接的函数库中的输入输出函数.在使用C语言函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中.头文件:包含调用函数有关信息的库函数名,标准输入输出函数有关信息在“stdio.h”中,若程序中调用输入输出函数应将:#include“stdio.h”或#include<stdio.h>放在程序开始.3.10数据的输入、输出30字符数据的输入输出1.字符输出函数putchar()

格式:putchar(c)

其中:c可以是字符型变量或整型变量或字符常量,

功能:向标准输出设备(通常是显示器或打印机)输出一个字符.例#include“stdio.h”main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);putchar(‘\n’);putchar(‘A’);putchar(‘\101’);putchar(65);}字符数据的输入输出312.字符输入函数getchar()格式:getchar()功能:从标准输入设备(通常是键盘)输入一个字符.例:#include“stdio.h”main(){charc;inta;c=getchar();putchar(c);a=getchar();putchar(a);}注:getchar()只能接收一个字符,该字符可以赋给字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分.如putchar(getchar())2.字符输入函数getchar()注:getchar(32格式输出函数printf()

1.printf()函数最简单的用法一般形式为:printf(要输出的字符串常量);【例3.6】printf函数应用#include<stdio.h>intmain(void){printf("Thescoreofmyclassesare:\n");printf("No.\tName\tScore\n");printf("1\tLiPing\t495\n");printf("2\tLiuHua\t465\n");return0;}格式输出函数printf()

1.printf()函数最简332.格式化输出数据

格式:printf(格式控制,输出表列)

例:printf(“max=%d”,c)功能:按照“格式控制字符串”中指定的格式,将输出表列中诸项输出到标准输出文件中(通常指显示器)。其中:1)格式控制是双引号括起来的字符串,包括两种信息:①由“%”和格式字符组成,如%d,%f,%c等,将输出的数据转换成指定的格式输出;②普通字符,需要原样输出的字符.2)输出表列:要输出的数据,可以是变量名,函数名,表达式2.格式化输出数据34例:inta=2,b=3;printf(“%d%d”,a,b);printf(“a=%db=%d”,a,b);格式字符:⑴d格式符:用来输出十进制整数.

d%d:按整型数据的实际长度输出%md:按指定的长度输出整型数据%ld:输出长整型数据⑵o格式符:以八进制形式输出整数o%o:按整型数据的八进制的实际长度输出%mo:按指定的长度输出整型数据的八进制形式%lo:输出长整型数据的八进制形式例:inta=2,b=3;d%d:按整型数据的实际长度输35x%x:按整型数据的十六进制的实际长度输出%mx:按指定的长度输出整型数据的十六进制形式%lx:输出长整型数据的十六进制形式⑶x格式符:以十六进制形式输出整数⑷u格式符:以无符号形式输出十进制整数⑸c格式符:用来输出一个字符c%c:输出一个字符%mc:按指定的宽度输出一个字符⑹s格式符:用来输出一个字符串s%ms%-ms%m.ns%-m.nsx%x:按整型数据的十六进制的实际长度输出36⑺f式符:以小数形式输出一个实数f%f:不指定宽度输出一个实数,整数部分原样输出,并输出6位小数%-m.nf:按指定的宽度输出数据占m列,其中n位小数.如果数值长度小于m,则右端补空格.%m.nf:按指定的宽度输出数据占m列,其中n位小数.如果数值长度小于m,则左端补空格.⑺f式符:以小数形式输出一个实数f%f:不指定宽度输出一个实37格式输入函数scanf()1.scanf():从终端输入若干个数据.

格式:scanf(格式控制,地址表列)功能:从标准输入设备(通常是键盘)上,按照指定的格式为指定的输入项输入数据。其中:⑴格式控制字符串包含两种信息:①格式控制符:%d,%c,%f②普通字符:需要原样输入.⑵地址表列:由若干个变量地址组成.例:main(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d”,a,b,c);}格式输入函数scanf()38C.服务制度令人满意 A.从众心理的满足(4) 向承包方有偿提供必要的办公场所(价格另行商定),承包方按照业主的要求配备办公设施。【案例】另外,电梯每到达相应的楼层,服务小姐都会向顾客介绍该楼层主要销售的商品信息,如:二楼是日用百货,三楼是儿童产品,四楼是贵妇人产品、五楼是绅士产品。一旦百货公司建立这样的制度,很多顾客都非常喜欢享受这种服务,这些行销手段都值得我们的百货企业学习和模仿。③所选择的诊所信誉较好,在当地名气较大;2.1统计工作过程一般分为统计设计、统计调查、统计整理、统计分析与统计资料的开发利用五个相关阶段;坐姿服务人员应该表现出整体的精神面貌,他们的服饰看起来应该简单、高雅和大方。为了避免分散顾客的注意力,服务人员在工作过程中要尽量避免穿金戴银,或者佩戴奇形怪状的饰品。21.1如果买卖双方因不可抗力而导致合同实施延误或不能履行其它合同义务时,双方由此产生的损失不得向对方提出索赔要求,也不承担误期赔偿或终止合同的责任。6.3充装检查期间必须穿戴劳动保护用品。2.5发现属于检验范围内的气瓶,应做出记号,通知气瓶产权单位进行检验确认。专注4.1卖方应保证买方在使用本合同项下货物或货物的任何一部分时免受第三方提出的侵犯其专利权、商标权、著作权或其它知识产权引起的一切索赔和诉讼。2.格式说明符

%d:输入十进制整数

%o:输入八进制整数

%x:输入十六进制整数

%f:输入实数

%c:输入字符

%s:输入字符串3.scanf()的用法⑴连续输入多个数据时,数据间用空格或回车键或Tab键分开;

例:inta,b;scanf(“%d%d”,&a,&b);C.服务制度令人满意 A.从众心理的满足2.格式说明符39⑵格式符前可加数字,指定输入数据所占的位数.

例:inta,b;scnaf(“%2d%d”,&a,&b);

若输入:123456,a和b的值分别是什么?

若输入:123456,a和b的值分别是什么?例:main(){inta,b,c,d;scanf(“%2d%d”,&a,&b);printf(“%d\t%d\n”,a,b);scanf(“%2d%4d”,&c,&d);printf(“%d\t%d\n”,c,d);}⑵格式符前可加数字,指定输入数据所占的位数.40⑶如果在%后有一个“*”,表示跳过它对应的列数.例:scanf(“%2d%*3d%2d”,&a,&b);

若输入:1223467,a,b的值分别是什么?⑷如果转换控制字符串中有普通字符,则输入数据时,要在与此相对应的部分,输入与此相同的字符例:scanf(“a=%db=%d”,&a,&b);

输入:a=123b=34scanf(“%d,%d”,&a,&b);

输入:23,78⑶如果在%后有一个“*”,表示跳过它对应的列数.414.使用scanf函数应当注意的事项(1)在格式控制中,格式说明的类型与输入项的类型,应该是一一对应的。(2)在scanf函数中的格式字符前可以用一个整数指定输入数据所占宽度,但不可以对实型数指定小数位的宽度。如下面的scanf函数的使用就是错误的:scanf("%7.2f",&a);(3)在格式控制串中,格式说明的个数应该与输入项的个数相同。若格式说明的个数少于输入项的个数时,scanf函数结束输入,多余的数据项并没从终端接受新的数;若格式说明的个数多于输入项的个数时,scanf函数同样也结束输入。(4)当输入的数据少于输入项时,程序等待输入,直到输入数据的个数等于输入项的个数为止。当输入的数据多于输入项时,多余的数据并不消失,而是留作下一个输入操作时的输入数据。(5)scanf函数在调用结束后将返回一个函数值,其值等于得到输入值的输入项的个数。4.使用scanf函数应当注意的事项42C程序上机步骤编辑源程序(.c)目标程序(.obj)可执行程序(.exe)编译检查是否有语法错误连接与系统的库函数和其他目标程序结果运行C程序上机步骤编译检查是否有语法错误连接与系统的库函数和其他43C程序编程步骤:1.要解决问题需要定义几个变量?变量类型又是什么?2.选择适当的方法为变量提供相应的值。是通过赋值?还是从键盘输入值?3.对数据进行处理4.输出结果C程序编程步骤:1.要解决问题需要定义几个变量?变量类型又44【例3.7】从键盘输入两个数分别赋给变量x和y,计算它们的平均值。#include<stdio.h>intmain(void){floatx,y,ave;scanf("%f%f",&x,&y);ave=(x+y)/2;printf("ave=%f\n",ave);return0;}【例3.7】从键盘输入两个数分别赋给变量x和y,计算它们的平45【例3.8】计算底面半径和高分别为2、4和3、5的圆柱体体积,要求第二个圆柱体的底面半径和高的值从键盘输入。

#include<stdio.h>intmain(void){intr,h;floatv;r=2;h=4;v=3.14*r*r*h;printf("r=%d,h=%d,v=%f",r,h,v);scanf("%d%d",&r,&h);v=3.14*r*r*h;printf("r=%d,h=%d,v=%f",r,h,v);return0;}【例3.8】计算底面半径和高分别为2、4和3、5的圆柱体体积46数据的运算与输入输出数据的运算与输入输出47优选数据的运算与输入输出Ppt优选数据的运算与输入输出Ppt483.1运算符和表达式概述运算(即操作)是对数据的加工,被运算的对象——数据称为运算量或操作数。一个表达式包含一个或多个操作,操作的对象称为操作数,而操作本身是通过运算符(也称操作符)体现的。表达式:用来计算值的式子.一个表达式由运算符和运算对象组成.C语言运算符按其功能分类:算术运算符、关系运算符、逻辑运算符、逗号运算符、位运算符、赋值运算符等。运算对象:常量,变量,函数,表达式.C语言提供有丰富的运算符,构成多种表达式,主要有:算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式。

3.1运算符和表达式概述运算(即操作)是对数据的加工,被运算493.2算术运算符和算术表达式算术运算符1.基本算术运算符:+-*/%(求余)说明:(1)/(除运算):若参加运算的对象为两个整数,结果仍为整数.(向下取整,不进行四舍五入).若其中之一为负数,则结果视机器系统而定,但多数采用“向零取整”.(2)%(求余运算):要求参加运算的数据均为整数.3.2算术运算符和算术表达式502.自增自减运算符:使变量的值增加一个单位或减少一个单位。算符:++自加--自减用法:

++i;--i;前置运算:在使用i之前,先使i的值加1或减1.i++;i--;后置运算:先使用i的值,再使i的值加1或减1.例:inti=2,j;j=++i;j=i++;注::(1)++,--运算符只能用于变量,不能用于表达式.

例:++55++(a+b)++均为错误的表达式.2.自增自减运算符:使变量的值增加一个单位或减少一个单位。51(2)++和--的结合方向是自右至左,其优先级高于加、减、乘、除,与负号属同一优先级。例:intj=5,k;k=-j++;(3)前置和后置要使用正确。如果仅是为了对变量的值进行加1或减1,那么语句i++;与++i;效果一样,语句i--;与—i;效果一样。当自加和自减运算出现在表达式中时,前置和后置运算效果不同;(2)++和--的结合方向是自右至左,其优先级高于加、减52【例3.1】自增、自减运算符前置、后置形式的差异程序示例。#include<stdio.h>intmain(void){intk,x,y;k=10;x=k++;y=++k;printf("k=%d,x=%d,y=%d\n",k,x,y);k=10;x=--k;y=k--;printf("k=%d,x=%d,y=%d\n",k,x,y);return0;}【例3.1】自增、自减运算符前置、后置形式的差异程序示例。533.算术运算符的优先级与结合性(1)二目运算符:乘(*)、除(/)、求余(%)的优先级相同,高于加(+)、减(-);结合方向为“自左至右”,即先左后右。(2)一目算符:负(-)、自增(++)、自减(--)的优先级相同,高于二目运算符加(+)、减(-)、乘(*)、除(/)、求余(%);结合方向为“自右至左”,即先右后左。3.算术运算符的优先级与结合性54算术表达式

用算术运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子,称为算术表达式。如:

3+a*b/2-1.5+'a'算术表达式

用算术运算符和括号将运算对象(常量、变量和函数等55【例3.2】程序示例。#include<stdio.h>intmain(void){inta=3,b=8,c=2,d;d=a+b*-c;printf("d=%d\n",d);return0;}【例3.2】程序示例。563.3赋值运算符和赋值表达式赋值运算符:=

使用格式:变量名=表达式

如:a=3,r=x%y

注:赋值运算符的左边只能是变量名或变量的地址,右边可以是变量名、常量、函数、可求值的表达式。例:inta=3a=a+32.赋值运算符的优先级及结合方向赋值运算符(包括下面将要讲的复合赋值运算符)的优先级低于算术算符的优先级,结合方向是右结合,即从右至左进行运算。3.赋值表达式

(1)由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。它的一般形式为:<变量><赋值运算符><表达式>(2)在赋值表达式的一般形式中,表达式仍可以是一个赋值表达式。赋值表达式的值是被赋值后变量的值。例:inta,b,c;a=(b=3)a=b=c=8a=5+(c=6)a=(b=10)/(c=2)3.3赋值运算符和赋值表达式574.复合的赋值运算符:+=-=/=*=%=a+=3a=a+3a-=10a=a-10a*=y+6a=a*(y+6)a/=b+5a=a/(b+5)a%=b-6a=a%(b-6)例:(1)求下列表达式中a的值

a=b=c=5a=(b=4)+(c=6)a=(b=10)/(c=2)(2)若a=12,求

a-=a*aa+=aa+=a-=a*aa+=a-=a*=a注:赋值运算符的优先级低于算术算符的优先级.4.复合的赋值运算符:+=-=/=*=583.4关系运算符和关系表达式

关系运算符1.关系运算符、优先次序及结合方向

关系运算符:<(小于)<=(小于等于)

>(大于)>=(大于等于)==(等于)!=(不等于)优先次序:①<,<=,>,>=优先级相同②==,!=优先级相同,且低于前四个算符③关系算符的优先级低于算术算符,高于赋值算符的优先级.④结合方向为自左至右,即同级关系运算自左至右算。3.4关系运算符和关系表达式

关系运算符59(5)其他弄虚作假的行为。采取民主推荐与组织考察相结合的方法,确定各级优秀青年人才,每年推荐一次,具体程序是:4.7新从业人员的安全生产培训内容:30.1评标期间,评标委员会有权要求投标人对投标文件中含义不明确、同类问题表述不一致或者有明显文字和计算错误的内容等作必要的澄清、说明或者补正。投标人必须按照招标代理机构通知的澄清内容和时间做出澄清。除按本须知第32条规定改正算术错误外,投标人对投标文件的澄清不得超出投标文件的范围或者改变投标文件的实质性内容。监督机制是实现物业管理各项工作开展的必要外在约束条件,防止或纠正工作中出现的偏差。保证管理机构及其工作人员依法办事。上岗工作的实施办法〈试行〉15.投标报价⑶过信息反馈监督,通过各种手段及实现监督管理的闭环机制,保证大厦管理监督机制的有效实现。(5)投标文件附有招标人或监管机构不能接受的条件;8、响应文件的递交4.4协助站长、班长,做好站内的日常管理工作。2.关系表达式:用关系运算符将两个C语言合法的表达式连接起来的式子.例:a>b,a+b>b+c,(a=3)>(b=5)‘a’<‘b’,(a>b)>(b<c)3.关系表达式的值:当关系表达式成立时,即为真时关系表达式的值为1,否则其值为0.即1代表真,0代表假.例:inta=3,b=2,c=1;例:inta=3,b=2,c=1,d,f;a>3的值:d=a>bd的值:a>b的值:f=a>b>cf的值:(a>b)==c的值:a==b<c的值:011010(5)其他弄虚作假的行为。2.关系表达式:用关系运算符将两个603.1逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序逻辑算符:&&逻辑与||逻辑或!非运算规则:设有a,baba&&ba||b!a真真假假真真假假真假假假真真真假假假真真3.1逻辑运算符和逻辑表达式真真假假真真假假真假假假真真真61逻辑算符优先次序及结合方向

:①!(非)→&&(与)→||(或)②逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符。③&&、||的结合方向为自左至右,即同级逻辑运算自左至右算,!(非)的结合方向为自右至左。例:inta=2,b=2,x=4,y=5;(a>b)&&(x>y)a>b&&x>y(a==b)||(x==y)a==b||x==y(!a)||(a>b)!a||a>b逻辑算符优先次序及结合方向:622.逻辑表达式逻辑表达式:由逻辑运算符连接起来的C合法的式子。逻辑表达式的值:是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即非0即“真”。例:inta=2,b=3;a&&b!a5>3&&8<4-!0‘a’&&’b’2.逻辑表达式63aba&&ba||b!a注:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行:例:inta=1,b=1,c=1;求:

(1)a&&b&&c(2)--a&&--b&&--c(3)++a||++b||++c(4)--a||--b||--c非0非000非0非000100011100011aba&64对逻辑运算符说明(逻辑运算中的“短路”现象):⑴&&、||其运算对象可为基本型和指针型,操作数的值为0是假,非0是真,它们的两个运算对象不一定是同类型的。⑵运算顺序:&&、||的运算顺序严格按从左至右,两个操作数的位置不可交换。⑶&&、||的运算特点:与(&&)运算若左操作数为0,则不计算右操作数;或(||)运算若左边的操作数不为0,则不计算右边的操作数。对逻辑运算符说明(逻辑运算中的“短路”现象):65例:若x=y=z=-1,则下列表达式的运算结果及x,y,z的值分别是什么?①++x&&++y&&++z②++x&&++y||++z③++x||++y&&++z④++x||++y||++z例:若x=y=z=-1,则下列表达式的运算结果及x,y,z的66

作业:1.若x=y=z=0,则下列各式运算后x,y,z的值及表达式的值。①++x&&++y&&++z②++x&&++y||++z③++x||++y&&++z④++x||++y||++z2.若x=2,y=1,z=0,则表达式x||!y&&++z的值;

若x=0,y=0,z=0,则表达式x||!y&&++z的值;作业:673.6条件运算符和条件表达式格式:表达式1?表达式2:表达式3说明:①条件运算符的运算顺序:先求解表达式1,若为非0(真),则求解表达式2,此时表达式2的值就作为整个表达式的值,不再求解表达式3的值;若表达式1的值为0(假),则求解表达式3的值,表达式3的值作为整个表达式的值,不再求解表达式2的值.

例:inta=1,b=1;a=(a>b?++a:++b);3.6条件运算符和条件表达式68②条件表达式可以嵌套,即一个条件表达式又可以与另一个条件表达式组成一个新的表达式。如:

max=a>b?a:c>d?c:d

条件运算符的结合方向为“自右至左”,但运算顺序自左至右。③条件运算符的优先级高于赋值运算符,但低于关系算符、逻辑算符和算术算符的优先级。例:输入一个字符,判断它是否大写,如果是将它转换成小写字母,如果不是不转换,然后输出最后得到的字符。

c=(c>='A'&&c<='Z')?(c+32):c;②条件表达式可以嵌套,即一个条件表达式又可以与另一个条件表达693.7逗号运算符和逗号表达式在C语言中逗号在下列几种情形下出现:(1)逗号作分隔符,如用于说明语句中的变量标示符之间.intj,k;(2)作为运算符,构成逗号表达式,其一般形式:

表达式1,表达式2,表达式3说明:①逗号表达式的求解顺序:按自左至右顺序求表达式的值,整个表达式的值为最右边表达式的值.如:k=10,f=50.1f=50.1,k=10②逗号表达式中的表达式可以是算术表达式,也可以是赋值表达式,如(a=3),a*4(x=8*2,x*4),x*2

③逗号运算符的优先级最低,低于其他所有运算符.3.7逗号运算符和逗号表达式70例:求下列表达式的值:x=(a=3,6*a)x=a=3,6*a例:变量均为int型,值不等于7的表达式为()(A)x=y=6,x+y,x+1(B)x=y=6,x+y,y+1(C)x=6,x+1,y=6,x+y(D)y=6,y+1,x=y,x+1例:main(){inta,b,c,d=5;a=(c=3,c*d);printf(“a=%d\tc*d=%d\n”,a,c*d);b=c=3,c*d;printf(“a=%d\tb=c=3,c*d=%d\n”,b,(b=c=3,c*d));}例:求下列表达式的值:711.定期检测的方式【本讲小结】26.4投标人所提交的投标文件在评标结束后无论中标与否都不退还,留招标公司存档。1.2本制度适用于缅甸旦多淼公司各部门。应用于产品产、销、存统计,质量统计、主要财务指标统计、劳动工资统计、能源消耗统计、原燃材料统计、产品生产能力统计、产品价格统计、技术开发统计,以及确定抽样方案、数据分析、性能评定、不合格品分析和生产经营活动评价等。2.7负责落实加气站工艺、压力容器、设备及消防设施的维护保养工作,确保加气站安全运行无事故。当客户亲临企业的时候,如果该企业内为接待式的前台服务,接待人员要表现得亲切而有效率,让客户觉得可靠,值得信赖,能够热心帮助他们解决专业问题。通过确立这种质量标准,让大家去追求和具体执行。4.人人是人才,“赛马不相马”(3)投标人不接受招标人按本须知第32条所做的对其投标报价修正的;22.4投标文件的正本必须用不褪色的墨水笔填写或打印,注明“正本”字样,正本须逐页小签。②增加成功率。(1)如果单价乘数量不等于总价,应以单价为准,并修正总价;3.9数据类型转换

不同类型的数据进行混合运算时要考虑以下问题:运算符的优先级。运算符的结合方向。数据类型转换。1.定期检测的方式3.9数据类型转换

不同类型的数据进72自动转换规则

不同数据类型的数据在赋值时的类型转换规则是“就左不就右”,即将赋值运算符右边表达式的数据转换成左边变量的数据类型,然后进行赋值。例如:

inta:floatb;b=2/3;a=5.0/2.0;(2)在同一表达式中各数据的类型不同,编译程序会自动进行如下方式,将不同数据类型转变成同一类型后再进行运算。转换规则如图3-3所示:自动转换规则

不同数据类型的数据在赋值时的类型转换规则是“就73例:inti;floatf;doubled;longe;10+’a’+i*f-d/e①int②double③double④double⑤double在进行运算时,若一个算符两侧的数据类型不同,则需要进行转换为同一类型,转换规则:将两个不同的操作对象转换为占空间较大的那种类型,以保不失精度.例:inti;floatf;doubl74强制转换

格式:(类型名)(表达式)注:(1)作用:将表达式强制转换为指定类型;(2)表达式:可以是单个变量或可求值的表达式.例:inta=2;floatx,y=1.5;(double)a(int)(y+x)(int)y+xa=(int)y(float)(5%3)a%(int)ya%y强制转换

格式:(类型名)(表达式)753.10数据的输入、输出C的输入输出:C本身不提供输入输出语句,(在C中输入输出是由函数来实现的.在C标准函数库中提供了一些输入输出函数如printf()scanf()等,它们不是C语句.)这样C在编译阶段不涉及硬件,可以使编译简单,在连接阶段它们与源程序的目标文件相连接,生成一个可执行的目标程序,在执行阶段调用已被连接的函数库中的输入输出函数.在使用C语言函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中.头文件:包含调用函数有关信息的库函数名,标准输入输出函数有关信息在“stdio.h”中,若程序中调用输入输出函数应将:#include“stdio.h”或#include<stdio.h>放在程序开始.3.10数据的输入、输出76字符数据的输入输出1.字符输出函数putchar()

格式:putchar(c)

其中:c可以是字符型变量或整型变量或字符常量,

功能:向标准输出设备(通常是显示器或打印机)输出一个字符.例#include“stdio.h”main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);putchar(‘\n’);putchar(‘A’);putchar(‘\101’);putchar(65);}字符数据的输入输出772.字符输入函数getchar()格式:getchar()功能:从标准输入设备(通常是键盘)输入一个字符.例:#include“stdio.h”main(){charc;inta;c=getchar();putchar(c);a=getchar();putchar(a);}注:getchar()只能接收一个字符,该字符可以赋给字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分.如putchar(getchar())2.字符输入函数getchar()注:getchar(78格式输出函数printf()

1.printf()函数最简单的用法一般形式为:printf(要输出的字符串常量);【例3.6】printf函数应用#include<stdio.h>intmain(void){printf("Thescoreofmyclassesare:\n");printf("No.\tName\tScore\n");printf("1\tLiPing\t495\n");printf("2\tLiuHua\t465\n");return0;}格式输出函数printf()

1.printf()函数最简792.格式化输出数据

格式:printf(格式控制,输出表列)

例:printf(“max=%d”,c)功能:按照“格式控制字符串”中指定的格式,将输出表列中诸项输出到标准输出文件中(通常指显示器)。其中:1)格式控制是双引号括起来的字符串,包括两种信息:①由“%”和格式字符组成,如%d,%f,%c等,将输出的数据转换成指定的格式输出;②普通字符,需要原样输出的字符.2)输出表列:要输出的数据,可以是变量名,函数名,表达式2.格式化输出数据80例:inta=2,b=3;printf(“%d%d”,a,b);printf(“a=%db=%d”,a,b);格式字符:⑴d格式符:用来输出十进制整数.

d%d:按整型数据的实际长度输出%md:按指定的长度输出整型数据%ld:输出长整型数据⑵o格式符:以八进制形式输出整数o%o:按整型数据的八进制的实际长度输出%mo:按指定的长度输出整型数据的八进制形式%lo:输出长整型数据的八进制形式例:inta=2,b=3;d%d:按整型数据的实际长度输81x%x:按整型数据的十六进制的实际长度输出%mx:按指定的长度输出整型数据的十六进制形式%lx:输出长整型数据的十六进制形式⑶x格式符:以十六进制形式输出整数⑷u格式符:以无符号形式输出十进制整数⑸c格式符:用来输出一个字符c%c:输出一个字符%mc:按指定的宽度输出一个字符⑹s格式符:用来输出一个字符串s%ms%-ms%m.ns%-m.nsx%x:按整型数据的十六进制的实际长度输出82⑺f式符:以小数形式输出一个实数f%f:不指定宽度输出一个实数,整数部分原样输出,并输出6位小数%-m.nf:按指定的宽度输出数据占m列,其中n位小数.如果数值长度小于m,则右端补空格.%m.nf:按指定的宽度输出数据占m列,其中n位小数.如果数值长度小于m,则左端补空格.⑺f式符:以小数形式输出一个实数f%f:不指定宽度输出一个实83格式输入函数scanf()1.scanf():从终端输入若干个数据.

格式:scanf(格式控制,地址表列)功能:从标准输入设备(通常是键盘)上,按照指定的格式为指定的输入项输入数据。其中:⑴格式控制字符串包含两种信息:①格式控制符:%d,%c,%f②普通字符:需要原样输入.⑵地址表列:由若干个变量地址组成.例:main(){inta,b,c;sca

温馨提示

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

评论

0/150

提交评论