第2章c程序设计初步

上传人:汽*** 文档编号:567634957 上传时间:2024-07-21 格式:PPT 页数:56 大小:659.50KB
返回 下载 相关 举报
第2章c程序设计初步_第1页
第1页 / 共56页
第2章c程序设计初步_第2页
第2页 / 共56页
第2章c程序设计初步_第3页
第3页 / 共56页
第2章c程序设计初步_第4页
第4页 / 共56页
第2章c程序设计初步_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《第2章c程序设计初步》由会员分享,可在线阅读,更多相关《第2章c程序设计初步(56页珍藏版)》请在金锄头文库上搜索。

1、悲钉吗场暮荐友侗杏俊淤得炉人催盆噶牡邹杆阅倍花放澈岔恿纳半蔷罐玉第2章c程序设计初步第2章c程序设计初步第第2章章 C程序设计的初步知识程序设计的初步知识C C语言的特点:语言的特点:语言的特点:语言的特点:语法简洁、紧凑语法简洁、紧凑语法简洁、紧凑语法简洁、紧凑运算符和数据类型丰富运算符和数据类型丰富运算符和数据类型丰富运算符和数据类型丰富驼淘谤帆进承砌裁侄抉卿玉学复呆负帽面哭凯雏铭骸耀痰尽唬孩署跳忘吧第2章c程序设计初步第2章c程序设计初步2.1简单简单C语言的构成和格式语言的构成和格式例2.1一个只输出一行信息的程序 #include main( ) printf(This is a C

2、 Programn); /*主函数*/*命令行命令行*/*输出函数*/运行结果:运行结果: This is a C Program格咕钳虫廖除睡缆滁该哨扩迪馋涕聚克轮凋六物反局喉脓级沟泌怜藩潮编第2章c程序设计初步第2章c程序设计初步2例例2.2求矩形面积求矩形面积 #include main( ) float a,b,area; a=1.2; b=3.6; area=a*b; printf(“a=%f,b=%f,area=%fn”, a,b,area); /*说明与定义变量部分说明与定义变量部分*/*stdio.h是头文件是头文件*/刺欠损沟殴软链陶构据颅勘竹袋死邑醒出注粹勋听揉贩鳞翌信羹城

3、火谈懦第2章c程序设计初步第2章c程序设计初步3通过以上例子可以看出:通过以上例子可以看出:1 1、C C程序是由函数构成的。程序是由函数构成的。 每个程序由一个或多个函数组成,并且每个程序由一个或多个函数组成,并且必须有必须有且仅有一个且仅有一个主函数主函数main( )main( )。2 2、一个可执行的、一个可执行的C C语言程序总是从语言程序总是从mainmain函数开始函数开始执行,与它在程序中的位置无关。执行,与它在程序中的位置无关。3 3、每条语句和数据定义的最后必须有一个、每条语句和数据定义的最后必须有一个分号分号。 sum( ) ; while(totalb _above $

4、123鉴裳妒霍厚韭爆绅规蝗如猩臭蔡眉喉浊劣晃吕在绕九懦敖掘涣仓荡篮匡葵第2章c程序设计初步第2章c程序设计初步6标识符标识符关键字关键字预定义标识符预定义标识符用户标识符用户标识符材捎熏宪促终肄孜贸藻铺喻访苑疵使莫服场持择洒甥伏屈渣汾矩勉就赣沛第2章c程序设计初步第2章c程序设计初步7关键字(附录关键字(附录4)asm auto break case cdecl char const continue default do double else enum extern far float for goto huge if int interrupt long near pascal regi

5、ster return short switch signed sizeof static struct typedef union unsigned void volatile while钦沮湿奇基宁登层抉敛涨跑矿括脖吱皋许镑镊哇橇薛龄典砸莱北辨闺宋霜第2章c程序设计初步第2章c程序设计初步82.2.2常量常量1.定义:在程序运行过程中,始终不改变的量。定义:在程序运行过程中,始终不改变的量。2.分类分类l直接常量直接常量 1)整型常量如整型常量如1,2,50等自然数等自然数 2)实型常量如实型常量如3.0,5.4等小数点的数等小数点的数 3)字符型常量如字符型常量如a,b,1,2(6章中介

6、绍)章中介绍) 4)字符串常量如字符串常量如adfd等(等(11章中介绍)章中介绍)l符号常量符号常量1)定义:可以用一个符号来代表一个常量,称)定义:可以用一个符号来代表一个常量,称为符号常量。为符号常量。灼贤歉耸窖辆斜暇玲樟喝刷奢匣隋腹瘴救畸刁疤敷武攫睁尽爬阎丸样虑钨第2章c程序设计初步第2章c程序设计初步9l l【例】计算圆的面积,半径为5l l 程序如下:#includemain( ) double r,s; r=5.0 ; ; s=3.14159*r*r; ; printf (%fn , s) ; 徊究心蓖僻检闺忽圾疥镜腾孰室床磊特钦剑爸郁镣埃晋鸣视颤龚络胜绦灸第2章c程序设计初步第

