欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计第2章.ppt

    • 资源ID:79022788       资源大小:492KB        全文页数:89页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计第2章.ppt

    C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院 第第2 2章章 基本数据类型与运算符基本数据类型与运算符 返回总目录C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院目录目录 2.1 2.1数据类型和取值范围数据类型和取值范围2.22.2运算符运算符2.32.3输入输入/输出函数输出函数2.42.4习题二习题二 返回总目录C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院基本要求:基本要求:)熟悉C语言的常用数据类型;)熟悉C语言的常用运算符;)熟练掌握输入/输出函数的使用。学习重点:学习重点:)C语言运算符的使用;)输入/输出函数的使用。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1基本数据类型和取值范围基本数据类型和取值范围2.1.12.1.1 基本数据类型和取值范围基本数据类型和取值范围 C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void自定义自定义typedef数值类型数值类型字符类型字符类型char枚举类型枚举类型enum整整型型浮点型浮点型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组结构体结构体struct共用体共用体union数据类型决定:数据类型决定:1.1.数据占内存字节数数据占内存字节数2.2.数据取值范围数据取值范围3.3.其上可进行的操作其上可进行的操作 数据类型总表数据类型总表 返回目录C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院字字节节数数有有符符号号的的无无符符号号的的最最小小值值最最大大值值最最小小值值最最大大值值1128+1270255232768+3276706553542147483648+2147483647042949672952.1基本数据类型和取值范围基本数据类型和取值范围2.1.12.1.1 基本数据类型和取值范围基本数据类型和取值范围 整型数的取值范围:整型数的取值范围:C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院数数据据类型型字字节数数(位数)(位数)阶码(e)取)取值范范围最最小小值值最最大大值值单精度精度浮点数浮点数4字字节(32位)位)1271285.87747210393.4028241038双精度双精度浮点数浮点数8字字节(64位)位)102310241.112537103081.797693103082.1基本数据类型和取值范围基本数据类型和取值范围2.1.12.1.1 基本数据类型和取值范围基本数据类型和取值范围 浮点型数的取值范围:浮点型数的取值范围:C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 标识符标识符定义:用来标识变量、常量、函数等的字符序列定义:用来标识变量、常量、函数等的字符序列组成:组成:v只能由只能由字母字母、数字数字、下划线下划线组成,且第一个字母必须是字母或下划组成,且第一个字母必须是字母或下划线线v大小写敏感大小写敏感v不能使用关键字不能使用关键字命名原则:命名原则:v见名知意见名知意v不宜混淆不宜混淆 如如l l与与I,oI,o与与0 02.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 标识符标识符例例:判断下列标识符号合法性判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$1233days#33char$123ab2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量定义:程序运行时其值不能改变的量(即常数)分类:v符号常量:用标识符代表常量l定义格式:#define 符号常量 常量如#define PRICE 30例 符号常量举例#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);l一般用大写字母l是宏定义预处理命令,不是C语句v直接常量:l整型常量 l实型常量 l字符常量 l字符串常量2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-整型常量整型常量(整常数)(整常数)三种形式:v十进制整数:由数字09和正负号表示.如 123,-456,0v八进制整数:由数字0开头,后跟数字07表示.如0123,011v十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff示例:0571 =(377)100 x179=(377)100X179 =(377)102.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-整型常量整型常量(整常数)(整常数)两种长度:整型常量按长度划分为两种:短整型和长整型(后缀为小写字母l或大写字母L),从长度来看:vTurbo C中默认为短整型,如-377是一个短整型数,而-377l或-377L表示-377是长整型数。v而在Visual C+6.0中默认为长整型,如-377、-377l或-377L均表示-377是长整型数。l 例:语句:printf(“%d,%d”,sizeof(-377),sizeof(-377L);在Turbo C中的运行结果为:2,4而在VC中的结果为:4,4小结:从数据类型角度来分析,整型常量默认为int类型,而加上后缀(l或L)后,就是long int类型。2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-实型常量实型常量(实数或浮点数)(实数或浮点数)表示形式:v十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.v指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5e-5 ,实型常量的类型v默认double型v在实型常量后加字母f或F,认为它是float 型l例:语句:printf(“%d,%d”,sizeof(0.123),sizeof(0.123F);在Turbo C和VC中的运行结果均为:8,42.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-字符常量字符常量定义:用单引号括起来的单个普通字符或转义字符.1)1)普通字符:普通字符:其值就是该字符的ASCII码值如 a A?n 1012 2)转义字符:转义字符:反斜线后面跟一个字符或一个代码值表示如 A65,a97,048,n102.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-字符常量字符常量转义字符及其含义:转义字符含义nvraoootbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数ooo代表的字符水平制表退格换页反斜线双引号2位16进制数hh代表的字符2.1基本数据类型和取值范围基本数据类型和取值范围注:1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符。2)v 垂直制表和f 换页符对屏幕显示无影响,但会影响打印机响应。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-字符常量字符常量如如101-A012-nx61-a60-0483-()例例:A-101-x41-65转义字符示例:转义字符示例:2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-字符常量字符常量例 转义字符举例 main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Programn);printf(Turbo C);运行结果:(屏幕显示)A B CI say:”How are you?”C ProgramTurbo C例 main()printf(“Yb=n”);运行结果:屏幕显示:=打印机输出:2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 常量常量-字符串常量字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l o 0例 字符串“hello”在内存中例 空串 “”0字符常量与字符串常量不同a a 0例 a“a”例:char ch;ch=“A”;例:char ch;ch=A;2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量概念:其值可以改变的量变量名与变量值变量定义的一般格式:数据类型 变量1,变量2,变量n;例例:inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量编译程序根据变量定义为其分配指定字节的内存单元.地址short a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;变量初始化:定义时赋初值 2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量例例1 int student;stadent=19;例例2 int a,b,c;c=a%b;变量的使用:变量的使用:先定义,后使用先定义,后使用2.1基本数据类型和取值范围基本数据类型和取值范围/本行语句有错,本行语句有错,a a、b b没有具体的值就参与运算没有具体的值就参与运算/本行语句有错,符号本行语句有错,符号“stadent”“stadent”未定义未定义C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量/*right.c*/#includemain()int a,b=2;float data;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义可执行语句/*wrong.c*/#includemain()int a,b=2;a=1;float data;data=(a+b)*1.2;printf(“data=%fn”,data);变量定义位置:一般放在函数开头2.1基本数据类型和取值范围基本数据类型和取值范围文件名改成文件名改成wrong.cppwrong.cpp在在VCVC中编译可中编译可通过,因通过,因C+C+语法允许!语法允许!C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量&整型变量占字节数随机器不同而不同,一般占一个机器字shortintlong可用sizeofsizeof(类型标识符类型标识符)测量#includestdio.hmain()printf(intlength=%d,sizeof(int);VC运行结果:int length=42.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量&实型变量float:占4字节,提供67位有效数字(跟C编译系统有关,将实型数据按指数形式存储时,一般若以24位二进制位表示小数部分(含符号),则对应的十进制有效数字为7位)double:占8字节,提供1516位有效数字2.1基本数据类型和取值范围基本数据类型和取值范围#includemain()doublea=1.234567890123456789e18;floatb=a;printf(a=%.20len,a);printf(b=%.20len,b);程序输出结果为:程序输出结果为:a=1.23456789012345680000e18b=1.23456793955060940000e18C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量&字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算例例 a=D;/*a=68;*/a=D;/*a=68;*/x=A+5;/*x=65+5;*/x=A+5;/*x=65+5;*/s=!+G /*s=33+71;s=!+G /*s=33+71;*/*/没有字符串变量,字符串用字符数组存放2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.1.22.1.2 常量与变量常量与变量 变量变量变量综合示例:#define PRICE 12.5 main()int num=3;float total;char ch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);运行结果:total=37.500000,ch1=d宏定义变量定义输出结果2.1基本数据类型和取值范围基本数据类型和取值范围C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.12.2.1 优先级与结合规则优先级与结合规则 C运运算算符符算术运算符:(算术运算符:(+-*/%+-+-*/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:逻辑运算符:(!(!&|&|)位运算符位运算符 :(:(|&|&)赋值运算符:(赋值运算符:(=及其扩展及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&*&)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(强制类型转换:(类型类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)运算符运算符 返回目录C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.12.2.1 优先级与结合规则优先级与结合规则 优先级和结合规则总表优先级和结合规则总表C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.12.2.1 优先级与结合规则优先级与结合规则&不同级别的运算符按运算符的优先级别确定不同级别的运算符按运算符的优先级别确定计算顺序,优先级别高(即优先级别数小)计算顺序,优先级别高(即优先级别数小)的运算符先计算:的运算符先计算:&相同级别的运算符按结合规则(左结合性:相同级别的运算符按结合规则(左结合性:从左至右;右结合性:从右至左)确定计算从左至右;右结合性:从右至左)确定计算顺序。顺序。运算符的计算规则运算符的计算规则C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.12.2.1 优先级与结合规则优先级与结合规则 运算符的计算规则运算符的计算规则&例:表达式例:表达式3+4*(12-6)/(1+2)3+4*(12-6)/(1+2)的计算顺序按优的计算顺序按优先级和结合规则可以简单理解为:先级和结合规则可以简单理解为:(12126 6)6 6(1 12 2)3 3 4 4*6 62424 24 24/3=83=8 3 3+8=118=11注:表达式的求值问题属于注:表达式的求值问题属于“栈栈”的典型应用,的典型应用,在数据结构课程中会详细介绍。在数据结构课程中会详细介绍。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.22.2.2 赋值运算与连续赋值赋值运算与连续赋值 在在C C中,运算符中,运算符“=”“=”是赋值运算符。是赋值运算符。简单赋值运算的一般形式为:简单赋值运算的一般形式为:变量变量=表达式表达式其功能是将一个表达式的值赋给变量。其功能是将一个表达式的值赋给变量。如下表达式如下表达式a=b+ca=b+c该式读作将表达式该式读作将表达式b+cb+c的值赋给的值赋给a a。其本意是改写变。其本意是改写变量量a a的值,而不是判断的值,而不是判断b+cb+c与与a a是否相等。是否相等。赋值运算赋值运算C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.22.2.2 赋值运算与连续赋值赋值运算与连续赋值 连续赋值连续赋值在在C C语言中,赋值运算符的级别较低,为语言中,赋值运算符的级别较低,为1414级,并满级,并满足右结合规则。因此表达式:足右结合规则。因此表达式:x=y=z=1x=y=z=1是连续赋值表达式,其功能相当于如下表达式的功是连续赋值表达式,其功能相当于如下表达式的功能能x=x=(y=y=(z=1z=1)它是先执行表达式它是先执行表达式z=1z=1,即将,即将1 1赋给赋给z z,表达式值也为,表达式值也为1 1,然后将表达式值,然后将表达式值1 1赋给赋给y y,即执行,即执行y=1y=1,表达式值也,表达式值也仍为仍为1 1,再将表达式值,再将表达式值1 1赋给赋给x x,即执行,即执行x=1x=1。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.32.2.3 算术运算算术运算 v结合方向:从左向右结合方向:从左向右v优先级:优先级:-*/%*/%+-+-(2)(3)(4)(2)(3)(4)说明:说明:l“-”“-”为为单目单目运算符时运算符时(表示负号)表示负号),为为右结合性右结合性l两整数相除,结果为整数两整数相除,结果为整数l%要求两侧均为整型数据要求两侧均为整型数据例例 5/2 =2 -5/2.0=-2.5例例 5%2 =1 -5%2 =-1 1%10 =1 5%1 =0 5.5%2 ()基本算术运算符:基本算术运算符:+-*/%+-*/%C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.32.2.3 算术运算算术运算 自增、自减运算符自增、自减运算符+-+-v作用:使变量值加作用:使变量值加1 1或减或减1 1v种类:种类:l前置前置 +i,-i (+i,-i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)l后置后置 i+,i-(i+,i-(先使用先使用i i值值,再执行再执行i i+1+1或或i-1i-1)例例 j=3;k=+j;j=3;k=+j;j=3;k=j+;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4“先加后用先加后用”“先用后加先用后加”C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.32.2.3 算术运算算术运算 自增、自减运算符自增、自减运算符+-+-v说明:说明:l+-+-不能用于常量和表达式不能用于常量和表达式,如如5+5+,(a+b)+(a+b)+l+-+-结合方向:结合方向:自右向左自右向左l优先级:优先级:-+-+-*/%*/%+-+-(2)(3)(4)(2)(3)(4)例例-i+-i+-(i+)-(i+)i=3;printf(“%d”,-i+);i=3;printf(“%d”,-i+);/-3/-3 C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.32.2.3 算术运算算术运算 自增、自减运算符自增、自减运算符+-+-v特别提示:慎用特别提示:慎用+,-+,-运算符运算符!4,34 5,3,2,23,34 3,2,2,2a=3;printf(%d,%dn,a,a+);printf(%dn,a);a=3;printf(%d,%d,%d,%dn,+a,a+,a+,-a);TC中结果:中结果:VC中结果:中结果:从例中可分析出:从例中可分析出:1 1、函数参数均按、函数参数均按从右到左从右到左的顺序求值;的顺序求值;2 2、对于后置运算,都遵循、对于后置运算,都遵循“先用后加先用后加”规规则,但则,但“加加”的时机不同,的时机不同,TCTC中是用后马中是用后马上加上加,这样下个左边的参数用到的值是加,这样下个左边的参数用到的值是加后的值,而在后的值,而在VCVC中,用后不马上加中,用后不马上加,而是,而是在函数调用(在函数调用(printfprintf)完成后才加。)完成后才加。例:例:C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.32.2.3 算术运算算术运算 自增、自减运算符自增、自减运算符+-+-v特别提示:慎用特别提示:慎用+,-+,-运算符运算符!由上例知,由于由上例知,由于+,-+,-运算符在不同版本的运算符在不同版本的C C编译系统中使用编译系统中使用时会出现非预期的结果,因此要慎用时会出现非预期的结果,因此要慎用!例如:例如:a=3;printf(“%d,%d”,a,a+);a=3;printf(“%d,%d”,a,a+);在在有的系统中,函数参数是从左至右求值有的系统中,函数参数是从左至右求值,输出,输出“3,3”“3,3”,在,在多数系统(如多数系统(如TCTC和和VCVC)中是从右至左求值)中是从右至左求值,输出,输出“4,3”“4,3”或或“3,3”“3,3”。因此,以上写法不宜提倡,。因此,以上写法不宜提倡,最好改写成:最好改写成:a=3;b=a+;printf(“%d,%d”,a,b);a=3;b=a+;printf(“%d,%d”,a,b);或:或:a=3;b=a;a+;printf(“%d,%d”,a,b);a=3;b=a;a+;printf(“%d,%d”,a,b);则结果都是明确的则结果都是明确的(输出输出“4,3”)“4,3”)。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.32.2.3 算术运算算术运算 自增、自减运算符自增、自减运算符+-+-v特别提示:慎用特别提示:慎用+,-+,-运算符运算符!总之,不要编写让人很难看懂,也不知道系统总之,不要编写让人很难看懂,也不知道系统会怎样执行的程序。会怎样执行的程序。所以,我们可以通过一些含所以,我们可以通过一些含+,-+,-比较多的表比较多的表达式来加深对其运算规则的理解,但在实际编程中,达式来加深对其运算规则的理解,但在实际编程中,除非不得已,否则绝对不要编写含除非不得已,否则绝对不要编写含+,-+,-比较多的比较多的表达式。表达式。从上面的介绍可知,含从上面的介绍可知,含+,-+,-比较多的复杂语比较多的复杂语句或有歧义的语句句或有歧义的语句完全可以用简单易懂、结果完全可以用简单易懂、结果明确的语句组替代明确的语句组替代。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.42.2.4 关系运算关系运算 关系运算又称为比较大小运算,它有六个运关系运算又称为比较大小运算,它有六个运算符:算符:、=、=、=、=3 5=3 53 53 5=3 53 532532在数学上是恒成立的。但在在数学上是恒成立的。但在C C语言中,上式却不成立,因为首先计语言中,上式却不成立,因为首先计算第一个大于号,其值为算第一个大于号,其值为1 1,而后计算第二个大于号时,成为计算,而后计算第二个大于号时,成为计算1212,显然不成立,其值为,显然不成立,其值为0 0。实际上,连续比较大小时,表示几个。实际上,连续比较大小时,表示几个条件同时满足,因此若将上式改写为条件表达式条件同时满足,因此若将上式改写为条件表达式53&3253&32后,则与数学上的的连续比较含意相符,表达式也是成立的。后,则与数学上的的连续比较含意相符,表达式也是成立的。连续比较连续比较C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.52.2.5 逻辑运算、连续比较和逻辑优化逻辑运算、连续比较和逻辑优化 逻辑优化逻辑优化n逻辑与优化。逻辑与优化。从逻辑与运算从逻辑与运算a&ba&b的真值表中,我们可以的真值表中,我们可以看出,只要看出,只要a a值为值为0 0,不管,不管b b值如何,其运算结果都为值如何,其运算结果都为0 0,因,因此,在进行逻辑与运算时,此,在进行逻辑与运算时,只要计算出只要计算出a a值为值为0 0,则不需计,则不需计算算b b值值,这种情况,我们称之为逻辑与优化,这种情况,我们称之为逻辑与优化。n逻辑或优化。逻辑或优化。对于逻辑或运算对于逻辑或运算a|ba|b,只要计算出只要计算出a a值为值为1 1,则也不需计算,则也不需计算b b值,此时表达式值恒为值,此时表达式值恒为1 1,这种情况称之,这种情况称之为逻辑或优化。为逻辑或优化。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.52.2.5 逻辑运算、连续比较和逻辑优化逻辑运算、连续比较和逻辑优化 例例2.42.4逻辑运算综合举例逻辑运算综合举例#includemain()intx,y,z;x=y=z=0;+x|+y|+z;printf(“x=%dy=%dz=%dn”,x,y,z);x=y=z=0;+x&+y|+z;printf(“x=%dy=%dz=%dn”,x,y,z);x=y=z=0;+x&+y&+z;printf(“x=%dy=%dz=%dn”,x,y,z);x=y=z=0;+x|+y&+z;printf(“x=%dy=%dz=%dn”,x,y,z);程序运行结果为:程序运行结果为:x=1y=0z=0 x=1y=1z=0 x=1y=1z=1x=1y=0z=0C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.62.2.6 位运算位运算 位运算操作符位运算操作符表表2.5位运算符号表位运算符号表运算符运算符符号名符号名例子例子意义意义优先级优先级结合规则结合规则&位与位与a&ba&ba a与与b b按位求与按位求与8 8左左 位异或位异或ababa a与与b b按位求异或按位求异或9 9左左|位或位或a|ba|ba a与与b b按位求或按位求或1010左左 位反位反aa对对a a按位求反按位求反2 2右右右移位右移位ababa a向右移向右移b b位位5 5左左左移位左移位ababa a向左移向左移b b位位5 5左左C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.62.2.6 位运算位运算 异或运算异或运算异或运算真值表见表异或运算真值表见表2.62.6,即对应位,即对应位相同时为相同时为0 0,不同时为,不同时为1 1.表表2.62.6异或运算真值表异或运算真值表a ab babab1 11 10 01 10 01 10 01 11 10 00 00 0C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.62.2.6 位运算位运算 移位运算移位运算n左移位运算左移位运算ababab:右边移出的部分将丢弃,左边空出的右边移出的部分将丢弃,左边空出的高位部分填补方法则根据高位部分填补方法则根据a a是否为带符号数又分为两种:是否为带符号数又分为两种:a a为带符号数时,左边空出的高位部分用符号位填补;为带符号数时,左边空出的高位部分用符号位填补;a a为不带符号数时,左边空出的高位部分用为不带符号数时,左边空出的高位部分用0 0填补。填补。注意:注意:参与运算的数以参与运算的数以补码补码形式出现形式出现.C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.62.2.6 位运算位运算 例例2.52.5#includemain()chara=-25,b=93,c;unsignedchard=-25;c=a&b;printf(“%dn”,c);c=a|b;printf(“%dn”,c);c=ab;printf(“%dn”,c);c=a;printf(“%dn”,c);b=3;c=ab;printf(“%dn”,c);c=db;printf(“%dn”,c);a=25;c=ab;printf(“%dn”,c);c=ab)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院v条件运算符可嵌套条件运算符可嵌套 如如 x0?1:(xb?a:cd?c:d ab?a:(cd?c:d)2.2运算符运算符2.2.72.2.7 条件运算条件运算例例 求求 a+|b|printf(“a+|b|=%dn”,b0?a+b:a-b);例例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a&c=a=ba=ba=aba=ab%=%=a%=ba%=ba=a%ba=a%b=a=ba=ba=aba=ab表表2.72.7复合赋值运算符复合赋值运算符C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.92.2.9 逗号运算逗号运算形式:形式:表达式表达式1 1,表达式表达式2 2,表达式表达式n n结合性结合性:从左向右从左向右优先级优先级:1515计算过程:从前往后,依次计算计算过程:从前往后,依次计算逗号表达式逗号表达式的值:等于表达式的值:等于表达式n n的值的值例例:#includemain()intx,y=7;floatz=4;x=(y=y+6,y/z);printf(x=%dn,x);X=3程序运行结果为:程序运行结果为:C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.102.2.10 求字节数(求字节数(sizeof)sizeof)1 1)sizeofsizeof计算类型占用字节数的形式为计算类型占用字节数的形式为:sizeofsizeof(类型)(类型)2 2)sizeofsizeof计算变量占用字节数的形式有两种计算变量占用字节数的形式有两种:sizeofsizeof(变量)(变量)或或sizeof sizeof 变量变量 示例:示例:#includemain()inta=5;printf(%dn,sizeof(int);printf(%dn,sizeof(a);printf(%dn,sizeofa);TC运行结果为:运行结果为:222VC运行结果为:运行结果为:444C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.112.2.11 类型转换类型转换 算术运算类型转换算术运算类型转换算术运算中,当两个运算数类型相同时,运算结果类型与原类算术运算中,当两个运算数类型相同时,运算结果类型与原类型相同,当两个运算数类型不同时,运算结果类型为级别较高的型相同,当两个运算数类型不同时,运算结果类型为级别较高的数据类型。类型级别高低按下述规则进行:数据类型。类型级别高低按下述规则进行:即字符型向整型即字符型向整型转换转换、整型向、整型向实实数型数型转换转换、短型向、短型向长长型型转换转换、不、不带带符号型向符号型向带带符号型符号型转换转换。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院例如表达式:例如表达式:5/2+3*4.5+25/2+3*4.5+2的运算结果为的运算结果为17.517.5,而不是,而不是1818。因为因为5/25/2时,除法运算符时,除法运算符“/”“/”两边运算数的类型都为整数,两边运算数的类型都为整数,其运算结果类型也应为整数类型,其值当然为其运算结果类型也应为整数类型,其值当然为2 2,而不是,而不是2.52.5;乘法乘法3*4.53*4.5两边运算数的类型不同,结果类型为级别高的类型,两边运算数的类型不同,结果类型为级别高的类型,即实型,值为即实型,值为13.513.5,整个表达式值为,整个表达式值为17.517.5。如将上述表达式改写为:如将上述表达式改写为:5/2.0+3*4.5+25/2.0+3*4.5+2此时,其运算结果为此时,其运算结果为18.018.0,而不是,而不是17.517.5,请读者自行分析。,请读者自行分析。2.2运算符运算符2.2.112.2.11 类型转换类型转换 算术运算类型转换算术运算类型转换C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.112.2.11 类型转换类型转换 赋值转换赋值转换执行赋值运算执行赋值运算变量变量a=a=表达式表达式b b时,若时,若a a、b b类型相同,则直接将类型相同,则直接将b b赋给赋给a a即可,即可,若若a a、b b类型不同,则需先将类型不同,则需先将b b的类型转换为的类型转换为a a的的类型后再赋值,这种类型转换,我们称之为赋类型后再赋值,这种类型转换,我们称之为赋值类型转换。值类型转换。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学院2.2运算符运算符2.2.112.2.11 类型转换类型转换 强制类型转换强制类型转换强制类型转换的一般格式为:强制类型转换的一般格式为:(目标类型)表达式(目标类型)表达式其功能是将表达式类型转换为目标类型,其转换其功能是将表达式类型转换为目标类型,其转换方法同赋值转换。方法同赋值转换。如:如:float a=3.1;float a=3.1;int i;int i;i=i=(int)a(int)a;则则i i的值为的值为3 3。C语言程序设计电子教案 第2章基本数据类型与运算符湖南科技大学计算机学

    注意事项

    本文(C语言程序设计第2章.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开