ImageVerifierCode 换一换
格式:PPT , 页数:68 ,大小:286KB ,
资源ID:13169018      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13169018.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第二章 基本数据类型和运算符.ppt)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第二章 基本数据类型和运算符.ppt

1、程序设计基础教程(C语言),*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 基本数据类型和运算符,程序设计基础教程(,C,语言),本章重点,掌握,C,的几种基本数据类型。,掌握标识符的概念,熟悉变量和符号常量先定义后使用特点。,熟练掌握整型、长整型、短整型、无符号整型数据的定义与存储特点。,熟练掌握单精度、双精度浮点数的定义与存储特点。,熟练掌握字符型数据的的定义与存储特点,并熟悉整型数据与字符型数据间的关系。,掌握定义变量的同时,赋初值的方法。,掌握不同类型数据间的混合运算规则。,掌握不同运算符(算术、关系、逻辑运算符等)的使用特点、清楚每

2、种运算符的优先级与结合性,.,掌握各种表达式的含义与使用要点,。,1/29/2026,2,程序设计基础教程(C语言),数据类型,-,数据的,内在,表现形式,即数据在加工计算过程中所表现出来的特征称为数据的类型,它常简称为“类型”。,数据类型,分为,基本数据类型,和,导出类型(构造类型,/,复杂的数据类型),。,基本数据类型,1/29/2026,3,程序设计基础教程(C语言),基本数据类型,字符型,(char),数值型,整型,(,int,),浮点型,短整型,长整型,无符号整型,无符号短整型,单精度浮点型,(float),双精度浮点型,(double),长双精度浮点型,无符号字符型,有符号字符型,

3、无符号长整型,C,基本数据类型,1/29/2026,4,程序设计基础教程(C语言),数据在内存中存放,存放的格式由数据类型决定,。,各种数据类型所包含的二进制位数(,bit,,比特数)是不同的。,数据类型的长度,通常都是采用所占用的内存空间,字节数,来表示。,1/29/2026,5,程序设计基础教程(C语言),关键字、标识符和保留标识符,一、字符集,C,语言中可用到的字符集有:,数字:,、,、。,字母:,大、小写英文字母,注意,C,程序中严格区分大小写字母,如,A,和,a,是不同的字符。,空白符:,空格符、制表符、换行符和换页符统称为空白符。它们主要用于分隔单词,一般无其它特殊意义。,1/29

4、/2026,6,程序设计基础教程(C语言),图形符号:,29,个图形(可见)符号,即,!“,#%:?|,主要用作各种运算符。,转义字符:,程序中有时需要用到某些不可见或难以打印的字符,,C,语言中采用转义字符来表示,如:“,n”,表示一个换行符;字符,被称为转移符,表示其后的字符,n,具有特定的含义。,1/29/2026,7,程序设计基础教程(C语言),二、词法约定,C,语言中单词形式:注释符、运算符、标点符、关键字和标识符。,(1),注释符,以,“,/*,”,开头、,“,*,/,”,结束;或者用,“,/,”,注释当前行,(2),运算符,C,语言中含有相当丰富的运算符。运算符与变量、函数一起组

5、成表达式,表示各种运算功能。运算符由一个或多个字符组成。,(3),标点符,C,语言中的标点符共有,13,个,即:,(),*,,:,=,;,.#,1/29/2026,8,程序设计基础教程(C语言),(4),标识符,用于标识变量名、符号常量名、数组名、函数名、类型名、文件名的有效字符序列。,标识符的组成:由,字母,、,数字,和,下划线,组成。,必须由字母或下划线中任一字符开头,。长度为任意的。,例如,以下为合法的标识符:,name,NAME,_a1 x1 Sum_2,以下不是合法的标识符:,12a,以数字开头,#we,以,#,开头,num$1,包含,$,字符,sum 1,中间有空格,1/29/20

6、26,9,程序设计基础教程(C语言),(5),保留标识符,保留标识符,是系统保留的一部分标识符,通常用于系统定义和标准库函数的名字。,例如,以,下划线,开始的标识符通常用于定义系统变量。不应该把这些标识符来定义自己的变量。虽然它们也是合法的标识符,但是用它们来做一般标识符就可能会出问题。,1/29/2026,10,程序设计基础教程(C语言),试判断下列标识符正确与否:,abcd,A,?,Abcd,2abc,_,Abcd,a b,_2a3,yes/no,r,1/29/2026,11,程序设计基础教程(C语言),(6),关键字,:,又称保留字,指具有特定含义、专门用作系统的特定成分的一类标识符。标