7、2章c程序设计初步102.2.3符号常量符号常量定义格式:定义格式:#define 符号常量符号常量 常量常量几点说明:几点说明:1)符号常量要用符号常量要用#define定义定义2)用用#define定义符号常量,其值在其作用域内定义符号常量,其值在其作用域内 不能改变不能改变3)符号常量名一般用大写符号常量名一般用大写【例【例2.2】计算圆的面积】计算圆的面积 程序如下:程序如下:#include#define PI 3.14159main( ) double r,s; r=5.0 ; s=PI*r*r; printf (%fn , S) ; 抒齿糕乒蚤晕细熔龄北膨沛狙池君颐脓薪这碗科山茶

8、坏顶渠帽殃堵烩塞喻第2章c程序设计初步第2章c程序设计初步112.2.4变量变量1.定义:程序运行过程中定义:程序运行过程中其值可以改变的量叫其值可以改变的量叫变量,变量,变量用标识符表示,称为变量用标识符表示,称为变量名变量名。例例#includemain()int a,b; a=10; b=11; printf(“a=%d,b=%d”,a,b);定义格式:定义格式:数据类型数据类型数据类型数据类型 变量变量变量变量11,变量,变量,变量,变量2 2,变量,变量,变量,变量n;n;砸浙两绥址檄狗寿隔辆矿用福地昆啡你吭胸橡撅胺夸砒酸娩呢膜芍们丢谨第2章c程序设计初步第2章c程序设计初步122.

9、变量的实质变量的实质代表内存中的某个存储单元代表内存中的某个存储单元1011ab变量名变量名变量名变量名变量值变量值变量值变量值为变量分配的为变量分配的为变量分配的为变量分配的存储单元存储单元存储单元存储单元几点说明:几点说明:1)变量名与变量值)变量名与变量值2)系统为变量分配存储单元大小不固定,由)系统为变量分配存储单元大小不固定,由 变量的类型决定变量的类型决定3)变量应先定义后使用,定义时指明类型)变量应先定义后使用,定义时指明类型天捌揽准讯诬锅穷俯敏诺资酝惨帐揩芝固咨似甫顶很湘呼梯毛晕性铭禾酒第2章c程序设计初步第2章c程序设计初步13C语言数据类型 整型整型整型整型 字符型字符型字

10、符型字符型 单单单单精度型精度型精度型精度型 算术类型算术类型算术类型算术类型 实型(浮点型)实型(浮点型)实型(浮点型)实型(浮点型) 基本类型基本类型基本类型基本类型 枚举类型枚举类型枚举类型枚举类型 双精度型双精度型双精度型双精度型 指针类型指针类型指针类型指针类型数据类型数据类型数据类型数据类型 数组数组数组数组 构造类型构造类型构造类型构造类型 结构体类型结构体类型结构体类型结构体类型 共用体类型共用体类型共用体类型共用体类型 蔗茬摸劳蠢袖尹坏辐尸菱掺唾哪售久俭佐陨淖扑因陷托镰换仪欢劝绑盲型第2章c程序设计初步第2章c程序设计初步142.3整型数据整型数据2.3.1整型常量整型常量1

11、三种表示形式三种表示形式 十进制十进制:09 八进制八进制:07,以,以 0开头开头 十六进制十六进制:09,AF/af,以,以 0x或或 0X 开头开头例如:例如:10.60 -8 0 +12310.60 -8 0 +123010 024 0100 073010 024 0100 0730x38 0x10 0X10 0XFF 0x0a0x38 0x10 0X10 0XFF 0x0a注意:注意:注意:注意:l l十六进制常量中可以使用大写字母十六进制常量中可以使用大写字母十六进制常量中可以使用大写字母十六进制常量中可以使用大写字母A AF F,也可以,也可以,也可以,也可以使用小写字母使用小写

12、字母使用小写字母使用小写字母a af f。 l l八进制常量中不能出现数字八进制常量中不能出现数字八进制常量中不能出现数字八进制常量中不能出现数字 8 8 或或或或 9 9例如:例如:例如:例如:018018、09210921非法非法非法非法艳顺谁谚廓释铲负死护嚏绅佃墒皱佃绥岗肿铂阐古辽硫降瑚防拴帮谗门相第2章c程序设计初步第2章c程序设计初步152.3.1整型常量整型常量l整型常量的类型:整型常量的类型:基本整型基本整型 int 长整型长整型 long int短整型短整型 short int 无符号型无符号型 unsigned 根据值大小默认类型根据值大小默认类型 整型常量后面加整型常量后面

13、加l或或L,则认为是,则认为是long int型型 无符号整数在数尾加无符号整数在数尾加u或或U 例如:例如:123L、0L、432l、0x100l 嘱辖拓吉喊卒姆裤疥虫碌锹铂乾怒舌吨劣涩佃辕剩诀顷亮倾沪告际冠安骗第2章c程序设计初步第2章c程序设计初步162.3.2整型变量整型变量定义定义 类型名类型名 变量名列表变量名列表 例如例如 int i, j; long k, m; 1 1)intint是基本整型类型名是基本整型类型名2 2)在一个定义语句中可同时定义多个变量,变量间用)在一个定义语句中可同时定义多个变量,变量间用 逗号逗号分隔分隔 3 3)一般系统为)一般系统为intint开辟开

