第03章顺序程序设计(四).ppt

上传人:sccc 文档编号:5885688 上传时间:2023-08-29 格式:PPT 页数:78 大小:2MB
返回 下载 相关 举报
第03章顺序程序设计(四).ppt_第1页
第1页 / 共78页
第03章顺序程序设计(四).ppt_第2页
第2页 / 共78页
第03章顺序程序设计(四).ppt_第3页
第3页 / 共78页
第03章顺序程序设计(四).ppt_第4页
第4页 / 共78页
第03章顺序程序设计(四).ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《第03章顺序程序设计(四).ppt》由会员分享,可在线阅读,更多相关《第03章顺序程序设计(四).ppt(78页珍藏版)》请在三一办公上搜索。

1、第 3 章,最简单的C程序设计 顺序程序设计,例如:1000元,想存一年。分别计算:活期、一年定期、存两次半年定期,所得到的本息和。(p38),特点:由上到下,按语句顺序全部执行,无选择和循环,3.1 顺序程序设计,end,解:#include int main()float r1=0.0036,r2=0.0225,r3=0.0198;float p0=1000,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(“p1=%fnp2=%fnp3=%fn”,p1,p2,p3);return 0;,运行结果:,p1=1

2、003.599976,p2=1022.500000,p3=1019.898010,一、常量和变量 1、常量 常量是指在程序运行中,其数值不能被改变的量,(1)整型常量 在语言中,整常数可用以下三种形式表示:1)十进制 如:123,-456,4 2)八进制-数字0开头,0-7之间数字组成 如:0123表示八进制数123,转换为十进制=1X82+2X81+3X80=83-010表示八进制数-10,即十进制数-8 3)十六进制-0 x开头,0-9、A-F之间数字组成 如:0 x1A表示16进制数1A,转换为十进制=1X161+10X160=26;-0 x10等于十进制数-16。,end,3.2 数据

3、的表现形式及其运算,end,两种表示形式,小数指数,0.123,23.,.453e(E)-3,注意:字母e(或E)的前后必须有数,且e后面的 指数必须为整数,例:1e3、1.85e-3、-123e-6、-0.1e-3 e3、2.1e3.5、.e3、e,3x10-3,(2)实型常量,其中 1.85e-3 称为“标准化的指数形式”。,标准化的指数形式:在字母e(或E)之前的小数部分中,小数点左边,有且只有一位非零的数字,end,(3)字符常量,普通字符:用单引号包含一个字符,例,a,A,4abc、a,.字符的ASCII码(美国国家信息交换标准代码):,每个字符都对应一个ASCII码 见p377查字

4、符表可知:字符的ASCII码为 0255,例:字符A的ASCII码的十进制形式为:65 字符B的ASCII码的十进制形式为:66,字符a的ASCII码的十进制形式为:97,字符b的ASCII码的十进制形式为:98,观察大小写字母的ASCII码相差多少?,end,转义字符:以开头的特殊字符序列,n 换行 b 退一格 t 水平制表符(横向跳到下一个制表区)r 回车(光标回到该行的开头)ooo ooo表示1到3位八进制数字xhh hh表示1到2位十六进制数字,例:101-A x41-A,显示屏上的运行结果:,i,列号:1 2 3 4 5 6 7 8 9,例:转义字符的使用#include int m

5、ain()printf(abtibbjk);return 0;,(4)字符串常量:是一对双撇号括起来的字符序列.,end,例:合法的字符串常量:How do you do.CHINA a$123.45,注意!,a是字符常量,a 是字符串常量,二者不同,(5)符号常量:用#define指令指定的,代表一个常 量的符号名,.在程序中不能给它赋值。.定义形式:#define 符号名 常量.作用:1)可在程序中,用简单、意义直接的符号 名代替一个复杂的常量,从而减少程序 中重复书写某些复杂常量的工作量。2)能做到“一改全改”。例:#define PI 3.1415926 在程序预处理时(编译前),凡是

6、出现符号名 PI的地方,都将用3.1415926来替换。如:2*2.3*PI 就等价于 2*2.3*3.1415926,例:PI=234;错误,end,(不能给它赋值),例:求半径为5的圆的面积和周长#define PI 3.1415926/*.后面不能有;#include.出现在程序开头*/,int main()float s,l,r;r=5;s=r*r*PI;l=2*r*PI;,/s=r*r*3.1415926;,/l=2*r*3.1415926;,printf(“s=%f,l=%f”,s,l);,return 0;,end,.是用来作为变量名、符号常量名、函数名、类 型名、文件名等的有效

