




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章 数据类型、运算符和 表达式 教学目标 1. 掌握C的数据类型:整型、实型、字 符型 2. 掌握常量与变量 3. 运用变量赋初值、各类数值型数据 间的混合运算 4. 熟识算术运算符和算术表达式、赋 值运算和赋值表达式 5. 掌握逗号运算符和逗号表达式 1 1 进位计数制 n数制由r个不同的记数符号组成,称为 r进制,r也称为该进制的基数。各数制 在不同的数位所代表的值称为各数位的 权。 n十进制(用D表示) l有十个不同的记数符号:0、1 、2、9。逢十进一 n二进制数制(用B表示) l只有两个记数符号,0和1。逢 二进一。 2 2 n八进制(用Q表示): l有8个不同的记数符号: 0,1,2,3,4,5,6,7;逢 8进1 n十六进制(用H表示) l有16个不同的记数符号 :0,1,2,3,4,5,6,7, 8,9,A, B, C, D, E, F;逢16 进1。 n不同记数制之间的转换 l能用计算器完成 3 3 数制间的相互转换 1、十进制 二、八、十六进制 整数部分:除2、8、16取余 小数部分:乘2、8、16 取整 2、二进制 八进制 3位 1位 3、二进制 十六进制 4位 1位 (1011)2 =1 230221 21+1 20=11 (125.3)8 =182+281+580+38-1=85.375 4 4 十 进 二进八 进 16 进 十 进 二进八进16 进 10001 1 1 91001 11 9 20010 2 2101010 12 A 30011 3 3111011 13 B 40100 4 4121100 14 C 50101 5 5131101 15 D 60110 6 6141110 16 E 70111 7 7151111 17 F 81000 10 8161000 0 20 10 5 5 数值型数据的编码 n机器数 l在计算机中,约定第一 位为符号位,0表示正,1表 示负。这种在计算机中连同符 号一起数码化的数称为机器数 6 6 n原码、反码和补码 l 转换规则 原码 反码 补码 101011 00101011 00101011 00101011 101011 10101011 11010100 11010101 7 7 非数值型数据的编码 nASCII码 (American Standard Code for Information Interchange) l键盘上的字符采用ASCII码 进行编码。 lASCII码采用七位二进制位 编码,共可表示128个字符。 A: 01000001(65) a: 01100001(97) 8 8 9 9 常量常量 n n 常量,程序运行过程中其值不变的量常量,程序运行过程中其值不变的量 n n 类型类型 l l 整型常量整型常量 : : 1010进制常量进制常量, 8, 8进制常量进制常量( (数前加数前加0), 160), 16 进制常量进制常量( (数前加数前加0X)0X);若是长整型,;若是长整型, 则在后面加则在后面加l l或或L L。后面加。后面加u u或或U U则表则表 示无符号类型。示无符号类型。 l l 实型常量:实型常量: 日常记数法如:日常记数法如: 1999.35, -2001.981999.35, -2001.98 科学记数法如:科学记数法如: 1.99935e31.99935e3 错误如:错误如:e2.5, .e8, e8, e e2.5, .e8, e8, e 1010 例1 main() int a,b,c; a=10; b=010; c=0x10; printf(“%d,%d,%dn“,a,b,c); 运行结果: 10 , 8 , 16 %d表示以十进制整型输出 1111 运行结果: 1999.35, 1.99935e3 例例2 2 main()main() float f; float f; f=1999.35; f=1999.35; printf(“%f, %en“, f, f); printf(“%f, %en“, f, f); 实型也称为浮点型,实型常量也称 为实数或浮点数。实数只用十进制 形式表示。 f表示以小数形式输出 e表示以指数形式输出 1212 l l 字符常量字符常量:用:用单引号单引号括起来的一个字括起来的一个字 符或转义字符。例符或转义字符。例: : A, A, o o , , 1, 1, a, a, n, 0n, 0 等等 n n 换行换行 t t 横向跳格横向跳格( (到下一个输出区到下一个输出区) ) 反斜杠反斜杠 输出单引号输出单引号 dddddd 1-3 1-3位位八八进制所代表的字符进制所代表的字符 xhhxhh 1-2 1-2位位十六十六进制所代表的字符进制所代表的字符 转义字符转义字符 含义含义 1313 例:例: main ( )main ( ) printf(“%c,%c,%cn“, A, 101, printf(“%c,%c,%cn“, A, 101, x41);x41); 运行结果: A, A, A 字符数据与整型数据类似,但字符数据 只占一个字节,只能存放0255之间的 整数。 c表示以单个字符输出。 1414 l l 字符串常量字符串常量:用:用双引号双引号括起来的一串字括起来的一串字 符序列。例:符序列。例:” ”CHINA”, ”BBI”, ”I am a CHINA”, ”BBI”, ”I am a teacher.” teacher.” 等。而等。而 “ “A”A” 与与 A A 在在C C语言中语言中 是不同的是不同的, , 前者是字符串常量前者是字符串常量, , 后者是字后者是字 符常量。符常量。 在内存中在内存中: : A “A”A “A” 0100000101000001 00 00是字符串结束标记是字符串结束标记, , 称称nullnull,即空,即空 字符。输入时系统自动加上字符。输入时系统自动加上, , 输出时输出时 不输出不输出 0100000101000001 1515 l l 符号常量符号常量 #define PI 3.14159#define PI 3.141592626 main( )main( ) float r,s; float r,s; scanf(“%f“, scanf(“%f“, s=2*PI*r; s=2*PI*r; printf(“s=%fn“, s); printf(“s=%fn“, s); 符号常量一般用大写符号常量一般用大写, , 在该作用域内不可在该作用域内不可 赋其他值。赋其他值。 若程序里多处出现若程序里多处出现, , 该值发生变化该值发生变化, , 仅需仅需 在预处理命令在预处理命令#define#define中作一次修改。中作一次修改。 1616 变量变量 n n 变量变量,程序执行过程中其值可以发,程序执行过程中其值可以发 生变化的量生变化的量 n n 起名规则起名规则 在在C C中变量名中变量名, , 函数名函数名, , 文件名文件名, , 数组数组 名等均称名等均称标识符标识符( (identifieridentifier). ). 标识符标识符 由字母由字母, , 数字和下划线组成数字和下划线组成, , 且第一且第一 个必为个必为字母或字母或下划线下划线 ( (系统常用系统常用), ), 前前 8 8或或3131个字符有效个字符有效( (视不同版本而定视不同版本而定) ) . . 不能使用关键字作变量名。不能使用关键字作变量名。 1717 注意: 大小写字母有区别 如: a1与A1不同 不可用关键字 如: int, for, if 等 不可出现空格 如: stu 1, a 1等 见名识意 如: sum, sort 等 n类型及定义 在C中用变量前一定要先定义, 编译系统对不同 类型变量分配不同数量的内存单元, 存放其值; 在定义变量的同时可以初始化变量,即为变量 赋初值。 n在初始化时不允许连续赋值。 1818 变量类型变量类型 定义定义 字节数字节数 范围范围 整型整型 intint a,b; 2 -32768-32767 a,b; 2 -32768-32767 短整型短整型 short x,y; 2 -32768-32767short x,y; 2 -32768-32767 无符号整型无符号整型 unsigned unsigned intint a; 2 0-65535 a; 2 0-65535 无符号短整型无符号短整型 unsigned short b; 2 0-65535unsigned short b; 2 0-65535 长整型长整型 long l; long l; 4 4 -2147483648-2147483647 -2147483648-2147483647 无符号长整型无符号长整型 unsigned long d; unsigned long d; 4 4 0-4294967295 0-4294967295 单精度实型单精度实型 float f; float f; 4 4 3.4e-38 3.4e38(7 3.4e-38 3.4e38(7位位) ) 双精度实型双精度实型 double d; double d; 8 8 1.7e-308 1.7e308(15 1.7e-308 1.7e308(15位位) ) 长双精度实型长双精度实型 long double ld; 10 3.4e-49323.4e4932(19long double ld; 10 3.4e-49323.4e4932(19位位) ) 字符型字符型 char c1,c2; 1 0-255char c1,c2; 1 0-255 带符号字符型带符号字符型 signed char c3; 1 -128-127signed char c3; 1 -128-127 1919 n n 不同类型数据混合运算不同类型数据混合运算 C C允许混合运算允许混合运算, , 系统自动按以下规系统自动按以下规 律转换律转换 ( (即字节数少的类型转换成字即字节数少的类型转换成字 节数多的类型节数多的类型) ) double float double float long long unsigned unsigned intint char, short char, short 必必 转转 2020 运算符及其表达式运算符及其表达式 n n 算术运算符及其表达式算术运算符及其表达式 l l 算术运算符算术运算符: : +, - , * , / , %+, - , * , / , % +, - , * , /: +, - , * , /: 两个操作数均为整型两个操作数均为整型, , 其其 结果为整型;有一个操作数为实型结果为整型;有一个操作数为实型, , 其结果为双精度实型其结果为双精度实型 % (% (求余求余): ): 两个操作数必须为整型两个操作数必须为整型, , 其结果为余数其结果为余数 2121 main( ) int a,b; float c; scanf(“%d, %d, %f“, printf(“a+b=%d n“, a+b); printf(“a-b=%d n“, a-b); printf(“a/c=%f n“, a/c); printf(“a%c=%d n“, a%(int)c); 要输出要输出“ “%” %” 号号, , 则则 使用使用“ “%”%” 2222 l l 算术表达式算术表达式:用算术运算符将可操作用算术运算符将可操作 对象连接起来的算式对象连接起来的算式. . 例例: a: a,100100,a+100a+100, a+3/2.0.a+3/2.0.均是均是 算术表达式算术表达式. . l l 优先级优先级 高高 低低 l l 结合性结合性 均为从左到右均为从左到右 l l 强制类型转换运算型强制类型转换运算型 格式:格式:( (类型名类型名)( )(表达式表达式) ) 用于将一个表达式转换成所需类型。用于将一个表达式转换成所需类型。 * * / % + - / % + - 2323 c/b/ac/b/a (c/b)/a -1 (c/b)/a -1 d/b%ad/b%a (d/b)%a 0 (d/b)%a 0 -a*d (-a)*d 38 -a*d (-a)*d 38 a% -b*c (a%(-b)*c 14 a% -b*c (a%(-b)*c 14 a/c+ -20/-a (a/c)+(-20)/(-a) 10 a/c+ -20/-a (a/c)+(-20)/(-a) 10 -d%c -b/a*5+5 (-d)%c)-(b/a)*5)+5 15 -d%c -b/a*5+5 (-d)%c)-(b/a)*5)+5 15 7 -a%(3+b) 7-(a%(3+b) 7 -a%(3+b) 7-(a%(3+b) 出错出错( (分母为分母为0)0) 算术表达式算术表达式 等价表达式等价表达式 表达式的值表达式的值 a, b, c, d a, b, c, d 均是整型变量均是整型变量, a=2, b= -3, c=7, d= -, a=2, b= -3, c=7, d= - 19; 19; 试分别写出下列各表达式的值试分别写出下列各表达式的值. . 2424 例例: main()main() int a=1; int a=1; char c1=A; char c1=A; float f=100; float f=100; double d=200.0; double d=200.0; long l=40000; long l=40000; printf(“%fn“, a+c1+f+d); printf(“%fn“, a+c1+f+d); printf(“%ldn“, a+l); printf(“%ldn“, a+l); printf(“%fn“, a+c1); printf(“%fn“, a+c1); printf(“%fn“, c1+d); printf(“%fn“, c1+d); 2525 运行结果: A, B, C B, C, D 65, 66, 67 字符型与整 型可以作算 术运算 main( ) char c1,c2,c3; c1=A; c2=B; c3=C; printf(“%c, %c, %cn“, c1, c2, c3); printf(“%c, %c, %cn“, c1+1, c2+1, c3+1); printf(“%d, %d, %dn“, c1, c2, c3); 2626 运行结果: a, b, c b, c, d 整型值可按c格式输出一个字符 main( ) int a1, a2, a3; a1=97; a2=98; a3=99; printf(“%c,%c,%cn“,a1 ,a2, a3); printf(“%c,%c,%cn“, a1+1, a2+1, a3+1); a1, a2, a3 分别 为a, b, c 的ASCII 码 2727 a=100a=100 x+=2x+=2 +i+i i+i+ 运算符运算符 表达式表达式 举例举例 = = +=, -=, *= /=, %= /=, %= 等等 +, - + + + - - - - - n n 赋值赋值, , 复合赋值复合赋值, , 自增自增, , 自减运算符及其表达式自减运算符及其表达式 自增自减自增自减, , 赋值和复合赋值赋值和复合赋值, , 其结合性均是从右到左其结合性均是从右到左 2828 int i float 舍去小数部分 double float f 补足到有效位数7位 double d 补足到有效位数15位 int i char 将表达式值的高 8 位全补 0 signed char 若表达式值的最高位为 0, 则高8位全补 0; 否则全补 1 long l 若表达式值是正数,高 16 位 全补0;否则全补 1 int i long int 截取表达式值的低 16 位 long int l unsigned int 将表达式值的高 16 位全补0 unsigned int i signed int 将表达式值直接赋给 i 变量类型 表达式值类型 说明 n当表达式值的类型与变量类型不同时, 系 统将按以下规律处理: int int 2929 main( )main( ) int a, b, c, d, e; int a, b, c, d, e; a=b=c=d=30; e=32; a=b=c=d=30; e=32; printf(“a+3=%dn“, a += 3); printf(“a+3=%dn“, a += 3); printf(“b-3=%dn“, b -= 3); printf(“b-3=%dn“, b -= 3); printf(“c*3=%dn“, c *= 3); printf(“c*3=%dn“, c *= 3); printf(“d/3=%dn“, d /= 3); printf(“d/3=%dn“, d /= 3); printf(“e%3=%dn“,e %= 3); printf(“e%3=%dn“,e %= 3); 运行结果运行结果: : a+3=33a+3=33 b-3=27b-3=27 c*3=90c*3=90 d/3=10d/3=10 e%3=2e%3=2 3030 main( )main( ) int x=2; int x=2; x += x -= x*x; x += x -= x*x; printf (“x=%dn“, x); printf (“x=%dn“, x); 运行结果运行结果: : x= - 4x= - 4 赋值和复合赋值赋值和复合赋值 的的结合性是自右结合性是自右 至左至左 3131 main( ) int x=100; printf(“%d,%d,%d,%d n“, x+, x, -x, x); printf(“%d n“,x); 运行结果: 99, 99, 99, 100 100 3232 main( ) int a, b, c; a=b=c=0; a = +b + +c; a = b+ + c+; a = +b + c+; a = b- + -c; printf(“%d,%d,%dn“,a, b, c); b, c 均先增1, 后相加 b, c 先相加, 后均增 1 b 先增1和 c 相加, 后 c再增1 c 先减1和 b 相加, 后 b减1 运行结果: 5, 2, 2 3333 n逗号运算符及其表达式 l逗号运算符优先级最低, 结合性是自 左至右 l逗号表达式格式: , 计算逗号表达式值是按自左至右的顺 序, 先计算的值, 再计算的值,.而逗号表达式值是最后 一个的值. 3434 main( )main( ) int a, b, c; int a, b, c; a=1, b=2, c=3; a=1, b=2, c=3; printf(“%d,%d,%dn“, a, b, c); printf(“%d,%d,%dn“, a, b, c); printf(“%d,%d,%dn“,(a,b,c),b,c); printf(“%d,%d,%dn“,(a,b,c),b,c); a=(c=0,c+5); a=(c=0,c+5); b=(c=3,c+8); b=(c=3,c+8); printf(“%d,%d,%dn“, a, b, c); printf(“%d,%d,%dn“, a, b, c); 该处该处 a, b, ca, b, c不是逗号不是逗号 表达式表达式, , 是是 printfprintf 函函 数的参数;而数的参数;而(a, b, (a, b, c) c) 是逗号表达式是逗号表达式 运行结果运行结果: : 1, 2, 31, 2, 3 3, 2, 33, 2, 3 5, 11, 3 5, 11, 3 3535 main( ) int a, b, c, d; a=(c=100, d=200, c+d); b=(c=d=0, c+50); printf(“%d, %d, %d, %dn“, a, b, c, d); 运行结果: 300, 50, 0, 0 3636 n函数 函数, 完成某个固定功能的程序段 n函数的分类 l标准函数 (库函数) 标准函数是由系统提供的, 在C中提供 300多个库函数, 按函数功能不同进行 分类, 分别被包含在不同的头文件里. 如: 数学函数的头文件是 math.h, 字符 串操作函数的 头文件是 string.h, 输入 输出函数的头文件是 stdio.h等 l用户定义函数 3737 n函数格式及调用 以求平方根函数为例, 掌握函数格式及如 何调用. 调用某种函数, 则该函数一定要用 以下编译预处理命令, 放在程序前面. # include 或 # include “math.h” 格式: double sqrt (x) double x 自变量(形参), 可以是表达式 函数名 该函数返 回值的类 型 形参的类型 3838 函数名 函数类型和形参类型 功能 cos exp fabs floor tan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西南宁市青秀区刘圩镇中心学校教师招聘笔试模拟试题及答案解析
- 2025年合肥肥东县招聘乡镇(园区)消防岗位人员11人考试模拟试题及答案解析
- 聚丙烯 毕业论文
- 物流专业本科生毕业论文
- 城市排水防涝技术培训与管理方案
- 金融系研究生毕业论文
- 影视艺术系毕业论文
- 农田租赁协议书的注意事项
- 医疗保险合同注意事项
- 【xx山东师范生】xx师范生任教工作总结及研究计划
- 幼升小语文拼音测试卷
- 承建工程合作意向书2024年标准版
- 临床护理应急演练脚本
- 成人体外膜氧合辅助期间感染防控专家共识2024版
- 2024年河北石家庄市井陉矿区人力资源和社会保障局公益性岗位招聘100人历年(高频重点提升专题训练)共500题附带答案详解
- DL-T-1798-2018换流变压器交接及预防性试验规程
- CJT487-2015 城镇供热管道用焊制套筒补偿器
- 抖音火花合同电子版获取教程
- 优化方案语文必修上册
- 云南省大中型水电站情况表
- 旅游景区规划设计方案
评论
0/150
提交评论