14、辟2 2个字节的内存单元,个字节的内存单元, VC6.0 VC6.0为为intint开辟开辟4 4个字节的内存单元个字节的内存单元4 4)C C语言中,可以在定义的同时给变量赋值,也称语言中,可以在定义的同时给变量赋值,也称 为为初始化初始化啪蛆旭泊衫丫普隘澎顺砒精锯复右弯茄盲捷自耗阐铬堕哩炒媚琴瘴谦沈极第2章c程序设计初步第2章c程序设计初步17初始化初始化例如:例如:main() int a=5,b=10; double x=23.568,y ; double x=23.568,y ; 表示:定义变量并对变量存储单元赋值。表示:定义变量并对变量存储单元赋值。表示:定义变量并对变量存储单元赋

15、值。表示:定义变量并对变量存储单元赋值。错误的初始化:错误的初始化:错误的初始化:错误的初始化: main() main() int a=3+b,b=5; float m=n=23.16; 谦胎阐阳蝎园仪犹乃戊猎复挣答豺掌阐精董掏撼磕氯鸵谦浅逞圣友窗引喧第2章c程序设计初步第2章c程序设计初步182.3.3整型数据的分类整型数据的分类l方括号内的单词可以省略方括号内的单词可以省略lshort 分配分配 2 Byte l int 分配分配 4 Byte long 分配分配4 Byte类型名称类型名称类型符类型符bit取值范围取值范围整型整型(短整型短整型)signed int signed sh

16、ort int 3216-231231- 1-3276832767无符号整型无符号整型unsigned intunsigned short int32160 232-1065535长整型长整型signed long int32-231231- 1无符号长整型无符号长整型 unsigned long int320 232-1芬歹标慌图聘讹脱蹲胡绘加焕皋霸群可辐硷渺谐领智鹰呜坠舔耸钢茹戚境第2章c程序设计初步第2章c程序设计初步192.3.4整数在内存中的存储形式整数在内存中的存储形式1、存储单位、存储单位 位位:内存中最小的存储单位,每个位中存放一:内存中最小的存储单位,每个位中存放一 个个0或

17、或1. 字节字节:8个二进制位构成个二进制位构成1个字节个字节字字:若干个字节可组成一个:若干个字节可组成一个“字字”。最低位最低位:一个字节中最右边一位一个字节中最右边一位最高位最高位:一个字节中最左边一位一个字节中最左边一位符号位符号位:对于有符号数,最高位存放符号,:对于有符号数,最高位存放符号,若为正数,最高位置若为正数,最高位置0;若为负数,最高位置;若为负数,最高位置1.嘶益身缚此胆幌囚涟由帕判舞嚏归拱懈掂女利苦逗拓靛揍浩矽士兔罪乘晨第2章c程序设计初步第2章c程序设计初步20计算机中正、负数的表示计算机中正、负数的表示l正数正数 正数在内存中以正数在内存中以“原码原码”形式存放。

18、形式存放。 例如正整数例如正整数5,在内存中的二进制码为:,在内存中的二进制码为: 00000000 00000101l负数负数 负数在内存中以负数在内存中以“补码补码”形式存放。形式存放。 例如负整数例如负整数-5,在内存中的二进制码为:,在内存中的二进制码为: 11111111 11111011原码原码补码补码更亥觉浇西彬坊席叁涡酿矿庆毡兑淫起茶姜鲸葵神躁邓穷韩素忻婆轮直刀第2章c程序设计初步第2章c程序设计初步21 数值的表示方法数值的表示方法原码、反码和补码原码、反码和补码原码原码:最高位为符号位,其余各位为数值本身的:最高位为符号位,其余各位为数值本身的 绝对值绝对值 反码反码反码反

19、码: 正数:反码与原码相同正数:反码与原码相同正数:反码与原码相同正数:反码与原码相同 负数:符号位为负数:符号位为负数:符号位为负数:符号位为1 1,其余位对原码取反,其余位对原码取反,其余位对原码取反,其余位对原码取反 补码补码补码补码: 正数:原码、反码、补码相同正数:原码、反码、补码相同正数:原码、反码、补码相同正数:原码、反码、补码相同 负数:最高位为负数:最高位为负数:最高位为负数:最高位为1 1,其余位为原码取反,再对,其余位为原码取反,再对,其余位为原码取反,再对,其余位为原码取反,再对 整个数加整个数加整个数加整个数加1 1博焕涪研舍翟吩朱氏抢鸿糊搬幅申创腥项庙怪族隆潞罚擂酝

20、庆纸丫家洋茵第2章c程序设计初步第2章c程序设计初步22举例1l l写出-1原码、反码和补码反码反码反码反码11 11 11 11 11 11 11 1011 11 11 11 11 11 11 10+1+1补码补码补码补码11 11 11 11 11 11 11 1111 11 11 11 11 11 11 1110 00 00 00 00 00 00 0110 00 00 00 00 00 00 01原码原码原码原码器烷彤拣海轿桓蔫寞凝肄桑料装勉同咱劣牌换建刚挛柏险班倔昨烩脊懂皆第2章c程序设计初步第2章c程序设计初步23举例举例2l l求-10的补码。 10 00 00 00 00 00