7、字符序列.C语言规定:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须 为字母或下划线。例如:_22A,lea_1,avg3,day,ACe4 M.J.YR,$_28,#xy,a*b,8Ta,2、标识符(p42),注意,合法,不合法,在C语言中,大小写字母不等效。因此,a和A,i和I,SUM和sum,分别是两个不同的标识符。,end,11,(这些标识符由系统专用,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long registe

8、r returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while _bool _Complex _Imaginary,C语言中的关键字,见378页 附录C(补充),变量是指以标识符为名字,其值可以改变的量,一个变量,对应着计算机内存一个存储空间,,存储空间中存放的数据就是变量的值。,3、变量(p41),定义形式:类型名 变量名1,变量名2,变量名3.;,例如:int a,b;int a;int b;float x;char c;,自己设定,满足标识符的规定,如:int,float,

9、char,;不可省,a,23,b,x,c,2,4.8,A,定义了变量后,系统会为不同类型的变量分配不同大小的存储空间,当中可存相应类型的数。,end,在同一函数中,变量不能被重复定义。,使用变量时必须“先定义,后使用”,例1:int a,b;float a,y;char b,c;,例2:#include int main()int x,y,z;x=24;scanf(“%d”,后使用,先定义,end,说明:,跳过常变量,end,4、常变量:有名字的、其值被指定且不能被改变 的变量(了解 p41)定义常变量的格式:const 类型名 变量名=常数;例:const int a=3;,区别:,PI:不

10、占内存,预编译后不存在pi:占内存,有值,值不可改变,#define PI 3.1415926 const float pi=3.1415926;,/a被定义成整常变量,C语言提供了以下几种数据类型:,字符类型,浮点类型,派生类型,数组类型,结构体类型,共用体类型,指针类型,空类型,基本类型,枚举类型,数据类型,end,二.数据类型,函数类型,整数类型,布尔类型,=整型(C99),二进制,三.整型数据,1.整型的分类,.整型数据在内存中的存放形式(了解)以二进制补码形式存放:正数的补码:与该数的二进制形式相同 负数的补码:为该数绝对值的二进制形式,按位取反,再加1。,如:int x=-5;,e

11、nd,如:int i=5;,5,取反,加1,共八种,有符号基本整型 signed int 有符号短整型 signed short int有符号长整型 signed long int有符号双长整型 signed long long int无符号基本整型 unsigned int无符号短整型 unsigned short int 无符号长整型 unsigned long int无符号双长整型 unsigned long long int,注意:中括号表示其中的内容是可省的。,类型名标识符,.整型分类:,end,类型 类型名 长度 数的范围基本型 int 2字节-3276832767短整型 shor

12、t 2字节-215215-1 长整型 long 4字节-231231-1双长整型 long long 8字节-263263-1无符号整型 unsigned 2字节 065535=216-1无符号短整型 unsigned short 2字节 065535无符号长整型 unsigned long 4字节 0232-1无符号双长整 unsigned long 8字节 0264-1型 long,整型变量的空间及值范围:(以turbo c 为例),end,2.整型变量 不同类型变量对应的内存空间大小不同。,0 1 1 1,1 1 1 1,1 1 1 1,32767(int),65535(unsigned

13、),-1的补码(int),.存放有符号整数空间中,最左边位为符号位,正:0,负:1,例:#include int main()int a=20;unsigned c;/*指定c为无符号整型变量*/c=a+10;a=c+a;printf(“a=%d n c=%un”,a,c);return 0;,运行结果:a=50 c=30,说明:.可以看到不同种类的整型数据可以进行 算术运算.无符号整型变量中数据的十进制输出用%u,end,(1)一个整常数后面加一个字母u或U,认为是unsigned int型如:12345u,了解:,(2)在一个整常数后面加一个字母l或L,则认为是long int型常量。例如

14、123L,例如 unsigned int x;long y;也可以 x=123;y=123;,end,四.字符型数据,end,1.字符型数据在内存的存放:一个字符,在内存占一个字节(8位)存放的是字符的 ASCII码 的二进制,例:b的ASCII码,98,)字符变量的定义形式 例:char c1,c2;在函数中可以用下面语句对c1,c2赋值:c1a;c2b;,2.字符变量,例:输出字符 a,b 和其ASCII码#include int main()char c1,c2;c1=a;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);return 0;,运行

