c语言-第3章数据类型、运算符与表达式.ppt_第1页
c语言-第3章数据类型、运算符与表达式.ppt_第2页
c语言-第3章数据类型、运算符与表达式.ppt_第3页
c语言-第3章数据类型、运算符与表达式.ppt_第4页
c语言-第3章数据类型、运算符与表达式.ppt_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 数据类型及格式输出、运算符与表达式,主要内容 C的数据类型 常量与变量 整型数据及格式输出 实型数据及格式输出 字符型数据及格式输出 字符串及格式输出 变量的赋初值 各类数值型数据混合计算 算术运算符和算术表达式 赋值运算符和赋值表达式 逗号运算符和逗号表达式,3.1 的数据类型,3.2 常量和变量,一、常量,1.直接常量:是在程序中直接引用的数据。,分为:整型、实型、字符型、字符串 如:3, 4.5,S, “china”等,以数据的原形出现!,2.符号常量:,特点:在程序中不能给它赋值。,概念:是用标识符来表示一个常量。,定义形式(定义在函数体之外):,#define 标识符 常量数

2、据,例如: #define PI 3.14159,在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。,如:2*2.3*PI 就等价于 2*2.3*3.14159。 习惯上,符号常量用大写字母表示。,define PRICE 30 void main() int num,total; num=10; total=num*PRICE; printf(“total=%d”,total); ,符号常量在其作用域内不能再被赋值。,使用符号常量的好处: (1)含义清楚;(2)一改全改,二、变量,变量是指在程序运行中, 其值可以被改变的量。,基本概念:,变量代表计算机内存中的某一存储空

3、间,该存储空间中存放的数据就是变量的值。,在同一程序块中,每个变量都有唯一的名字,不能被重复定义。,int a,b,c ; float x,y; char c1,c2; 或 int c1,c2;,自己设定,满足标识符的规定。,如:int, float,char,“;”不可省,定义形式:,类型标识符 变量名1 ,变量名2,变量名3,.;,例如:,注意事项: (1) 变量必须先定义后使用 (2) 每个变量必须被指定为一种类型 (3) 一般习惯上用小写字母表示变量, 用大写字母表示符号常量,以示区别。(仅是习惯不是规定),三、C语言中的标识符,概念:就是用来标识变量名、符号常量名、函数名、类型名、文

4、件名等的有效字符序列。,(1)标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,定义规则:,如: _1 year month student_name sum0 M.D.Jones $123 #a 3b ?c a=b,(2)在C语言中,大写字母和小写字母被认为是不同的字符。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符。一般,变量名用小写字母,与人们习惯一致。 (3)Turbo C 规定标识符最长为32个字符。,(4)用户自定义的标识符不能与保留字(关键字)同名。,保留字,关键字,概念:就是具有特定含义的标识符,用户不能用来作自定义标识符。,C语言中的

5、关键字较少,由ANSI标准推荐的关键字有32个。,(1)与数据类型有关的(14): char int float double signed unsigned short long void struct union typedef enum sizeof,(3) 与程序控制结构有关的(12): do while for if else switch case default goto continue break return 见课本P365附录II,(2)与存储类别有关的: auto extern register static,一、整型常量的表示方法 整型常量的表示方法: 1. 十进制整

6、数:123 、-76 、0 2八进制整数(以0开头):076 、-0253 076转换成十进制:7*8+6 3十六制整数(以0 x开头):0 xa 、0 x20 、 0 xf4 0 xf4转换成十进制:15*16+4,3.3 整型数据,(1)整型变量的分类,基本型,以int表示。,长整型,以long int表示,或以long表示。,无符号型,其中无符号型又分为无符号整型和无符号长整型,分别以 unsigned int unsigned long表示。 默认为有符号型:(signed)int ,(signed)long int,二、整型变量,int x; long y;,2000,2001,20

7、02,2005,x,y,内存,内存地址,2003,2004,所有变量必须先定义 再使用!,(2)整数在内存中的存放形式 整数在内存中以补码表示: 一个正数的补码和其原码的形式相同; 负数的补码:将该数的绝对值的原码,按位取反再加1。,例如:整数 8 的16位(2字节)编码 原码:00000000 00001000 反码:00000000 00001000 补码:00000000 00001000,例如:整数-8 的16位(2字节)编码 原码:10000000 00001000 反码:11111111 11110111 补码:11111111 11111000,(3)整型变量的定义 类型标识符