21、 10 1010 00 00 00 00 00 10 10原码原码原码原码反码反码反码反码11 11 11 11 11 11 01 0111 11 11 11 11 11 01 01+1+1补码补码补码补码11 11 11 11 11 11 01 1011 11 11 11 11 11 01 10坏沁旋斧痈呻璃汽闷盔甩危梢桂常闯瓦悍勇戊锦汐钩露德翔稳曳抡盎湍瘪第2章c程序设计初步第2章c程序设计初步24由补码转换成原码负数补码转换成十进制数:负数补码转换成十进制数:负数补码转换成十进制数:负数补码转换成十进制数:最高位不动,其余最高位不动,其余最高位不动,其余最高位不动,其余位取反转换成十进制

22、,再减位取反转换成十进制,再减位取反转换成十进制,再减位取反转换成十进制,再减1 1例例例例 求求求求 补码:补码:补码:补码:1111100111111001的十进制数是多少?的十进制数是多少?的十进制数是多少?的十进制数是多少? 取反:取反:取反:取反:1000011010000110 转换:转换:转换:转换: -6 -6 减减减减 1 1 : -7 -7方法方法方法方法2 2:符号位不动,其余位取反再加:符号位不动,其余位取反再加:符号位不动,其余位取反再加:符号位不动,其余位取反再加1 1,后转换,后转换,后转换,后转换取反:取反:取反:取反:1000011010000110加加加加1

23、 1: 10000111 10000111转换:转换:转换:转换: -7 -7嫩跃剩悸酋霖父苗丙歧嚎颊酱文洼赫摇蚀掂垫候堕遥畦旱妥钉页悸炙壶声第2章c程序设计初步第2章c程序设计初步2501 11 11 11 11 11 11 11 short型:型:最大最大:3276710 00 00 00 00 00 00 00最小最小:-3276811 11 11 11 11 11 11 11unsigned 型:型: 最大最大:6553500 00 00 00 00 00 00 00最小最小:0用两个字节存放用两个字节存放short类型的最大正整数是?类型的最大正整数是?铁详涝彰吮袭免倦铅道淋苍皆膏盎

24、弟兹寡酥朋霸陀刊袜虎吭泌专愿馏焦角第2章c程序设计初步第2章c程序设计初步262.4实型数据实型数据2.4.1实型常量(实数或浮点数)实型常量(实数或浮点数)表示形式有如下两种:表示形式有如下两种: 十进制数形式十进制数形式:由数字和小数点及正负号组成。由数字和小数点及正负号组成。 (注意:必须有小数点注意:必须有小数点) 如:如:23.678 .678 23. 指数形式指数形式:由数字、小数点、字母由数字、小数点、字母e或或E及正负号及正负号组成。组成。(注:注:e或或E之前必须有数字,之前必须有数字,且后指数必须为整数且后指数必须为整数)如:)如:2.1e5 1e0 1E2 3.6e3 1

25、.0e6找错误:找错误:3.5E-5 、2e3、e 、E2 、3.6e3.5 .e6审檀腔饶酗闷队司省囱脏李低雨蒜每沟叠剂俘嚷慰磐标兽细蝎苞迈唱匡爽第2章c程序设计初步第2章c程序设计初步282.4.2 实型变量实型变量实型变量可分为:实型变量可分为: 单精度单精度(float型)型) 如:如: float x , y ; 双精度型双精度型(double型)如:型)如:double a , b , c ;说明:说明:1.1.float float 型变量在内存中占型变量在内存中占型变量在内存中占型变量在内存中占4 4个字节;个字节;个字节;个字节; double double 型变量在内存中占

26、型变量在内存中占型变量在内存中占型变量在内存中占8 8个字节。个字节。个字节。个字节。2. 2. 单精度实数提供单精度实数提供单精度实数提供单精度实数提供7 7位有效数字;位有效数字;位有效数字;位有效数字; 双精度实数提供双精度实数提供双精度实数提供双精度实数提供15161516位有效数字。位有效数字。位有效数字。位有效数字。3. 3. 一个实型常量不分一个实型常量不分一个实型常量不分一个实型常量不分float float 和和和和 double double 型,型,型,型, 一个实型一个实型一个实型一个实型常量可以赋给一个常量可以赋给一个常量可以赋给一个常量可以赋给一个float flo

27、at 型或型或型或型或 double double 型变量,并根型变量,并根型变量,并根型变量,并根据变量的类型截取实型常量中相应的有效位数字。据变量的类型截取实型常量中相应的有效位数字。据变量的类型截取实型常量中相应的有效位数字。据变量的类型截取实型常量中相应的有效位数字。 例如:例如:例如:例如: float a; float a; double b; double b; a=123456.789 ; a=123456.789 ; /* a=123456.7*/ b=123456.789 ; b=123456.789 ; /* b=123456.789*/ 桨耳库熬协哉渊贿莲搐远沫繁徘酣情

