谭浩强C语言配套课件c第二章.ppt_第1页
谭浩强C语言配套课件c第二章.ppt_第2页
谭浩强C语言配套课件c第二章.ppt_第3页
谭浩强C语言配套课件c第二章.ppt_第4页
谭浩强C语言配套课件c第二章.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

主讲:杨斐 QQ:121459388 1 第二章 数据描述 预备知识 C语言的各种数据类型 C语言各种运算符 2 2.0 预备知识 计算机中数的表示及进制转换 数码、基与权 数码:数制中表示基本数值大小的不同数字符号。例如,十进制有10个 数码:0、1、2、3、4、5、6、7、8、9。 基数:数制所使用数码的个数。例如,二进制的基数为2;十进制的基 数为10。 权:数制中某一位上的1所表示数值的大小(所处位置的价值)。例 如,十进制的123,1的位权是100,2的位权是10,3的位权是1。 数制:数制也称计数制,是用一组固定的符号和统一的规则来表示数值 的方法。人们通常采用的数制有十进制、二进制、八进制和十六进制。 语 言 程 序 设 计 第 二 章 数 据 描 述 C 5 各种进制之间的转换(整数) 十进制转换成二进制、八进制、十六进制 原理: 方法:连续除以基,从低到高记录余数,直至商为0 例 把十进制数59转换成二进制数 592 292 142 72 32 12 0 (59)10=(111011)2 1 1 0 1 1 1 1 1 1 0 1 1 余 余 余 余 余 余 例 把十进制数159转换成八进制数 1598 198 28 0 (159)10=(237)8 2 3 7 余 7 余 3 余 2 例 把十进制数459转换成十六进制数 45916 2816 116 0 (459)10=(1CB)16 1 C B 余11 余12 余 1 语 言 程 序 设 计 第 二 章 数 据 描 述 C 6 二进制与八进制之间的转换 二进制转换成八进制:从右向左,每3位一组(不足3位左 补0),转换成八进制 八进制转换成二进制:用3位二进制数代替每一位八进制数 例 (1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 语 言 程 序 设 计 第 二 章 数 据 描 述 C 8 字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1 01234567 0 1 2 3 4 5 6 7 8 9 10 . 语 言 程 序 设 计 第 二 章 数 据 描 述 C 1、原码、反码和补码的表示方法 (1) 原码:在数值前直接加一符号位的表示法。 例如: 符号位 数值位 +7原= 0 0000111 B -7原= 1 0000111B 注意:a. 数0的原码有两种形式: +0原=00000000B -0原=10000000B B:代表的是二进制 H代表的是十六进制 D代表的是十进制 Q代表的是八进制 10 2)反码: 正数:正数的反码与原码相同。 负数:负数的反码,符号位为“1”,数值部分按位取反。 例如: 符号位 数值位 +7反= 0 0000111B -7反= 1 1111000B 注意:a. 数0的反码也有两种形式,即 +0反=00000000B - 0反=11111111B 3)补码的表示: 正数:正数的补码和原码相同。 负数:负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1。也 就是“反码+1”。 例如: 符号位 数值位 +7补= 0 0000111B -7补= 1 1111001B 补码在微型机中是一种重要的编码形式,请注意: a. 采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。正数的 补码即是它所表示的数的真值,而负数的补码的数值部份却不是它所表示的数的真值。采用补 码进行运算,所得结果仍为补码。 b. 与原码、反码不同,数值0的补码只有一个,即 0补=00000000B。 c. 若字长为8位,则补码所表示的范围为-128+127;进行补码运算时,应注意所得 结果不应超过补码所能表示数的范围。 语 言 程 序 设 计 第 二 章 数 据 描 述 C 11 main() printf(“101 x42 Cn“); printf(“I say:“How are you?“n“); printf(“C Programn“); printf(“V C“); 运行结果:(屏幕显示) A B C Isay:”How are you?” C Program VC 例 main() printf(“Yb=n”); 运行结果: 屏幕显示:= 打印机输出:18aaa 变量初始化:定义时赋初值 例: int a,b,c; float data; 决定分配字节数 和数的表示范围 合法标识符例: 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; 变量的使用:先定义,后使用 例1 int student; stadent=19; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /Illegal use of floating point in function main 变量定义位置:一般放在函数开头 main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data); 变量定义 可执行语句 main() int a,b=2; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data); Ch2_005.c 语 言 程 序 设 计 第 二 章 数 据 描 述 C 20 变量名 C语言的变量在程序中用变量名表示。变量名由用户根据 其功能任意命名。变量名可以使用字符集中的任何字符。 变量名的长度没有限制(87ANSI标准C编译系统可以最多 使用31个字符)。变量名的首字符必须是英文字母(az, AZ)或下划线(_),并且中间不能使用空格。变量名的其 它部分可以用字母、下划线或数字(09)组成;大小写字 母表示不同意义, 即代表不同的变量名;一般情况下,变 量名使用小写英文字母。例如,下面列出的都是正确的变 名: arg, buffer, command, com_arg, file_name, count, _size, data35 需要注意的是变量名不要和C语言本身使用的保留字 ,即语句名、类型名等重名,例如: if, swich, char, int, long, static。 语 言 程 序 设 计 第 二 章 数 据 描 述 C 21 数据类型 1、整型类型 2、整型常量 C语言提供了多种整形类型,用以适应不同情况的需要 。常用的整形类型有:整形、长整形、无符号整形和无符号 长整形等四种基本类型。 表格2-1整数基本类型表 整形类型存储字节最小数值范围 整形2字节-3276832767 长整形4字节-21474836482147483647 无符号整形2字节065535 无符号长整形4字节04294967295 语 言 程 序 设 计 第 二 章 数 据 描 述 C 22 整型变量 在C语言中,整型变量有上述整型数据所具有 的四种类型:整型、长整型、无符号整型和无符号 长整型。整型变量以关键字int作为基本类型说明符 ,另外配合4个类型修饰符。如下 long 长类型 short 短类型 signed 有符号类型 unsigned 无符号类型 这些修饰符与int可以组合成如表2-2所示的不 同整数类型。 23 表示2-2ANSI标准规定的整型变量属性表: 数据类型占用字节数二进制位取值范围 int216-3276832767 shortint216同int longint432-21474836482147483647 signedint216同int signed shortint216同int signed longint432同long int unsignedint2160-65535 unsigned shortint216同unsignedint 24 C语言提供的基本变量类型有: 变量 数值变量 字符变量 指针变量 实型变量 整型变量 语 言 程 序 设 计 第 二 章 数 据 描 述 C 25 a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/ 例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */ 语 言 程 序 设 计 第 二 章 数 据 描 述 C 28 doublefloat long unsigned intchar,short 低 高 说明: 必定的转换 运算对象类型不同时转换 例 char ch; int i; float f; double d; ch/i + f*d - (f+i) int int double double double double double double int int double double double double double double 10+a +i*f - d/l 例 int i; float f; double d; long l; Ch2_007.c Ch2_008.c 语 言 程 序 设 计 第 二 章 数 据 描 述 C 30 运算符和表达式 运算符 c语言的运算符种类多、功能强,除了常用的 程序设计语言提供的算术、关系及逻辑运算符以外 ,还有一些完成特殊任务的运算符(操作符)。 C语言的运算符按其在表达式中与运算对象的 关系(连接运算对象的个数)可以分为: 单目运算:一个运算符连接一个运算对象 双目运算:一个运算符连接两个运算对象 三目运算:一个运算符连接三个运算对象 单目运算 例:+a; b=-a; y=!a; 双目运算 例:a+b; c=ab; 三目运算 例:max=(ab)? a:b; 表达式?值A:值B 语 言 程 序 设 计 第 二 章 数 据 描 述 C 31 2.4 运算符和表达式 C 运 算 符 算术运算符:(+ - * / % + -) 关系运算符:( = !=) 逻辑运算符:(! k=+j; j=3; k=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; * / % -+ - (2) (3) (4) 例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 j+k; (j+)+k; 例 -i+ i=3; printf(“%d”,-i+); Ch2_009.c 语 言 程 序 设 计 第 二 章 数 据 描 述 C 38 赋值运算符和表达式 简单赋值运算符 符号: = 格式: 变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量 复合赋值运算符 种类:+= -= *= /= %= = = d=func(); c=d+2; 语 言 程 序 设 计 第 二 章 数 据 描 述 C 39 说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 赋值表达式的值与变量值相等,且可嵌套 赋值转换规则:使赋值号右边表达式值自动转换成其左边 变量的类型 例 3=x-2*y; a+b=3; 例 float f; int i; i=10; f=i; 则 f=10.0 例 int i; i=2.56; /结果i=2; 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) /a=-264 等价于a=a+(a=a-(a*a) /a=0 等价于a=a+(a=a*(a=a-(a=a*3) 语 言 程 序 设 计 第 二 章 数 据 描 述 C 41 逗号运算符和表达式 形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中 例 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; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); 语 言 程 序 设 计 第 二 章 数 据 描 述 C 43 关系运算符和表达式 关系运算符 种类:= != 结合方向:自左向右 优先级别: = = != 优先级6(高) 优先级7(低) 例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc) 关系表达式的值:是逻辑值“真”或“假”,用1和0表示 例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc 例 若a=0; b=0.5; x=0.3; 则 a278在C中是允许的, 值为 0 例 int i=1, j=7,a; a=i+(j%4!=0

温馨提示

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

评论

0/150

提交评论