7、准语言中共有个关键字,按用途分为类:数据类型:如,char,int,等 存储类:如,auto,等流程控制:如,if switch,等 运算符:,sizeof,注意,:,关键字不能用作一般标识符,即不允许用作变量名或函数名等。,C,语言的关键字都是,小写,的。例如,else,是关键字,但,ELSE,就不是关键字。,1/29/2026,12,程序设计基础教程(C语言),2.1,基本数据类型,2.1.2,常量,1,、,常量的定义,:在程序运行过程中,其值保持不变的量,常量的类型,:,根据字面形式可将常量区分为不同的类型。,2,、,整型常量,:,C,语言表示,整型常量的方法有以下三种:,十进制整数:不

8、带任何修饰。如123、-456、0等;,八进制整数:以数字0开头。如0123、-011等;,十六进制整数:以数字0,x,开头。如,0 x123,、,0 x2ef,;,1/29/2026,13,程序设计基础教程(C语言),整型常量,C,语言中普通整型常量在机器中占用一个字长。,整型常量后缀,无符号整型后缀:,u,或,U,,如,986u,、,0 xfedU,都是无符号整型常量。长整型后缀:,l,或,L,,如:,02341l,、,9666L,都是长整型常量。二者可以同时使用,例如:,9999LU,、,077777LU,1/29/2026,14,程序设计基础教程(C语言),实型常量,3,、,实型常量(

9、浮点数),十进制数形式的浮点数:由数字和小数点组成。,如:,123.456,、,0.123,、,123.0,、,0.0,、,123.,等。,指数形式的浮点数:用字母,e,表示十进制指数中的,10,。,如:,123e3,(表示,123*10,3,)、,6.E5,、,.123e+4,都是合法的浮点常量。,注意,:,e,字母前必须有数字,且,e,后的指数必须为整,型。,如:,e3,、,2.1e3.5,、,.e3,为不合法。,1/29/2026,15,程序设计基础教程(C语言),实型常量,浮点常量如不带后缀,如上所示,都是双精度类型(,double,)。,浮点常量可带后缀,f,或,F,,如,3.14f

10、那么其类型为单精度浮点型(,float,),浮点常量可带后缀,l,或,L,,如,3.14L,,那么其类型为长双精度型(,long double,),1/29/2026,16,程序设计基础教程(C语言),4,、,字符常量,:,C,语言规定以单引号,包围的单个字符为字符常量。,如:,A,、,a,、,2,、,!,等。,注意:,请区别,A,和,a,的不同;,中的字符引用的是该字符的,ASCII,码值。,字符常量的存放形式与整数的存放形式相类似,故,C,中的字符数据与整型数据之间具有相通性。,1/29/2026,17,程序设计基础教程(C语言),字符常量,转义字符常量,(也称控制字符常量),用,开头

11、的特殊形式的字符常量,用以产生一个动作。,如:,n,、,r,、,t,、,v,、,、,123,等。,请同学们理解并记忆常用的转义字符,学会其使用方法。,1/29/2026,18,程序设计基础教程(C语言),转义字符常量,转义字符 功能,n,换行,t,横向跳格,v,竖向跳格,b,退格,r,回车,f,走纸换页,“,”,字符,单引号字符,”,双引号字符,a,响铃,ddd,1,至,3,位八进制数所代表的字符,xhh,1,至,2,位十六进制数所代表的字符,注,:,横向和纵向跳格均以,8,个字符为,1,格。,1/29/2026,19,程序设计基础教程(C语言),5,、,字符串常量,C,语言中用,双引号,将一

12、串字符括起来称为字符串常量。,如,“,asee,”,、“,011”,、,“,We are studying C”,等,。,字符串常量可以看作是一个数组,这个数组的每个元素是一个字符。,编译程序在编译源程序时自动在每个字符串末尾放空字符,0,作为字符串,结束标记,。,1/29/2026,20,程序设计基础教程(C语言),要点:,请区别”,A”,与,A,的不同。,因为它们各自在内存中存放的长度不同。,“,A”A,ASCII,码为0的字符,A,A 0,1/29/2026,21,程序设计基础教程(C语言),6,、,符号常量,1,)含义:用一个标识符表示的常量。,2,)定义方法:,#define,符号常