28、宿峙绩奎晌玲匪迸惹屎梯脯桑偷顿辨第2章c程序设计初步第2章c程序设计初步29注意:注意:1 1、虽然实数有两种表示方式。、虽然实数有两种表示方式。 但在内存中,实数都是以指数的形式来存放的。但在内存中,实数都是以指数的形式来存放的。如:如:3.14159 + .314159 13.14159 + .314159 12 2、浮点型数据的舍入误差。、浮点型数据的舍入误差。当一个很大的数和一个很小的数相加后可能会丢失很当一个很大的数和一个很小的数相加后可能会丢失很小的数。小的数。如:如: 123456.789e5+20 123456.789e5+203 3、VC6.0VC6.0中所有中所有float

29、float型数据计算的时候系统都先转化型数据计算的时候系统都先转化为为doubledouble型数据,得出结果后,取前型数据,得出结果后,取前7 7位赋给结果变量。位赋给结果变量。电傍木嫉棠井袋俏啊笆稗洒驭醉节老轧缄灿按俺河疼吁办芦南肝氮疤绞药第2章c程序设计初步第2章c程序设计初步30运算符和表达式运算符和表达式C C 运运运运 算算算算 符符符符算术运算符:(算术运算符:(+ - * / % + -+ - * / % + -)关系运算符:(关系运算符:( = != = !=)逻辑运算符:(!逻辑运算符:(! & | & |)位运算符位运算符 :(:( | & | &)赋值运算符:(赋值运算

30、符:(= = 及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(, ,)指针运算符:(指针运算符:(* &* &)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(. -. -)下标运算符:(下标运算符:()其它其它 :(:(( ) -( ) -)表达式表达式由由由由运算符运算符运算符运算符将运算对象连接成的式子,它描述了一个具将运算对象连接成的式子,它描述了一个具将运算对象连接成的式子,它描述了一个具将运算对象连接成的式子,它描述了一个具体的求值运算过程。体的求值运算过程。体的求值运

31、算过程。体的求值运算过程。煮脯孰劳阻令咖富定言督灼项甥脑诱讲骑黎苟魁淬才敞渝桓瓤者与斤短炙第2章c程序设计初步第2章c程序设计初步31学习运算符应注意:l l运算符功能l l与运算量关系要求运算量个数要求运算量类型l l运算符优先级别l l结合性l l结果的类型优先级优先级优先级优先级指各种运算符号的运算优先顺序指各种运算符号的运算优先顺序指各种运算符号的运算优先顺序指各种运算符号的运算优先顺序例如算术运算中先例如算术运算中先例如算术运算中先例如算术运算中先 * / * / 后后后后 + - + -l l结合性结合性结合性结合性 指运算符号和运算对象的结合方指运算符号和运算对象的结合方指运算符

32、号和运算对象的结合方指运算符号和运算对象的结合方向向向向 分为:分为:分为:分为: 左结合左结合左结合左结合( ( 从左向右)从左向右)从左向右)从左向右) 和和和和右结合(从右向左)右结合(从右向左)右结合(从右向左)右结合(从右向左)阵贸拿忧掩侗泛厩驼搽痕铡乎遮疗谗边喜吁且音馈剁蜜柳促堪附障召凉咨第2章c程序设计初步第2章c程序设计初步322.5算术运算符和表达式算术运算符和表达式2.5.1基本算术运算符:基本算术运算符: + - * / %说明说明(p14)()上述运算符均为双目运算符(即有两个操作数)()上述运算符均为双目运算符(即有两个操作数)()()“ “”“”“” ”作单目运算符

33、时分别为正值、负值作单目运算符时分别为正值、负值运算符。运算符。()在()在“ “” ”运算中,若操作数均为整数,则执行整运算中,若操作数均为整数,则执行整 除运算,舍去小数部分。例如:除运算,舍去小数部分。例如:1/2=0 1.0/2.0=0.5()()“ “” ”要求两侧均为整数要求两侧均为整数,“ “” ”运算不能用于运算不能用于 float 和和 double型数据型数据例如:例如:2 怒庸呆久铜咳巷真诞像揽堡榴突桨啸菱郸齐诲布咆闺巾场常胁即仇懈锭闭第2章c程序设计初步第2章c程序设计初步33( 5 )没有乘方运算符,要计算)没有乘方运算符,要计算a 要写作要写作 a*a*a 的连乘的

34、连乘(6)双目运算符两边运算数的类型不一致)双目运算符两边运算数的类型不一致时,要先进行转化再运算。见附录时,要先进行转化再运算。见附录5(2.6.3中详解)中详解)(7)实数运算以双精度方式进行,若是单)实数运算以双精度方式进行,若是单精度,在后面添精度,在后面添0转化为双精度数。转化为双精度数。3 3质魁卓肩哩啤写唱摇忠建明氰兼累逞善恿圭农杏央鸭廊蝉拔臣掉胀康爸巾第2章c程序设计初步第2章c程序设计初步34l算术运算符的优先级算术运算符的优先级 ( ) + - - * / % + - - 同级同级 同级同级 同级同级 单目单目单目单目 双目双目双目双目 高高高高 低低低低例:若已定义例:若

35、已定义int a=5,b=1,c=2则则下式下式 a*b/c-1.5/a的值是的值是2.5.22.5.2算术运算符的优先级、结合性、算术表达式算术运算符的优先级、结合性、算术表达式结合性结合性 基本运算符基本运算符从左向右从左向右 “+” 和和“-” 从右向从右向左左这些算式的值是多少?这些算式的值是多少?1.0/2.0 5/35+1/2 (5+1)/2剂砖梭妨姚协纤陷坯防畴狗岿咒郑渠糊乎卸档焰剁坎儡脖投意乱寸替运款第2章c程序设计初步第2章c程序设计初步35算术表达式算术表达式算术表达式算术表达式 是用算术运算符和括号将操作数连是用算术运算符和括号将操作数连接起来的,接起来的,符合语法规则的

36、式子。符合语法规则的式子。运算对象:常量、变量和函数运算对象:常量、变量和函数例如:例如:a + b + a*(b/c) +2.8 运算规则和要求运算规则和要求(1)表达式中)表达式中,可使用多层括号,括号要配对可使用多层括号,括号要配对, 运算时由内向外计算运算时由内向外计算(2)优先级不同时,则由高向低;)优先级不同时,则由高向低; 优先级相同时,则按结合方向优先级相同时,则按结合方向庙异肤呀宵牧任也睦孰剂醋逆夕呐寄玖鹤节帘缴刘番攒右钢县漠嘶皇酬掀第2章c程序设计初步第2章c程序设计初步362.5.3强制类型转换强制类型转换l转换方式转换方式 (类型名类型名)(表达式表达式)例如:例如:

37、(int)3.14 (float)(10%3)l l注意注意 1)(float) 22/5 与与 (float) (22/5) 不不同同 2)在强制转换时,得到一个所需类型的在强制转换时,得到一个所需类型的中间变量,中间变量, 原来变量的值未发生变化原来变量的值未发生变化(float)10%3错误的类型转换:错误的类型转换: (int) b=a+5 b= int (3*a) 鸥笛貌娘籽彰根研谰废惶膨峦号正池扎脉屈蹈篮绅癸除适帆澄定袒薄窄誉第2章c程序设计初步第2章c程序设计初步372.6.1赋值运算符和赋值表达式赋值运算符和赋值表达式l赋值运算符赋值运算符形式:变量名形式:变量名=常量或表达式