15、结果:97 98,一个字符数据既可以以字符形式输出,也可以 以整数形式输出,end,例,2)字符型数据的分类、存储空间和值的范围:,查字符表可知(p377字符表)-了解.首字符的ASCII码为 0:127号字符ASCII码127:.128号字符ASCII码128:.最后一个字符ASCII码为255:,有的系统认为字符类型有正负之分,这时有:,若unsigned char x;则printf(%d,x);结果在0-255,与ASCII码相符,若char x;则printf(%d,x)结果在-128127(128-128,129-127,255-1),end,说明:C语言允许字符数据与整数直接进行

16、算 术运算。,运行结果:a b,end,例:给出两个大写字母,将它们转换为小写字母输出,#include int main()char c1,c2;c1=A;c2=B;c1=c1+32;c2=c2+32;printf(%c%c,c1,c2);return 0;,五.浮点型数据,end,(1)浮点型数据在内存中的存放形式.是按照指数形式存储的。.系统把一个浮点型数据分成小数部分和指 数部分,分别存放。,符号,小数部分,指数部分,(2)浮点型的分类.单精度(float).双精度(double).长双精度型(long double),类型名 字节数 数的范围(绝对值)有效数字float 4 0,1.

17、2x10-38 3.4x1038 6位double 8 0,2.3x10-3081.7x10308 15位long double 16 0,3.4x10-49321.1x104932 19位,(3)浮点型变量的定义 例:float x;double w;scanf(“%f%lf”,/*输出x和w的值*/,end,Turbo C中浮点型数据的空间、值的范围:,六.运算符和表达式 1.基本算术运算符:+(加法运算符,或正值运算符。如:3+5、+3)-(减法运算符,或负值运算符。如:5-2、-3)*(乘法运算符。如:*)/(除法运算符。如:5/2=2(两个整数相除结果为-5/2=-2 整型,去掉小数

18、部分)5.0/2=2.5%(模运算符,或称求余数运算符,%两侧均应为 整型数据,如:%的值为),end,习题:输入一个三位正整数,求出其各个位,然后,将十位作为百位,将个位作为十位,将百位 作为个位重组该数,输出。,daan,2、自增、自减运算符:+,-作用:使变量的值增或 减 例如:+i,i+都会使i的值加1-i,i-都会使i的值减1,end,注意:自增运算符(+),自减运算符(-)只能用于变量,而不能用于常量或表达式 例:+5 8-(x+5)+,i+与+i的区别:+i是先执行i=i+1后,再使用i的值;i+是先使用i的值后,再执行i=i+1。(i-与-i的区别和+类似)例如:int i=3

19、;j=+i;i的值先加1变成4,再赋给j,j的值为 j=1+(+i);j=?j=i+;先将i的值3赋给j,j的值为3,然后i加1变为4 printf(“%d,%d”,i,j);输出为?练习:int i=3;j=3+(i+)j=?i=?j=(-i)+3 i=?j=?,4,3,end,3、算术表达式和运算符的优先级与结合性(1)算术表达式 用算术运算符和括号将运算对象(也称操 作数)连接起来的、符合语法规则的式 子,称为算术表达式。运算对象可以包括:常量、变量、函数等。例如:int a=4,b=7,c=23;a*b/c-1.5+a+abs(-8)是合法的,式中含有变量、常数、函数,end,练习:写

20、出,的C语言合法表达式,例:2+b-6 b先与+结合,与2先进行加法运算,end,(2)基本算术运算符的优先级(低于+,-)(*,/,%)高于(+,-)在表达式求值时,按运算符的 优先级 由高到低 次序计算。(3)基本算术运算符的结合方向(结合性):左结合性.左结合性:当一个 操作数 两侧的运算符的优先 级相同时,该 操作数 先参加左边的 运算符的运算。即运算符的优先级若相同,则从左向 右运算。右结合性:若 操作数 先参加右边的运算符的运 算,则称为右结合性。,4.不同类型数据间的混合运算,整型、浮点型、字符型 可以进行混合运算。在进行运算时,若一个运算符的运算对象类型不同,系统会自动将它们转

21、换成当中级别高的类型,然后进行运算。,类型的级别如下:,高 double float long低 int char,short,例:int x;float y;x+y的结果类型?先将:y double x double 然后运算:x+y 结果为:double型,end,(必定转换),(必定转换),10+a+i*f-d/e,(1)10(int)+97(int),107(int),(2)5.0(d)*,3.0(d),15.0(d),(3)107.0(d),+,122.0(d),(4)4.0(d)/2.0(d),2.0(d),-,120.0(d),例:10+a+i*f-d/e int i=5;flo

22、at f=3.0;double d=4.0;long e=2;,(5),end,5.强制类型转换运算符 可以利用强制类型转换运算符将一个表达式的 值转换成所需类型。.一般形式:(类型名)(表达式).优 先 级:高于 基本算术运算符 例如:int a=2;float d;double b;b=(double)a;d=(float)(5%3);,单个量时括号可省,变量a仍为原来类型,将中的值转换成double类型2.000后送给b,将5%3的值转换成float型,end,运行结果:x=3.600000,i=3,end,例#include int main()float x;int i;x=3.6;

23、i=(int)x;printf(“x=%f,i=%d n”,x,i);return 0;,/*实型转换为整型,舍去小数部分。x 中的值未变,仍为3.6*/,6.运算符简介 的运算符有以下几类:(1)算术运算符:+-*/%+-(2)关系运算符:=|(5)赋值运算符:=(6)条件运算符:?:(7)逗号运算符:,,(8)指针运算符:*和(9)求字节数运算符:sizeof(10)强制类型转换运算符:(类型)(11)分量运算符:.和-(12)下标运算符:(13)其他,end,例如:i的初值为,如果有下面的函数调用:printf(%d,%d,i,1+(+i)在有的系统中,从左至右求值输出,输出3,5 在多

24、数系统中,是自右向左,输出4,5 最好改写成:j=1+(+i);printf(%d,%d,i,j);,(1)不要写容易误解的式子 例如:(i+)+j 写成了 i+j 的形式(2)式中不要含有不同系统有不同处理方法的内容,7.有关表达式的几点说明,结果:4,5,end,一.C语句分类:共分5类,如下:,3.3 C语句概述,(1)控制语句:完成一定的控制功能 if()else 条件语句 for()循环语句 while()循环语句 do-while()循环语句 continue 继续语句 break 间断语句 switch()开关语句 goto 转向语句 return 返回语句,(2)函数调用语句

25、由一个函数调用加一个分号构成的语句。例:printf(“This is a C statement.”);,(3)表达式语句 由一个表达式加一个分号构成的语句,例:a=3;,(4)空语句 只有一个分号的语句:;/什么也不做,(5)复合语句 用一对 把一些语句括起来的语句。例:z=x+y;t=z/100;printf(%f,t);,运行情况:a=3.670000 b=5.430000 c=6.210000 area=9.903431,#include#includeint main()double a=3.67,b=5.34,c=6.21,s,area;s=(a+b+c)/2;area=sqrt

26、(s*(s-a)*(s-b)*(s-c);printf(“a=%ft b=%f tc=%f n”,a,b,c);printf(“area=%fn”,area);return 0;,二.赋值语句,例:输入三角形的三边长,求三角形面积。已知:面积公式area=s(s-a)(s-b)(s-c)s=(a+b+c)/2(先做:1.sqrt()的头文件 2.指出赋值语句),1.赋值运算符:=作 用:将一个数值或表达式的值赋给一个变量 优先级:见P379,排在倒数第二 如:x=2+5*6 是将一个表达式的值赋给一个变量.,2+5*6=x 是否正确?,思考:,2.复合的赋值运算符 复合的赋值运算符:在赋值符“

27、”之前加上其 他(二元)运算符,如:+,-,*,/,%,构成 优先级、结合性:和赋值运算符相同,例如:1)a+=3 等价于 a=a+3,2)x*=y+3 x*=(y+3)x=x*(y+3)(不要错写成x=x*y+3),3.赋值表达式 变量 赋值运算符 表达式 例:x=4+7(该表达式的值为左边变量x的值),左值(lvalue):赋值运算符左侧,值可改变的量,右值(rvalue):赋值运算符右侧的表达式,例:a=3*6,a+b=7,变量可作为左值,赋值表达式中,右边的 表达式 又 可以是一个赋值表达式.赋值运算符的结合顺序:“自右而左”,例:a=(b=5)括弧内的“b=5”是一个赋值表达式 它的

28、值等于5,再将5送给a 括弧可以不要,即写成“a=b=5”,例:a=5+(c=6)c=?a=?整个式子值=?,例:a=b=9(a=b)=3,*赋值表达式也可以包含复合的赋值运算符。,求解步骤如下:先进行“a-=*”的运算,它相当于=-(*)a=12-12*12=-132 式子 a-=a*a 的值为-132 再进行“a+=-132”的运算,相当于 a=a+(-132)a=-132-132=-264 整个式子值=-264,如:a=12,求 a+=a-=a*a(自右向左计算),4.赋值过程中的类型转换,如果赋值运算符两侧的类型不一致,在赋值时,系统要自动进行类型转换,转换为变量所需类型。,浮点型数据

29、(包括单、双精度)整型变量:舍弃浮点数的小数点以后部分 如:i为整型变量,执行“i=3.56”结果是:,i 的值为 3,以整数形式存储在整型变量i中.,整型数据 单、双精度变量:.数值不变,以浮点数形式存储到浮点型变量中 如:float f;f=23;先将23转换成float型23.0,再存储在 f 中。如:double d;d=23;将23转换成double型23.0,存储到变量d中。,double型数据 float变量:截取其前面6位有效数字,存放到变量的存储单 元中。.float型数据 double变量:数值不变,有效位数扩展到15位,存放到变量的 存储单元中。,字符型数据 整型变量,是

30、将字符的ASCII码送给整型变量,占字节多的整数 占字节少的整型变量或字符变量 只将低字节原封不动地送入被赋值变量中,例:int i=289;char c;c=i;,i,.,c,00100001,=33(!),例:long a=32767;int b;a=a+1(32768);b=a;,a,.,b,10000000,-32768=,00000000,5.赋值表达式和赋值语句区别 赋 值 语 句:后面有分号,不可出现在表达式中 赋值表达式:后面无分号,可出现在任何允许表 达式出现的地方。例:已知 if 语句的一种合法格式:if(表达式)语句;判断下列语句的语法是否正确?1)if(a0)max=a

31、;2)if(a=7)0)max=a;3)if(a=7;)0)max=a;,例:x=2+(y=3+5;),6.变量的赋初值,(1)在定义变量的同时给变量初始值 例:int a=3;float f=3.56;char c=a;,例:#include void main()char c=a;c=c+2;printf(“%cn”,c);,结果=?,c,int a;float f;char c;a=3;f=3.56;c=a;,相当于,(2)给被定义变量的一部分赋初值。如:int a=0,b,c=5;表示指定a,b,c为整型变量 其中a初值为 0,c初值为 5(3)几个变量赋同一个初值 如:int a=3

