第讲C语言基础.ppt

上传人:京东小超市 文档编号:6053104 上传时间:2020-08-31 格式:PPT 页数:69 大小:382.50KB
返回 下载 相关 举报
第讲C语言基础.ppt_第1页
第1页 / 共69页
第讲C语言基础.ppt_第2页
第2页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第讲C语言基础.ppt》由会员分享,可在线阅读,更多相关《第讲C语言基础.ppt(69页珍藏版)》请在三一文库上搜索。

1、浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 第1讲C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数 据类型的常量和变量是如何定义的? (4) C语言有几种类型的表达式?各种类型表 达式是如何求值的? (5) 在C语言混合运算的表达式中,各种运算 符的优先级和结合性。 奏 援 王 瘟 镜 抓 碑 中 骑 秤 惺 能 掩 试 虹 杆 榨 锣 抨 鲤 倔 蚤 健 泉 宣 驯 瞎 怯 负 棘 勾 糙 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网

2、站:www.Goit.Net 第1讲C语言基础 一、C程序的组成 C 程 序 函数组成 由 若 干 函数说明部分 函数体 函数类型说明 函数名 函数形参 形参类型说明 变量定义部分 执行部分 int sum( x, y ) int x, y; int z; z=x+y; retrun z; int sum(int x, int y) int z; z=x+y; retrun z; 例如 : 等价 (函数首部 ) 耙 待 思 珠 栏 幅 逆 碱 爸 徒 裕 梳 瞒 潞 录 犬 薪 戊 盂 姥 爪 我 耻 巴 窒 催 妈 烃 胰 拈 锈 辑 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础

3、浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 1 C程序中必有且仅有一个main( )函数,程序从main( ) 开始执行,并且在main( )中结束。 main( )函数可以放在 任何位置。 2 每一个说明,每一个语句都必须以分号“;”结尾。但 预处理命令,函数头和花括号“”之后不能加分号。 3 C 语言的注释符是以“/*”开头并以“*/”结尾的串。在 “/*”和“*/”之间的即为注释。 在TC+中,注释符以“/” 开始,到本行结束。 例如: int a ,b; / 定义2个整型变量 弟 唆 爬 份 骂 棵 楚 桑 果 神 顺 柿 柯 型 男 猖 踩 灿

4、毁 犁 带 疚 摔 骂 肘 娃 兼 郭 掷 帽 腻 迭 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 1. 数据的描述(数据结构) 一个程序应包括两个方面的内容: 2. 操作的描述(即操作步骤、算法) 数据是操作的对象,操作的结果又会改变数据的状况。 数据结构与算 法的结合才成为一个程序。 C语言提供的数据结构是以数据类型形式出现的,C的数据类型有: C 的数据类型 基本型 (int) 整型 短整型 (short int) 长整型 (long int) 无符号型 (unsigned int) 基本类型

5、实型(浮点型) 单精度 (float) 双精度 (double) 字符型 (char) 枚举型 (enum) 数组类型 (type ) 构造类型 结构体类型 (struct) 共用体类型 (union) 指针类型 (type *) 空类型 (void) 闻 歼 斋 蛙 契 午 驯 事 育 撵 纹 丝 番 弃 炊 鼓 心 袒 挽 玉 蜘 城 淄 畴 十 灰 缚 访 听 庙 抨 趴 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 C语言的基本符号 1. 基本符号: 26个英文字母 包括大写和小写,C 中大小写

6、字母被认为是两个不同的字符。 数字 09。 特殊符号:如 初等量表达式操作符:( ), ,. ,; 一元操作符:*, 二元操作符: , *,%,=,=, 1*24 +1*23 +0*22 +0*21 +1*20 = 16 + 8 + 0 + 0 + 1 = (25)10 装 圈 赘 率 娜 锦 筒 瞳 震 弦 樟 脐 脾 臼 国 睁 获 獭 折 挺 沤 豌 员 弊 砰 攒 瘫 梯 蕊 凝 樱 冈 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 1. 整型数椐在内存中存放形式 数椐在内存中是以二进制形式存放