8、变量名1 ,变量名2,变量名3,.;如: int a,b; (指定变量a,b为整型) unsigned int c,d; (指定变量c,d为无符号整型) long e,f; (指定变量e,f为长整型),(5)整型数据的格式输出,例: main( ) int a,b,sum; a=123;b=456; sum=a+b; printf(”a=%d,b=%d,c=%dn”,a,b,sum); 结果: a=123,b=456,c=579,原样 输出,格式符与输出项一一对应,转义字符,(换行),printf函数的一般格式:,printf(格式控制字符串,输出项列表);,必须用英文的双引号括起来。 作用是

9、控制输出项的格式和输出一些提示信息。,要输出的表达式。 常量、变量、运算 符表达式、函数返回值等,每个输出项之间用逗号“,”分隔。,格式控制字符组成:普通字符、转义字符、格式说明。,普通字符 按原样输出,主要用于输出提示信息。:,转义字符 “”起头的转义字符(输出所表示的字符或实现其功能,见P25表3-1 ,详后述),格式说明 由 % 和格式字符串组成:%格式字符串。 它表示按规定的格式输出数据,与输出项一一对应。:,常用的整型数据的输出格式符: %d:以有符号十进制数形式输出整数。 %ld:以有符号十进制数形式输出长整数。 %md:以有符号十进制数形式输出整数,至少占m位。如果数据的位数小于

10、m,右对齐,若大于m,则按实际位数输出。,例如:,printf (%dn,100);,printf(%5dn,100);,printf(%d%8d,100,100*100);,C语言的整型数据在内存中的存储形式是【 】 A) 原码 B)补码 C)反码 D)ASCII码 以下【 】组中的标识符都是合法的C语言用户标识符: A)a_10 B)char C)_int D signed 3ab a#b day a,一、实型常量的表示方法:,十进制形式:由数字和小数点组成; 例如: 3.4 4. .3 注意:必须有小数点,指数形式:由“十进制小数” + “ e(或E)” + “十进制数整数” 三部分组成

11、。,例如: 12.5e-6 表示12.510-6,十进制小数 (尾数部分),e(或E),十进制数整数 (指数部分),3.4 实型数据,注意:e或E的两边必须有数,且其后面必须为整数;,如: 6E0.2 e5 6E,二、实型变量 (1)实型变量在内存中的存放形式和变量定义 实型数据在内存中是按照规范化的浮点数形式存储的。 变量定义: float 变量名; double 变量名;,如: float a,b,c;,double a1,a2;,a,b,c为float型变量名。,a1,a2为double型变量名。,(2)实型变量的分类 单精度(float)型 双精度(double)型 长双精度(long

12、 double)型,实例,2000,2003,2004,2011,x,y,内存,内存地址,(3)实型数据的输出举例 P47例3.4: main() float a,b; a=1.23e1; b=a+20 ; printf(%fn,a); printf(%fn,b); ,运行结果:12.300000 32.300000,TC默认浮点数据输出6个小数位数,(4)实型数据的输出格式符(P37) %f:按小数形式输出实型数,整数部分全部输出,默认6位小数。 %m.nf:按小数形式输出实数,制定保留n位小数,数据总宽度至少为m位,右对齐,超过m位按实际长度输出。 例如:printf(“b=%5.2f”,

13、2.3);,二种表现形式:,用单引号括起来的一个字符;,如:A、 1、? 等。,只能是英文的单引号,3.5 字符型数据 一、字符常量,注意: a、a、”a”互不相同,分别为变量、字符常量、字符串常量。 9、9、”9”互不相同,分别为整型常量、字符常量、字符串常量。,用单引号括起来的由右斜杠()引导的转义字符,长度为一个字节,其含义不是字符本身,而是转成新的意义。(P25表3-1),如: n 101 x41,在统计字符个数时,只能记为一个字符,转义字符表,字符形式,功能,n,换行,t,横向跳格,b,退格,将当前位置移到前一列,f,、,8进制数表示的ASCII码对应的字符,反斜杠、单引号、双引号,

14、ddd,换页,xhh,16进制数表示的ASCII码对应的字符,一个字符的多种表示方法:,任一字符都可用ddd或xhh表示,其中ddd为该字符的ASCII码八进制形式、hh为该字符的ASCII码十六进制形式 例:A 、101 、x41均表示A,要避免的错误:,表示单引号:不是 表示双引号:不是 表示斜线: 不是,转义字符应用举例,printf(n1234nabcdn);,1234 abcd,printf(n1234n);,printf( x41n);,1234, A,P25例子3.1,字符的值域:,即字符的取值范围。,ASCII字符表中的所有字符, 每个字符型数据在内存中占一个字节, 包括可显示