32、,b=3,c=3;表示a,b,c的初值都是3 不能写成:int a=b=c=3;,例:给 a,b 赋初值,判断a是否大于b,是输出yes,否则输出no。(先做)#include int main()int a=5,b=67;if(ab)else return 0;,运行结果:?,printf(yesn);,printf(“non”);,no,在调用标准输入输出库函数时,程序开头应该有:#include“stdio.h”或:#include,头文件,3.4 数据的输入输出实现,C语言中输入和输出操作是由函数库中的标准输入输出函数来实现的。,到系统规定的存放库函数头文件的目录中去寻找,一.prin

33、tf输出函数 1.一般格式:printf(格式控制,输出表列)函数作用:输出若干个任 意类型的数 据,(1)普通字符:按原样输出(2)格式说明:%格式字符,是一些要输出的数据项(变量、表达式、常数),suanji,例:int a=2,b=3,c=4;printf(a=%d,b=%d,c=%d n,a,b,c);结果:a=2,b=3,c=4,2.格式字符(1)格式符:以带符号十进制形式输出整数 几种用法:*%d:按数据的实际长度输出。%md:为指定的输出宽度。若数据的位数小于,则左端补空格,若大于,则按实际位数输出。%ld:输出长整型数据。(%mld)例 int a=-13,b=12345;lo

