C语言教程第4章.ppt

上传人:wuy****n92 文档编号:70756279 上传时间:2023-01-27 格式:PPT 页数:46 大小:490.50KB
返回 下载 相关 举报
C语言教程第4章.ppt_第1页
第1页 / 共46页
C语言教程第4章.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《C语言教程第4章.ppt》由会员分享,可在线阅读,更多相关《C语言教程第4章.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第4章 顺序程序设计 第第4章章 最简单的最简单的C程序设计程序设计顺序程序设计顺序程序设计第4章 顺序程序设计 4.1 C语句概述语句概述分五类分五类:1 1、空语句、空语句 ;(考点)(考点)空语句也可用作循环语句中的循环体,表空语句也可用作循环语句中的循环体,表示循环体什么也不做。这一点将在第示循环体什么也不做。这一点将在第6 6章详细章详细讲解。讲解。第4章 顺序程序设计 2 2、种控制语句种控制语句if()else if()else 条件语句条件语句for()for()循环语句循环语句while()while()循环语句循环语句dowhile()dowhile()循环语句循环语句co

2、ntinue continue 结束本次循环语句结束本次循环语句break break 终止执行终止执行switchswitch或循环语句或循环语句switch switch 多分支选择语句多分支选择语句goto goto 转向语句转向语句return return 从函数返回语句从函数返回语句第4章 顺序程序设计 3 3、函数调用语句函数调用语句 max(a,b);4 4、表达式语句表达式语句xy;a=x+y;5 5、复合语句又称分程序复合语句又称分程序例:例:main()int a,b,c;z=x+y;t=z/100;printf(“%f”,t);第4章 顺序程序设计 4.2 4.2 赋值

3、语句赋值语句 赋值表达式后加分号,即为赋值语句。这一赋值表达式后加分号,即为赋值语句。这一节不用管。节不用管。a=3;第4章 顺序程序设计 4.3 数据输入输出的概念及在数据输入输出的概念及在C语言中的实现语言中的实现1 1、C C语言本身并不提供输入输出语句(即没有关键语言本身并不提供输入输出语句(即没有关键字的功能是用于字的功能是用于I/OI/O的),输入与输出是由的),输入与输出是由C C函数库函数库中的函数来实现的。中的函数来实现的。2 2、C C语言提供了六个标准语言提供了六个标准I/OI/O函数:函数:putchar puts printf putchar puts printf

4、getchar gets scanf getchar gets scanf第4章 顺序程序设计 3 3、在使用以上六个库函数时,要用预编译命令、在使用以上六个库函数时,要用预编译命令#include#include,将头文件包含到用户源程,将头文件包含到用户源程序文件中。序文件中。4 4、由于、由于printfprintf与与scanfscanf函数使用频率很高,所以函数使用频率很高,所以系统允许在使用这两个函数时不加系统允许在使用这两个函数时不加#include#include第4章 顺序程序设计 4.4 字符数据的输入输出字符数据的输入输出4.4.1 putchar4.4.1 putcha

5、r函数函数 格式:格式:putchar(c);putchar(c);作用:向终端(显示器)输出一个字符。其中作用:向终端(显示器)输出一个字符。其中,c,c是字符常量与变量是字符常量与变量,或整型常量与变量。或整型常量与变量。第4章 顺序程序设计#include#include main(main()char a=A;int b=65;char a=A;int b=65;putchar(a);putchar(n);putchar(a);putchar(n);putchar(b);putchar(12);putchar(b);putchar(12);putchar(65);putchar(xa)

6、;putchar(65);putchar(xa);putchar(A);putchar(n);putchar(A);putchar(n);putchar(101);putchar(n);putchar(101);putchar(n);putchar(x41);putchar(n);putchar(x41);putchar(n);运行运行回忆回忆表格表格第4章 顺序程序设计 4.4.2 getchar4.4.2 getchar函数函数 格式:格式:getchar();getchar();(括号内无参数)(括号内无参数)作用:从终端(键盘)输入一个字符作用:从终端(键盘)输入一个字符(只能接收只能

7、接收一个字符)一个字符)第4章 顺序程序设计 例例4.2 4.2 输入单个字符输入单个字符#include#includemain()main()char c;char c;c=getchar();c=getchar();putchar(c);putchar(c);main()main()putchar(getchar();putchar(getchar();运行运行第4章 顺序程序设计 4.5 格式输入与输出格式输入与输出4.5.1 printf4.5.1 printf函数(格式输出函数)函数(格式输出函数)格式:格式:printf(printf(格式控制,输出表列)格式控制,输出表列)作用

