版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第二章第二章 C C语言程序设计基础语言程序设计基础lC C语言基本符号与基本数据类型语言基本符号与基本数据类型l常量与变量常量与变量l运算符与表达式运算符与表达式l数据的输入数据的输入/ /输出输出 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础C C言语根本符号字母言语根本符号字母C C言语运用的全部字符是言语运用的全部字符是ASCIIASCII码字符集码字符集: :前前3232个及第个及第127127个为控制字符完成规定的功能操作个为控制字符完成规定的功能操作序号从序号从3232到到126126是文字字符,它们用于显示和打印:是文字字符,它们用
2、于显示和打印:48574857数字:数字:0 0、1 1、2265906590大写英文字母:大写英文字母:A A 、B B 、CC9712297122小写英文字母:小写英文字母:a a、b b、cc其他可打印的字符:!、其他可打印的字符:!、空白字符:空格符、换行符、制表符跳格等空白字符:空格符、换行符、制表符跳格等 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础C C言语根本符号言语根本符号l 公用符号:公用符号:+ +=& &!=!=等等l 关键字关键字3232个:个: auto auto 、breakbreak、case case
3、 等等l 分隔符:主要有空格、逗号和分号分隔符:主要有空格、逗号和分号l 标识符:用来标识变量名、符号常量名、函数名、标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。数组名、类型名、文件名的有效字符序列。标识符的规定:标识符的规定:以字母开头,包含字母和数字字符的一个延续以字母开头,包含字母和数字字符的一个延续序列,其中不得有空白字符序列,其中不得有空白字符“_ _作为字母对作为字母对待;待;标识符对大小写敏感标识符对大小写敏感不能与关键字同名。不能与关键字同名。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础标识符判
4、别标识符判别3232关键字关键字auto break case char constauto break case char constcontinue default do double elsecontinue default do double elseenum extern float for gotoenum extern float for gotoif int long register returnif int long register returnshort signed sizeof static structshort signed sizeof static stru
5、ctswitch typedef unsigned union voidswitch typedef unsigned union voidvolatile whilevolatile whileYearDayATOKif_ CWS_change_to 123X1aTOKintk2Win3.211 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础C C言语的数据类型言语的数据类型指定数据的取值范围、可施加的运算指定数据的取值范围、可施加的运算指明数据的存放方式及所占内存的大小字节数指明数据的存放方式及所占内存的大小字节数 C C语言与程序设计语言与程序设
6、计 第二章第二章 C C语言程序设计基础语言程序设计基础C C言语的数据类型言语的数据类型Sizeoflong4-3.4e383.4e38-1.7e3081.7e308 第二章第二章 C C语言程序设计基础语言程序设计基础lC C语言基本符号与基本数据类型语言基本符号与基本数据类型l常量与变量常量与变量l运算符与表达式运算符与表达式l数据的输入数据的输入/ /输出输出 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础常量:程序运转时其值不能改动的量即常数常量:程序运转时其值不能改动的量即常数 直接常量直接常量: :整型常量整型常量 实型常量实型常量字符常
7、量字符常量 字符串常量字符串常量符号常量符号常量 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础直接常量整型常量直接常量整型常量 :三种方式:三种方式:十进制整数:由数字十进制整数:由数字09和正负号表示和正负号表示.如如 123,-456,0八进制整数:由数字八进制整数:由数字0开头开头,后跟数字后跟数字07表示表示.如如0123,011十六进制整数:由十六进制整数:由0 x开头开头,后跟后跟09,af,AF表示表示. 如如0 x123,0Xff整型常量的类整型常量的类根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型在整常量后加字母在整常
8、量后加字母l或或L,以为它是,以为它是long int 型常型常量量 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础直接常量实型常量直接常量实型常量 :v表示方式:表示方式:v十进制数方式:必需有小数点十进制数方式:必需有小数点 如如0.123, .123, 123.0, 0.0, 123.v指数方式:指数方式:ve或或E之前必需有数字;指数必需为整数之前必需有数字;指数必需为整数v如如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 v实型常量的类型实型常量的类型v默许默许double型型v在实型常量后加字母在实型常量后加
9、字母f或或F,以为它是,以为它是float 型型 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础直接常量字符常量直接常量字符常量 :定义定义:用单引号括起来的单个普通字符或本义字符用单引号括起来的单个普通字符或本义字符. 字符常量的值:该字符的字符常量的值:该字符的ASCII码值码值本义字符本义字符:反斜线后面跟一个字符或一个代码值表示反斜线后面跟一个字符或一个代码值表示本义字符及其含义:本义字符及其含义: C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础直接常量字符串常量直接常量字符串常量 :v定义:用双引号定
10、义:用双引号(“)括起来的字符序列括起来的字符序列v存储:每个字符串尾自动加一个存储:每个字符串尾自动加一个 0 作为字符串作为字符串终了标志终了标志v “hellov “ v字符常量与字符串常量不同字符常量与字符串常量不同: C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础符号常量符号常量符号常量符号常量: :用标识符代表常量用标识符代表常量定义格式:定义格式: #define #define 符号常量符号常量 常量常量普通用大写字母普通用大写字母是宏定义预处置命令,不是是宏定义预处置命令,不是C C语句语句作用:作用: 添加程序的易读性;添加程序的易
11、读性; 提高程序的通用性和可维护性提高程序的通用性和可维护性例:例: #define PI 3.14159 #define PI 3.14159#define NUM 35#define NUM 35#define NAME #define NAME “Liu yuLiu yu C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础常量:程序运转时其值不能改动的量即常数常量:程序运转时其值不能改动的量即常数 直接常量直接常量: :整型常量整型常量 实型常量实型常量字符常量字符常量 字符串常量字符串常量符号常量符号常量大家对常量有什么疑问 C C语言与程序设计语
12、言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础变量:其值可以改动的量。变量:其值可以改动的量。一个变量应该有一个名字,在内存中占据一定的存一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放变量的值。储单元。在该存储单元中存放变量的值。注:区分变量名和变量值这两个不同的概念。注:区分变量名和变量值这两个不同的概念。变量名实践上是一个符号地变量名实践上是一个符号地址,在对程序编译衔接时由址,在对程序编译衔接时由系统给每一个变量名分配一系统给每一个变量名分配一个内存地址。在程序中从变个内存地址。在程序中从变量中取值,实践上是经过变量中取值,实践上是经过变量名找
13、到相应的内存地址,量名找到相应的内存地址,从其存储单元中读取数据。从其存储单元中读取数据。3变量值变量值存储单元存储单元a变量名变量名 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础变量的定义和初始化变量的定义和初始化变量定义的普通格式:变量定义的普通格式: 数据类型数据类型 变量变量1,变量,变量2,变量,变量n;变量初始化:定义时赋初值变量初始化:定义时赋初值 数据类型数据类型 变量变量1=常量常量1,变量,变量2 =常量常量2 ,变量变量n =常量常量n;int a; int m,n; float x,y,z; char ch; int a=1;
14、 int m=3,n=2; float x=0.3,y=.36,z=123; char ch=a; 先定义先定义后运用后运用 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础整型变量整型变量整型数据在内存中的存放方式整型数据在内存中的存放方式数据在内存中是以二进制方式存放的,比如:数据在内存中是以二进制方式存放的,比如:实践上,数值是以补码实践上,数值是以补码complement表示的。一个表示的。一个正数的补码和其原码的方式一样。以下图就是用补码正数的补码和其原码的方式一样。以下图就是用补码方式表示的。假设数值是负的,在内存中如何用补码方式表示的。假设
15、数值是负的,在内存中如何用补码方式表示呢?求负数补码的方法是:将该数的绝对值方式表示呢?求负数补码的方法是:将该数的绝对值的二进制方式,按位取反再加的二进制方式,按位取反再加1。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础整型变量整型变量谁能说出为什么整型数的范围是:整数10如何表示 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础实型数据实型数据在内存中的存放方式在内存中的存放方式:常用的微机系统中一个实型数据常用的微机系统中一个实型数据float在内存在内存占占4个字节个字节(32位位)。与整型数据的存储
16、方式不同,实。与整型数据的存储方式不同,实型数据是按照指数方式存储的。型数据是按照指数方式存储的。例如:例如:123.5678在内在中存储为:在内在中存储为: C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础实型数据实型数据实型数据的舍入误差实型数据的舍入误差: :由于实型变量是用有限的存储单元存储的,因此由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效位以外的数能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此能够会产生一些误差。字将被舍去。由此能够会产生一些误差。 单精度保证单精度保证7 7位有效数学;双精度位有
17、效数学;双精度1515位位l不要试图用一个实数去准确表示一个大整数不要试图用一个实数去准确表示一个大整数l普通不要进展普通不要进展“相等判别,而是判别两数差的绝相等判别,而是判别两数差的绝对值小于某一个很小的数时那么以为两者相等对值小于某一个很小的数时那么以为两者相等l防止直接将一个很大的实数与一个很小的实数相加防止直接将一个很大的实数与一个很小的实数相加或相减,否那么会或相减,否那么会“丧失这个很小的实数丧失这个很小的实数l根据实践要求选择单精度或双精度。根据实践要求选择单精度或双精度。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础字符变量字符变量
18、字符型变量用来存放字符常量,且只能存放一个字符字符型变量用来存放字符常量,且只能存放一个字符将一个字符常量放到一个字符变量中,实践上并不是将一个字符常量放到一个字符变量中,实践上并不是把该字符本身放到内存单元中去,而是将该字符的相应把该字符本身放到内存单元中去,而是将该字符的相应的的ASCIIASCII代码放到存储单元中。代码放到存储单元中。例如:字符例如:字符a a的的ASCIIASCII代码为代码为9797,b b为为9898,在内存中变量,在内存中变量c1c1、c2c2的值,见右图的值,见右图(a)(a)所示;所示;实践上是以二进制方式实践上是以二进制方式存放的,见右图存放的,见右图(b
19、)(b)所示。所示。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础字符变量字符变量在在C C言语中没有专门的字符串变量,字符串常量假言语中没有专门的字符串变量,字符串常量假设要存放在字符串变量中是经过字符数组的方式实设要存放在字符串变量中是经过字符数组的方式实现的。现的。char c1,c2,c3,c4,c5,c;c1=a; c2=a; c3=abc ; c4=107; c5=6; c6=97; C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础例:向字符变量赋以整数。例:向字符变量赋以整数。main ( ) c
20、har c1 , c2; c 1 = 97; c 2 = 98 ; printf (“ %c %c n ,c1,c2); printf (“ %d %d n ,c1,c2 ); 程序运转的结果:程序运转的结果: a b 97 98可以看到:字符型数据和整型可以看到:字符型数据和整型数据是通用的。它们既可以用数据是通用的。它们既可以用字符方式输出用字符方式输出用%c,也可,也可以用整数方式输出以用整数方式输出%d。留意:字符数据只占一个字节,留意:字符数据只占一个字节,它只能存放它只能存放0 255范围内的一范围内的一个整数。个整数。例例 :大小写字母的转换。:大小写字母的转换。main ( )
21、char c1,c2; c1 = a ; c2 = b ; c1 = c1- 32; c2 = c2 - 32; printf (“ %c %c “,c1,c2); 运转结果为:运转结果为: A B 该程序的作用:将两个小写字母该程序的作用:将两个小写字母a和和b转换成大写字母转换成大写字母A和和B。从。从ASCII代码表中可以看到一个小代码表中可以看到一个小写字母比它相应的大写字母的写字母比它相应的大写字母的ASCII码大码大32。留意:字符型数据与整型数据可留意:字符型数据与整型数据可以相互赋值。以相互赋值。举例:举例: 第二章第二章 C C语言程序设计基础语言程序设计基础lC C语言基本
22、符号与基本数据类型语言基本符号与基本数据类型l常量与变量常量与变量l运算符与表达式运算符与表达式l数据的输入数据的输入/ /输出输出 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础C运运算算符符算术运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符:关系运算符: = != = !=逻辑运算符:!逻辑运算符:! & | & |位运算符位运算符 : | & | &赋值运算符:赋值运算符:= = 及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:, ,指针运算符:指针运算
23、符:* * & &求字节数求字节数 :sizeofsizeof强迫类型转换:类型强迫类型转换:类型分量运算符:分量运算符:. -. -下标运算符:下标运算符:其它其它 :( ) -( ) -重点与难点:重点与难点:优先级优先级结合性结合性 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础算术运算符和算术表达式算术运算符和算术表达式根本的算术运算符:根本的算术运算符: 加法运算符,或正值运算符。如:加法运算符,或正值运算符。如:3+5、+3 需求阐明的是:两个整数减法运算符,或负需求阐明的是:两个整数减法运算符,或负值运算符。如:值运算符。
24、如:5-2、-3 * 乘法运算符。如:乘法运算符。如:3*5 / 除法运算符。如:除法运算符。如:5/3 % 模运算符,或称求余运算符,模运算符,或称求余运算符,%两侧均应为两侧均应为整型数据,如:整型数据,如:7%4的值为的值为3除法运算符除法运算符“/的运算结果与运算对象有关。当的运算结果与运算对象有关。当除数和被除数均为整数时,除的结果也是整数;假除数和被除数均为整数时,除的结果也是整数;假设除数或被除数中有一个为负值,那么舍入的方向设除数或被除数中有一个为负值,那么舍入的方向是不固定的。多数机器采取是不固定的。多数机器采取“向零取整的方法,向零取整的方法,如:如:-5/3=-1,取整后
25、向零靠拢。,取整后向零靠拢。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础算术运算符和算术表达式算术运算符和算术表达式算术表达式和运算符的优先级与结合性:算术表达式和运算符的优先级与结合性:算术表达式:用算术运算符和括号将运算对象算术表达式:用算术运算符和括号将运算对象也称操作数衔接起来的、符合也称操作数衔接起来的、符合C语法规那么语法规那么的式子。的式子。运算对象包括常量、变量、函数等。运算对象包括常量、变量、函数等。例如,例如,a -b * c 是一个合法的是一个合法的C算术表达算术表达式。式。 C C语言与程序设计语言与程序设计 第二章第二章
26、C C语言程序设计基础语言程序设计基础算术运算符和算术表达式算术运算符和算术表达式C规定了各种运算符的优先级,上述表达式中,规定了各种运算符的优先级,上述表达式中,乘号优先于减号,因此,相当于乘号优先于减号,因此,相当于a -( b*c )。假设。假设在一个运算对象两侧的运算符的优先级别一样在一个运算对象两侧的运算符的优先级别一样,如:,如:a - b + c ,那么按规定的那么按规定的“结合方向处置结合方向处置。C规定了各种运算符的结合方向结合性,算规定了各种运算符的结合方向结合性,算术运算符的结合方向为术运算符的结合方向为“自左至右,即先左后自左至右,即先左后右,因此右,因此b先与减号结合
27、,执行先与减号结合,执行a-b的运算,再的运算,再执行加执行加c的运算。的运算。28 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础算术运算符和算术表达式算术运算符和算术表达式自增、自减运算符:自增、自减运算符:作用是使变量的值增作用是使变量的值增1或减或减1。+ i ; - i ; (在运用在运用i之前,先使之前,先使i的值加的值加(减减)1) i+ ; i- ; (在运用在运用i之后,使之后,使i的值加的值加(减减)1) 假设假设i的原值等于的原值等于3,那么执行下面的赋值语句:,那么执行下面的赋值语句:j=+i;j的值为的值为4j=i+; j的值
28、为的值为3 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础算术运算符和算术表达式算术运算符和算术表达式自增、自减运算符:自增、自减运算符:留意:留意:自增运算符自增运算符(+)和自减运算符和自减运算符(-),只能用于变量,只能用于变量,而不能用于常量或表达式。如而不能用于常量或表达式。如5+或或(a+b)+都是不合都是不合法的。法的。+和和-结合方向是结合方向是“自右至左。需知:符号运算符自右至左。需知:符号运算符和和“+运算符同优先级,其结合方向也为运算符同优先级,其结合方向也为“自右至自右至左。左。例例: -(i+)是先用是先用i的原值的原值3加上
29、负号输出加上负号输出-3,再对,再对i加加1,不要以为先加完,不要以为先加完1后再加负号,输出后再加负号,输出-4,这是不对的,这是不对的。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础算术运算符和算术表达式算术运算符和算术表达式有关表达式运用中的问题阐明:有关表达式运用中的问题阐明:假设假设i的原值等于的原值等于3,那么:,那么: 防止出现歧义。如:防止出现歧义。如:i+i+i+应该写成:应该写成:i=3 ; a=i+; b=i+; c=i+; d=a+b+c;不要写成:不要写成:i+j, 而应写成而应写成: (i+)+j的方式。的方式。不要写成:
30、不要写成:printf (“ %d,%d,i,i+); 其结果为:其结果为:4,3而应写成:而应写成:j=i+; printf (“ %d,%d, j , i) 其结果为:其结果为:3,4 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础#includevoid main()int i=3;printf(%dn,i+);printf(%dn,i);i=3;printf(%dn,+i);printf(%dn,i);运转结果:运转结果:3444#includevoid main()int i=5;printf(%dn,(i+)+(i+)+(i+);print
31、f(%dn,i);i=5;printf(%dn,(+i)+(+i)+(+i);printf(%dn,i);运转结果:运转结果:158228举例:举例: C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础关系运算符和表达式关系运算符和表达式关系运算符关系运算符种类:种类: = != = !=结合方向:自左向右结合方向:自左向右优先级别:低于算术运算符,高于赋值运算符优先级别:低于算术运算符,高于赋值运算符=!=优先级一样高优先级一样高优先级一样低优先级一样低例例 ca+b c(a+b) ab!=c (ab)!=c a=bc a=(bc a=(bc) x=a=
32、bx=(a=b) x=yz x=(yc+da+bc+dab=cdab=cdx!=dx!=d(x=2)=(b=a)(x=2)=(b=a) C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符逻辑运算符种类:种类: ! & | ! & |逻辑运算真值表:逻辑运算真值表:aba&ba|b!a11110100100101100001知知A为真、为真、B为假:为假:A | B | C | D | E ?A&B&C&D&E ?是不是必需求计算完表达式一切的项 C
33、 C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式! (2)& (11)| (12)高高低低l优先级:优先级:l结合方向:结合方向:! :从右向左从右向左& :从左向右从左向右| :从左向右从左向右例例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|83)&2|(8(4-(!0) 值为值为1 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础赋值表达式赋值表达式由赋值运算符由赋值运算符(=)将一个变量和一
34、个表达式衔接起来将一个变量和一个表达式衔接起来的式子称为的式子称为“赋值表达式。赋值表达式。它的普通方式为:变量标识符它的普通方式为:变量标识符=表达式表达式作用:将一个数据常量或表达式赋给一个变量作用:将一个数据常量或表达式赋给一个变量 如:如:a=5; b=a; c=.59;a=b=12;v复合赋值运算符复合赋值运算符v种类:种类:+= -= += -= * *= /= %= = &= = |= /= %= = &= = |=v含义:含义: exp1 op= exp2 exp1 op= exp2 exp1 = exp1 op exp2 exp1 = exp1 op exp2
35、a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3结合性:自右向左;式子的值与变量的值相等结合性:自右向左;式子的值与变量的值相等 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础逗号运算符和表达式逗号运算符和表达式C言语提供一种特殊的运算符言语提供一种特殊的运算符逗号运算符。用逗号运算符。用它将两个表达式衔接起来。如:它将两个表达式衔接起来。如: 3+5,6+8 称称为为“逗号表达式,又称为逗号表达式,又称为“顺序求值运算符。顺序求值运算符。逗号表达式的求解过程:先求解表达式逗号表达式的求解过程:先求解表达式1,再求解,再求解表达式表达
36、式2,再求解表达式,再求解表达式n。l方式:表达式方式:表达式1,表达式表达式2,表达式表达式nl结合性结合性:从左向右从左向右l优先级优先级: 15最低的最低的l逗号表达式的值:等于表达式逗号表达式的值:等于表达式n的值的值l用途:常用于循环用途:常用于循环for语句中语句中 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础逗号运算符和表达式逗号运算符和表达式例例 a=3*5,a*4 a=3*5,a*4,a+5例例 x=(a=3,6*3) x=a=3,6*a例例 a=1;b=2;c=3; printf(“%d,%d,%d,a,b,c); printf(
37、“%d,%d,%d,(a,b,c),b,c); /a=15,表达式值表达式值60/a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表达式值18,x=3/1,2,3/3,2,3留意:留意:并不是任何地方出现的逗号都是作为逗号运算符。并不是任何地方出现的逗号都是作为逗号运算符。如:如:printf (“%d,%d,%d,a,b,c); “a,b,c并不是一个逗号表达式。并不是一个逗号表达式。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础条件运算符与表达式条件运算符与表达式普通方式:普通
38、方式: expr1 ? expr2 : expr3执行过程:执行过程:功能:相当于条件语句,但不能取代普通功能:相当于条件语句,但不能取代普通if语句语句条件运算符可嵌套条件运算符可嵌套 如如 x0?1:(xb?a:cd?c:d ab?a:(cd?c:d)expr1取expr2值取expr3值非0=0 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础表达式中数据类型的转换表达式中数据类型的转换C C言语规定:言语规定:一样类型的数据可以直接进展运算,其运算结果还一样类型的数据可以直接进展运算,其运算结果还是原来的数据类型;是原来的数据类型;而不同类型的数
39、据运算,那么需先将这些数据转换而不同类型的数据运算,那么需先将这些数据转换成同一类型,然后再进展运算。成同一类型,然后再进展运算。转换的方法有两种:转换的方法有两种:自动转换隐式转换自动转换隐式转换强迫转换。强迫转换。前面学习了数据类型和数据之间的运算表达式,那么不同类型的数据可以进展运算吗 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础自动转换隐式转换自动转换隐式转换由编译系统自动完成,遵照以下规那么:由编译系统自动完成,遵照以下规那么:参与运算的数据类型不同时,那么先转换成同一类型参与运算的数据类型不同时,那么先转换成同一类型,然后再进展运算,然后
40、再进展运算转换按数据长度添加的方向进展,以保证精度不至于转换按数据长度添加的方向进展,以保证精度不至于降低降低一切的实数运算都是以双精度一切的实数运算都是以双精度doubledouble型进展的型进展的charchar型和型和shortshort型参与运算时必需先转换成型参与运算时必需先转换成intint型型假设赋值号两边的数据类型不同,赋值号假设赋值号两边的数据类型不同,赋值号“= =右边表右边表达式值的类型将转换为左边变量的类型。达式值的类型将转换为左边变量的类型。int x; float y=5.718;x=y; x5,数据丧失,数据丧失,慎用!慎用! C C语言与程序设计语言与程序设计
41、 第二章第二章 C C语言程序设计基础语言程序设计基础强迫转换强迫转换 其普通方式为:其普通方式为: 类型名类型名)(表达式表达式)如:如:(int)3.98; (float)5/7; (double)6表达式应该用括号括起来。假设写成:表达式应该用括号括起来。假设写成:(int)x+y那么那么只将只将x转换成整型,然后与转换成整型,然后与y相加。相加。在强迫类型转换时,得到一个所需类型的中间变量在强迫类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。,原来变量的类型未发生变化。例例main ( ) float x ; int i; x = 3.6; i = (int)x; p
42、rintf (“ x = %f , i = %d , x, i ); 运转结果:运转结果:x = 3.600000 , i = 3x类型仍为类型仍为float型,型,值仍等于值仍等于3.6。 第二章第二章 C C语言程序设计基础语言程序设计基础lC C语言基本符号与基本数据类型语言基本符号与基本数据类型l常量与变量常量与变量l运算符与表达式运算符与表达式l数据的输入数据的输入/ /输出输出 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础数据的输入数据的输入/ /输出输出输出输出:从计算机向外部输出设备输出数据从计算机向外部输出设备输出数据;输入输入:从
43、外部向输入设备输入数据从外部向输入设备输入数据;C言语本身不提供输入输出语句,输入输出操作是言语本身不提供输入输出语句,输入输出操作是由由C言语的库函数来实现的。在运用言语的库函数来实现的。在运用C言语库函数言语库函数时,要用预处置命令时,要用预处置命令“#include将有关的将有关的“头文头文件包括到用户源文件中。件包括到用户源文件中。例如,调用规范输入输出库函数时,文件开头运用例如,调用规范输入输出库函数时,文件开头运用以下命令:以下命令: #include 或或 #include “stdio.h有没有问题 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程
44、序设计基础数据的输入数据的输入/ /输出输出四个函数:四个函数:字符输出函数:字符输出函数:putchar()字符输入函数:字符输入函数:getchar()格式输出函数:格式输出函数:printf()格式输入函数:格式输入函数:scanf() C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础字符输出函数:字符输出函数:putchar()putchar()作用:向终端输出一个字符。作用:向终端输出一个字符。例如:例如: putchar(c) ; c可以是字符型变量或整可以是字符型变量或整型变量、相应常量或者本义字符;型变量、相应常量或者本义字符;#incl
45、ude main( ) char a,b,c; a= B;b=O;c=Y; putchar(a); putchar(b); putchar(c);运转结果:运转结果:BOYchar a=A;int k=65;putchar(a);putchar(A);putchar(k);putchar(65);putchar(101);以上都输出大写字母以上都输出大写字母A C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础字符输入函数:字符输入函数:getchar()作用作用:从终端或系统隐含指定的输入设备输入一从终端或系统隐含指定的输入设备输入一个字符。个字符。ge
46、tchar函数没有参数。函数没有参数。函数的值就是从输入设备得到的字符。函数的值就是从输入设备得到的字符。#include main( ) char c; c=getchar( ); putchar(c);留意留意: getchar( )只能接受一只能接受一个字符。个字符。getchar函数得到的函数得到的字符可以赋给一个字符变量字符可以赋给一个字符变量或整型变量,也可以不赋给或整型变量,也可以不赋给任何变量,作为表达式的一任何变量,作为表达式的一部分。部分。putchar(getchar( ); C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式输出
47、函数:格式输出函数:printf()作用作用:向终端输出假设干个恣意类型的数据。向终端输出假设干个恣意类型的数据。普通格式为:普通格式为:printf格式控制,输出表列格式控制,输出表列“格式控制:是用双引号括起来的字符串,也称格式控制:是用双引号括起来的字符串,也称“转换控制字符串转换控制字符串它包含两种信息:它包含两种信息: 格式阐明,由格式阐明,由“%和格式字符组成,如和格式字符组成,如%d,%8.3f等。等。普通字符,即需求原样输出的字符。普通字符,即需求原样输出的字符。本义字符:按本义字符的含义输出。例如,本义字符:按本义字符的含义输出。例如,n表示换行,表示换行,b表示退格表示退格
48、输出表列:是需求输出的一些数据,可以是表达输出表列:是需求输出的一些数据,可以是表达式。式。格式控制格式控制输出表列输出表列例例:printf(“a=%d,b=%dn,a, b); C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式输出函数:格式输出函数:printf()由于由于printf是函数,因此,是函数,因此,“格式控制字符串和格式控制字符串和“输出表列实践上都是函数的参数。输出表列实践上都是函数的参数。printf参数参数1,参数,参数2,参数,参数3参数参数nprintf函数的功能是将参数函数的功能是将参数2参数参数n按参数按参数1给定的给
49、定的格式输出。格式输出。格式字符:对不同类型的数据用不同的格式字符。格式字符:对不同类型的数据用不同的格式字符。常用的有以下几种格式字符个:常用的有以下几种格式字符个: d或或i、o、x或或X、u、c、s、f、e或或E、g或或G另外,在另外,在%和格式字符之间可以有修饰符:和格式字符之间可以有修饰符:-、+、#、l或或L、m、.n、m.n(m和和n表示大于表示大于0反整数反整数)格式字符有哪些 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符1 1d d或或i:i:用来输出十进制整数。有以下几种用法:用来输出十进制整数。有以下几种用法:%
50、d%d,按整型数据的实践长度输出。,按整型数据的实践长度输出。%md%md,m m为指定的输出字段的宽度。假设数据的位数小为指定的输出字段的宽度。假设数据的位数小于于m,m,那么左端补以空格,假设大于那么左端补以空格,假设大于m m,那么按实践位,那么按实践位数输出。数输出。 如:如:printfprintf%4d%4d%4d%4d,a,b,a,b;( a=123( a=123,b=12345)b=12345) 那么输出结果为:那么输出结果为:_123_123,1234512345%ld%ld,输出长整型数据。,输出长整型数据。 如:如:long a=790long a=790;printf(
51、“%ldprintf(“%ld,a),a); 留意:在留意:在TCTC中,假设用中,假设用%d%d输出,就会发生错误,输出,就会发生错误,由于由于TCTC中整形数据的范围为中整形数据的范围为-3276832767-3276832767。 对长整形数据也可以指定字段宽度,对长整形数据也可以指定字段宽度, 如:如:printfprintf%8ld%8ld,a a; 那么输出为:那么输出为: _ _790 _ _790这里用这里用_ _表示空格表示空格 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符2 2o:以八进制数方式输出整数。由于是将内
52、存单元中以八进制数方式输出整数。由于是将内存单元中的各位的值的各位的值0或或1按八进制方式输出,因此输出得按八进制方式输出,因此输出得数值不带符号。数值不带符号。例如:例如:int a=-1,b=12; printf(%ld,%lo,%o,%+dn%#+d,%+#d,%u,a,a,b,b,b,b);输出为:输出为:-1,37777777777,014,+12+12,+12,2367460同样可以指定字段宽度,同样可以指定字段宽度, 如如: printf(“%13o,a);/* _ _37777777777 */谁能知道为什么 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计
53、基础语言程序设计基础格式字符格式字符3 3、4 4 x(X):以十六进制数方式输出整数。同样也不:以十六进制数方式输出整数。同样也不会出现负的十六进制数。例如:会出现负的十六进制数。例如:int a=-1;printf(%X,%d,%#x,a,a,a);输出结果是:输出结果是: FFFFFFFF,-1,0 xffffffff同样可以指定输出字段的宽度,如同样可以指定输出字段的宽度,如“%l8x。u:用来输出用来输出unsigned型数据,即无符号数,以十进型数据,即无符号数,以十进制方式输出。制方式输出。 一个有符号整数一个有符号整数int型也可以用型也可以用%u格式输出;格式输出;反之,一个
54、反之,一个unsigned型数据也可以用型数据也可以用%d格式输出。格式输出。unsigned也可以用也可以用%o或或%d格式输出。格式输出。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符5 5c:用来输出一个字符。:用来输出一个字符。一个整数,只需它的值在一个整数,只需它的值在-128127范围内,也可以用范围内,也可以用字符方式输出,在输出前,系统会将该整数作为字符方式输出,在输出前,系统会将该整数作为SCII码转换成相应的字符;反之,一个字符数据也可以用码转换成相应的字符;反之,一个字符数据也可以用整数方式输出。整数方式输出。m
55、ain( )运转结果:运转结果: char c=a; a,97 int i=97; a,97 printf(“%c,%dn,c,c); printf(“%c,%dn,i,i); 当然,也可以指定输出字符宽度:当然,也可以指定输出字符宽度:%15c C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符6 6s:用来输出一个字符串。有以下几种方法:用来输出一个字符串。有以下几种方法:%s:例如:例如:printf%s,CHINA; /*输出:输出:CHINA*/%ms:输出的字符串占:输出的字符串占m列,如字符串本身长度大于列,如字符串本身长度大
56、于 m,那么突破,那么突破m的界限,将字符串全部输出。假设串的界限,将字符串全部输出。假设串长小于长小于m, 那么左补空格。那么左补空格。%-ms:假设串长小于:假设串长小于m,那么在,那么在m列范围内,字符串列范围内,字符串向左靠,右补空格。向左靠,右补空格。%m.ns:输出占:输出占m列,但只取字符串中左端列,但只取字符串中左端n个字符个字符。这。这n个字符输出在个字符输出在m列的右列的右 侧,左补空格。侧,左补空格。%-m.ns:其中:其中m,n含义同上,含义同上,n个字符输出在个字符输出在m列范列范围的左侧,右补空格。围的左侧,右补空格。假设假设nm,那么,那么m自动取自动取n值,即保
57、证值,即保证n个字符正常输个字符正常输出出 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符6 6 main( ) main( ) printf printf%3s%3s,%7.2s%7.2s,%.4s%.4s,%-5.3sn%-5.3sn,CHINACHINA, CHINACHINA,CHINACHINA,CHINACHINA; 输出如下:输出如下:CHINACHINA,_ _ _ _ _CH_ _ _ _ _CH,CHINCHIN,CHI_ _CHI_ _其中第其中第3 3个输出项,格式阐明为个输出项,格式阐明为“%.4s%.4s,即
58、只指定,即只指定了了n n,没指定,没指定m m,自动使,自动使m=n=4m=n=4,故占,故占4 4列。列。 C C语言与程序设计语言与程序设计 第二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符7 7 f: f:用来输出实数用来输出实数, ,以小数方式输出。方法:以小数方式输出。方法:%f%f,不指定字段宽度,由系统自动指定,使整数部分,不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出全部如数输出,并输出6 6位小数。该当留意:并非全位小数。该当留意:并非全部数字都是有效数字。单精度实数的有效位数普通为部数字都是有效数字。单精度实数的有效位数普通为7 7位。
59、位。 双精度普通为双精度普通为1616位位mainmain float a=111111.111,b=222222.222; float a=111111.111,b=222222.222; printf(%f,%f,%f,a,b,a+b); printf(%f,%f,%f,a,b,a+b); 运转结果:运转结果:111111.109375,222222.218750,333333.328125111111.109375,222222.218750,333333.328125类似字符串,也可以用类似字符串,也可以用(-)m.n(-)m.nr r 修饰修饰 C C语言与程序设计语言与程序设计 第
60、二章第二章 C C语言程序设计基础语言程序设计基础格式字符格式字符8 8 e:以指数方式输出实数。可用以下方式:以指数方式输出实数。可用以下方式:%e 不指定输出数据所占的宽度和数字部分小数位数不指定输出数据所占的宽度和数字部分小数位数,由系统自动指定给出,由系统自动指定给出6位小数,指数部分占位小数,指数部分占5位如位如e+002数值按规范化指数方式输出即小数点前必数值按规范化指数方式输出即小数点前必需有而且只需需有而且只需1位非零数字。例如:位非零数字。例如: printf%e,123.456;输出:;输出:1.234560e+002%m.ne和和%-m.ne,m和和“- 与我们以前学习的意思与我们以前学习的意思一样。此处一样。此处n指的是输出数据的小数部分又称尾数指的是输出数据的小数部分又称尾数的小数位数。例:假设的小数位数。例:假设f=123.45
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧煤场系统工程施工方案
- 电鸣乐器调试工创新实践知识考核试卷含答案
- 2025-2026学年北师大版(2022)小学劳动技术三年级(上册)期末测试卷附答案
- 机器人教学实验位姿控制实践指南
- 解析现代小说魅力
- 四年级生涯心理探析
- 专题01 一元二次方程【知识梳理+解题方法+专题过关】-2025-2026学年九年级数学上学期期中期末挑战满分冲刺卷(人教版)(原卷版)
- 2025-2031全球与中国工程机械市场现状及未来发展趋势 Sample wp
- 2025陕西榆林府谷能源投资集团有限公司选聘24人笔试历年参考题库附带答案详解
- 2025年国家能源投资集团有限责任公司高校毕业生统招6400余人(河北有岗)笔试历年参考题库附带答案详解
- 临床合理用药培训
- 4.1中国的机遇与挑战(课件)-2025-2026学年统编版道德与法治九年级下册
- 2025首创证券校园招聘笔试历年难易错考点试卷带答案解析试卷3套
- 资源税法课件
- 扬尘施工方案交底
- 2025海南大华会计师事务所(特殊普通合伙)海南分所人才招聘笔试考试备考试题及答案解析
- 雨课堂学堂云在线《中国特色社会主义理论与实践研究(北理 )》单元测试考核答案
- 十五五规划纲要:应急管理体系现代化的顶层设计与能力提升
- 学术论文标准格式规范
- 2025年秋季川省成都国有企业招聘(纪检)练习题及答案
- 供配电技术考试及答案
评论
0/150
提交评论