15、字符和非显示字符。,例如: char c; c= A; c=65; c= 101; c= x41; c=0101;c=0 x41;,二、字符变量,字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。 一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。,变量中可存储一个字符或者一个0255之间的无符号整数。,三、字符数据在内存中的存储形式及使用方法,存储形式: 按 ASCII码存储,不是字符本身,其形式与整数的存储形式一样 。,使用方法: 按字符使用:则使用字符本身。按数值使用:则使用该字符的ASCII码值。,例3.6向字符变量赋以整数 main() char a,b;

16、 a=97; b=98; printf(%c,%cn,a,b); printf(%d,%dn,a,b); ,运行结果:a,b 97,98,例3.7大小写字母的转换 main() char a,b; a=a; b=b; a=a-32; b=b-32; printf(%c,%cn%d,%dn,a,b,a,b); ,运行结果:A,B 65,66,四、字符型数据输出格式符 c :按字符输出一个字符,但不输出单引号。 mc :按字符输出一个字符,占m位,右对齐。,main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);

17、,a,97 a,97,注:C语言允许字符变量参与数值运算,用ASCII码运算; 大小写字母ASCII码相差32。,五、字符串常量 字符串常量是用一对双引号括起来的若干字符序列,隐含以0结尾。 字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“ ” (一对紧连的双引号)。,字符串常量和字符常量区别: 1)字符常量由单引号括起来,字符串常量由双引号括起来。 2)字符常量只能是单个字符,字符串常量则可以含0个或多个字符。 3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。,例如:char c1=A; 是可以的, 但char

18、c1=A; 是不合法的。,如:有一个字符串为“CHINA”,则它在内存中的实际存储如下所示: 最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。 又如:“abtcd”存储长度为6个字节。 注意:在源程序中书写字符串常量时,不必加结束字符0,否则画蛇添足。,4)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符“0” (ASCII码为0)。这是字符串结束的标志,由系统自动加上。,六、串输出格式符 %s:输出一个字符串。 %ms:输出一个字符串,至少占m列,右对齐,超过按实际输出。,例4.5 main() printf(“%s,%7sn

19、”, ”CHINA”, ”CHINA”); ,CHINA, CHINA,例: printf(“%s”, “CHINA”); printf(“CHINA”);,把“CHINA”当作一个字符串,把“CHINA”当作要原样输出的字符序列,3.6 变量赋初值,在说明变量的同时给变量一个初始值。,变量定义,分配存储空间,变量初始化,分配存储空间的同时存入数据,int a,b;,int a=1,b=2;,不确定,例:看一看,下列的定义哪些是正确的?,int a=5, b=3;,int a=b=c=3;,int a,b,c=3;,应写为: int a=3,b=3,c=3;,/*只有c 赋了初值*/,初始化不

20、是在编译阶段完成的,而是在程序运行时执行本函数时赋予初值的,相当于有一个赋值语句。 例如: int a=3; 相当于: int a; /*指定a为整型变量*/ a=3; /*赋值语句,将3赋予a*/,3.7 各类数值型数据间的混合运算,数据类型的级别:,低,高,int,unsigned,long,double,横向的必须先转成纵向类型才能进行运算,运算规律: 1)两个同类型数据运算结果为原类型。,282 int 30 1/2 int 0,2)两个不同类型的数运算时,系统自动将低级类型转换为高级类型,而后进行同类型运算,结果为高级类型。(表示范围大的为高级类型,详细见P54图3.10),3.2/

21、2 结果为double型数据 28+a 结果为int型数据 32768*32 结果为long int型数据,3)多个数运算时,类型转换要逐步进行。,2/3*6.3结果为?,4.2,0,0.0,3.8 算术运算符与算术表达式,三类算术运算符号: 1. 基本算术运算符 2. 强制类型转换运算符 3. 自增、自减运算符 要求掌握每一种运算符号的功能、优先级、结合性 P375 附录III ,结合性的含义:当某一运算对象两侧的运算符号优先级相同时,按照结合性所规定的方向进行运算。,如a#b#c (#代表某一运算符) 若先运算a#b,再将其结果与c运算, 称为左结合性:从左至右运算 若先运算b#c,再将a

