1、C语言程序设计教程 第2版 第2章基本的程序语句 09年2月 本章主要内容1 用二进制表示的数2 基本数据类型及取值范围3 标识符 变量和常量4 基本运算符 表达式及运算的优先级5 标准输入 输出函数简介6 程序范例 第2章引言 1 整型数的二进制表示 整型数分为有符号的和无符号的两种 有符号的整型数的正负号由字节的最高位来表示 0表示正数 1表示负数 整型数占用的字节数可为8位 16位或者32位 整型数的取值范围 2 1用二进制表示的数 2 浮点数的二进制表示 浮点数分成单精度浮点数和双精度浮点数 单精度浮点数占32位 4个字节 双精度浮点数占64位 8个字节 浮点型数据的一般表达式 1 S
2、 2e me是实际的阶码值 代表浮点数的取值范围 m是尾数 代表浮点数的精度 2 1用二进制表示的数 1 单精度浮点型数据的字节分配空间 2 1用二进制表示的数 S代表符号位 占1位 E称为 移码 占8位 E的取值范围为0 255 E 127 e因此 e的取值范围为 127 128 M代表有效位数或称为 小数 m2 1 M 2 2 双精度浮点型数据的字节分配空间 2 1用二进制表示的数 S代表符号位 占1位 E称为 移码 占11位 E的取值范围为0 2047 E 1023 e因此 e的取值范围为 1023 1024 M代表有效位数或称为 小数 m2 1 M 2 浮点型数据的取值范围 2 1用二
3、进制表示的数 1 C语言提供5种基本数据类型 1 字符型 用char表示 2 整数型 用int表示 3 单精度实数型 用float表示 4 双精度实数型 用double表示 5 空类型 用void表示 对整数型 有四种修饰 signed 有符号 unsigned 无符号 long 长型 short 短型 数据类型决定了数据的大小 数据可执行的操作以及数据的取值范围 2 2基本数据类型及取值范围 数据类型的长度和取值范围会随着机器的CPU类型和编译器的不同而不同 2 2基本数据类型及取值范围 例1 验证数据类型的字节长度 见 例2 1 所示的程序 example2 1 c 不同字节长度的数据类型
4、和取值范围 见表2 5和表2 6 2 2基本数据类型及取值范围 2 3 1标识符标识符是对变量名 函数名 标号和其他各种用户定义的对象命名 建议取有实际意义的标识符来命名 标识符的第1个字符必须是字母或下划线 标识符的长度可以是一个或多个字符 最长不允许超过32个字符 例如 score number12 student name等均为正确的标识符 8times price tea low valume等均不为正确的标识符 注意 1 标识符区分大小写 score Score SCORE代表三个不同的标识符 2 标识符不能和C语言的关键字相同 3 标识符不能和用户自定义的函数或C语言库函数同名 2
5、 3标识符 变量和常量 2 3 2变量和常量1 变量其值可以改变的量称为变量 变量的两个要素 标识符 名字 和值 C语言规定 变量必须在使用之前定义 变量定义的一般形式是 必须是有效的C数据类型 如 int float等 类型名规定了变量的存储空间和取值范围 可以由一个或多个由逗号分隔的多个标识符名构成 2 3标识符 变量和常量 如 inti j number unsignedintmax min floathigh value price doublelenth total wieight 思考 上面各种变量的类型和他们的取值范围 2 3标识符 变量和常量 例2 运行下面的程序 了解变量的取
6、值范围和C语言的特性 example2 2 c变量的取值范围测试 includemain inta 32766 b 32766 unsignedm 6553 floatt 3 4e 37 printf a d n a printf m u n m printf t e n t a a 4 2 3标识符 变量和常量 b b 6 m m 10 10 t t 10 printf Afterchange n printf a 4 d n a printf b 6 d n b printf m 10 10 u n m printf t 10 e n t 2 常量 常量的值是不可变的 在C语言中 有整型常
7、量 实型常量 字符常量 字符串常量 和枚举常量等 1 整型常量 可采用十进制 八进制 十六进制来表示整型常量 八进制数的前面用数字0开头 十六进制数前面用数字0和字母X开头 0 x或0X 整型常量的表示见表2 9 2 3标识符 变量和常量 例3 了解整型常量的不同进制表示法 example2 3 c includemain printf 十六进制0 x80的十进制值为 d n 0 x80 printf 八进制0200的十进制值为 d n 0200 printf 十进制128的十进制值为 d n 128 printf 十进制128的十六进制值为 x n 128 printf 十进制128的八进制
8、值为 o n 128 2 3标识符 变量和常量 2 实型常量 实型常量的两种表示法 浮点计数法和科学计数法 例如 231 467 36E 74 58E5 0 0945 对太大或太小的数 通常是采用科学计数法 如上面的7 36E 7 4 58E5 2 3标识符 变量和常量 例4 了解实型常量的两种表示法 example2 4 c 浮点计数法 科学计数法 includemain printf 123 4456的浮点数表示 6f n 123 456 printf 1 23456E2的浮点数表示 6f n 1 23456e2 printf 12345 6E 2的浮点数表示 6f n 12345 6e
9、2 printf 12345 6的科学计数法表示 E n 12345 6 2 3标识符 变量和常量 3 字符常量 字符常量是由一对单引号括起来的单个字符 如 A S 9 等均为字符常量 注1 单引号只起定界作用 并不代表字符 注2 单引号 和反斜杠 本身作为字符时要通过转义字符 如 和 分别代表单个字符单引号 和反斜杠 2 3标识符 变量和常量 在C语言中 字符是按其所对应的ASCII的值来存储的 一个字符占一个字节 部分字符所对应ASCII码值如下 2 3标识符 变量和常量 字符和与之对应的ASCII详见附录B 注意 数字3和字符 3 的区别 2 3标识符 变量和常量 字符也可以参与运算 如
10、 A 6 运算结果为71 对应的字符为H 8 7 运算结果为49 对应的字符为1 y 32 运算结果为89 对应的字符为Y 例5 了解字符常量与其顺序值的关系 example2 5 c字符常量与其顺序值的关系 includemain printf d c n A A printf d c n A 5 A 5 printf d c n A 70 A 70 2 3标识符 变量和常量 例5 了解字符常量与其顺序值的关系 example2 5 c字符常量与其顺序值的关系 includemain printf d c n A A printf d c n A 5 A 5 printf d c n A 7
11、0 A 70 2 3标识符 变量和常量 程序运行结果 65 A70 F135 4 字符串常量 字符串常量是指用一对双引号括起来的一串字符 如 world TRUEorFLASE 8765431 0037 T 均为字符串常量 注 双引号 和反斜杠 本身作为字符串时要通过转义字符 如 和 分别代表字符串 和反斜杠 2 3标识符 变量和常量 注意字符常量与字符串常量的区别 在C语言中 字符串常量在内存中存储时 系统自动在字符串的末尾加一个 串结束标志 0该结束标志的ASC 码值为0 字符为空NULL 因此 长度为n个字符的字符串常量 在内存中占有n 1个字节的存储空间 如 字符串 World 共5个
12、字符 需占用6个字节 其存储形式为 2 3标识符 变量和常量 5 转义字符 转义字符用反斜杠 后面跟一个字符或一个八进制或十六进制数表示 如 a 0 n等 代表ASCII字符中不可打印的控制字符和特定功能的字符 表示特殊字符 如 单引号 双引号 和反斜杠 等 常用的转义字符见表2 12 2 3标识符 变量和常量 注意 转义字符中的字母只能是小写字母 每个转义字符只能看作一个字符 表2 12中的 r v和 f对屏幕输出不起作用 但会在控制打印机输出执行时响应其操作 在程序中 使用不可打印字符时 通常用转义字符表示 2 3标识符 变量和常量 例6 了解转义字符的作用 example2 6 c了解转
13、义字符的作用 includemain printf a 发出铃声 printf Thisisatest n printf Ready printf bBackspace n 往左退一格 printf tHorizontaltab n 往右进八格 printf n 输出 printf n 输出 printf n 输出 printf n 输出 printf 101 n 输出八进制值101所对应的字符 printf x41 n 输出十六进制值41所对应的字符 运行程序 观察程序的运行结果 程序运行结果 Thisisatest Ready Backspace Horizontaltab AA 2 3标
14、识符 变量和常量 6 符号常量 将程序中的常量定义为一个标识符 称为符号常量 符号常量在使用前必须先定义 定义的形式是 define如 definePI3 1415926 defineTRUE1 defineFALSE0其中PI TRUE FLASE均为符号常量 其值分别为3 1415926 1 0 注1 define是C语言的预处理命令 注2 习惯上符号常量用大写英文字母表示 2 3标识符 变量和常量 例7 了解符号常量的使用 example2 7 c include defineWHO Iamastudent defineHOW ThatisFine definePI3 1415926main printf s n WHO printf s n HOW printf f n PI 2 3标识符 变量和常量 程序运行结果 Iamastudent ThatisFine 3 141593