38、常量或表达式作用:将右边常量或表达式的值作用:将右边常量或表达式的值赋给赋给左边的变量左边的变量 例如:例如:a=3 b=c+d a=3 b=c+d 优先级优先级:只高于逗号运算符:只高于逗号运算符结合方向结合方向:从右向左:从右向左读法:读法:自右向左读自右向左读 a=10 a=10 读作:把常量读作:把常量10赋给变量赋给变量a b=a 读作:把读作:把a中的值赋给变量中的值赋给变量b说明说明(1)内存中当前数据是最后一次所赋的那个数据。内存中当前数据是最后一次所赋的那个数据。虱坠负姻游馏缘颗寻饵剁情熏鹰肌舱丧功弟累式私弟雇吁腮软个频联宽求第2章c程序设计初步第2章c程序设计初步38(2)

39、x=y的作用:将变量的作用:将变量y里的内容赋给里的内容赋给x所代表的所代表的 存储单元,存储单元,x中原有的数据被替换,赋值后中原有的数据被替换,赋值后y中中 的内容不变的内容不变(3)x=x的作用的作用: 赋值号右边的赋值号右边的x代表存储单元的值代表存储单元的值 赋值号左边的赋值号左边的x代表以代表以x为标识的存储单元为标识的存储单元(4)n=n+1 使变量使变量n中值加中值加1后,再放入变量后,再放入变量n(5)“=”左侧只能是变量左侧只能是变量。如。如a+b=c(F)(6)“=”右边可以是个赋值表达式。右边可以是个赋值表达式。 如如a=b=7+1(T) 但但a=7+1=b(F)(7)

40、赋值表达式的值就是最左边变量的值)赋值表达式的值就是最左边变量的值吏跪捉撼卧简埠刹忧度凯疹锌啮方跪屉痈棵弥汕阀穆鸦枪更时没杖鞭新八第2章c程序设计初步第2章c程序设计初步392.6.2 复合赋值表达式复合赋值表达式l复合赋值运算符复合赋值运算符: 在赋值符“=”之前加上其它运算符l l共有10种复合赋值运算符 += ,=, ,&, =, |=a+=3a+=3a=a+3a=a+3x*=y+8x*=y+8x=x*(y+8)x=x*(y+8)x%=3x=x%3优先级、结合方向:与赋值运算符相同际祷磕弦宰锡煮继枚鉴彻赣稼箭硷渭厘桅刚拥箩报老姬池坟抱睛冠珠岔俯第2章c程序设计初步第2章c程序设计初步40