22、与其结果运算, 则称右结合性:从右至左运算,一、基本算术运算符,+:加法,-:减法,*:乘法,/:除法,%:取余或模,两个整数相除取整数商 3/5=0 -5/3=-1 3./5=0.6 3/5.=0.6,3%5=3 %两侧都应为整型数据 2.5%3出错,优先级:(*,/,%)高于(+,-) 结合性:自左向右 P375附录III,二、算术表达式,用算术运算符和括符将操作数连接起来的式子。,优先级:,( ),* / %,+ -,结合性,自左向右,与数学上一致。,三、强制类型转换运算符 (类型名)常量 (类型名)变量 (类型名)表达式 功能:将一个常量、变量或表达式转换成所需类型。 优先级:属单目运

23、算符,仅低于括号,高于基本算术运算符。 结合性:自右向左 注意:类型名要用括号括起来,如果要转换表达式的类型,则表达式也要用括号括起来。,例: float(2/3) 错误 (int)(2.5)%3 值为2 (float)5/2 值为2.500000,四、自增与自减运算符 (重点和难点),+i,-i,i先自增(减)1,再使用i,i+,i-,先使用i,i再自增(减)1,(1) 单独使用时,+i;,等 价,i+;,等 价,i=i+1;,(2) j=+i;,(3) j=i+;,若i的初始值为3,i=4; j=4;,i=4; j=3;,结合性:,自右向左,例:i = 2; j = -i+;,分析: (1

24、)+、-、+(正号)、-(取负)是同级运算符,结合方向:自右向左。,(2) -i+等价于-(i+),(3) 对于括号内的自增运算,又要先使用i,再使i增加1。,运算结果: i的值为3,j的值为-2。,优先级:属单目运算符,仅低于括号类,高于基本算术运算符。,a=3; printf(“%d”,a+);,运算结果: 输出3,a的值为4。,a=3; printf(“%d”,+a);,运算结果: 输出4,a的值为4。,a=3; printf(“%d”,(a+)%2*(a+2);,运算结果: 输出6,a的值为4。,注意:此时a的值已经修改为4!,例:3 - - 出错 - i - - 即 - ( i -

25、-) ,非 (- i) - - a=3; b= - a+ ; 执行后, b的值为-3,a的值为4,切记:只能用于变量,不能用于常量或表达式,3.5 赋值运算符、赋值表达式、赋值语句,赋值运算符: 赋值表达式:变量表达式 功能:将“”右侧表达式的值赋给左侧变量的 值,赋值表达式的值是被赋值变量的值。 赋值语句:变量表达式 功能:将“”右侧表达式的值赋给左侧变量的值。 * 所有表达式末尾加“ ;”后即变为语句,赋值表达式举例:,(1) x=(y=12)/4,y值为12,x值为3,表达式的值为3,(2) x=y=12/4,y值为3,x值为3,表达式的值为3,(3) x=(y=12/4),y值为3,x

26、值为3,表达式的值为3,(4) (x=y)=12/4,该赋值运算符左边不是变量,而是一个表达式,一、赋值运算符 赋值运算符: 优先级:仅优先于最低级的逗号运算符。 结合性:自右向左 例:c=b=a=5 c=(b=(a=5),注1)赋值运算符号不等于数学中的“等号”; 注2)自增、自减运算实际上也是一个特殊的赋值运算符。,赋值运算过程 “变量表达式”过程: 计算右侧表达式的值 类型转换:若“”两侧变量和表达式的类型不一致,将右侧表达式的值类型转换为左侧变量的类型。 将转换好的右侧表达式的值赋给左侧变量。,例: main() float a=-32.89; int i; i=a; printf(“

27、%dn”,i); a=i; printf(“%fn”,a); ,32 -32.000000,赋值运算小结: 存储长度长的数据赋给存储长度短的变量,可能会丢失数据; 存储长度短的数据赋给存储长度长的变量,保持数值大小不变; 数据赋给存储长度相同的变量,按存储形式原样照赋。,二、复合赋值运算符 *=、/=、%=、+=、-= 等等 格式:变量 复合赋值运算符 表达式 功能:复合运算符是一个运算符,但功能上,是两个运算符功能的组合。 例: a+=b 相当于 a=a+b a*=b+c 相当于 a=a*(b+c) 优先级:仅优先于最低的逗号运算符,和“”同级。 结合性:自右向左,赋值表达式和赋值语句举例

