C语言电子教案2

上传人:油条 文档编号:48812215 上传时间:2018-07-20 格式:PPT 页数:57 大小:906KB
返回 下载 相关 举报
C语言电子教案2_第1页
第1页 / 共57页
C语言电子教案2_第2页
第2页 / 共57页
C语言电子教案2_第3页
第3页 / 共57页
C语言电子教案2_第4页
第4页 / 共57页
C语言电子教案2_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《C语言电子教案2》由会员分享,可在线阅读,更多相关《C语言电子教案2(57页珍藏版)》请在金锄头文库上搜索。

1、C C语言程序设计语言程序设计专业班级专业班级: :应用物理应用物理06010601班班主讲主讲: :丁敬忠丁敬忠湖南工程学院计算机系湖南工程学院计算机系 2007.32007.3第2章 基本数据类型与运算符2.0 预备知识2.1 数据类型和取值范围2.2 运算符2.3 输入/输出函数语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C2.0 预备知识(复习)语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C 计算机中数的表示及进制转换(整数)l二进制、八进制、十六进制整数转换成十进制整数方法:按权相加l十进制整数转换成二进制、八进制、十六进制整

2、数方法:除以基取余逆排,直至商为0。语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C例 把十进制数159转换成八进制数1598198 28 0(159)10=(237)82 3 7 余 7余 3余 2例 把十进制数59转换成二进制数592292 142 72 32 12 0(59)10=(111011)211 0 1 1 1 1 1 1 0 1 1余 余 余 余 余 余例 把十进制数459转换成十六进制数459162816 116 0(459)10=(1CB)161 C B 余11余12余 1l二进制与八进制之间的转换 二进制转换成八进制:从右向左,每3位一 组(不足

3、3位左补0),转换成八进制。例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C 八进制转换成二进制:用3位二进制数代替每 一位八进制数。l二进制与十六进制之间的转换二进制转换成十六进制:从右向左,每 4位一组(不足4位左补0),转换成十六进制十六进制转换成二进制:用4位二进制数代替每一位十六进制数例 (11010101111101)2=(00

4、11,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)20000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C012345670 1 2 3 4 5 6 7 8 9 10.7643251语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 与 运

5、算 符C 字节(byte)和位(bit)l内存以字节为单元组成 l每个单元有一个地址 l一个字节一般由8个二进制位组成 l每个二进位的值是0或1l反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 l补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数 加19-5=4 9+7=16=12+4=(4) 模 12语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C 数值的表示方法原码、反码和补码 l原码:最高位为符号位(0表示正,1表示负),其余各位为 数值本身的绝对值312691245781011 l计算机是以补码的形式存放数。+

6、700000111-710000111原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000数的范围01111111 11111111 (-127+127)01111111 10000000 (-127+127)01111111 10000000 (-128+127)(用一字节表示数)l负数补码转换成十进制数:最高位不动,其余位取反加1 按权求和例: 补码:11111001取反:10000110加1: 10000111=-7语 言

7、 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符CC 数 据 类 型基本类型构造类型指针类型空类型void字符类型 char 枚举类型 enum整 型实型单精度型 float双精度型 double数组结构体 struct共用体union短整型 short长整型 long整型 int数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作语 言 程 序 设 计 第 二 章 基 本 数 据 类 型 与 运 算 符C所有能输入到计算 机中并被计算机处 理的符号的总称语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C一.常量与变量 常

8、量和符号常量常量:程序运行过程中, 其值不能改变的量符号常量:标识 符形式的常量 标识符 l定义:用来标识变量名、符号常量、函数名 、数组名、文件名等的有效字符序列 l组成: 只能由字母、数字、下划线组成,且第一 个字符必须是字母或下划线 大小写敏感 不能使用关键字 l长度:最长32个字符 l命名原则: 见名知意 不宜混淆 如l与I, o与0例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days #33 char$123ab语 言 程

9、序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C一般用大写字母#define是宏定义预处理命令,不是C语句n直接常量:整型常量实型常量字符常量字符串常量如 #define PRICE 30l常量定义:程序运行时其值不能改变的量(即常 数) l分类:n符号常量:用标识符代表常量 定义格式: #define 符号常量 常量 例2.1 符号常量举例#define PRICE 30 main() int num,total;num=10;total=num*PRICE;printf(“total=%d“,total); total=300-语 言 程 序 设 计 第 二 章基 本 数 据

10、 类 型 与 运 算 符C编译程序根据变量定义为其 分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数变量 l概念:在程序运行过程中其值可以改变的量 l变量名与变量值 l变量定义的一般格式:数据类型 变量1,变量2,变量n; l变量初始化:定义时赋初值 例: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;l变量的使用:先定义,后使用例1 int student;s

11、tadent=19; /*Undefined symbol statent in function main*/ 例2 float a,b,c;c=a%b; /*Illegal use of floating point in function main*/l变量定义位置:一般放在函数体内开头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);

12、语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符Ca=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例 /*ch2_example3.c*/ #define PRICE 12.5main() int num=3;float total;char ch

13、1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);宏定义变量定义输出结果total=37.500000, ch1=d -语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符Cl隐式转换(自动转换)运算转换-不同类型数据混合运算时赋值转换-把一个值赋给与其类型不同的 变量时函数调用转换-实参与形参类型不一致时 转换l运算转换规则:不同类型数据运算时先自动转换成 同一类型语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C 不同类型数据间的转换intintdou

14、bledoubledoubledoubledoubledouble10+a +i*f - d/j例 int i;float f;double d;long j;语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C例 char ch;int i;float f;double d;ch/i + f*d - (f+i) intintdoubledoubledoubledoubledoubledoubledoublefloatlongunsignedintchar,short低高转换规则: 说明:必定的转换运算对象类型不同时转换l显式转换(强制转换) 一般形式:(类型名)(表达式

15、) 例 (int)(x+y)(int)x+y(double)(3/2)(int)3.6 说明:强制转换得到所需类型的中间变量,原变 量类型不变 例 main() float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3语 言 程 序 设 计 第 二 章基 本 数 据 类 型 与 运 算 符C2.2 运算符C 运 算 符算术运算符:(+ - * / % + -) 关系运算符:( = !=) 逻辑运算符:(! k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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