13、量 数值,例:,#define PRICE 30,在程序任何用到,PRICE,符号常量的地方,系统将自动用常量,30,代替。,3,)使用要点:,为区分符号常量与变量的不同,通常符号常量用大写字母表示(但不是必须)。,1/29/2026,22,程序设计基础教程(C语言),2.1.3,变量,1,、变量的含义:,在程序执行过程中,其值可以被改变的量。,变量的构成:变量名、变量值。,(注意区分变量名和变量值,:,存储单元地址与,存储单元内容),12,a,1/29/2026,23,程序设计基础教程(C语言),变量名,=,初值,例:,int,a,b,c;/*,说明,a,b,c,为整型变量*,/char c

14、c;/*,说明,cc,为字符变量*,/double x,y;/*,说明,x,y,为双精度实型变量*,/,变量名的启用不要与系统的,关键字,相同,也不要与,C,语言标准函数库中的函数名相同。,2.1.3,变量,1/29/2026,24,程序设计基础教程(C语言),C,语言要求,程序里使用的每个变量都必须“,先定义,后使用,”,不同类型的变量应分开定义。,在同一程序的同一部分,不允许对同一变量做重复定义,也就是说,不允许有同名的变量。,1/29/2026,25,程序设计基础教程(C语言),2,、变量的初始化:,在定义变量同时可以对变量赋予初值。,例如:,int,i1=3,i2=4;float f1

15、f2=3.5;,还可以在定义后赋初值。,例如:,int,i1,i2;/*,定义整型变量,i1,和,i2*/,i1=3;,i2=4;/*,为,i1,赋初值为,3,,,i2,赋初值为,4 */,1/29/2026,26,程序设计基础教程(C语言),3,、左值和右值:,左值(,lvalue,):在,C,语言中表示位于赋值运算符左边的值,左值通常指可以定位的值,即有地址的值,可以用来存储其它的值,。,右值,(,rvalue,),:在,C,语言中表示位于赋值运算符右边的值。,例:,int,i=5;,地址,A012H,(左值),数据内容(右值),变量,i,5,1/29/2026,27,程序设计基础教程(

16、C语言),3,、左值和右值:,x=5;,5=x;,C,中有些运算符仅仅需要操作数需要右值,例如,“,+”,的两侧、赋值运算符的右边;有些运算符仅仅需要左值,例如赋值运算符“,=”,的左边;有些运算符需要操作数同时有右值与左值的角色,例如,+,或,-,。,1/29/2026,28,程序设计基础教程(C语言),4,、数据输入和输出,printf,(),的功能,:,按照指定格式将需要输出的数据在标准输出设备上输出。,它的一般格式,:,printf,(,输出控制,输出数据表列,),;,(,1,)输出控制表示由双引号括起来的格式转换控制信息。它分为,两种,形式的信息。,一种是用于说明的,计算机会原样输出

17、的信息。,另一种是带有前置百分号,(%),的格式转换说明,用户用它指定输出数据的格式。,(,2,)输出数据表列表示需要输出的一些数据。各数据之间用逗号分隔。,1/29/2026,29,程序设计基础教程(C语言),照原样输出的部分,如:,printf,(“Visual C+6.0”);,在显示器上输出,“,Visual C+6.0”,要原样输出双引号”、单引号和反斜杠,都必须在其前面加上一个反斜杠,要原样输出,%,则必须用两个,%,。,1/29/2026,30,程序设计基础教程(C语言),(,2,)转换控制部分,以,%,开头用转换字符(英文小写字母)结束的部分,称之为,“,转换说明符,”,。其格

18、式为:,“,%,W.N,修饰符,l,或,L,转换字符,”,例:,printf(,“,%d,”,100);,转换字符,:又称,“,转换说明符,”,,常用的转换说明符及其含义如,表,2.10,所示。,1/29/2026,31,程序设计基础教程(C语言),例如,:,输出整型变量,i,和,j,,使用,printf,(),函数。,为增强可读性,,可插入说明信息“,i=”,和“,j=”,。写成:,printf,(“i=%d,j=%d,i,j);,其中,第一个“,%d”,与,i,对应,第二个“,%d”,与,j,对应。,设,i,、,j,的值分别为,1,和,2,,则输出结果为:,i=1,j=2,使用,print