28、例1:a+=a-=a*a a初值为2,先做:a=a-a*a,4,-2,表达式值为-2 (a=-2),再做:a=a+a,-4,表达式值为-4 (a=-4),例2: sum=(a=123)+(b=456) 赋值语句:等效于a=123;b=456;sum=a+b; 结果:a=123,b=456,sum=579 *表达式中的变量可用给该变量赋值的表达式代替(应加括号),3.10 逗号运算符和逗号表达式,形式:,逗号表达式1,逗号表达式2,逗号表达式n,功能:,从左至右依次计算各表达式的值,逗号表达式的值是最后一个表达式的值。,优先级:,最低,结合性:,自左至右,例:d=(a=3,b=5,c=a+b,c

29、+2,a+) 依次进行逗号表达式中各表达式的运算,整个表达式的值为 计算结束后,a、b、c、d的值分别为,d=(a=3,b=5,c=a+b,c+2,a+),3 a=3,5 b=5,8 c=8,10,3 a=4,3,3 d=3,3,4,5,8,3,例:(a=3*5,a*4),a+5的值为 a的值为,20,15,(a=3*5,a*4),a+5,15 a=15,60,20,20,例:,a b y 逗号表达式 y=a=4,b=5,a+b; y=(a=4,b=5,a+b); y=(a=4,b=5),a+b; y=a=(4,b=5),a+b;,a b y 逗号表达式 y=a=4,b=5,a+b; 4 5

30、4 9 y=(a=4,b=5,a+b); 4 5 9 9 y=(a=4,b=5),a+b; 4 5 5 9 y=a=(4,b=5),a+b; 5 5 5 10,必须用英文的双引号括起来。 由普通字符和格式说明字符组成。,由若干个地址组成的列表。 变量的地址、字符串的首地址、指针变量等,以逗号“,”间隔。 变量地址组成:地址运算符“ printf(“%d”,a); scanf(“%d”,a); int b; printf(“%dn”,b); scanf(“%dn”,double d; printf(“%fn”,d); scanf(“%f”,输出实数时,不论是单精度还是双精度数,都可用%f;输入实

31、数时,单精度数用%f ,双精度数用%lf。,用scanf函数注意点 例:用scanf函数给整型a、b输入数据,使a=123,b=456 1)scanf(“%d,%d”, 输入:123456 或 123456 或123(按Tab键)456 或123 456 如果输入:123,456错误,3)scanf(“a=%d,b=%d”, 输入:a=123,b=456 或a= 123,b= 456 输入数值数据前加一些前导空格、Tab、回车不影响输入。 注:非格式字符要原样输入,一般用空格或逗号作为数据间隔符。 输入数值数据时,前导空格不计。 输入空格时,可以用多个空格、一个或多个Tab、回车代替。,4)s

32、canf(“%d%d”, 输入:123 456 或123 456 或123(按Tab键)456 或123 456 注意:输入多个数值数据时,如果没有设定分隔符,在输入数据时可用空格、回车或Tab键来分隔。C编译在遇到这些符号即认为前一数据结束。,例:char x,y,z; scanf(“%c%c%c”, 1)输入:d e f 则:x=d,y= ,z=e 2)输入:def 则:x=d,y=e,z=f,例:char x,y,z; scanf(“%c%c”, 1)输入:de f 则:x=d,y=e,z=n 2)输入:def 则:x=d,y=e,z=f 注:在用“%c”输入字符时,输入任意字符均作为有