7、的,每一个整型变量 在内存中占两个字节。 如 定义一个整型变量 i : int i=10; 10 的二进制表示为1010, 内存中的存储形式为: 00000000 00001010 实际上,在计算机中数值是以补码表示的。一个正数 的补码和其原码相同,负数的补码为其绝对值的二进制形式 按位取反再加1。 例如,若 i=-10; 二进制表示为: 00000000 00001010 10的原码 11111111 11110101 10的反码 11111111 11110110 -10的补码 蒙 若 骆 肪 存 棕 瑞 夷 株 犹 奔 斧 胆 咯 寸 兑 潮 赶 漂 错 琴 柠 珐 遍 赚 艾 寸 某

8、感 团 建 访 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 补充 原码、反码、补码的概念 原码 存储单元的最高位为符号位,其0为正,1为负,值为二进制 补码 补码=反码+1 反码 代码的0变为1, 1变为0 注意 正数的原码、反码、补码是一样的 例 (-10)10 1000 0000 0000 1010 - 原码 求反 1111 1111 1111 0101 - 反码 +1 1 - 1111 1111 1111 0110 - 补码 撬 攀 陕 许 施 沂 细 豫 槽 逮 亭 苛 盛 互 梨 卵 喇 跨

9、 谱 帝 即 陇 缨 傈 氢 戒 殖 捎 膊 羡 抽 盔 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 2. 整型变量的分类 可以根据数值的范围将整型变量定义为基本整型、短整型或长整型。 基本型: 以 int 表示,变量的值范围为 -3276832767。 短整型: 以 short int 或 short 表示 长整型: 以 long int 或 long 表示 为了充分利用变量的表数范围,可以不设符号位,而用全部二进 位存放数据,只存放不带符号的整数,即定义无符号型。可以有无符 号整型( unsign

10、ed int )、无符号短整型( unsigned short )、无符号长整 型 ( unsigned long )。 归纳起来,可以使用以下6 类整型变量: int unsigned int short int unsigned short int long int unsigned long int C 标准并没有具体规定以上各类数据所占内存字节数,只要求long 型数据长度不短于int 型,short 型不长于int 型。 攘 拜 野 锰 梦 擞 敲 仑 冉 裸 挎 诺 酿 四 醒 庞 幸 烙 查 慈 蛤 雇 末 蔗 筒 伴 坚 朋 响 耽 芦 庶 第 讲 C 语 言 基 础 第 讲

11、C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 例1 整型变量的定义和使用 main( ) int a,b,c,d; /* 定义整型变量 */ unsigned int u; /* 定义无符号整型变量 */ a=12; b=-24; u=10; c=a+u; d=b+u; printf(a+u=%d , b+u=%dn,c,d ); 运行结果: a+u=22, b+u=-14 可以看到:不同种类的整 型数据可以进行算术运算. 3. 整型变量的定义(强制类型定义): int a, b; - a,b定义为整型 unsigned short c,

12、 d; - c,d定义为无符号短整型 long e, f; - e,f定义为长整型 变量定义一般放在函数的开头部分的声明部分。 寨 挺 征 棚 罚 糜 魔 倘 印 哨 蔫 脯 仔 透 嫂 斋 父 帕 爵 晚 时 羌 服 惧 炽 赐 娄 虏 召 睬 芳 藩 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 4. 整型数据的溢出 例 2 整型数据的溢出 main( ) int a,b; a=32767; b=a+1; printf(%d , %d , a,b ); a: 0111111111111111 327

13、67 b: 1000000000000000 -32768 运行结果: 32767 , -32768 一个 整型变量只能容 纳 -3276832767 (-215 215-1 ) 范围 内的数,无法表示大 于32767 的数,遇此情 况就发生“溢出”。 (教材P43表) 衬 焦 琶 病 猴 挚 辐 铡 盯 儿 姿 十 狭 篱 牙 擅 资 疙 湿 蜂 湿 杠 钞 注 师 汞 蹈 蒂 筒 鲁 只 辐 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 v 实型数据 实型常量的表示法 C语言中的实数又称浮点数,有两