19、f,(),函数时,必须使用文件包含预编译指令:,#include,1/29/2026,32,程序设计基础教程(C语言),例,:,字符输出,#include,void,main(void,),char c=a;,int,k=97;,printf(%c,%dn,c,c,);,printf(%c,%dn,k,k,);,输出为:,a,97,a,97,1/29/2026,33,程序设计基础教程(C语言),2.2,运算符和表达式,表达式的概念,表达式是由运算对象和运算符组成的式子。,表达式的求值规则是通过表达式中的运算符来实现的。一个常量,一个变量,都可以看成是一个表达式。,分类:,单目运算符:,+,、,

20、双目运算符:,+,、,-,、*、,/,三目运算符:,?:,1/29/2026,34,程序设计基础教程(C语言),2.2.1,算术运算符,用算术运算符或圆括号将运算对象,(,运算分量,),连接起来的式子称为,算术表达式,。在算术表达式中,有下面五个算术运算符:,+,、,-,、*、,/,、,%,注意:,如,a/b,,如果,a,和,b,都是整型量,则其商也为整型量,小数部分被舍去。如,5/2,结果为,2,,如果,a,、,b,中有一个或都是实型量,则,a,和,b,都化为实型量,然后相除,结果为实型类型的量。如,5.0/2,,结果为,2.5,“%”,是,求余运算符,。如,a%b,,其结果为,a,除以

21、b,后的余数。运算符“,%”,要求它的两个运算对象都,必须是整型量,,其结果也是整型量。如,5%2,的结果为,1,。,余数的符号:跟第一个操作数相关。,1/29/2026,35,程序设计基础教程(C语言),思考:,在数学中,,564,的运算结果与,645,的结果相同吗?,C,语言中,表达式,5*6/4,与,6/4*5,的结果相同吗?,表达式,8/(8/10),合法吗?,1/29/2026,36,程序设计基础教程(C语言),标准系统库函数调用,为了方便用户的程序编写,,,C,语言编制者 将一些常用功能编制成函数,并把它们集中放入系统的函数库中,作为标准系统库函数提供给用户使用。,使用时只需要按

22、照规定的格式书写出来就可以了 。,1/29/2026,37,程序设计基础教程(C语言),标准系统库函数调用,调用函数的格式,为:,函数名,(,参数,参数,,);,如:调用,pow,(),函数应包含,文件,因此,在调用,pow,(),函数以前,使用如下预编译命令:,#include,pow,(),函数原型:,double,pow(double,x,double y),1/29/2026,38,程序设计基础教程(C语言),标准系统库函数调用,例:,#include,#include,void main(),double,x,y,;,x=8.0;,y=3.0;,printf(z,=%lf,n,x,*