33、效字符。,例:输入数据使得a=1,b=2,x=3,y=4 int a,b; int x,y; scanf(“%d%d”, 输入:1 2 3 4,例: int a; char b; float c; scanf(“%d%c%f”, 输入:1234a123o.26 则:a=1234, b=a, c=123.0 注:在获取输入数据时,如果遇到非法数据,则当前数据到此结束。,3.4.3 字符数据的输入输出 printf函数“%c”格式符 scanf函数“%c”格式符 putchar函数:用于输出一个字符 getchar函数:用于输入一个字符,(1)函数格式 int putchar(ch);,(2)函数

34、功能 向标准输出设备(一般为显示器)输出一个字符,并返回输出字符的ASCII码值。,一、putchar函数(字符输出函数),函数返回值类型,函数的名称,函数的参数,参数ch可以是字符常量、字符变量和整型数值表达式。 例1:putchar(n); 在屏幕上输出一个换行符 例2:c=*; putchar(c); 在屏幕上输出一个“*” 例3:putchar(65)相当于putchar(A) 在屏幕上输出字母A,65是A的ASCII码。,putchar函数的说明: 注:要调用该函数,在程序前要包含“头文件”(在头文件中包含了putchar函数有关的信息): #include “stdio.h” 或#

35、include 否则,会出现错误提示: “undefine sybom _putchar in ”,例: #include main( ) int a=65; char b=B; putchar(a); putchar(65+1); putchar(b); putchar(B+1); ,程序运行结果为: ABBC,包含函数putchar的头文件,(1)函数格式 int getchar( );,(2)函数功能 从标准输入设备(一般为键盘)读入一个字符,返回该字符的ASCII码值。,二、getchar函数(字符输入函数),函数返回值类型,函数的名称,无参数,注意:,程序运行到getchar()时,

36、将返回用户屏幕,等待用户输入一个字符,输入后,才继续向下运行。若用户输入字符后未按回车键,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。,函数getchar将回车键作为一个字符读入。如果程序中有两个以上函数getchar时,应该一次性输入所需字符,最后再按回车键。,也要在程序前包含头文件: #include “stdio.h” 或#include ,无论输入的是英文字母或标点符号还是数字,都是作为字符输入 。,例: #include /*包含头文件*/ void main() int a; a=getchar(); printf(a=%cna=

37、%dn,a,a); ,从键盘输入字符, 该字符的ASCII编码值赋给a,程序运行情况如下: 1 a=1 a=49,例: #include main() char c1,c2; c1=getchar(); c2=c1+3; printf(“%c%cn”,c1,c2); putchar(c1);putchar(c2);putchar(n); ,输入:a ,输出:ad ad,顺序结构即按照语句书写顺序执行的程序结构,由两个或两个以上的语句构成,先执行A,再执行B。,顺序结构程序,作业: 1.详细叙述c程序运行的步骤。 2.书本P66 3.3(1、3、5) 、 3.6 3.写出以下程序的运行结果 ma

38、in() int x; x=32770; printf(“%d”,x); ,4. 写出以下程序的运行结果: main() int i=12345; long j=1234567; float f=12345.67; double d=12345.678956789; char s =“How are you!”; printf(“%10d*%-10ld*n”,i,j); printf(“%10d*%3ld*n”,-i,j);,printf(“%-10u*%10 x*%10X*%10o*%x*n”, 999,999,999,999,-999); printf(“%f*,%10.2f*%-10.2

39、f*n”,d,d,d); printf(“%10.0f*%8.5f*n”,f,d); printf(“%s*%15s*%-15s*%8.3s*%-8.3s*n”,s,s,s,s,s); printf(“%8c*%-8c*n”,A,B); ,作业: 书本P6667 3.9、 3.10、3.12(5、6),上机练习: 书本P4例1.2,运行并查看结果 修改上题程序,使输出结果为: a=123,b=456,sum=579 再修改程序,使输出如下: a=123 b=456 sum=579,再修改程序,将a、b、sum的类型由int改为float,输出格式符由%d改为%f,运行并观察结果。 再修改程序,

40、将%f改为%e,运行并观察结果。 2.书本P51例3.7 3.书本P77例4.3,讲评作业: 课本P66 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 x=2.5,a=7,y=4.7,1,(int)7.2,7,(int)优先级高于算术运算符,* / %优先级相同,结合性:自右向左。,7,1,0,2.5,(2)(float)(a+b)/2+(int)x%(int)y,2.5,(float)5,a=2,b=3, x=3.5,y=2.5,(int)3.5,5.0,3,(int)2.5,2,3%2,1,3.5,3.10写出程序运行结果 main() int i,j,m,

41、n; i=8; j=10; m=+i; n=j+; printf(“%d,%d,%d,%d”,i,j,m,n); ,m=9, i=9,n=10, j=11,i=9,j=11,m=9,n=10,9, 11, 9, 10,指导书P16 2.55 main() int i=12345; long j=1234567; float f=12345.67; double d=12345.678956789; char s=“How are you!”; printf(“%10d*%-10ld*n”,i,j); printf(“%10d*%3ld*n”,-i,j); printf(“%-10u*%10 x*%10X*%10o*%x*n”, 999,999,999,999,-999);,printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论