41、练习练习1、有变量、有变量a,其值为,其值为9,计算表达式计算表达式a+=a-=a+a的值的值2、写出顺序执行下列表达式运算后、写出顺序执行下列表达式运算后x的值的值: 1) x=a=b=10 2) x=25%(c=3) 3) x-=x+=x*=x3、a=12,求求a*=2+3盐堑垂棍姜虑腑淀环渔拾豪库奄乾递铭棍元诊礁壶腮血茂妙仗赁阜讶凛酱第2章c程序设计初步第2章c程序设计初步412.6.3 赋值运算中的类型转换赋值运算中的类型转换赋值过程中的类型赋值过程中的类型转换规则转换规则: : 使赋值号使赋值号右边右边表达式值表达式值自动自动转换成其转换成其左边左边变量变量的类型的类型例例 int

42、i; i=2.56; /结果结果i=2;例例 float f; int i; i=10; f=i;则则 f=引出问题:如果在表达式中各运算量类型不同该如何判别最后值的类型?f=10.0诸崭拥硬互科岳褪忆瓷煽挞呢肃阂泪豫株柏腹杭鹏菠汪呐沏孽栖傣图牡臻第2章c程序设计初步第2章c程序设计初步42doublefloatlongunsignedintchar,short低低高高说明说明必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换例例 short ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoub

