[Return] 第2章 数据的存储与运算 2.1 常量和变量 2.2 整型数据 2.3 实型数据 2.4 字符型数据 2.5 符号常量 2.6 算术运算符和算术表达式 2.7 C运算符和C表达式 [Return] 2.1 常量和变量 1 什么是常量? 在程序运行过过程中其值值不变变的量。 2 什么是变量? 在程序运行过过程中其值值可以改变变的量。 包括:变变量名、变变量值值、存储单储单 元、变变量地址 3 变量的取名规则 ①字母(下划线)开头,字母、数字组成; ②区分大、小写; ③简单易记,见名知义; ④长度不限; ⑤不能重名。 [Return] 4 变量必须“先定义,后使用” 定义变量的一般形式: 类型名 变量名; 定义变量的作用: ①根据定义的变量类型分配存储单元; ②系统检查到未定义的变量,会提示出错; ③根据类型,检查对变量进行的运算是否合法; [Return] 例题2.1 问题:鸡兔同笼,总头数为h,总脚数为f,求有 多少只鸡?多少只兔? 1设计算法 设:鸡的数量为—x,兔的数量为—y,则有: x+y=h 2x+4y=f 解方程得:y=(f-2h)/2 x=h-y 若h=16,f=40 [Return] 2 编程序: #include void main() { int h,f,x,y; h=16; f=40; y=(f-2*h)/2; x=h-y; printf(“%d%d“,x,y); } [Return] 2.2 整型数据 1整型常量的表示形式 常用十进制形式:如12、-56。 2 整型变量的种类 (1) int—— 整型。 取值 :-32768~+32767(2 byte) (2) long —长整型 。 取值 :-2147483648~+2147483647(4 byte) 3 整型变量的定义 例如:int a,b; long c; 4 整型变量的存储 二进制形式直接存放到存储单元中。 [Return] 2.3 实型数据 1 实型常量的表示形式 实数有两种写法: (1)小数形式。例如3.14、9.8、0.5、0.0 (2)指数形式:E(e) 如: 12×106 =〉 1.2e+7(规范化指数形式) 0.000012 =〉1.2E-5 2 实型变量 的种类 (1) float ——单精度实型 。 取值 :10-38~10+38(4B),有效位数:7位 (2) double ——双精度实型 。 取值 :10-308~10+308(8B),有效位数:15~16位 [Return] 3 实型变量的定义 例如:float x,y; double z; 4 实型变量的存储 按照标准化指数形式,以二进制存储,数值 部分占3个字节,指数部分占1 个字节。 5 实型变量的舍入误差 有效位数以外的数字将被舍去。 6 把实数按双精度数处理 对实型变量最好都定义为double型。 [Return] 例题2.2 问题:已知三角形三边a,b,c,求面积s? 1 设计算法 设p为三边和的一半,根据海伦公式: p=(a+b+c)/2 s=sqrt(p*(p-a)*(p-b)*(p-c)) 若a=13.6,b=14.8,c=20.5 [Return] 2 编程序: #include #include void main() { double a,b,c,p,s; a=13.6;b=14.8;c=20.5; p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf(“%f “,s); } [Return] 2.4 字符型数据 1 字符常量的形式 用单撇号括起来的一个字符,如:’a’,’4’,’#’ 注意:键盘上的字符都可以作为字符常量,不包 括日常用到的一些特殊符号。 2转义字符 反斜杠 \ 后跟一个字符,如:’\n’(换行符)。 转义字符是一个字符常量。 3 字符变量 用来存放字符常量,只能存放一个字符。 如: char c1,c2 ; c1=‘a’; /*c1中存放’a’的ASCII码码97*/ c2=‘0’; /*c2中存放’0’的ASCII码码48*/ [Return] 4字符变量的存储 占内存一个字节,存放字符的ASCII码(见附 录A,p300)。 5字符数据与整型数据 由于字符在内存中存放的是ASCII码,实际是 一个整数,所以两种数据之间可以通用。 如:char c1, c2,c3; c1=97; /*与c1=‘a’等价*/ c2=48; /*与c2=‘0’等价*/ c3=‘A’+32; /*字符数据可以当做整数 */ 区别:占字节数不同。 [Return] 6 字符串常量 一对双撇号括起来的字符序列,如: “dalian”、“How are you .” 字符串的长度:串中包含的字符个数。 字符串的存储:每个字符占一个字节,系统 自动在最后加上字符’\0’,作为结束标志。 如字符串“dalian”长度为6,占7个字节。 注意:区分 ’a’和 “a” ’a’ --字符常量,占1个字节 “a” –字符串常量,占2个字节 [Return] 例题2.3 问题:将小写字母a、b转换成大写字母A、 B。 1 设计算法 将小写字母的ASCII码的值减去32即可。 2 编程序: #include void main() { char c1=‘a’,c2=‘b’; c1=c1-32; c2=c2-32; printf(“%c, %c\n“,c1,c2); printf(“%d, %d\n“,c1,c2); } [Return] 2.5 符号常量 1 符号常量的定义义 #define PI 3.1415926 处理方法:在编译时 将程序中所有的PI替换 成 3.1415926。 #include与#define均为编译预处为编译预处 理命令。 注意:符号常量和变量的区别。 2 符号常量的作用 (1)含义清楚 (2)一改全改 [Return] 2.6 算术运算符和算术表达式 1算术术运算符 (1) 基本算术术运算符:*、/、%、 +、- 与数学中的含义义基本相同: 优优先级级由高到底(先*、/、%后+、- ); 1 同级时结级时结 合性为为自左至右(左结结合性); 2 双目运算符。 3 注意:两个整数相除的结结果为为整数,如5/3值值 为为1; 4 %两侧侧均为为整数。 5(2) 自增、自减运算符:++、-- 6 前置:x=++i;(x=--i;) 先加后用(先减后 用) 7 后置:x=i++;(x=i--;) 先用后加(先用后 减) [Return] 2. 算术术表达式 用算术术运算符把常量、变变量、函数连连接起来的 、 符合C语语言语语法规则规则 的式子。 其中:常量、变变量或函数本身亦为简单为简单 表达式 。 (1) 各类类数值值型数据间间的混合运算 将两个不同类类型的运算对对象先转换转换 成同一类类型 , 然后进进行运算。 原则则:字节节少的类类型转换为转换为 字节节多的类类型。 系 统统自动进动进 行。 • 强制类类型转换转换 (类类型名)(表达式) [Return] 2.7 C运算符和C表达式 1 C运算符 C语语言中除了有算术术运算符以外,还还有12种运 算符,如关系运算符、逻辑逻辑 运算符、赋值赋值 运算符 、逗号运算符等(详见详见 p42)。 2 C表达式 C语语言中共有五类类表达式: 算术术表达式; 关系表达式; 逻辑逻辑 表达式; 赋值赋值 表达式; 逗号表达式; [Return] 练习题
展开阅读全文