34、ng c=135790;printf(%4d,%4d,%ld,a,b,c);输出结果为:,-13,12345,135790,例:int x=6,y=-25;1.写出输出下列形式的输出函数:x=_ _ 6,y=_-25 2.printf(x=);printf(%2dn,x);printf(y=);printf(%4d,y);输出:?,printf(“x=%3d,y=%4d,x,y),x=_ 6y=_-25,(2)c格式符:用来输出一个字符 用 法:%c,%mc(以m位宽度输出字符)如:chard=k;1.printf(%c,d);输出:k 2.printf(%3c,99);输出:?,_ _ c,

35、(3)s格式符:用于输出字符串%s:按实际长度输出字符串%ms:输出的字符串占 m 列 若串长大于m,则全部输出 若串长小于m,则左补空格%-ms:与%ms相似,只是若串长小于m,字符串向 左靠,右补空格,%m.ns:输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格%-m.ns:与%m.ns相似,只是靠左输出,右补空格 若 n m:自动按n位宽度输出,例:写出下列字符串的输出#include void main()printf(%3s,%7.2s,%.4s,%-5.3sn,CHINA,CHINA,CHINA,CHINA);,运行结果:CHINA,CH,CHIN,CHI,(4)f

36、格式符:以小数形式输出实数(包括单、双精度)有以下几种用法:%f:整数部分按实际长度输出,小数部分输出6位,%mf:输出的数据共占m列:小数部分:输出6位小数.整数部分:按实际长度输出 若整数部分长度+6+1m,左补空格,1位小数点,%-mf:与%mf相似,只是在补空格时,是右补空格,例:float x=23.45;printf(“%11f,%-11f,%2f”,x,x,x);输出:_ _23.450000,23.450000_ _,23.450000,%m.nf:输出的数据共占列,小数部分:输出n位.整数部分:按实际长度输出 若n+1+整数部分长度m,左端补空格%-m.nf:与%m.n相似,