23、3.0+pow(x,y);,1/29/2026,39,程序设计基础教程(C语言),【,例,2-9】,将下列数学表达式改写为符合,C,语言规则的算术表达式。,改写成,C,语言表达式为:,3.14159*r*r/2.0,改写成,C,语言表达式为:,(m*,n+pow(m,n)/(sin(x)+cos(y,),1/29/2026,40,程序设计基础教程(C语言),2.2.2,赋值运算符,1,、赋值运算符和赋值表达式,赋值表达式的一般格式为:,变量,=,表达式,说明:,赋值运算符左边必须是左值,通常是变量。,赋值运算符是对右边表达式求值以后再将该值送给左边的变量。,赋值运算符与数学上的等号是一样的,

24、但含义不一样。,如果赋值号两边的类型不一致,则赋值时会自动进行类型转换。,转换原则:右边,左边,(5),赋值运算可以连续进行。例如,,a=b=c=10,1/29/2026,41,程序设计基础教程(C语言),2.2.2,赋值运算符,2.,复合赋值运算符,C,语言中提供了另一类赋值运算符,称为复合赋值运算符。例如,+=,、,-=,、*,=,、,/=,、,%=,。,上面,5,个复合运算符的等价形式:,a+=,b+c,等价于,a=,a+(b+c,),a-=,b+c,等价于,a=a-(,b+c,),a*=,b+c,等价于,a=a*(,b+c,),a/=,b+c,等价于,a=a/(,b+c,),a%=,b

25、c,等价于,a=,a%(b+c,),注意:复合运算符在书写时,两个运算符之间不能有空格,否则就是错误的。,1/29/2026,42,程序设计基础教程(C语言),2.2.2,赋值运算符,3,、赋值语句,在赋值表达式的末尾加上一个分号,就构成了一个赋值语句。例如:,i=j+k+1;(,一般算术赋值语句,),a=b=c=10;(,连续赋值语句,),a+=1;(,复合赋值语句,),注意:赋值语句和赋值表达式在程序中所处的地位不一样。,赋值语句可以作为一个独立的语句出现在,C,程序中,而赋值表达式却不能作为一个语句出现,只能作为语句中的一个成分出现在语句中。,1/29/2026,43,程序设计基础教程

26、C语言),【,例,】,写出下面程序的输出结果。,#include,void main(),int,a=1,b,c;,b=a+1;,printf(1)b=%,dn,b,);,a=b+1;,printf(2)a=%,dn,a,);,c=(a+b)/2;,printf(3)c=%,dn,c,);,b=,c+b,;,printf(4)b=%,dn,b,);,c+=,a+b,;,printf(5)c=%,dn,c,);,输出结果为:,(1)b=2,(2)a=3,(3)c=2,(4)b=4,(5)c=9,1/29/2026,44,程序设计基础教程(C语言),使用举例:,a=b=c=3,a=5+(c=2)

27、a=(b=4)+,(,c=6),a=(b=10)/(c=2),a+=a-=a*a,表达式值为,3,,,a,b,c,值均为3,表达式值为,7,,,a,值为,7,,,c,为,2,表达式值为,10,,,a=10,b=4,c=6,表达式值为,5,,,a=5,b=10,c=2,若,a=12,,,(,1,)则,a-=a*a,后,,a=-132,,,(,2,),a+=-132,后,,a=-264,1/29/2026,45,程序设计基础教程(C语言),【,例,】,将大写字母,K,转换成小写字母,k,输出。,#include,void main(),char c1,c2;,c1=K;,c2=c1+a-A;,p

28、rintf(%c,c2);,分析:在,ASCII,码表中,小写字母和大写字母都是分别按字母顺序紧密排列在编码表中,并且大、小写字母,ASCII,码值的差值都为,32,。每个字母的大、小写差值可以用表达式表示为,a-A,,,程序运行结果为:,k,1/29/2026,46,程序设计基础教程(C语言),2.2.3,增,/,减量运算符,C,语言的表达式中,可以使用两个与众不同的单目运算符。这两个运算符是:,+,和,-,。,它们既可以出现在运算对象的前面,称为,前缀,运算符;又可以出现在运算对象的后面,称为,后缀,运算符。,“,+”,称为自增运算符,它的功能是使变量的值加,1,,,“,-”,称为自减运算

29、符,它的功能是使变量的值减,1,。,注意:增量运算符所作用的,运算对象必须有左值,,不能是常量或由运算符构成的表达式。,例如,,+(,x+y,),、,+5,都是不正确的,1/29/2026,47,程序设计基础教程(C语言),2.2.3,增,/,减量运算符,前缀运算符的运算法则是:在使用变量之前,先使变量加,1,或减,1,;,后缀运算符的运算法则是:在使用变量之后,再使变量加,1,或减,1,。,例如,设,i,的值为,1,,则执行赋值语句,j=i+;,后,,j,为,1,,而,i,变为,2,。它等价于执行下面两个语句,j=i;i=i+1;,但是,执行赋值语句,j=+i;,后,则,j,变为,2,i,变

30、为,2,。它等价于执行下列两个语句,i=i+1;j=i;,1/29/2026,48,程序设计基础教程(C语言),2.2.3,增,/,减量运算符,【,例,2.16】,指出下面程序执行后的结果。,#include,void main(),int,i,j,;,i=3;,printf(j,=%,dn,j,=i+);,printf(i,=%,dn,i,);,printf(j,=%,dn,j,=+i);,printf(i,=%,dn,i,);,结果为:,j=3,i=4,j=5,i=5,1/29/2026,49,程序设计基础教程(C语言),例,#include,void,main(void,),int,i=

31、1;,printf(%dn,i+i,+);,i=1;,printf(%dn,+i+i,);,i=1;,printf(%dn,i+i,);,i=1;,printf(%dn,i+(+i,);,运行结果,:,2,4,2,4,注意:慎用或,特别是在同一个表达式中多次出现同一个变量时不要做增,/,减量运算。,1/29/2026,50,程序设计基础教程(C语言),副作用和顺序点,在求表达式的值的同时,产生运算量存储的操作称为,副作用,。赋值操作、复合赋值操作和增量操作都会产生副作用,。,例如,表达式,c=a+;,会产生副作用,求得,c,的值和,a,的增值。,顺序点(,sequence point,)是程序

32、执行中关键的一点。在这个顺序点之前,所有的副作用的计算工作都必须完成。,寻找顺序点的方法:,语句的分号是一个顺序点;,完全表达式求值结束产生一个顺序点;,某些运算符产生顺序点。,1/29/2026,51,程序设计基础教程(C语言),2.2.4,关系运算符,C,语言中提供了,六种,关系运算符,用来表示两个运算对象之间的,大小或相等关系,。它们是:,(,大于,),=(,大于等于,),,,b,,,a=(,a+c,),,,a=bc=50,都是合法的关系表达式。,关系表达式的结果是,“真”,(1),和“假,“,(0),在,C,语言中,凡是非,0,的值都是“真值”,值才是假值。,1/29/2026,52,

33、程序设计基础教程(C语言),2.2.5,逻辑运算符,C,语言中提供了,三个逻辑运算符,,它们是:,!(,逻辑非,):,是单目运算符,如,!a,。若,a,为非零,则,!a,为,0,;若,a,为零,则,!a,为,1,。,&(,逻辑与,):,是双目运算符,如,a&b,。仅当两个运算对象的值都为非零时,结果才为,1,;,否则,只要其中有一个运算对象为零,则结果就为,0,。,(,逻辑或,):,是双目运算符,如,ab,。仅当两个运算对象的值同时为,0,时,结果才为,0,;否则,结果为,1,。,用逻辑运算符将表达式连接起来的式子称为,逻辑表达式,。,1/29/2026,53,程序设计基础教程(C语言),在逻

34、辑表达式中,若连续出现多个,&,运算符,时,按从左至右的顺序计算表达式的值,只要得到一,个表达式的值为逻辑假,(false),,,则全式结果必然为逻,辑假,其后的表达式不再进行计算。例如:,int,n=1,d=0;,d!=0&n=2,不计算,0,对于多个,|,运算符,从左至右逐个计算每个表达,式的值,只要算出一个表达式的值为逻辑真,(true),,,则全式结果必然为逻辑真,也不再计算后面表达式的,值。,1/29/2026,54,程序设计基础教程(C语言),例,#include,void,main(void,),int,i=1,j=2,z=3;,(j=0),printf(%d,%d,%dn,i,

35、j,z,);,i=1,j=2,z=3;,i=1|(j=0),printf(%d,%d,%dn,i,j,z,);,运行结果,:,3,0,3,1,2,3,1/29/2026,55,程序设计基础教程(C语言),2.2.6,条件运算符,C,语言中提供了一个与众不同的三目运算符“,?,:,”。由这个运算符构成的表达式形式为:,e?e1:e2,其中,,e,、,e1,、,e2,代表表达式。,条件表达式的求值法则是:首先求解,e,的值,若,e,值为非,0,,则取,e1,的值作为条件表达式的值;若,e,值为,0,,则取,e2,的值作为条件表达式的值。,例如,求,a,、,b,中的最大值的条件表达式为:,(a,b)

36、ab,注意:符号“,?”,处有一个顺序点,它保证表达式,e,中的所有副作用都必须在求,e1,或,e2,之前完成。,例如:,(ab+)?c=,b:c,=b+5,在执行,c=b,或,c=b+5,以前,,b,一定增值。,1/29/2026,56,程序设计基础教程(C语言),例,:,#include,void,main(void,),float x=1.0;,int,a=2,b=3;,x=(ab)?a:b;,printf(“%f”,x,);,输出为,:3.000000,条件表达式,(a,b)?a:b,的值为整型数据,但,x,为实型数据,所以输出为实型数据,.,1/29/2026,57,程序设计基础教

37、程(C语言),#include,void,main(void,),int,a=1,b=1,c=1;,a+=b;,b+=c;,c+=a;,printf(“(1)%dn”,a,b?a:b,);,printf(“(2)%dn”,a,c?a-:c,+);,(a=b=,c)?printf(“AA”):printf(“CC,”);,printf(“na,=%,d,b,=%,d,c,=%,dn”,a,b,c,);,运行结果:,(,1,),2,(,2,),3,CC,a=2,b=2,c=4,1/29/2026,58,程序设计基础教程(C语言),2.2.7,逗号运算符和逗号表达式,C,语言中,逗号还有另一个作用逗

38、号运算符。用逗号运算符把两个或两个以上的表达式连接起来,就构成了逗号表达式。其格式为:,(,表达式,1,表达式,2,.,表达式,n),由于逗号运算符的优先级最低,所以用圆括号括起来以表示是一个完整的逗号表达式,其求解过程是从左至右求每个表达式的值,最右边“表达式,n”,的值才是整个逗号表达式的结果值。,例如:,unsigned x,y=10;,x=(y-=5,10/y);,1/29/2026,59,程序设计基础教程(C语言),其它运算符,长度运算符(,sizeof,),sizeof(,数据类型名或变量名,),它是单目运算符,运算的结果值是以字节,为单位给出运算量的长度(即几个字节)。,1/29

39、/2026,60,程序设计基础教程(C语言),2.2.8,运算符优先级和结合方向,各种运算符按,由高到低的优先关系,描述如下:,初等运算符,单目运算符,算术运算符,关系运算符,逻辑运算符,(“!”,除外,),条件运算符,赋值运算符,逗号运算符,高,低,1/29/2026,61,程序设计基础教程(C语言),运算符的结合规则中,只有,3,种是“从右至左”结合,它们是,单目运算符,、,条件运算符,和,赋值运算符,等,其它的全部都是“从左至右”结合。,优先级最高的,4,个运算符中,圆括号不仅可作为函数的参数表,还可用来改变优先级。如:,if(x,if(x,1/29/2026,62,程序设计基础教程(C

40、语言),2.3,数据类型的转换,在,C,中,数据类型可以转换为另一种类型。,自动转换,:在表达式,1+3.14159+0+A,出现不同类型的数据将会自动转换。转换原则是由低类型向高类型靠拢。,注意:转换的过程不仅仅是自动的,而且是逐步转换的,。,强制转换,:使用强制类型转换符,(类型名)表达式,例如:设变量,c,、,d,的类型分别为,char,和,double,,则,c+(char)d,的结果类型为,int,。,1/29/2026,63,程序设计基础教程(C语言),返回,c +f +i +d,char float,int,double,float,float,double,【,例,】,考虑如下

41、类型的变量:,char c,;,int,i,;,float f,;,double d,;,试分析如下表达式运算过程中类型转换的状态:,c+f+i+d,自动转换,1/29/2026,64,程序设计基础教程(C语言),强制转换,【,例,】,执行如下程序:,#include,void main(),int,i,j,;,i=1;,j=2;,printf(”i,=%,d,j,=%,f”,i,(float)j,);,输出结果为:,i=1,j=2.000000,1/29/2026,65,程序设计基础教程(C语言),应用:,(,1,)为满足运算的要求:,如:,int,i=3;,float x=13.6;,(,

42、int)x%i,;(13%3=1),(,2,)提高运算精度:,如:,int,i=10;,float x;,x=i/3+25.5;(3+25.5=28.5),或,x=,(,float)i/3+25.5;(3.33+25.5=28.83),1/29/2026,66,程序设计基础教程(C语言),#include,void main(),float x;,int,i;,x=3.6;,i=(,int)x,;,printf(,“,x,=%f,i=%,d,”,x,i,);,注意:,x,本身的值和类型都没有改变,强制类型转换只改变数值类型和值,不改变变量的值和类型。,程序的运行结果为:,x=3.600000,i=3,1/29/2026,67,程序设计基础教程(C语言),THE END,1/29/2026,68,程序设计基础教程(C语言),

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服