版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 C程序设计根底程序设计根底 l 常量与变量常量与变量l 数据构造与数据类型数据构造与数据类型l 运算符的优先级与结合性运算符的优先级与结合性l 强迫类型转换运算强迫类型转换运算l 算术运算符与算术表达式算术运算符与算术表达式l 关系运算符与关系表达式关系运算符与关系表达式l 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式l 赋值运算符与赋值表达式赋值运算符与赋值表达式l 逗号运算符和逗号表达式逗号运算符和逗号表达式 常用数学函数常用数学函数 3.1 3.1 常量与变量常量与变量 常量和变量都表现为某一数据类型。常量和变量都表现为某一数据类型。 而在而在C C言语中,常量不需求类型阐明
2、,变量言语中,常量不需求类型阐明,变量那么需求类型阐明那么需求类型阐明, , 即使用变量时需求即使用变量时需求“先定先定义,再运用。义,再运用。 3.1 3.1 常量与变量常量与变量C言语提供了丰富的数据类型,这些数据类型归言语提供了丰富的数据类型,这些数据类型归纳如下:纳如下: 3.1.13.1.1常量常量1整型常量整型常量 如:如:7,45,6789,06789,0 x6789,6789l等。等。 2实型常量实型常量 如:如:2.34,2.34E-5等。等。 4字符串常量字符串常量 如:如:“m,“abc,“mmm等。等。 5控制字符控制字符 用反斜扛用反斜扛“和特定字符组合表示和特定字符
3、组合表示 3.1.13.1.1常量常量表表3-1 控制字符常量本义字符表控制字符常量本义字符表 3.1.13.1.1常量常量6.6.符号常量符号常量 符号常量的定义方式为:符号常量的定义方式为: #define #define 标识符常量标识符常量 其中其中#define#define也是一条预处置命令预处置也是一条预处置命令预处置命令都以命令都以#开头,称为宏定义命令在后开头,称为宏定义命令在后面预处置程序中将进一步引见,其功能是把面预处置程序中将进一步引见,其功能是把该标识符定义为其后的常量值该标识符定义为其后的常量值 3.1.23.1.2变量变量 1.1.变量阐明变量阐明 在在C C程序
4、设计中,运用变量时必需首先对它的数据程序设计中,运用变量时必需首先对它的数据类型进展阐明,简单的定义格式为:类型进展阐明,简单的定义格式为: 数据类型阐明符数据类型阐明符 变量名列表;变量名列表;或或 数据类型阐明符数据类型阐明符 变量名变量名11,变量名,变量名2 2,; 3.1.23.1.2变量变量2.2.变量初始化变量初始化 初始化变量的简单格式:初始化变量的简单格式: 数据类型阐明符数据类型阐明符 变量名变量名1=1=常量或表达式常量或表达式 ,变量名变量名2=2=常量或表达式,常量或表达式,; 或或 变量名变量名 = = 常量或表达式;常量或表达式; 3.1.23.1.2变量变量3.
5、3.变量与存储器变量与存储器 图3-2 数据存储格式 3.23.2整型数据类型整型数据类型 数据类型与数据的存储有关,也与操作运用有关。数据类型与数据的存储有关,也与操作运用有关。数据类型可以从不同的方面进展分类。按照数据数据类型可以从不同的方面进展分类。按照数据的运算性质,可以分为整型数据类型、实型数据的运算性质,可以分为整型数据类型、实型数据类型和字符型数据类型;类型和字符型数据类型; 数据类型从长度上分,有数据类型从长度上分,有8位、位、16位、位、32位和位和64位;位; 从数据的符号来分,有无符号数和有符号数等。从数据的符号来分,有无符号数和有符号数等。 3.2.1 3.2.1 整型
6、变量的分类整型变量的分类在在C C言语中,整型变量的根本类型为言语中,整型变量的根本类型为intint,根据不,根据不同变量的取值范围可以给它们加上不同的修饰同变量的取值范围可以给它们加上不同的修饰符:符:1.1.根本型:类型阐明符为根本型:类型阐明符为intint,在内存中占,在内存中占2 2个字个字节。节。2.2.短整量:类型阐明符为短整量:类型阐明符为short intshort int或或shortshort。所。所占字节和取值范围均与根本型一样。占字节和取值范围均与根本型一样。3.3.长整型:类型阐明符为长整型:类型阐明符为long intlong int或或longlong,在内,
7、在内存中占存中占4 4个字节。个字节。 3.2.1 3.2.1 整型变量的分类整型变量的分类 表3-2列出了C言语中各类整型数据所分配的内存字节数及数值的范围。 例例3.43.4带符号的整型数据运算带符号的整型数据运算main()main() int a,b; int a,b; a=32767; a=32767; b=32767+1; b=32767+1; printf( printf(a=%dna=%dn,a);,a); printf( printf(b=%dnb=%dn,b);,b); 程序运转结果:程序运转结果: a=32767a=32767 b=-32768 b=-32768 例例3.
8、43.4带符号的整型数据运算带符号的整型数据运算 图3-4变量a 赋值32767后的存放情况图3-3变量b赋值32767+1的存放情况 数据溢出,但系统不会报错。如图3-3所示。 3.2.2 3.2.2 整型变量的定义整型变量的定义 程序中用到的整型数据变量必需先定义,变程序中用到的整型数据变量必需先定义,变量定义的普通方式为:量定义的普通方式为: 整型类型阐明符整型类型阐明符 变量名变量名1,1,变量名变量名2,2,; 其中,整型类型阐明符包括:其中,整型类型阐明符包括:shortshort、longlong、intint和和unsigned shortunsigned short、unsi
9、gned longunsigned long、unsigned intunsigned int等。等。 例例3.53.5整型变量的定义与运用。整型变量的定义与运用。 main()main() long x,y; long x,y; int a,b,c,d; int a,b,c,d; x=5; x=5; y=6; y=6; a=7; a=7; b=8; b=8; c=x+a; c=x+a; d=y+b; d=y+b; printf(c=x+a=%d,d=y+b=%dn,c,d); printf(c=x+a=%d,d=y+b=%dn,c,d); 程序运转结果:程序运转结果: c=x+a=12,d=
10、y+b=14 c=x+a=12,d=y+b=14 3.2.3 3.2.3 整型常量的表示方法整型常量的表示方法 1.1.十进制整常数:十进制整常数没有前缀。其数十进制整常数:十进制整常数没有前缀。其数码为码为0 09 9。 2.2.八进制整常数:八进制整常数必需以八进制整常数:八进制整常数必需以0 0开头,开头,即以即以0 0作为八进制数的前缀。作为八进制数的前缀。 3.3.十六进制整常数:十六进制整常数的前缀为十六进制整常数:十六进制整常数的前缀为0X0X或或0 x0 x。 3.2.4 3.2.4 整型常量的分类整型常量的分类 一个一个intint型整数,其值在型整数,其值在-3276832
11、767-3276832767,一,一个整型常量后加个整型常量后加u u或或U U后缀那么被以为是后缀那么被以为是unsignedunsigned类型,在内存中按类型,在内存中按unsignedunsigned规定的方规定的方式存放。式存放。例如:例如: 十进制长整常数:十进制长整常数:379L 379L ; 八进制长整常数:八进制长整常数:012L 012L ; 十六进制长整常数:十六进制长整常数:0X15L0X15L。 3.2.53.2.5整型数据的运用整型数据的运用 整型数据是常用的一种数据类型,广泛运整型数据是常用的一种数据类型,广泛运用在各种场所,有着各种实践用途。简单归纳用在各种场所
12、,有着各种实践用途。简单归纳起来,主要表如今如下几个方面:起来,主要表如今如下几个方面: 普通数值计算,主要是非浮点数或对精度要普通数值计算,主要是非浮点数或对精度要求不高的一些数值计算。求不高的一些数值计算。 表示计算机内部数据,如地址、指针等。表示计算机内部数据,如地址、指针等。 表示字符编码,如表示字符编码,如ASCIIASCII码、汉字内码等。码、汉字内码等。 3.33.3实型数据类型实型数据类型 实型数据类型存储长度比较长,还可以带小数实型数据类型存储长度比较长,还可以带小数点进展计算,所以主要用于科学计算。实型数据点进展计算,所以主要用于科学计算。实型数据类型还可以分为单精度、双精
13、度和和长双精度,类型还可以分为单精度、双精度和和长双精度,运用时根据需求定义和运用。运用时根据需求定义和运用。 3.3.13.3.1 实型常量的表示方法实型常量的表示方法 1.1.十进制数方式:由数码十进制数方式:由数码0 90 9和小数和小数点组成。点组成。2.2.指数方式:由十进制数,加阶码标指数方式:由十进制数,加阶码标志志“e e或或“E E以及阶码组成。以及阶码组成。一个实数可以有多种指数表示方式。一个实数可以有多种指数表示方式。 3.3.23.3.2 实型变量实型变量 1.1.实型数据在内存中的存放方式实型数据在内存中的存放方式 在计算机内部实型数据都以指数方式存储,普在计算机内部
14、实型数据都以指数方式存储,普通占通占4 4个字节个字节3232位内存空间,其中三个字节存位内存空间,其中三个字节存放数字部分,一个字节存放指数部分,内存存放方放数字部分,一个字节存放指数部分,内存存放方式:式: 3.3.23.3.2 实型变量实型变量2.2.实型变量的分类实型变量的分类 实型变量分为单精度实型变量分为单精度floatfloat型、双精度型、双精度doubledouble型和长双精度型和长双精度long doublelong double型型三类。三类。 3.3.23.3.2 实型变量实型变量3.3.实型数据的舍入误差实型数据的舍入误差 由于实型变量是由有限的存储单元组成的,由于
15、实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。有效数字因此能提供的有效数字总是有限的。有效数字被舍去就会产生舍入误差。被舍去就会产生舍入误差。 例例2.8 2.8 实型变量舍入误差的检验实型变量舍入误差的检验 main() main() float a,b; float a,b; a=123456.789e5; a=123456.789e5; b=a+20; b=a+20; printf(%fn,a); printf(%fn,a); printf(%fn,b); printf(%fn,b); 程运转结果:程运转结果: 12345678848.0000001234567884
16、8.000000 12345678848.000000 12345678848.000000 3.3.33.3.3 实型数据的运用实型数据的运用 在运用实型数据时,选择哪一种实型要根在运用实型数据时,选择哪一种实型要根据所处置数据的取值范围,计算要求的精度,据所处置数据的取值范围,计算要求的精度,或表达式结果的范围确定。或表达式结果的范围确定。 例例3.103.10各种数据的混合运算各种数据的混合运算 3.43.4字符型数据类型字符型数据类型 字符类型的数据以一个字节为单位存放。字符类型的数据以一个字节为单位存放。3.4.13.4.1字符常量字符常量 字符常量是用单引号括起来的一个字符。例字符
17、常量是用单引号括起来的一个字符。例如:如:aa、bb、=、+、?都是合法字符都是合法字符常量。留意单引号只是字符常量和其他部分的常量。留意单引号只是字符常量和其他部分的分隔符,不是字符常量的一部分。分隔符,不是字符常量的一部分。 3.43.4字符型数据类型字符型数据类型3.4.23.4.2字符变量字符变量 字符变量用来存储字符常量,即单个字符。一个字符变量用来存储字符常量,即单个字符。一个字符变量在内存中占一个字节。字符变量在内存中占一个字节。 3.4.33.4.3 字符数据的运用方法字符数据的运用方法每个字符变量被分配一个字节的内存空间,字符每个字符变量被分配一个字节的内存空间,字符值是以值
18、是以ASCIIASCII码的方式存放在变量的内存单元码的方式存放在变量的内存单元之中的。之中的。 3.43.4字符型数据类型字符型数据类型 3.4.4 3.4.4 字符串常量字符串常量 字符串常量是由一对双引号括起的字符序字符串常量是由一对双引号括起的字符序列。例如:列。例如: “REDRED , “programprogram , “12341234 等都是合法的字符串常量。等都是合法的字符串常量。 字符常量占一个字节的内存空间。字符串常字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加量占的内存字节数等于字符串中字节数加1 1。 3.4.53.4.5字符串函数字符串
19、函数几个常用函数几个常用函数 :strcat(char strcat(char * *dest, const char dest, const char * *src);src);strchr(const char strchr(const char * *str, int c);str, int c);strcmp(const char strcmp(const char * *s1, const char s1, const char * *s2);s2);strcpy(char strcpy(char * *dest, const char dest, const char * *src
20、);src); strlen(const char strlen(const char * *s); s); 3.4.63.4.6字符数据的运用字符数据的运用例例3.14 3.14 大小写字符转换大小写字符转换 main() main() int a,b; int a,b; a= a=a a; ; b= b=b b; ; a=a-32; a=a-32; b=b-32; b=b-32; printf(%c,%cn%d,%dn,a,b,a,b); printf(%c,%cn%d,%dn,a,b,a,b); 程序运转结果:程序运转结果: A,B A,B 65,66 65,66 3.5不同类型数据间的
21、混合运算不同类型数据间的混合运算 不同类型的数据首先要转换成同一类型,然不同类型的数据首先要转换成同一类型,然后进展运算。因此,整型、实型、字符型数据后进展运算。因此,整型、实型、字符型数据间可以混合运算。间可以混合运算。例如:例如:10a1.58765.1234 * b 3.6运算符与表达式运算符与表达式 3.6.1 3.6.1 运算符简介运算符简介 3.6运算符与表达式运算符与表达式3.6.2 3.6.2 运算符的优先级与结合性运算符的优先级与结合性 3.6运算符与表达式运算符与表达式3.6.33.6.3强迫类型转换运算强迫类型转换运算 强迫类型转换运算符是用类型转换运算符将一个表强迫类型
22、转换运算符是用类型转换运算符将一个表达式转换成所需类型。其普通方式为达式转换成所需类型。其普通方式为 ( (类型名类型名) )表达式表达式留意,表达式应该用括号括起来。留意,表达式应该用括号括起来。例如:例如: (double)i (double)i 将将a a转换成转换成doubledouble类型;类型; (int)(a+b) (int)(a+b) 将将a+ba+b的值转换成整型;的值转换成整型; (float)(5(float)(53) 3) 将将5 53 3的值转换成的值转换成 floatfloat型;型; 3.7 3.7 算术运算符与算术表达式算术运算符与算术表达式 1 1根本算术运
23、算符根本算术运算符十:加法运算符,或正值运算符十:加法运算符,或正值运算符 例如,例如,3 3十十5 5、+3+3、sqrt(4.56)+widthsqrt(4.56)+width。:减法运算符,或负值运算符:减法运算符,或负值运算符 例如,例如, 5 52 2、3 3、max(v,x)-34max(v,x)-34。* *: 乘法运算符乘法运算符 例如,例如,x x* *x x、31.03231.032* *sqrt(r)sqrt(r)、1212* *9 9。:除法运算符:除法运算符 例如,例如,5/35/3、5./35./3、sin(x)/2.0sin(x)/2.0、1.0/(x1.0/(x
24、* *x x* *x)x)。:模运算符,或称求余运算符,:模运算符,或称求余运算符,% %两侧均应为整型数据两侧均应为整型数据 例如,例如,8 85 5结果结果3 3,1%21%2结果结果0 0。 3.7 3.7 算术运算符与算术表达式算术运算符与算术表达式2 2 自加与自减运算符自加与自减运算符 前缀运算:前缀运算: 变量变量 将变量的值加将变量的值加1 1。 变量变量 将变量的值减将变量的值减1 1。 例如,例如,i i,i i 使使i i的值加或减的值加或减1 1后缀运算:后缀运算: 变量变量 将变量的值加将变量的值加1 1。 变量变量 将变量的值减将变量的值减1 1。 例例3.183.
25、18自加运算。自加运算。 main() main() int i=3; int i=3; printf(%dn printf(%dn,(i+)+(i+)+(i+);,(i+)+(i+)+(i+); printf( printf(“%dn%dn,i);,i); 程序的运转结果是多少呢?有的系统按照自左而程序的运转结果是多少呢?有的系统按照自左而右顺序求解括弧内的运算,表达式的值相当于右顺序求解括弧内的运算,表达式的值相当于3 34 45 5,即即1212,i i的值为的值为6 6。而另一些系统把。而另一些系统把3 3作为表达式中一切作为表达式中一切i i的值,因此的值,因此3 3个个i i相加,
26、得到表达式的值为相加,得到表达式的值为9 9。在求出。在求出整个表达式的值后再实现自加整个表达式的值后再实现自加3 3次,次,i i的值变为的值变为6 6。 3.8 3.8 关系运算符与关系表达式关系运算符与关系表达式 1.1.关系运算符关系运算符 关系运算符的功能是判别两个运算对象值关系运算符的功能是判别两个运算对象值的大小,而得出判别结果。关系运算符共有的大小,而得出判别结果。关系运算符共有6 6种,见表种,见表3-43-4所示。所示。 3.8 3.8 关系运算符与关系表达式关系运算符与关系表达式2.关系运算表达式关系运算表达式 用关系运算符将两个表达式衔接起来,就构用关系运算符将两个表达
27、式衔接起来,就构成了关系表达式。成了关系表达式。普通格式为:普通格式为: 表达式表达式1 ?关系运算符:表达式?关系运算符:表达式2 3.93.9逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算符逻辑运算符 3.93.9逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式2.逻辑表达式逻辑表达式 3.93.9逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式逻辑与逻辑与a&b&ca&b&c表达式表达式 3.93.9逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式(2) (2) 逻辑或逻辑或 a|b|ca|b|c表达式表达式 3.10 3.10 赋值运算符与赋值表达式赋值运算
28、符与赋值表达式 1 1赋值运算符赋值运算符 赋值运算符普通语法格式:赋值运算符普通语法格式: 变量变量 = = 表达式表达式 2 2不同数据类型的赋值处置假设赋值运算符两侧的类型不一致,但不同数据类型的赋值处置假设赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时系统会自动进展类型转换。都是数值型或字符型时,在赋值时系统会自动进展类型转换。 3.10 3.10 赋值运算符与赋值表达式赋值运算符与赋值表达式3复合的赋值运算符复合的赋值运算符 变量变量 表达式表达式 等价干等价干 变量变量 量量 表达式表达式变量变量 表达式表达式 等价干等价干 变量变量 量量 表达式表达式变量变量 表达
29、式表达式 等价干等价干 变量变量 量量 表达式表达式变量变量 表达式表达式 等价干等价干 变量变量 量量 表达式表达式 变量变量 表达式表达式 等价干等价干 变量变量 量量 表达式表达式 留意,假设赋值号右侧是包含假设干项的表达式,那么留意,假设赋值号右侧是包含假设干项的表达式,那么相当于它有括号。如:相当于它有括号。如: x= y+3 x =y+3 x = xy+3 不要错写成不要错写成x = xy + 3 4 4赋值表达式赋值表达式 普通方式为普通方式为 变量变量 OP OP 表达式表达式 其中其中OPOP是赋值运算符,包括:是赋值运算符,包括: ,等。,等。 如:如: a = (b =
30、5) a = (b = 5) 3.11 3.11 逗号运算符和逗号表达式逗号运算符和逗号表达式 普通方式为:普通方式为: 表达式表达式1 1,表达式,表达式2 2, 逗号表达式的求解过程是:先求解表达式逗号表达式的求解过程是:先求解表达式1 1,再求解表达式,再求解表达式2 2。整个逗号表达式的值是表。整个逗号表达式的值是表达式达式2 2的值。例如,的值。例如,“3+53+5,6+86+8的值为的值为1414。 3.123.12常用数学函数常用数学函数 运用数学函数必需运用数学函数必需includeinclude命令引入命令引入math.hmath.h文件,它通常文件,它通常放在程序的开场,即如下面的格式:放在程序的开场,即如下面的格式: #include #include 常用数学函数常用数学函数 abs() ab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无创呼吸机患者安全使用指南
- 医疗器械传感器采购质量协议
- 2026年互联网营销行业创新策略报告
- 机械通气的临床应用
- 某汽配厂生产安全办法
- 技术创新奖励办法
- 某造纸厂节能管理方法
- 2026年六月份N2-N5三基理论考核测试卷及答案
- 基于数据挖掘的中医治疗肝病临床用药规律与作用机制研究
- 金属加工车间设备维护办法
- 陕西榆林榆阳区2026年基层社会治理网格员招聘考试试卷-含答案解析
- 2026年广东省中考化学试卷(含答案)
- 2025地球小博士知识竞赛试题附答案
- 早产与过期妊娠课件
- 2025年天津高考历史真题
- 考试舆情应急预案(3篇)
- 华师一附中【圆锥曲线】专题训练汇编
- 酒店对醉酒客人的正确处理方法
- 30题解决方案工程师岗位常见面试问题含HR问题考察点及参考回答
- 点检样品管理办法
- 2025年智能安全帽项目立项申请报告模板
评论
0/150
提交评论