43、ledoubledoubledouble摄抿钧凉民堵项瘴鸯厄肘盯美湿银庭捐好企旁志高痛鸦止零宝轩盘竣焕乐第2章c程序设计初步第2章c程序设计初步432.72.7自增、自减运算符自增、自减运算符+ + 作用:使作用:使变量变量值加值加1 1或减或减1 1(常用于循环语句(常用于循环语句种类:种类: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

44、; 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,j=4/4,j=4/3,j=4/3,j=4/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4传祝谱渣痕攒眯换门蒂盲敖站血醚痕暂栖割棠酵辽挡陇藩啮胳厂瘁

45、彻晤描第2章c程序设计初步第2章c程序设计初步44说明:说明:+ - + - 不能用于常量和表达式不能用于常量和表达式, ,如如5+5+,(a+b)+(a+b)+优先级:优先级:- + - + - + - + - - -* / %* / %* / %* / % - -+ -+ -+ -+ - (2) (3) (4)(2) (3) (4)+ -+ -结合方向:结合方向: 自右向左,如自右向左,如i=3i=3;-i+-i+的值的值为为-3-3例例 i=3; printf(“%d,%d”,+i,i); i=3; printf(“%d,%d”,+i,i); /4,3/4,3 例例 j+k; (j+)+

46、k; j+k; (j+)+k;例例 i=3; printf(“%d,%d”, i=3; printf(“%d,%d”, +i,i); +i,i); 2.72.7自增、自减运算符自增、自减运算符+ + 作用:使作用:使变量变量值加值加1 1或减或减1 1(常用于循环语句(常用于循环语句种类:种类: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)铝禄螟允幅尝厌绍亢脱旋娜吓肪窄蓟寇眶眷匿沛债蜡工扇绒磕吠

47、靴茅拓磨第2章c程序设计初步第2章c程序设计初步452.7.22.7.2逗号运算符和表达式逗号运算符和表达式l l形式:形式:表达式表达式1 1, ,表达式表达式2 2, ,表达式表达式n nl l作用:作用:将两个表达式连接起来将两个表达式连接起来l l结合性结合性: :从左向右从左向右l l优先级优先级: : 最低最低l l逗号表达式的值:等于表达式逗号表达式的值:等于表达式n n的值的值l l用途:常用于循环用途:常用于循环forfor语句中语句中例例 a=3*5,a*4 a=3*5,a*4,a+5例例 x=(a=3,6*3) x=a=3,6*a例例 a=1;b=2;c=3; print

48、f(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表达式值表达式值60/a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表达式值18,x=3/1,2,3/3,2,3炯田州侧髓孩茸堕央云桌阔莆庞褪妊纵柴论秤别故浓乱慕傈渊巍屹煌从斩第2章c程序设计初步第2章c程序设计初步46优先级优先级: 算术运算符算术运算符 关系运算符关系运算符 赋值运算符赋值运算符高高低低4.1.2 关系运算符和关系表达式关系运算符和关系表达式(P35)种类种类: = !=结合方向:结合方

49、向:自左向右优先级别:优先级别:=!=高高低低例例 ca+b ca+b 相当于相当于c(a+b)c(a+b) ab!=c ab!=c 相当于相当于(ab)!=c(ab)!=c a=bc a=bc 相当于相当于a=(bc)a=(bc a=bc 相当于相当于a=(bc)a=(bc)褥纱荤嘿巍爪裁败动市倪印流部既佐隔馁膜王盯优凯捞彬肇浴批咱蚊跳宦第2章c程序设计初步第2章c程序设计初步47l关系表达式和逻辑表达式都有值(逻辑值)关系表达式和逻辑表达式都有值(逻辑值)l逻辑值有两个:逻辑值有两个:“真真”、“假假”l用用0表示表示“假假”,非非0表示表示“真真”l对于任意一个表达式,其值为对于任意一个

50、表达式,其值为0代表代表“假假”值,为非值,为非0(无论正数还是负数)代表(无论正数还是负数)代表“真真”值值关系表达式及关系表达式的值关系表达式及关系表达式的值int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表达式值表达式值1/表达式值表达式值1/表达式值表达式值0/d=1/f=0饱寻讶传篱拘舷冉淖簧门按局唆耗返逃玖桓融晤矾剩度疤耀神逸陛泻投眩第2章c程序设计初步第2章c程序设计初步48关系运算注意关系运算注意:例例 若若a=0; b=0.5; x=0.3; 则则 a=x278在在C中是允许的,中是允许的, 值为值为0例例 int i=1, j=7,a;

51、a=i+(j%4!=0); 则则a=2例例 a0 结果为结果为 A100 结果为结果为10黔戏岛案轴宿否爬篮禹抹邱抒驾谅右庄埔锅哄鳞儿抖卤澄姨剑南砒巧帜匈第2章c程序设计初步第2章c程序设计初步49关系运算注意:关系运算注意:例例 注意区分注意区分“=”与与“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);例例 应避免对实数作相等或不等的判断应避免对实数作相等或不等的判断如如 1.0/3.0*3.0=1.0 结果为结果为 0邪剩唬惩桩眶暂耸含汽们耳骚准斤违性耽迫缨颗鲁受泅巩佛佯辞奏看

52、标蛋第2章c程序设计初步第2章c程序设计初步504.1.3逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符逻辑运算符 ! ! (非)(非)(非)(非) & &(与)(与)(与)(与) | |(或)(或)(或)(或)逻辑运算符的运算规则逻辑运算符的运算规则逻辑运算符的运算规则逻辑运算符的运算规则运算对象运算对象逻辑运算结果逻辑运算结果aba&ba | b!a真真真真真真真真假假真真假假假假真真假假假假真真假假真真真真假假假假假假假假真真C C语言中语言中, , 运算对象运算对象: : 0 表示“假”,非0表示“真”运算结果运算结果: 0 表示“假”, 1 表示“真”10000110非非00

53、0100非非0011非非0非非0!aa | ba&bba逻辑运算结果逻辑运算结果运算对象运算对象靠材泥语刮仟拯虎莽渤树更铃帮编百壕欣拼乐毫攘孩垄缆厅跳耐椽贞丧险第2章c程序设计初步第2章c程序设计初步51! &|高高低低例例 a=x & xb&xy a=b|x=y !a|abl优先级:优先级:l结合方向:结合方向:! ! : :从右向左(单目)从右向左(单目)从右向左(单目)从右向左(单目)& :& :从左向右(双目)从左向右(双目)从左向右(双目)从左向右(双目)| :| :从左向右(双目)从左向右(双目)从左向右(双目)从左向右(双目)/ (a=x) & (xb)&(xy)/(a=b)|(

54、x=y)/(!a)|(ab)优先级优先级:! 算算 术运算符术运算符 关系运算符关系运算符 & | 赋值运算符赋值运算符高高低低慢衍尔录氏站俭倘孩泪芝永辛顾痕缘痞踊凤宜尤嫉妆抖垦能全侨葱秧汀饱第2章c程序设计初步第2章c程序设计初步52逻辑表达式的运算结果或者为逻辑表达式的运算结果或者为1(“真真”)或者为)或者为0(“假假”)! &| 高高低低l优先级:优先级:l结合方向:结合方向:! :从右向左从右向左& :从左向右从左向右| :从左向右从左向右例例 int a=4;b=5; !a a&b a|b !a|b 4&0|253&2|83)&2|(8(4-(!0) 值值为为1卿胃灼股尔显娃节贰茬

55、椿鞘绿粪挨挑扛珊瘤果哗棉激怂洞涉栈旨淳嫌拐垃第2章c程序设计初步第2章c程序设计初步53注意:注意:对于对于0x100x10数学上数学上表示表示x x小于小于1010且大于且大于0 0C C语言中,首先运算语言中,首先运算0x ,0x ,无论无论x x为多少为多少 其值为其值为0 0或或1 1,再运算,再运算010010或或110,110, 最后值为最后值为1 1C C语言中用语言中用0x &x100x &x10表示表示0x100xb)&(n=cd)例:例:a=0;b=2; a+&b+例:例: a=0;b=2; a+|b+/结果结果m=0,n=1/结果结果a=1,b=2/结果结果a=1,b=3挎剿陪刨磺韦矮宦尹砧沾圣涩马族符贵哩扦晌携篙裔吼物续的侗布腥瑰纫第2章c程序设计初步第2章c程序设计初步55关系与逻辑运算符的应用l l表示数学公式abc l l判断a, b, c三条线段能否组成一个三角形 l la, b不同时为负 a+bc & a+cb & b+ca(a=0)|(a=0&b=0&b=0)(a=0)|(a=0&b=0&b=0)!(a0 & b=0 | b=0ab & bc胳挟蚀雾剿贞祝氟役悲趾佯坦敖勾供裴隶椰分昌青撩筏绸欺怂迄蛀榔杆黔第2章c程序设计初步第2章c程序设计初步56

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号