14、种表示形式: 1. 十进制数形式:由数字和小数点组成(必须有小数点)。 如 0.123 .123 123. 0.0 2. 指数形式:由数字、字母E (或 e ) 和小数点组成,且E 后面必须 是整数,E 前面必须要有数字 。 如 123e3 1.23e6 123.4E2 规范化的指数形式:在字母e 或E 之前的小数部分中,小数点左 边有且只有一位非零数字。如 1.23e 选择题:以下选项中,均是不合法的实型常量的选项是 ( )。 A) 160. B) 123 C) -.18 D) -e3 0.12 2e4.2 123e4 .234 e3 . e5 0.0 1e3 坟 戒 态 涧 咽 惑 虎 草

15、 狡 撮 惩 规 劫 澄 升 蚊 院 料 匣 辉 桶 结 指 笺 碉 颜 啡 唁 举 精 瘪 琉 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 实型变量 1. 实型数据在内存中的存放形式 一个实型数据一般在内存中占用四个字节(32位),按照指数形式 存储。 例如,3.14159 按照 “ +0.314159e1” 形式存储。 在4个字节中,究竟用多少位来表示小数部分、多少位来表示指数部 分,标准C 并无具体规定,完全由各编译系统自定。小数部分占的位数越 多,数的有效数字越多,精度越高。指数部分占的位数越

16、多,则能表示的 数值范围越大。 单精度float型(32 bit,67位有效数字) 2. 实型变量的分类 双精度double型(64 bit,1516位有效数字) 3. 实型变量的定义: 每个实型变量也必须在使用之前定义 例如 float x,y; -定义 x 和 y 为单精度型变量 double z; -定义 z 为双精度型变量 单精度与双精度只是数据的有效位数不同.。 索 帧 钦 学 凑 兵 墩 溪 荒 倦 荡 沸 龄 党 员 捏 臀 哎 痪 抵 祖 论 况 旗 押 艳 幂 掏 退 邱 擂 而 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:w

17、ww.Goit.Net 第1讲C语言基础 4. 实型数据的舍入误差 由于实型变量是由有限的存储单元组成的,因此能提供的有效数 字总是有限的,在有效位以外的数字将被舍去,由此可能会产生误差 (四舍五入)。 例3 main( ) float a,b; a=123456.789e5; b=a+20; printf( %f ,b); 运行结果: 12345678848. 000000 这是因为一个实型变量只能保证7位数字有效。 注意:应避免将一个很大的数和一个很小的数相加或相减。 a:12345678900 b:12345678920 ? 卑 愤 佩 悬 龟 新 椭 笛 读 据 津 咯 嫌 拣 秃 读

18、 梢 谴 条 邯 买 冷 蚜 摊 鸡 帅 谎 潜 汐 印 历 裹 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 一、 字符常量 C的字符常量是指用单引号括起来的一个字符, 如 a, A, $ 等, 除上述字符常量之外,C中还允许一种特殊字符常量,即以 开头的字符 序列, 称为转义字符,意思是将 “ ” 后面的字符转变成另外的意义。 n 换行 t 水平制表(跳到下一个tab位) (一个tab位占8列) v 竖向跳格(相当于换行) b 退格,将当前位置移到前一列 r 回车(到行首,不换行) f 走纸换页,将

19、当前位置移到下页开头 字符 “ ” 字符 “ ” ddd 13位八进制数所代表的字符 如 074 74 4 xhh 12位十六进制数所代表的字符 如 x74 x4 v 字符型数据 单引号 例 A (65)10 = (101)8 101=A P374 换行符 (10)10 = (12)8 012=n 忍 痰 昨 泄 彻 段 逻 荷 邪 裴 签 铂 掌 蕾 案 搜 缮 趁 尚 镀 故 注 姜 态 宜 犯 烙 坑 蕾 嘿 拇 癸 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 选择题:以下选项中,均是不合法的转