8、:输出任何类型的多个数据作用:输出任何类型的多个数据 括号内包括两部分:括号内包括两部分:格式控制、输出表列格式控制、输出表列第4章 顺序程序设计()格式控制()格式控制格式说明,由和格式字符组成格式说明,由和格式字符组成如:如:%f,%d%f,%d 普通字符,即需要原样输出的普通字符,即需要原样输出的如:如:printf(“a=%d,b=%fn”,a,b);printf(“a=%d,b=%fn”,a,b);第4章 顺序程序设计(2)输出表列输出表列即需要输出的一些数据,可以是表达式即需要输出的一些数据,可以是表达式如:如:printf(“%f,%d,%sn”,a+b,c,“hello”);p

9、rintf(“%f,%d,%sn”,a+b,c,“hello”);第4章 顺序程序设计 2 2、格式字符、格式字符 在输出时,不同类型的数据严格按照不同的格在输出时,不同类型的数据严格按照不同的格式字符。式字符。第4章 顺序程序设计(1 1)d d格式。用来输出十进制整数格式。用来输出十进制整数以输出整数以输出整数1234512345为例为例%d 12345%d 12345%8d%8d1234512345%3d%3d1234512345%-8d%-8d1234512345%+8d%+8d+12345+12345第4章 顺序程序设计%08d%08d0001234500012345%-08d%-0

10、8d1234512345%+08d%+08d+0012345+0012345再以输出整数再以输出整数-12345-12345为例为例%8d%8d-12345-12345%+8d%+8d-12345-12345%08d%08d-0012345-0012345%+08d%+08d-0012345第4章 顺序程序设计%ld%ld格式。用来输出十进制长整型。格式。用来输出十进制长整型。对于对于%d成立的格式,对于成立的格式,对于%ld也成立。也成立。第4章 顺序程序设计*(2 2)o o、x x、u u格式格式 以八进制、十六进制和无符号数形式输出。以八进制、十六进制和无符号数形式输出。提前处理:提前

11、处理:-2-2在内存中的二进制形式:在内存中的二进制形式:原:原:1000 0000 0000 00101000 0000 0000 0010 反:反:1111 1111 1111 11011111 1111 1111 1101 补:补:1111 1111 1111 11101111 1111 1111 1110第4章 顺序程序设计 四位分组:四位分组:1111 1111 1111 1110 1111 1111 1111 1110 f f f e f f f e 三位分组三位分组:1 111 111 111 111 110:1 111 111 111 111 110 1 7 7 7 7 6 1

12、 7 7 7 7 6若看作无符号数,则为若看作无符号数,则为6553465534(6553565535为全为全1 1)。)。第4章 顺序程序设计 无符号数无符号数6553565535在内存中的二进制形式:在内存中的二进制形式:1111 1111 1111 1111 1111 1111 1111 1111若将其看作有符号数,则其为补码,十进制若将其看作有符号数,则其为补码,十进制-1-1。补:补:1111 1111 1111 11111111 1111 1111 1111 反:反:1111 1111 1111 11101111 1111 1111 1110 原:原:1000 0000 0000

