第一章c语言概述 1重点、难点 1.c语言的特点 (1)语言简洁、紧凑、使用方便灵活 (2)运算符丰富 (3)具有结构化的控制语句 (4)语法限制不太严格,程序设计自由度大 (5)c语言允许用户直接访问物理地址,能进行位操作,可以直接对硬件进行操 2.源程序的书写规则 (1)c语言书写自由,一行内可以写几个语句,并且一个语句可以写在多行上 (2)c程序没有行号,每个语句和数据定义的最后必须有一个分号 (3)c语言分号是语句中必不可少的。即使是程序的最后一个语句也应该包含分 号 (4)c语言中的注释可以用“/”开始,用“*”结束,注释可以在任何允许插 入空格符的地方插入。且“/”与“*”间不允许有空格。 (5)c语言的注释不允许用嵌套,注释可以用西文也可以用中文。 3.c程序的组成 (1)一个c程序由一个或多个源程序文件组成 (2)一个c源程序文件是由若干个函数组成的。函数是c程序的基本单位。在这 些函数中有且只用一个主函数main(),主函数由系统提供。各个函数在程序中所处的 位置不是固定的。 (3)一个源程序文件是一个编译单位,即以源文件为单位进行编译,而不是以函 数为单位进行编译。C语言源程序文件的扩展名为c (4)任何c程序都是从主函数开始执行的,调用其他函数后,回到main()主函 数,在main()主函数中结束程序运行
1 第一章 c 语言概述 1.1 重点、难点 1.c 语言的特点 (1)语言简洁、紧凑、使用方便灵活 (2)运算符丰富 (3)具有结构化的控制语句 (4)语法限制不太严格,程序设计自由度大 (5)c 语言允许用户直接访问物理地址,能进行位操作,可以直接对硬件进行操 作。 2.源程序的书写规则 (1)c 语言书写自由,一行内可以写几个语句,并且一个语句可以写在多行上。 (2)c 程序没有行号,每个语句和数据定义的最后必须有一个分号。 (3)c 语言分号是语句中必不可少的。即使是程序的最后一个语句也应该包含分 号。 (4)c 语言中的注释可以用“/*”开始,用“*/”结束,注释可以在任何允许插 入空格符的地方插入。且“/”与“*”间不允许有空格。 (5)c 语言的注释不允许用嵌套,注释可以用西文也可以用中文。 3.c 程序的组成 (1)一个 c 程序由一个或多个源程序文件组成 (2)一个 c 源程序文件是由若干个函数组成的。函数是 c 程序的基本单位。在这 些函数中有且只用一个主函数 main(),主函数由系统提供。各个函数在程序中所处的 位置不是固定的。 (3)一个源程序文件是一个编译单位,即以源文件为单位进行编译,而不是以函 数为单位进行编译。C 语言源程序文件的扩展名为.c。 (4)任何 c 程序都是从主函数开始执行的,调用其他函数后,回到 main()主函 数,在 main()主函数中结束程序运行
函数的组成 个函数由两部分组成 (1)函数的首部 函数类型、函数名、函数参数类型、函数参数名 函数名后必须是一对圆括弧,但可以没有函数参数 (2)函数体 函数体是最外层{}括起来的部分,包括变量的声明和执行两部分
2 4.函数的组成 一个函数由两部分组成 (1)函数的首部 函数类型、函数名、函数参数类型、函数参数名 函数名后必须是一对圆括弧,但可以没有函数参数 (2)函数体 函数体是最外层{}括起来的部分,包括变量的声明和执行两部分
1.2例题 【例题1-1】判断 1)c语言是以函数为程序的基本单位,便于实现程序的模块化() 解析:c程序是由函数组成的,一个c源程序至少包含一个主函数main()。函数是c 程序的基本单位。C语言的这种特点使c程序容易实现模块化。 谷案:正确 (2)c程序的执行总是从程序第一句开始() 解析:一个c程序总是从main()函数开始执行,而不论main()函数处在程序中的 任何位置。 答案:错误 (3)c程序中可以不使用函数() 解析:c语言是函数式语言,一个c源程序至少包含有一个man函数。 谷案:错误 (4)c语言提供了一个输入语句scan()和一个输出语句 printf() 解析:c语言本身没有输入输出语句,输入输出操作由库函数 scanf和 printf等函数来 完成 答案:错误 (5)c程序的一条语句必须写在一行中() 解析:c程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。 答案:错误 (6)c程序中注释说明只能写在一条语句的后面() 解析:c语言中的注释可以用“/*”开始,用“*”结束,注释可以在任何允许插入空 格符的地方插入。且“/”与“*”间不允许有空格 谷案:错误 【例题1-2】下列程序中格式错在何处 B. int a, b, z; a=2b=3; za+b, i 解析:A,B,D没有错误,C中,在a=2后应该是分号“;”或逗号“,”,不应该是冒 号“:”,因此c处有错误。 谷案:c 【例题1-3】c语言的程序一行写不下时,可以 A.用逗号换行B用分号换行C在任意空格处换行D用回车符换行 解析:c语言可以在任何一个分隔符或空格处换行
3 1.2 例题 【例题 1-1】判断 (1)c 语言是以函数为程序的基本单位,便于实现程序的模块化() 解析:c 程序是由函数组成的,一个 c 源程序至少包含一个主函数 main()。函数是 c 程序的基本单位。C 语言的这种特点使 c 程序容易实现模块化。 答案:正确 (2)c 程序的执行总是从程序第一句开始() 解析:一个 c 程序总是从 main()函数开始执行,而不论 main()函数处在程序中的 任何位置。 答案:错误 (3)c 程序中可以不使用函数() 解析:c 语言是函数式语言,一个 c 源程序至少包含有一个 main 函数。 答案:错误 (4)c 语言提供了一个输入语句 scanf( )和一个输出语句 printf() 解析:c 语言本身没有输入输出语句,输入输出操作由库函数 scanf 和 printf 等函数来 完成。 答案:错误 (5)c 程序的一条语句必须写在一行中() 解析:c 程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。 答案:错误 (6)c 程序中注释说明只能写在一条语句的后面() 解析: c 语言中的注释可以用“/*”开始,用“*/”结束,注释可以在任何允许插入空 格符的地方插入。且“/”与“*”间不允许有空格。 答案:错误 【例题 1-2】下列程序中格式错在何处 A. main( ) B. {int a, b, z; C. a=2:b=3; D. z=a+b;} 解析:A,B,D 没有错误,C 中,在 a=2 后应该是分号“;”或逗号“,”,不应该是冒 号“:”,因此 c 处有错误。 答案:c 【例题 1-3】c 语言的程序一行写不下时,可以 A.用逗号换行 B.用分号换行 C.在任意空格处换行 D.用回车符换行 解析:c 语言可以在任何一个分隔符或空格处换行
谷案 【例题14】下列程序段中那一个是错误的注释方法? A.#in/*包含*/ clued ma void main/*(/*主函数* C #include D#include void main( {intx/*初始化*=10 fint x=10; 打印* printf(%d”,x); printf(" %od”,x), *打印X的值*“*=10* 解析:根据c语言的规定:注释不能插在标识符的中间,在其他有分隔符的地方都可以 插入注释,上面四个程序段中只有A是将注释插入一标识符的中间了,因此A的注释 是错误的。 谷案 【例题15】下列程序中的错误在() 解析:从上面的c程序的结构中,可以明显看出花括号不是成对出现的,必须在上面的 程序中再加上对应的花括号,可以加到最后,也可以加在第四行或第五行,看程序的具 体情况而定。 谷案:程序中少了一个花括号
4 答案:c 【例题 1-4】下列程序段中那一个是错误的注释方法? A. #in/*包含*/clued B.#include void main( ) void main/* */(/* 主函数*/) { { } } C. #include D.#include void main( ) void main( ) {int x/*初始化*/=10; {int x=10; /*打印*/printf(“%d”,x); printf(“%d”,x); } /*打印 X 的值*“*=10*/ } 解析:根据 c 语言的规定:注释不能插在标识符的中间,在其他有分隔符的地方都可以 插入注释,上面四个程序段中只有 A 是将注释插入一 标识符的中间了,因此 A 的注释 是错误的。 答案:A 【例题 1-5】下列程序中的错误在() main() {…….. { {……..} } 解析:从上面的 c 程序的结构中,可以明显看出花括号不是成对出现的,必须在上面 的 程序中再加上对应的花括号,可以加到最后,也可以加在第四行或第五行,看程序的具 体情况而定。 答案:程序中少了一个花括号“}
第三章数据类型、运算符与表达式 3.1重点、难点 1.关键字 关键字又称保留字,是一种语言中用于固定用途的名字。C语言的关键字共有32 个。,所有关键字都用小写的英文单词来表示 c语言的关键字如下: auto break case char const continue default do double else enum extern float for eturn shol ed sizeof static struct switch typedef union unsigned void volatile while 2.标识符 概念:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效 字符序列称为标识符。简单地说,标识符就是一个名字。 2、c语言的标识符命名规则 c语言的标识符只能由字母、数字、下划线三种字符组成。且第一个字符必须为字母或 下划线。 3、标识符的分类 ●关键字:是一些特殊的标识符,又称保留字,这些保留字不允许用户对它重新 定义 标准标识符:也是特殊含义的标识符,例如库函数( printf()函数)、编译预 处理命令等 用户自定义标识符 4、对标识符的说明 用户标识符长度最好不要超过8个字符 用户标识符不要和32个关键字同名 用户标识符最好不要与c语言中的库函数和其他一些命令(如编译预处理命 令)重名 大小写是不同的标识符
5 第三章 数据类型、运算符与表达式 3.1 重点、难点 1.关键字 关键字又称保留字,是一种语言中用于固定用途的名字。C 语言的关键字共有 32 个。,所有关键字都用小写的英文单词来表示。 c 语言的关键字如下: auto break case char const continue default do double else enum extern float for goto if int long regist return short signed sizeof static struct switch typedef union unsigned void volatile while 2.标识符 1、 概念: 用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效 字符序列称为标识符。简单地说,标识符就是一个名字。 2、c 语言的标识符命名规则 c 语言的标识符只能由字母、数字、下划线三种字符组成。且第一个字符必须为字母或 下划线。 3、标识符的分类 ⚫ 关键字:是一些特殊的标识符,又称保留字,这些保留字不允许用户对它重新 定义。 ⚫ 标准标识符: 也是特殊含义的标识符,例如库函数(printf()函数)、编译预 处理命令等 ⚫ 用户自定义标识符 4、对标识符的说明 ⚫ 用户标识符长度最好不要超过 8 个字符 ⚫ 用户标识符不要和 32 个关键字同名 ⚫ 用户标识符最好不要与 c 语言中的库函数和其他一些命令(如编译预处理命 令)重名 ⚫ 大小写是不同的标识符
用户标识符应做到见名知意 3.c语言的数据类型 在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型 四大类 1基本数据类型 基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数 据类型是自我说明的。 2.构造数据类型 是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造 类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是 个构造类型。在C语言中,构造类型有以下几种: 数组类型 结构类型 联合类型 3指针类型 指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量在内 存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量 因此不能混为一谈 4.空类型 在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定 的数据类型的,应在函数定义及函数说明中给以说明。但是,也有一类函数,调用后并 不需要向调用者返回函数值,这种函数可以定义为“空类型”。其类型说明符为void 4.常量和变量 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。 (一)常量 概念:常量(即常数)是程序运行过程中值不可改变的量,它又分为直接常量和符号常 量。具体分为以下几类 1.普通整型常量 整型常量有三种表示形式 十进制数:123,-456,0 八进制数(0开头)0123即(123)s 十六制数(0x开头)0x123,即(123)6、0x2bf即(2b6 整型常量占2个字节 6
6 ⚫ 用户标识符应做到见名知意 3.c 语言的数据类型 在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型 四大类。 1.基本数据类型 基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数 据类型是自我说明的。 2.构造数据类型 是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造 类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是 一个构造类型。在 C 语言中,构造类型有以下几种: ·数组类型 ·结构类型 ·联合类型 3.指针类型 指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量在内 存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量, 因此不能混为一谈。 4.空类型 在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定 的数据类型的,应在函数定义及函数说明中给以说明。但是,也有一类函数,调用后并 不需要向调用者返回函数值, 这种函数可以定义为“空类型”。其类型说明符为 void。 4.常量和变量 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。 (一)常量 概念:常量(即常数)是程序运行过程中值不可改变的量,它又分为直接常量和符号常 量。具体分为以下几类。 1.普通整型常量 ⚫ 整型常量 有三种表示形式 十进制数:123,-456,0 八进制数:(0 开头) 0123 即(123)8 十六制数:(0x 开头) 0x123,即 (123)16、0x2bf 即(2bf)16 ⚫ 整型常量 占 2 个字节
整型常量表示范围为-32768--32767即215-1 2.长整型常量在一个整数后加字母l或L则变成长整型常量 长整型常量占4个字节 ●长整型常量表示范围为231-1 3无符号整型常量: 个整型常量后加一个字母u或U则认为它是无符号整型数据。在内存中按无符 号整型规定的形式存放。如果是负数后加字母u或U则先把负数转换成补码,然后按 无符号数存储。例如:-12345u先将12345转换成补码53191,然后按无符号数存储。 4实型常量:又称浮点数 实型常量有两种表示形式:十进制小数表示形式和指数表示形式 十进制小数表示形式:由整数、小数点、和小数三部分组成,而且必须有小数点 例如0.123,0.23、45.0、3.67、0.0等 当小数部分或整数部分为0时0可以省略,但两部分不能同时省略。例如450可 以写成45.,0.23可以写成23。00可以写成0或0.。 指数形式:由尾数、E或e和指数三部分组成。例如1233或123E3(123×103 或1.23E5(1.23×105 注意 1、尾数和指数都不能省略。即e或E的前后必须有数字 例如:3.58e4是正确的表示形式。1.23e或e5都是错误的表示形式。 2、e或E后面的指数必须为整数。例如:2.34e4.5是错误的表示形式 3、小数点的前面有且只有一位非0的数字称为规范化的指数形式 例如:567e3 4、如果一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如将5689.65 指定按指数形式输出会输出568965e+003或568965e+03 实型常量占8个字节64位按双精度方式处理 如果在实数的后面加字母f或F则系统会按单精度处理。如1.65f6 5字符常量:是一对单引号括起来的一个字符。如‘a 字符常量占一个字节 字符常量存储时存储的是字符的ASCI值 大小写是不同的字符常量。例如“A和a','C和c等是不同的字符常量 c语言还使用特殊形式的字符常量,就是以“”开头的字符序列,称为转义 字符。常用的转义字符如下: 回车换行,将光标移到下一行行首 横向跳格(跳到下一个输出区,一个输出区8列,下个输出区 到第9列) 退一格 车光标回到本行行首 走纸换页
7 ⚫ 整型常量表示范围为 -32768——32767 即 2 15 -1。 2.长整型常量 在一个整数后加字母 l 或 L 则变成长整型常量 ⚫ 长整型常量占 4 个字节 ⚫ 长整型常量表示范围为 2 31 -1 3.无符号整型常量: 一个整型常量后加一个字母 u 或 U 则认为它是无符号整型数据。在内存中按无符 号整型规定的形式存放。如果是负数后加字母 u 或 U 则先把负数转换成补码,然后按 无符号数存储。例如:-12345u 先将-12345 转换成补码 53191,然后按无符号数存储。 4.实型常量:又称浮点数 实型常量有两种表示形式:十进制小数表示形式和指数表示形式 十进制小数表示形式:由整数、小数点、和小数三部分组成,而且必须有小数点。 例如 0.123 ,0.23、45.0、3.67、0.0 等 当小数部分或整数部分为 0 时 0 可以省略,但两部分不能同时省略。例如 45.0 可 以写成 45. ,0.23 可以写成.23。0.0 可以写成.0 或 0.。 指数形式:由尾数、E 或 e 和指数三部分组成。例如 123e3 或 123E3(123 × 103 ) 或 1.23E5(1.23 × 105 ) 注意: 1、尾数和指数都不能省略。即 e 或 E 的前后必须有数字。 例如: 3.58e4 是正确的表示形式。1.23e 或 e5 都是错误的表示形式。 2、e 或 E 后面的指数必须为整数。例如 :2.34e4.5 是错误的表示形式。 3、小数点的前面有且只有一位非 0 的数字称为规范化的指数形式。 例如:5.67e3 4、如果一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如将 5689.65 指定按指数形式输出会输出 5.68965e+003 或 5.68965e+03 ⚫ 实型常量占 8 个字节 64 位 按双精度方式处理 ⚫ 如果在实数的后面加字母 f 或 F 则系统会按单精度处理。如 1.65f。 5.字符常量:是一对单引号括起来的一个字符。如‘a’ 、‘A’、‘%’等。 ⚫ 字符常量占一个字节 ⚫ 字符常量存储时存储的是字符的 ASCII 值 ⚫ 大小写是不同的字符常量。例如 ‘A’和‘a’,’C’和‘c’等是不同的字符常量 ⚫ c 语言还使用特殊形式的字符常量,就是以“\”开头的字符序列,称为转义 字符。常用的转义字符如下: \n 回车换行,将光标移到下一行行首。 \t 横向跳格(跳到下一个输出区,一个输出区 8 列,下个输出区 到第 9 列) \b 回退一格 \r 回车 光标回到本行行首 \f 走纸换页
反斜线符" W"a 单引号符 鸣铃 输出双引号 1~3位八进制数所代表的字符 Xhh 1~2位十六进制数所代表的字符 义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。上述的 dd和whh正是为此而提出的。dd和hh分别为八进制和十六进制的ASCI 代码。如\101表示字符"A",102表示字母"B",34表示反斜线,x0A表示 换行等。 6.字符串常量:字符串常量是一对双引号括起来的字符序列。如“boy”、“ ABCDE”等。 每个字符串的结尾加一个字符串结束标志(“0)系统根据此标志判断字符 串是否结束。 0“是一个ASCI为0的字符是空操作符,由系统自动加到字符串的结 尾,不是人工操作。例“ china”实际内存中: china10 字符串常量所占的字节数是它的字符的个数加1。而字符串的长度是从第 个字符开始到第一个”\0之间的字符的个数。例如:“ qwert\0gs”的字节数 是9而长度为5 7符号常量 是用一个标识符标识一个常量。在使用过程中,这个标识符就代表了该常量。若程 序的开头有# define Pl3.1415926则PI即是符号常量,在程序中代表3.1415926 (二)变量: 概念:在程序执行过程中取值可变的量称为变量。它们可与数据类型结合起来分类。例 如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常 量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后 使用。 变量定义的形式:存储类型名类型标识符变量名1[=表达式1 变量名n= 表达式n 1.整形变量 (1)整形变量分类:基本型(int)、短整型( short[int)、长整形(long[in])、无符号 整形( unsigned int、 unsigned short、 unsigned long) ●基本型 类型说明符为int或 signed int,在内存中占2个字节,其取值范围为-32768-32767 短整型 类型说明符为 short int或 short。所占字节和取值范围均与基本型相同。 ●长整型 类型说明符为 long int或long,在内存中占4个字节,其取值同长整常数的取 值范围
8 \\ 反斜线符"\" \' 单引号符 \a 鸣铃 \” 输出双引号 \ddd 1~3 位八进制数所代表的字符 \xhh 1~2 位十六进制数所代表的字符 广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。上述的 \ddd 和\xhh 正是为此而提出的。ddd 和 hh 分别为八进制和十六进制的 ASCII 代码。如\101 表示字符"A" ,\102 表示字母"B",\134 表示反斜线,\x0A 表示 换行等。 6.字符串常量:字符串常量是一对双引号括起来的字符序列。如“boy”、“ABCDE”等。 ⚫ 每个字符串的结尾加一个字符串结束标志(‘\0’)系统根据此标志判断字符 串是否结束。 “\0“是一个 ASCII 为 0 的字符,是空操作符,由系统自动加到字符串的结 尾,不是人工操作。例“china”实际内存中:c h i n a \0 ⚫ 字符串常量所占的字节数是它的字符的个数加 1。而字符串的长度是从第一 个字符开始到第一个’\0’之间的字符的个数。例如:“qwert\0gs”的字节数 是 9 而长度为 5。 7.符号常量: 是用一个标识符标识一个常量。在使用过程中,这个标识符就代表了该常量。若程 序的开头有 #define PI 3.1415926 则 PI 即是符号常量,在程序中代表 3.1415926 (二)变量: 概念:在程序执行过程中取值可变的量称为变量。它们可与数据类型结合起来分类。例 如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常 量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后 使用。 变量定义的形式:存储类型名 类型标识符 变量名 1[=表达式 1],……. 变量名 n[= 表达式 n]; 1.整形变量 (1)整形变量分类:基本型(int)、短整型(short [int])、长整形(long [int])、无符号 整形(unsigned int 、unsigned short、unsigned long)。 ⚫ 基本型 类型说明符为 int 或 signed int,在内存中占 2 个字节,其取值范围为-32768-32767 ⚫ 短整型 类型说明符为 short int 或 short。所占字节和取值范围均与基本型相同。 ⚫ 长整型 类型说明符为 long int 或 long ,在内存中占 4 个字节,其取值同长整常数的取 值范围
无符号型 类型说明符为 unsigned 无符号型又可与上述三种类型匹配而构成 无符号基本型类型说明符为 unsigned int或 unsigned 无符号短整型类型说明符为 unsigned short 无符号长整型类型说明符为 unsigned long 各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省 去了符号位,故不能表示负数。下表列出了 Turbo C中各类整型量所分配的内 存字节数及数的表示范围 类型说明符 数的范围 分配字节数 -32768~32767 short int 32768-32767 2147483648~2147483647■■ unsigned int 0-65535 unsigned short 0~65535 unsigned long 0~4294967295 (2)整型变量的说明 变量说明的一般形式为:类型说明符变量名标识符,变量名标识符 例如 int a, b,c;(anbc为整型变量) long x, y;(xy为长整型变量) unsigned p, q,(pq为无符号整型变量) (3)在书写变量说明时,应注意以下几点: 允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号 间隔。类型说明符与变量名之间至少用一个空格间隔 最后一个变量名之后必须以“;”号结尾。 变量说明必须放在变量使用之前。一般放在函数体的开头部分。 2.实型变量 (1)实型变量分类:单精度(foat)、双精度( double)、长双精度( long double) 在 Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为-34E-38~ 34E+38,只能提供7位有效数字。 双精度型占8个字节(64位)内存空间,其数值范围为-1.7E-308~1.7E+308, 可提供16位有效数字。 (2)实型变量说明的格式和书写规则与整型相同。 例如: float x,y;(x,y为单精度实型量)
9 ⚫ 无符号型 类型说明符为 unsigned。 无符号型又可与上述三种类型匹配而构成: 无符号基本型 类型说明符为 unsigned int 或 unsigned。 无符号短整型 类型说明符为 unsigned short 无符号长整型 类型说明符为 unsigned long 各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省 去了符号位,故不能表示负数。 下表列出了 Turbo C 中各类整型量所分配的内 存字节数及数的表示范围。 类型说明符 数的范围 分配字节数 int -32768~32767 ■■ short int -32768~32767 ■■ long int -2147483648~2147483647 ■■■■ unsigned int 0~65535 ■■ unsigned short 0~65535 ■■ unsigned long 0~4294967295 ■■■■ (2)整型变量的说明 变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符 例如: int a,b,c; (a,b,c 为整型变量) long x,y; (x,y 为长整型变量) unsigned p,q; (p,q 为无符号整型变量) (3)在书写变量说明时,应注意以下几点: ⚫ 允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号 间隔。类型说明符与变量名之间至少用一个空格间隔。 ⚫ 最后一个变量名之后必须以“;”号结尾。 ⚫ 变量说明必须放在变量使用之前。一般放在函数体的开头部分。 2.实型变量 (1)实型变量分类:单精度(float)、 双精度(double)、长双精度(long double) 在 Turbo C 中单精度型占 4 个字节(32 位)内存空间,其数值范围为-3.4E-38~ 3.4E+38,只能提供 7 位有效数字。 双精度型占 8 个字节(64 位)内存空间,其数值范围为-1.7E-308~1.7E+308, 可提供 16 位有效数字。 (2)实型变量说明的格式和书写规则与整型相同。 例如: float x,y; (x,y 为单精度实型量)
double a b,c;(ab,c为双精度实型量) 3.字符型变量:用char来定义 字符型变量用来存放一个字符型常量,且只能放一个字符。实际在内存中存 放的是该字符的ASCI值。 C语言中字符型数据和整形数据间可以通用,一个字符型数据既可以按字符 型数据处理也可以按整形数据处理,按整形数据处理时将ASCI值作为整 数处理,故字符型数据可以进行算术运算 字符型数据占一个字节,只能存放0-255之间的整数 字符变量类型说明的格式和书写规则都与整型变量相同。 4.在c语言中没有专门的字符串变量,如果要将字符串放在变量中,应使用字符数组。 5.变量的初值和类型转换 (一)变量赋初值 在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法。在定义时 赋以初值的方法,这种方法称为初始化。在变量说明中赋初值的一般形式为 类型说明符变量1=值1,变量2=值2,:例如 (1)对被定义的变量均赋初值 float x=3.2,y=3f,z=0.75 char chI=k ch2=P (2)对被定义的变量的一部分赋初值 nt a b, c=5 (3)对几个变量赋同一初值 nta=3,b=3,c=3 (二)变量类型的转换 变量的数据类型是可以转换的。转换的方法有两种,一种是自动转换,一种是强制转 1、自动转换 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以 下规则: 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 转换按数据长度增加的方 向进行,以保证精度不降高 double← float 低。如int型和log型运算 时,先把int量转成long型 g 后再进行运算 unsigned 低 short char 10 图2
10 double a,b,c; (a,b,c 为双精度实型量) 3.字符型变量:用 char 来定义 ⚫ 字符型变量用来存放一个字符型常量,且只能放一个字符。实际在内存中存 放的是该字符的 ASCII 值。 ⚫ C 语言中字符型数据和整形数据间可以通用,一个字符型数据既可以按字符 型数据处理也可以按整形数据处理,按整形数据处理时将 ASCII 值作为整 数处理,故字符型数据可以进行算术运算。 ⚫ 字符型数据占一个字节,只能存放 0-255 之间的整数。 ⚫ 字符变量类型说明的格式和书写规则都与整型变量相同。 4.在 c 语言中没有专门的字符串变量,如果要将字符串放在变量中,应使用字符数组。 5.变量的初值和类型转换 (一)变量赋初值 在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法。在定义时 赋以初值的方法,这种方法称为初始化。在变量说明中赋初值的一般形式为: 类型说明符 变量 1= 值 1,变量 2= 值 2,……; 例如: (1)对被定义的变量均赋初值 float x=3.2, y=3f, z=0.75; char ch1='K', ch2='P'; (2)对被定义的变量的一部分赋初值 int a,b,c=5; (3)对几个变量赋同一初值 int a=3,b=3,c=3; (二)变量类型的转换 变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转 换。 1、自动转换 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以 下规则: ⚫ 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 ⚫ 转换按数据长度增加的方 向进行,以保证精度不降 低。如 int 型和 long 型运算 时,先把 int 量转成 long 型 后再进行运算。 高 double float long unsigned 低 int short , char 图2.1