37、只是要补空格时,是在右端补空格,例:写出下列实数的输出形式。#include void main()float f=123.456;printf(“%10f,%10.2f,%.2f,%-10.2f”,f,f,f,f);,运行结果:123.456000,_ _ _ _123.46,123.46,123.46_ _ _ _,四舍五入,e格式,例:输出单精度实数时的有效位数(6位)#include void main()float x,y;x=11111.111;y=22222.222;printf(“%f”,x+y);,运行结果:33333.328125,例:输出双精度数时的有效位数(15位)#i

38、nclude void main()double x,y;x=1111111111111.111111111;y=2222222222222.222222222;printf(“%f”,x+y);,运行结果:3333333333333.333010,(5)e格式符:以规范化指数形式输出实数 可用以下形式:%e:输出的正(负)实数共占13(14)列 正:x.xxxxxxexxx(13列)负:-x.xxxxxxexxx(14列)例:printf(%e,123.456);输出:1.234560e+002(注:不同系统的规定略有不同),%m.ne、%-m.ne:m为总宽度,n为小数部分的小数位数 例:

39、f=123.456,printf(%e%10e%10.2en%-10.2e%.2e,f,f,f,f,f);1.234560e+002 1.234560e+002 1.23e+002 13列 13列 10列 1.23e+002 1.23e+002 10列 9列,输出,例 int a=10;printf(%d,%o,%x,a,a,a);输出:10,(6)格式符:以八进制形式输出整数 输出的数值不带符号,符号位也一起 作为八进制数的一部分输出。用法:%o,%lo(长整型的八进制形式),0000000000 001 010,12,(7)x 格式符:以十六进制形式输出整数 用法:%x,%lx(长整型的十

40、六进制形式),a,0000 0000 0000 1010,八进制3位一组,十六进制4位一组,例:int a=-1;printf(%d,%o,%x,a,a,a);输出:-1,177777,-1在内存单元中的存放形式(以补码形式存放)为:1 111 111 111 111 111,1111 1111 1111 1111,八进制3位一组,十六进制4位一组,ffff,*以八进制或十六进制形式输出,不带符号*,输出如下:123.468000 1.234680e+002 123.468 10列 13列 10列,例:若f=123.468,则printf(“%f%e%g”,f,f,f);,(8)g格式符:用来

41、输出实数 它根据数值的大小,自动选格式或格式 中占宽度较小的一种格式输出,且不输出无 意义的零。,(9)u格式符:以十进制形式输出unsigned型数据 用法:%u,%lu,二.scanf输入函数 1.一般格式:scanf(格式控制串,地址表列),同printf函数基本相同,若干个存放数据的内存地址,如:变量的地址,例 int a;short b;long c;char ch;float x;double y;scanf(“%d%hd%ld”,4.68,函数作用:将输入的数据存入指定的内存(变量)中,1)多个整型、实型数据输入时注意:“格式控制”串中无其他普通字符:可用一个或多个空格,回车,跳