13、00011000 0000 0000 0001 1111 1111 1111 1111 1 111 111 111 111 111 1111 1111 1111 1111 1 111 111 111 111 111 f f f f 1 7 7 7 7 7 f f f f 1 7 7 7 7 7 第4章 顺序程序设计*main(main()unsigned a=65535;unsigned a=65535;int b=-2;int b=-2;printf(a=%d,%o,%x,%un,a,a,a,a);printf(a=%d,%o,%x,%un,a,a,a,a);printf(b=%d,%o,%

14、x,%un,b,b,b,b);printf(b=%d,%o,%x,%un,b,b,b,b);运行结果:运行结果:a=-1,177777,ffff,65535a=-1,177777,ffff,65535 b=-2,177776,fffe,65534b=-2,177776,fffe,65534第4章 顺序程序设计 main(main()unsigned a=65535;unsigned a=65535;printf(a=%o,%#on,a,a);printf(a=%o,%#on,a,a);printf(“a=%x,%#xn,a,a);printf(“a=%x,%#xn,a,a);printf(“a

15、=%X,%#Xn,a,a);printf(“a=%X,%#Xn,a,a);运行结果:运行结果:a=177777,0177777a=177777,0177777 a=ffff,0 xffffa=ffff,0 xffff a=FFFF,0XFFFF a=FFFF,0XFFFF第4章 顺序程序设计(3 3)c c格式格式main()main()char c=a;char c=a;int i=97;int i=97;printf(%3cn,c);printf(%3cn,c);printf(%-3cn,i);printf(%-3cn,i);运行结果:运行结果:aa a a第4章 顺序程序设计 4 4、s

16、 s格式格式用来输出字符串。以输出字符串用来输出字符串。以输出字符串“abcde”“abcde”为例。为例。%s abcde%s abcde%8s%8sabcdeabcde%-8s%-8sabcdeabcde%3s%3sabcdeabcde%6.2s%6.2sabab%-6.2s%-6.2sabab%.2s%.2sabab第4章 顺序程序设计 5 5、f f格式格式用来输出实型数(用来输出实型数(floatfloat与与double)double)。在默认情况。在默认情况下输出六位小数。以输出实型数下输出六位小数。以输出实型数123.458123.458为例。为例。%f%f123.458000

17、123.458000%12f%12f123.458000123.458000%-12f%-12f123.458000123.458000%8f%8f123.458000123.458000第4章 顺序程序设计%8.2f%8.2f123.46123.46四舍五入四舍五入%-8.2f%-8.2f123.46123.46%.2f%.2f123.46123.46第4章 顺序程序设计 在输出在输出floatfloat与与doubledouble时,注意有效位(时,注意有效位(7 7位、位、1616位)位)main()main()float x=float x=11111111111.11.111,y=1

18、1,y=22222222222.22.222;22;double m=double m=111111111111111111111111111111.1 11111,1111,n=n=222222222222222222222222222222.2 22222;2222;printf(“%fn%f”,x+y,m+n);printf(“%fn%f”,x+y,m+n);结果为:结果为:333333.3333333.32812528125 333333333333333333333333333333.3 31200012000第4章 顺序程序设计 6 6、e e格式格式 以指数形式输出实数。系统默认

19、输出六位小数。以指数形式输出实数。系统默认输出六位小数。以输出实型数以输出实型数123.458123.458为例。为例。%e 1.234580e+002%e 1.234580e+002%13.4e%13.4e1.2346e+0021.2346e+002四舍五入四舍五入%-13.4e%-13.4e1.2346e+0021.2346e+002%.4e%.4e1.2346e+0021.2346e+002%E%E1.234580E+0021.234580E+002第4章 顺序程序设计 7 7、g g格式格式 自动选自动选f f或或e e格式(选择输出时占宽度较小的一格式(选择输出时占宽度较小的一种)输

20、出实型数,且不输出无意义的零。以输出种)输出实型数,且不输出无意义的零。以输出实型数实型数f=123.468f=123.468为例。为例。printf(“%f,%e,%g”,f,f,f);printf(“%f,%e,%g”,f,f,f);123.468000,1.234680e+002,123.468123.468000,1.234680e+002,123.46810列列13列列第4章 顺序程序设计 8 8、用两个、用两个%可输出一个可输出一个%。printf(“%f%”,1.0/3);printf(“%f%”,1.0/3);结果为结果为0.333333%0.333333%。第4章 顺序程序设

21、计 9 9、若输出项比格式字符多,则右侧多出的输出、若输出项比格式字符多,则右侧多出的输出项将不予输出。项将不予输出。若格式字符比输出项多,则多出的格式字符若格式字符比输出项多,则多出的格式字符将会对应出一个随机数。将会对应出一个随机数。3,53,5,2077int a=3,b=5,c=7;int a=3,b=5,c=7;printf(“%d,%d”,a,b,c);printf(“%d,%d”,a,b,c);printf(“%d,%d,%d”,a,b)printf(“%d,%d,%d”,a,b);第4章 顺序程序设计 10、printf函数有返回值,为格式控制部分函数有返回值,为格式控制部分包

22、含字符的个数。包含字符的个数。如,如,a=printf(“xyz”);则则a的值为的值为3 b=printf(“xyzn”);则则b的值为的值为4 c=printf(“a=%dn”,a);则则c的值为的值为4第4章 顺序程序设计 4.5.2 scanf4.5.2 scanf函数(格式输入函数)函数(格式输入函数)格式:格式:scanf(scanf(格式控制,地址表列)格式控制,地址表列)作用:输入任何类型的多个数据作用:输入任何类型的多个数据 格式控制同格式控制同printfprintf函数基本相同函数基本相同第4章 顺序程序设计 1 1、输入表列应当是变量地址,而不是变量名。、输入表列应当是

23、变量地址,而不是变量名。2 2、格式控制中的普通字符,应照原样输入、格式控制中的普通字符,应照原样输入如:如:scanf(“a=%d,b=%f”,&a,&b);scanf(“a=%d,b=%f”,&a,&b);输入时键入:输入时键入:a=5,b=3.3a=5,b=3.33 3、双精度型数据用、双精度型数据用%lf%lf,不能用,不能用%f%f。4 4、输入时不能规定精度,如以下写法是错误的、输入时不能规定精度,如以下写法是错误的 scanf(“%scanf(“%7.27.2f”,&a);f”,&a);第4章 顺序程序设计 5 5、输入形式、输入形式(1 1)scanf(%d%d%d,&a,&b

24、,&c);scanf(%d%d%d,&a,&b,&c);输入:输入:3 4 53 4 5或或 3 4 5 3 4 5 或或 3 3(按(按TabTab键)键)4 4(按(按TabTab键)键)5 5或空格、回车、或空格、回车、TabTab键的组合。键的组合。(2 2)scanf(%3d%2d%3d,&a,&b,&c);scanf(%3d%2d%3d,&a,&b,&c);运行时若输入:运行时若输入:123456789123456789,则,则a a、b b、c c的值分别为的值分别为123、45、678。第4章 顺序程序设计(3 3)scanf(“%3d%*2d%3d”,&a,&b);scanf

25、(“%3d%*2d%3d”,&a,&b);若输入若输入123456789123456789,则,则a a的值为的值为 ,b ,b的值为的值为 。*表示跳过指定的列数。表示跳过指定的列数。(4 4)scanf(%c%c%c,&a,&b,&c);scanf(%c%c%c,&a,&b,&c);若想使若想使a a、b b、c c的值为的值为A A、B B、C C,则运行时输入,则运行时输入ABCABC,而不能输入而不能输入A B CA B C。因为这会使。因为这会使a a、b b、c c的值为的值为A A、B B123123678678第4章 顺序程序设计(5 5)scanf(%3c%2c%3c,&a

26、,&b,&c);scanf(%3c%2c%3c,&a,&b,&c);运行时若输入:运行时若输入:ABCDEFGHIJKABCDEFGHIJK,则,则a a、b b、c c的值分别的值分别为为(6 6)scanf(%d%c%f,&a,&b,&c);scanf(%d%c%f,&a,&b,&c);若想使若想使a a、b b、c c的值为的值为1212、A A、3.43.4,则运行时输入,则运行时输入12A3.412A3.4,而不能输入,而不能输入12 A 3.412 A 3.4。A A、D D、F F。第4章 顺序程序设计 例例 4.10 4.10输入三角形的三个边长,求三角形面积输入三角形的三个边

27、长,求三角形面积公式:公式:area=s(s-a)(s-b)(s-c)area=s(s-a)(s-b)(s-c)其中:其中:s=(a+b+c)/2s=(a+b+c)/2第4章 顺序程序设计#include#include main()main()float a,b,c,s,area;float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-

28、c);printf(area=%7.2fn,area);printf(area=%7.2fn,area);第4章 顺序程序设计 问题:问题:该程序并非一个完美的程序,因为有可能该程序并非一个完美的程序,因为有可能用户输入的三边值构不成三角形,例如用户输入的三边值构不成三角形,例如1 1,2 2,3 3。不过这个问题将会在学习完第不过这个问题将会在学习完第6 6章后解决。章后解决。第4章 顺序程序设计 练习:练习:求求axax2 2+bx+c=0+bx+c=0的根。其中的根。其中a a、b b、c c由键盘由键盘输入。输入。X=第4章 顺序程序设计#include#include main()m

29、ain()float a,b,c,d,x1,x2;float a,b,c,d,x1,x2;scanf(%f,%f,%f,&a,&b,&c);scanf(%f,%f,%f,&a,&b,&c);d=sqrt(b*b-4*a*c);d=sqrt(b*b-4*a*c);x1=(-b+d)/(2*a);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);x2=(-b-d)/(2*a);printf(“x1=%f,x2=%fn,x1,x2);printf(“x1=%f,x2=%fn,x1,x2);第4章 顺序程序设计 问题:问题:该程序也不是一个完美的程序,因为有可能用该程序也不是一个完美的程序,因为有可能用户输入的户输入的a a、b b、c c的值无法保证的值无法保证b b2 2-4ac0-4ac0,并且也,并且也有可能使有可能使a a的值为的值为0 0。不过这个问题也将会在学习完。不过这个问题也将会在学习完第第6 6章后解决。章后解决。第4章 顺序程序设计 本章结束本章结束第4章 顺序程序设计 字符字符ASCII10进制进制二进二进制制ASCII8进制进制ASCII16进制进制dddxhhA650100000110141101x41n100000101012a12xaNull空字空字000000000000 x0返回返回

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