b=ca: vtable a,2,6 2, of vtable Vupdate 1,6;2,19 3,0 4,0 65530 4,-114 1,-101 of vupdate of Practice void maino i ng x, y int a, b, c, d d=y+b printf("c=x+a=d, d=y+b=d\n",c, d) 将main说明为返回void,即不返回任何类型的值 x,y被定义为long型 a,b,c,d被定义为int型 5->x 6- 7->a y+b->d 显示程序运行结果of1ongx,y int a, b, c d: c=x+a 从程序中可以看到:x,y是长整型变量,a,b是基本整型变量。它们之间允许进行运算,运算结果为长 整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互 赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍
b=-a;'Vtable a,2,6 b,2,19 c,2,0 d,2,0 of Vtable 'Vupdate 1,6;2,19 3,0 4,0 3,65530 4,-114 1,-101 2,101 of Vupdate of Practice void main(){ long x,y; int a,b,c,d; x=5; y=6; a=7; b=8; c=x+a; d=y+b; printf("c=x+a=%d,d=y+b=%d\n",c,d); } 将 main 说明为返回 void,即不返回任何类型的值 x,y 被定义为 long 型 a,b,c,d 被定义为 int 型 5->x 6->y 7->a 8->b x+a->c y+b->d 显示程序运行结果 of long x,y; int a,b,c,d; c=x+a; d=y+b; 从程序中可以看到:x, y 是长整型变量,a, b 是基本整型变量。它们之间允许进行运算,运算结果为长 整型。但 c,d 被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互 赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍
实型量 实型常量 实型也称为浮点型,实型常量也称为实数或者浮点数,在C语言中,实数只采用十进制它有二种形式:十 进制数形式指数形式 1.十进制数形式 由数码09和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。 2.指数形式 由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为aEn(a 为十进制数,n为十进制整数)其值为a*10,n如:2.1B5(等于2.1*10,5),3.TE-2(等于3.7*10,)-2*) 0.5E7(等于0.5*10,7),-2.8E-2(等于-2.8*10,)-2*)以下不是合法的实数345(无小数点)E7(阶码标 志E之前无数字)-5(无阶码标志)53.-E3(负号位置不对)2.7E(无阶码) 标准C允许浮点数使用后缀。后缓为“f”或“F”即表示该数为浮点数。如356和356.是等价的。例22 说明了这种情况 void main o printf("%f\%f\n", 356., 356f) void指明main不返回任何值利用 printf显示结果结束 实型变量 实型变量分为两类:单精度型和双精度型, 其类型说明符为 float单精度说明符, double双精度说明符。在 Turbo C中单精度型占4个字节(32位) 内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8个字节(64位)内存 空间,其数值范围为17E-308~1.7E+308,可提供16位有效数字 实型变量说明的格式和书写规则与整型相同 例如: float x,y;(x,y为单精度实型量) double a,b,c;(a,b,c为双精度实型量) 实型常数不分单、双精度,都按双精度 double型处理 void main o float a double b a=33333.3333 printf("%f\n%f\n", a, b) 此程序说明 float、 double的不同 a口■■■ b■■■■■■■■ a<---33333.33333 b<---33333.3333333333
实型量 实型常量 实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式: 十 进制数形式指数形式 1.十进制数形式 由数码 0~ 9 和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230 等均为合法的实数。 2.指数形式 由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为 a E n (a 为十进制数,n 为十进制整数)其值为 a*10,n 如: 2.1E5 (等于 2.1*10,5), 3.7E-2 (等于 3.7*10,)-2*) 0.5E7 (等于 0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的实数 345 (无小数点) E7 (阶码标 志 E 之前无数字) -5 (无阶码标志) 53.-E3 (负号位置不对) 2.7E (无阶码) 标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如 356f 和 356.是等价的。例 2.2 说明了这种情况: void main() { printf("%f\n%f\n",356.,356f); } void 指明 main 不返回任何值 利用 printf 显示结果 结束 实型变量 实型变量分为两类:单精度型和双精度型, 其类型说明符为 float 单精度说明符,double 双精度说明符。在 Turbo C 中单精度型占 4 个字节(32 位) 内存空间,其数值范围为 3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占 8 个字节(64 位)内存 空间,其数值范围为 1.7E-308~1.7E+308,可提供 16 位有效数字。 实型变量说明的格式和书写规则与整型相同。 例如: float x,y; (x,y 为单精度实型量) double a,b,c; (a,b,c 为双精度实型量) 实型常数不分单、双精度,都按双精度 double 型处理。 void main() { float a; double b; a=33333.33333; b=33333.33333333333333; printf("%f\n%f\n",a,b); } 此程序说明 float、double 的不同 a ■■■■ b ■■■■■■■■ a<---33333.33333 b<---33333.33333333333;;
显示程序结果 此程序说明 float、 double的不同 float a double b a=33333.33333 b=333333333例可以看出,由于a是单精度浮点型,有效位数只有七位。而整数已占五位, 故小数二位后之后均为无效数字。b是双精度型,有效位为十六位。但 Turbo C规定小数后最多保留六位, 其余部分四舍五入。 [Practice]//floatint a=32 float b double d b=12345678 d=b*100 d=d+a d=d+58.123456; Vtable a,2,32 b,4,0.0 d,8,0.0 of vtable Vupdate 3,0 2,12345678.00000 3,1234567800 3,1234567832 3,1234567890.123456 of Vupdate of Practice [Practice]//lint a=543 float b b=123.123962+a; b=b-100 a=b: Vtable a,2,543 b,4,0.0 of Vtable 1,543 2,0 2,123.123962 2,23.123962 1,23 of vupdate
显示程序结果 此程序说明 float、double 的不同 float a; double b; a=33333.33333; b=33333.33333333333333; 从本例可以看出,由于 a 是单精度浮点型,有效位数只有七位。而整数已占五位, 故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但 Turbo C 规定小数后最多保留六位, 其余部分四舍五入。 [Practice] //floatint a=32; float b; double d; b=12345678; d=b*100; d=d+a; d=d+58.123456;'Vtable a,2,32 b,4,0.0 d,8,0.0 of Vtable 'Vupdate 1,32 2,0 3,0 2,12345678.00000 3,1234567800 3,1234567832 3,1234567890.123456 of Vupdate of Practice [Practice] //1int a=543; float b; b=123.123962+a; b=b-100; a=b;'Vtable a,2,543 b,4,0.0 of Vtable 'Vupdate 1,543 2,0.0 2,123.123962 2,23.123962 1,23 of Vupdate
of Practice 字符型量 字符型量包括字符常量和字符变量。 字符常量 字符常量是用单引号括起来的一个字符。例如a',b,’=,’+,?都是 常量。在C语言中,字符常 量有以下特点 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就 不能参与数值运算。如’5’和5是不同的。’5’是字符常量,不能参与运算 转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含 义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题 printf函数的格式串中用到的“\n” 就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。 常用的转义字符及其含义 转义字符转义字符的意义 回车换行 twb 横向跳到下一制表位置 竖向跳格 退格 回车 走纸换页 反斜线符"\ 单引号符 鸣铃 \ddd 1~3位八进制数所代表的字符 \xhh 1~2位十六进制数所代表的字符 广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的dd和\xh正是为此而提出 的。d和hh分别为八进制和十六进制的ASCI代码。如101表示字?quot;A”,102表示字母"B”,134 表示反斜线,\XOA表示换行等。转义字符的使用 int a, b,c printf('%d\n\t%d %d\n %d %d\t\b%d\n", a, b, c, a, b, c) 此程序练习转义字符的使用 a、b、c为整数5->a,6->b,7->c 调用 printf显示程序运行结果 printf( %d\n\ t%d %d\n %d %d\t\b%d\n", a, b, c, a, b, c)
of Practice 字符型量 字符型量包括字符常量和字符变量。 字符常量 字符常量是用单引号括起来的一个字符。例如'a','b','=','+','?'都是合法字符常量。在C语言中,字符常 量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就 不能参与数值运算。如'5'和 5 是不同的。'5'是字符常量,不能参与运算。 转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含 义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题 printf 函数的格式串中用到的“\n” 就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。 常用的转义字符及其含义 转义字符 转义字符的意义 \n 回车换行 \t 横向跳到下一制表位置 \v 竖向跳格 \b 退格 \r 回车 \f 走纸换页 \\ 反斜线符"\" \' 单引号符 \a 鸣铃 \ddd 1~3 位八进制数所代表的字符 \xhh 1~2 位十六进制数所代表的字符 广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表 2.2 中的\ddd 和\xhh 正是为此而提出 的。ddd 和 hh 分别为八进制和十六进制的 ASCII 代码。如\101 表示字?quot;A" ,\102 表示字母"B",\134 表示反斜线,\XOA 表示换行等。转义字符的使用 void main() { int a,b,c; a=5; b=6; c=7; printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c); } 此程序练习转义字符的使用 a、b、c 为整数 5->a,6->b,7->c 调用 printf 显示程序运行结果 printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
程序在第一列输出a值5之后就是“\n”,故回车换行:接着又是“\t”,于是跳到下一制表位置(设制表 位置间隔为8),再输出b值6;:空二格再输出c值7后又是"\n",因此再回车换行:再空二格之后又输出a 值5:再空三格又输出b的值6:再次后"\t"跳到下一制表位置(与上一行的6对齐),但下一转义字符“\b” 又使退回一格,故紧挨着6再输出c值7。 字符变量 字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写 规则都与整型变量相同 例如 char a,b;每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以 ASCII码的形式 存放在变量的内存单元之中的。如x的 十进制 ASCII码是120,y的十进制 ASCILA码是121。对字符变量a,b赋予x’和y’值:a=’x’;b=’y’;实际 上是在a,b两个单元内存放120和121的二进制代码:a01111000 b01111001 所以也可以把它们看成是整型量。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输 出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。整型量为二字节量,字符量为单字 节量,当整型量按字符型量处理时,只有低八位字节参与处理。 printf(%, %c\n%, %d\n, a, b, a, b) b s 611 显示程序结果 本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于 printf函 数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值 为整数 void main o har a, b b=y a=a-32 printf("%c, %c\n%d, %d \n", a, b, a, b) a,b被说明为字符变量并赋予字符值 把小写字母换成大写字母 以整型和字符型输出
程序在第一列输出 a 值 5 之后就是“\n”,故回车换行;接着又是“\t”,于是跳到下一制表位置(设制表 位置间隔为 8),再输出 b 值 6;空二格再输出 c 值 7 后又是"\n",因此再回车换行;再空二格之后又输出 a 值 5;再空三格又输出 b 的值 6;再次后"\t"跳到下一制表位置(与上一行的 6 对齐),但下一转义字符“\b” 又使退回一格,故紧挨着 6 再输出 c 值 7。 字符变量 字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是 char。字符变量类型说明的格式和书写 规则都与整型变量相同。 例如: char a,b; 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以 ASCII 码的形式 存放在变量的内存单元之中的。如 x 的 十进制 ASCII 码是 120,y 的十进制 ASCII 码是 121。对字符变量 a,b 赋予'x'和'y'值: a='x';b='y';实际 上是在 a,b 两个单元内存放 120 和 121 的二进制代码: a 0 1 1 1 1 0 0 0 b 0 1 1 1 1 0 0 1 所以也可以把它们看成是整型量。 C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输 出时, 允许把字符变量按整型量输出,也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字 节量,当整型量按字符型量处理时, 只有低八位字节参与处理。 main() { char a,b; a=120; b=121; printf("%c,%c\n%d,%d\n",a,b,a,b); } a ■ b ■ a <-- 120 b <--- 121 显示程序结果 本程序中说明 a,b 为字符型,但在赋值语句中赋以整型值。从结果看,a,b 值的输出形式取决于 printf 函 数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值 为整数。 void main() { char a,b; a='x'; b='y'; a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); } a,b 被说明为字符变量并赋予字符值 把小写字母换成大写字母 以整型和字符型输出