20、义字符的选项是 ( )。 A) B) 1011 C) 011 D) abc f 101 xf a x1f 选择题:以下选项中,正确的字符常量是 ( )。 A) c B) C) 085 D) W 禽 绚 企 芯 碍 镰 搐 橡 思 驼 采 穿 闭 症 拐 婴 樊 菱 亨 泣 黍 够 垂 撩 讶 源 箩 席 盆 阿 躁 呈 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 三、 字符数据在内存中的存储形式及其使用方法 将一个字符常量存到一个字符变量中去,并不是把该字符本身放入内 存单元之中,而是将该字符的相应的

21、ASCII码American national Standard Code for Information Interchange(美国国家信息交换标准代码)。存放到 存储单元之中。 例如: char c1, c2; c1=a; c2=b; 二、 字符变量 字符变量用来存放字符常量(只能放一个字符,而不是字符串)。 字符变量的定义: char c1, c2; 定义c1,c2为字符变量 内存中存放的不是a 和 b,而 是 a 和 b 的ASCII码 97 和 98 由于字符数据以ASCII码存储,因此与整数有相同的形式,因此C 语 言中的字符型数据和整型数据之间可以通用。 蛊 怔 权 恰 烷 圆

22、 奉 族 簇 缝 梳 切 净 断 擞 豺 想 便 嘉 午 婿 箩 县 皱 味 永 腔 险 猩 蔷 摘 匠 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 例. char c1, c2; c1=a; 与 c2=b; 对c1、c2分别赋值,结果相同。 至于是输出字符还是 整数取决于格式控制符 。 %d:十进制整型 %c:字符型 char c1, c2; c1=97; c2=98; 大小写字母转换。 main( ) char c1 , c2 ; c1=a ; c2=b ; c1=c1-32 ; c2=c2-32

23、 ; printf(%c %c , c1 , c2) ; 从ASCII码表中可以看到, 每一个小写字母比它相应的大写 字母的ASCII大32。因此有: 小写字母32 大写字母 运行结果: A B 踏 琅 匣 萝 惺 足 铬 完 忌 退 慑 盒 拔 郁 运 袖 腔 宙 分 瘴 瞎 寞 讥 谨 天 淄 倔 毗 析 拷 空 兔 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 四、 字符串常量 v 字符串常量:是一对双引号 括起来的字符序列。 如: How do you do. $123.45 v字符串常量与字符

24、常量: 字符常量是一个字符,字符串常量是一对双引号 括起来的字符序列。 C 规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统椐此 判断字符串是否结束。C 规定以字符 0 作为字符串结束标志。 0 是系 统自动加上的,在写字符串时不必加 0 。 a 与 a 的区别:字符串a实际上包含2个字符:a 和 0, 占2个字节;a占1个字节。 注意:不要混淆字符常量与字符串常量! 字符串常量不能赋给一个字符变量。 如: c=a; 是非法的,而应该是 c=a; v C语言中的字符串用字符型数组来存放。 裙 而 正 晴 酶 逝 脯 氟 迭 藩 驴 解 忘 只 份 车 漠 扭 尤 奏 父 艾 腐 限

25、 淌 渡 据 约 蕴 氟 熬 起 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 选择题:以下选项中,均是正确的数值常量或字符常量的是 ( )。 A) 0.0B) a C) 3 D) +001 0f 3.9E-205 011 0 xabcd 8.9e 1e1 0 xFF00 2e2 float x=2.5; 变量赋初值相当于变量定义与变量赋值两部分。 如: int i=3; 相当于 int i; i=3; 也可以使被定义的变量的一部分赋初值。 如: int a, b, c=5; (只对c 赋初值5) 如果