42、格(Tab)键为分隔符 例:scanf(%d%d,可输入:23 46 或:23 46,“格式控制”串中若有其他字符:输入数据时,对应位置应输入相应字符,例:scanf(“%d,%d,可输入:23,46,例:scanf(“x=%d,y=%d”,&x,&y);输入:x=2,y=3,2.使用scanf输入数据时注意问题,scanf(“%c%c”,&c1,&c2):如输入:ab c1 c2 若输入:a _ b,紧挨着,2)多个字符数据输入时注意:,有其它字符,不能加分隔符,加指定分隔符,输入:w,r,scanf(“%c,%c”,&x,&y);,例:scanf(%2d%*3d%2d,输入:12 345

43、67 输入:1234567,3)可指定输入数据所占的列数(该页了解)系统自动按指定列数截取所需数据。4)在%后有一个*:表示跳过它对应的输入数据 5)输入实型数据时不能规定精度。,例:scanf(%8.2 f,例:下列情况如何输入数据 1.scanf(%d%d,scanf(%d%d%c,2.scanf(%c,scanf(%c%c,xy,12 5w,x y,输出:printf(“格式控制”,输出项)一.整数 1.int:%d,%(+-)md 2.long int:%ld,%(+-)mld二.实数(float,double)1.f:(1)%f(2)%(+-)mf(3)%(+-)m.nf 2.e:(

44、1)%e:(-)x.xxxxxxexxx(2)%(+-)me(3)%(+-)m.ne三.字符%c%(+-)mc,输入:printf(“格式控制”,输出项)一.整数 int:%d long int:%ld二.实数(浮点型)float:%f double:%lf三.字符 char:%c,end,1.putchar字符输出函数 一般形式:putchar(c)函数作用:输出一个字符。例 putchar(a);putchar(95+2);,三.字符数据的输入输出,结果都为:a,例 写出下列程序的输出结果 int main()char a,b;a=X;b=Y;putchar(a);putchar(b);p

45、utchar(n);return 0;,putchar(a);putchar(n);putchar(b);putchar(n);,运行结果:XY,运行结果:,XY,若,2.getchar字符输入函数 一般形式:getchar()函数作用:要求从输入设备(一般为键盘)输入 一个字符 函数值是:输入的字符。,例:写出程序的输入及输出。#include int main()char c;c=getchar();putchar(c);putchar(n);return 0;,运行程序:a a,练习:一.写出满足下列要求,给a,b,c输入数据的输入函数:1.1,2,3 2.a=2,b=3,c=4 3.1

46、 2 3 二.x=21.234,y=66.7,写出满足下列输出要求的输出函数:1.21.234000,66.700000 2.x=2.123400e+001,y=6.670000e+001 3.x=21.23 y=66.70 4.x=_ _21.23,y=_ _66.70,四章,scanf(“%d,%d,%d”,&a,&b,&c),scanf(“a=%d,b=%d,c=%d”,&a,&b,&c),scanf(“%d%d%d”,&a,&b,&c),printf(“%f,%f”,x,y),printf(“x=%e,y=%e”,x,y),printf(“x=%5.2f n y=%5.2f”,x,y)

47、,printf(“x=%7.2f,y=%7.2f”,x,y),x1=p+q,x2=p-q,-b+b2-4ac,2a,-b-b2-4ac,2a,-b,2a,b2-4ac,2a,=disc,例:求ax2+bx+c=0方程的根。(p65)a,b,c由键盘输入,设 b2-4ac0。,一元二次方程式的根为:x1=x2=,可以将上面的分式分为两项:p=,q=,运行情况:input a,b,c:1,3,2 x1=-1.00,x2=-2.00,#include#includevoid main()float a,b,c,disc,x1,x2,p,q;printf(“input a,b,c:n);scanf(%f,%f,%f,#includeint main()int a,b,c,x,y;scanf(%d,习题:输入一个三位整数,求出其各个位,然后,将 十位作为百位,将个位作为十位,将百位作为 个位重组该数,输出。,返回,1:输出由*构成的字符 E:*,2.按下列个时输出数据 _ _ _ _327.64_ _ _ _864.42 4796.23 78.41 59.56 2156.27,4个空格,补充作业:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号