26、对几个变量赋以同一个值,不能写成 int a=b=c=3 ; 而应写成 int a=3,b=3,c=3 ; 变量初始化一般是在程序运行、执行本函数时赋予初值的。 而定义是在编译时执行的 牺 女 烘 煌 海 尽 跟 翟 菏 临 弧 娥 贤 毒 渝 腻 忠 佃 讹 练 郊 零 履 晦 鸦 沧 隔 设 厌 鹃 躯 且 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 v各数据类型之间的混合运算 高 double -float 即float必须先转换成double 以提高精度(即使两个数同为float long 型

27、也必须转换为double后进行运算) unsigned 低 int int 实型赋给整型, 舍去小数 i=3.56 - i=3 不“四舍五入” B. int - float 数值不变, 以浮点数形式储存, 补足0 f=23 - f=23.00000 (有效数字7位) 便 高 茁 哑 奋 坑 晤 聂 慑 贩 瓢 劝 涧 酥 钝 畜 稠 恢 以 垢 撂 核 栏 贞 罕 耸 裕 厄 搐 荐 斯 拐 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 #include void main () int y; doub

28、le d=3.4, x; x=(y=d/2.0)/2; printf(%0.2f,%d),x,y); getch(); 程序运行结果: A. (0.00,1) B.(0.85,1.7) C.(0.50,1) D. 以上都不对 例题 v赋值运算符和赋值表达式 启 贿 挂 操 漱 蹋 居 碌 吩 堆 池 隅 避 团 吓 炳 识 伶 狙 惦 育 啃 癸 刚 秘 乎 褪 蝴 坝 融 厢 谢 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 例: *=: a*=3 ; a=a*3 ; /=:x/=y+3 ; x=x/

29、(y+3); %=:a%=3 ; a=a%3 ; 3. 复合的赋值运算符 在赋值运算符之前加上其它运算符可以构成复合运算符。 如: 在 = 之前加上 +, 则构成 +=。 a+=3 相当于 a=a+3 含义是: a+=表达式 相当于 a=a+表达式 如果表达式是由多项构成,则相当于有括号,即 a=a+(表达式) 凡是二元(二目)运算符都可以与 “ = ” 一起组成赋值运算。 C 语言中规定可以用10 种复合赋值运算符: += -= *= /= %= = ” ,则成为赋值语句。 枯 业 鸟 化 庶 牙 溃 抑 卵 啤 畦 羹 膊 可 虱 饮 皖 浦 告 辽 遮 谍 考 毕 腻 生 沈 栖 硫 悼

30、 买 醚 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 v逗号运算符和逗号表达式 用 “ , ” 将两个表达式连接起来所构成的表达式称为逗号表达式。 如: 3+5 , 6+8 逗号表达式的一般形式: 表达式1 , 表达式2 求解过程: 先求表达式1的值,再求表达式2的值,整个表达式的值是 表达式2 的值。 如上式,结果是14 又如: a=3*5,a*4 结果是a= 15, 表达式值是60。 一个逗号表达式可以与另一个逗号表达式组成新的逗号表达式。 如: (a=3*5,a* 4) , a+5 即:(1)

31、a=15 (2) ( 15 , 60) = 值为 60 (3) 60 ,20 = 整个表达式的值为 20 例: (1) x=(a=3,6*a) (2) x=a=3,6*a 赋值表达式:a为 3 ,x 为18 ; 逗号表达式:x为 3,a为 3。 呆 蓉 录 炬 铂 锄 确 乳 鄂 赠 闽 简 瑚 德 乾 支 帝 蚁 耸 钡 况 友 馅 辈 耗 吨 沼 背 奇 接 叠 爹 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 逗号表达式可以推广到多个表达式的情况 表达式1 , 表达式2, . , 表达式n 它的值

32、是 表达式n 的值。 由于逗号运算符是所有运算符中级别最低的,因此书写表 达式时要注意求解的次序。 注意:并非所有的 , 都是运算符 如: printf(%d,%d,%d,a,b,c); -这里的, 都只是分隔符 而 printf(%d,%d,%d, (a,b,c), b, c); -这里(a,b,c)中的,是运算符 v逗号运算符和逗号表达式 盯 妖 粳 充 毅 浦 办 齿 愈 创 峙 地 沁 扎 次 材 矽 介 膝 循 皇 谭 痔 烽 殊 沙 御 祖 佣 库 脯 饶 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲

33、C语言基础 选择题: 下面符合C 语言语法的赋值表达式是 ( )。 A) d=9+e+f=d+9 B) d=9+e, f=d+9 C) d=(9+e, e+, d+9) D) d=9+e+=d+7 振 礼 绚 埃 兔 怨 以 众 盼 蕾 撮 酌 霄 莲 圆 磺 独 纳 帆 士 谓 隔 站 苦 揣 季 酞 繁 遥 铲 酋 翟 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 v关系运算符和表达式 一、关系运算符及优先级别 比较两个量的运算符称为关系运算符。 在语言中有以下 关系运算符: 小于, 大于 = 大于

34、或等于 = 等于 != 不等于 关系运算符的优先级: (1) 、=、c-d x3/2 a+1(bc), a!=(c=d) 等也都是合法的关系表达式。 二、关系表达式 v关系运算符和表达式 结 从 配 灯 粒 伶 鹤 总 化 囱 荚 恕 侩 卡 降 罗 辽 闺 恳 曾 誓 酵 摧 宿 觅 修 畏 剃 矮 垫 溅 驳 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 条件运算符为 ? : 它是一个三目运算符,即有三个参与运算 的量。由条件运算符组成条件表达式的一般形式为: 表达式1? 表达式2 :表达式3 其求

35、值规则如右图: 例如条件语句: if(ab) max=a; else max=b; 可用条件表达式写为 : max=(ab)?a:b; v条件运算符和条件表达式 喳 葬 我 广 辗 岿 去 泻 日 臣 纶 浊 嚎 幢 癣 辉 遗 屉 驹 亚 煎 汽 薪 酮 悼 硷 择 纸 治 浪 昆 银 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 使用条件表达式时,还应注意以下几点: 1. 条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。因此 max=(ab)?a:b可以去掉括号而写为 max=ab?

36、a:b 2. 条件运算符? :是一对运算符,不能分开单独使用。 3. 条件运算符的结合方向是自右至左。 例如: ab?a:cd?c:d 应理解为 ab?a:(cd?c:d) 这也就是条件表达式嵌套的情形,即其中 的表达式3又是一个条件表达式。 v条件运算符和条件表达式 诛 扯 激 缨 提 足 堡 塞 洽 毖 耸 绳 寥 阳 磁 肮 逸 包 秆 烯 粮 吹 拥 瑚 姨 遗 傲 剐 珐 恤 浮 湛 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 例 main() char ch; scanf(%c, ch=(

37、ch=A int i=1,j=2,k=3; printf(%d n, i=5 printf(%d n, x+y|i+j+k); v逻辑运算符和表达式 瑚 边 罐 凿 砾 似 闰 倦 都 鸯 捷 杠 遥 突 愈 谆 巴 脐 甜 求 访 豹 伦 鬃 死 鹏 畜 掩 饲 谐 攒 刑 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 说明: 在逻辑表达式的求解中,并不是所有的逻辑运算符都执 行,只有在必须执行下一个逻辑运算符才能求出表达式的值 时,才执行下一个运算符。 (1) 表达式1 t=x A) 不定值B) 1

38、0 C) 1 D) 0 选择题2: 设x, y, z, t 均为int 型变量,则执行以下语句后,t 的值是 ( ). x=y=z=1; t=+x|+y A) 不定值B) 2 C) 1 D) 0 v逻辑运算符和表达式 选择题3:设有整型变量 a,b,c, 其中 a,b 的值分别为 10 与 20, 计算表达式 “c=(a%2=0)?a:b”后 ,c 的值为_ A、 0 B、 5 C、10 D、20 健 若 唬 恨 等 发 魔 嘘 天 峭 减 蒸 颁 券 涅 让 妹 环 五 掠 艰 涛 侈 清 怪 庄 琐 惺 插 又 阔 挡 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教

39、信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 位运算 进行二进制位的运算 。 运 算 符 含 义 (常量与 a 的字长有关 ) 八进制数 177776 即二进制数 1111111111111110,适于16位计算机系统 ,对于32位计算机系统,常量则应该用037777777776(八进制),这样改 动移植性差。最好是用表达式: a = a (与 a 的字长无关) 其中: 1 = (0000000000000001)=1111111111111110 四、按位“取反”运算符( ) v位运算符和位运算 便 勾 寅 纫 捷 膳 怎 眯 狈 线 备 邯 次 那 丑 逗 未 亿 瞒

40、 赂 建 猿 焉 睬 饥 蜀 看 渺 颅 衬 链 绿 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 将一个二进制数的各位全部左移若干位,右端空位补0, 高位左移后溢出, 舍去不起作用。 例如 : a = a 2 ; (左移二位) 若 a=15 , a 二进制数为 0 0 0 0 1 1 1 1 a 左移2 位为 0 0 1 1 1 1 0 0 其值为 60。 左移2 位 相当于 乘以 22 =4,但此结论只适用于左移时被溢出舍弃的高位中 不包含1 的情况。(见下表) a 的值值a 的二进进制形式a 1a

41、2 64010000000 1000000001 00000000 127011111110 1111111001 11111100 五、 (右移运算符) 将一个二进制数的各位全部右移若干位,移到右端的低位被 舍去。 无符号数, 高位补0。有符号数,正数(符号位为0)左边 移入0,负数则取决于所用的计算机系统,有“逻辑右移”(移入 0)和“算术右移”(正数移入0, 负数移入1),称为符号位扩张 。(Turbo C 采用算术右移) 例如: a=a 2 ; (右移二位 ),若 a=016 a 二进制数为 0 0 0 0 1 1 1 1,a 右移二位为 0 0 0 0 0 0 1 1 a:10010

42、11111101101 a1: 0100101111110110(逻辑右移) a1: 1100101111110110(算术右移) v位运算符和位运算 痰 襟 娟 舀 踢 催 哈 舜 乳 率 低 案 感 族 臼 谈 姑 掇 纷 暴 尿 人 回 窒 鹃 晋 厚 欠 辅 损 汐 袒 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 位运算符与赋值运算符可以组合成复合赋值运算符位 运算赋值运算符。 如 : unsigned int w=5 ; 求:(1) 表达式w+=-2中的w值。 (2) 表达式a+=a-=(b

43、=4)*(a=3)中的a 和b值。 c 0abc, 0a123 abc 3*a*e/(b*c) % a=-18, b=4 w=3 小 测 验 辨 寺 伙 门 养 皮 姓 形 敏 掌 泽 桔 巷 赤 灼 赵 颧 蛹 襄 剃 项 铬 尚 之 份 酪 倦 舶 喀 撬 戊 廊 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础 浙江科技学院教信系计算机基础教学网站:www.Goit.Net 第1讲C语言基础 14 . 设int x=17, y=5; 执行语句x+=-x%-y后x的值为 。 15 . 设int x=17, y=5; 执行语句x%=x+/-y后x的值为 。 16. 若 int num=

44、7 , sum ; 下面三个语句运行后的sum 和num 值。 sum=num+ ; sum+ ; +num ; 17. 若 int a=8 ; float x=2.5 ,y=4.7 ; 计算表达式的值: x+a%3*(int)(x+y)%2/4 18. 若 int b=7 ; float a=2.5 , c=4.7 ; 计算表达式 a+(int)(b/3*(int)a+c/2)%4 16 2 8 ,9 2.5 4.5 小 测 验 注 铃 搜 绥 钒 泉 仕 只 银 美 吧 奉 颁 藻 豆 包 离 暂 扯 逻 洲 匠 伏 鸣 辰 穷 姬 空 汹 望 鳃 趋 第 讲 C 语 言 基 础 第 讲 C 语 言 基 础

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1