《C语言程序设计》PPT课件

上传人:cn****1 文档编号:579823026 上传时间:2024-08-27 格式:PPT 页数:53 大小:394.81KB
返回 下载 相关 举报
《C语言程序设计》PPT课件_第1页
第1页 / 共53页
《C语言程序设计》PPT课件_第2页
第2页 / 共53页
《C语言程序设计》PPT课件_第3页
第3页 / 共53页
《C语言程序设计》PPT课件_第4页
第4页 / 共53页
《C语言程序设计》PPT课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《《C语言程序设计》PPT课件》由会员分享,可在线阅读,更多相关《《C语言程序设计》PPT课件(53页珍藏版)》请在金锄头文库上搜索。

1、语言程序设计最简单的C程序设计顺序程序设计一、C语句概述案例案例 已知圆半径radius=1.5,求圆周长和圆面积。#include #define Pi= 3.1415926main() float radius,length,area; radius=1.5; length=2*Pi*radius; /*求圆周长*/ area=Pi*radius*radius; /*求圆面积*/ printf(“radius=%fn”,radius); /*输出圆半径*/ printf(“length=%7.2f,area=%7.2fn”,length,area); /*输出圆周长、面积*/ 预处理命令预

2、处理命令全局变量全局变量函数函数C C语言提供的语句分五大类:语言提供的语句分五大类: (1)(1)控制语句,完成控制功能控制语句,完成控制功能if( ) else if( ) else 条件条件 for ( ) for ( ) 循环循环 while ( ) while ( ) 循环循环 do while ( ) do while ( ) 循环循环 continue continue 结束本次循环结束本次循环 break break 中止中止switch switch 或循环或循环 switch switch 多分支选择多分支选择 gotogoto 转向转向 return return 从函数

3、返回从函数返回(2)(2)函数调用语句函数调用语句 函数名(参数);函数名(参数); 如:如:printfprintf (“This is a C program.n”); (“This is a C program.n”); max(a,b); max(a,b); (3)(3)表达式语句表达式语句 在表达式后加在表达式后加 “ ;” “ ;” 构成构成 a=6a=6 a=5 ;a=5 ; 如如 i=i+2i=i+2 是是表达表达式式 而而 i=i+2; i=i+2; 是是表达式语句表达式语句 x+yx+y x+y ;x+y ; (4)(4)空语句空语句 ; ; 无任何操作,但合法,可用于循环

4、中的转折无任何操作,但合法,可用于循环中的转折(5)(5)复合语句复合语句 用用 将若干语句括起来而构成的语句。将若干语句括起来而构成的语句。 如:如:if (xy)if (xy) 与与 if (xy)if (xy) 意义不同意义不同 z=x;z=x; z=x; z=x; x+; x+; x+; x+; y-; y-; y-; y-; 二、赋值语句由赋值表达式与由赋值表达式与 “ “;” ” 组成。组成。 形式:变量形式:变量= =表达式;表达式; 功能:计算表达式的值,然后赋给左边的变量。功能:计算表达式的值,然后赋给左边的变量。 说明:说明: 1.1.赋值号与数学上的等号意义不同,如赋值号

5、与数学上的等号意义不同,如 x=x+2; x=x+2; 2.2.在在C C语言中,赋值号作为赋值运算符使用,具有计算语言中,赋值号作为赋值运算符使用,具有计算的功能。的功能。 3.3.赋值表达式可以包含在其它表达式之中。赋值表达式可以包含在其它表达式之中。 如:如:if ( (a=b) 0) t=a ; if ( (a=b) 0) t=a ; 但但赋值语赋值语句不能包含在条件表达式中,如句不能包含在条件表达式中,如: if (a=b;)0) t=a ; if (a=b;)0) t=a ; 三、数据输入输出(1)(1)输入输出:相对主机而言的输入输出:相对主机而言的 输入设备:键盘、扫描仪、磁盘

6、、光盘等输入设备:键盘、扫描仪、磁盘、光盘等 输输出出设备设备:显显示器、打印机、磁示器、打印机、磁盘盘等。等。 (2)(2)本身不提供本身不提供I/OI/O语句语句: I/OI/O操操作作通通过过函函数数实实现现,标标准准函函数数库库中中提提供供了了一一些些I/OI/O函函数数,如如printf,scanfprintf,scanf等等, ,它它们们不不是是的的关关键键字字,而而是是函数名。函数名。 好处是:使编译系统简化、通用性强、可移植性好。好处是:使编译系统简化、通用性强、可移植性好。C C函数函数库库提供的一些提供的一些标标准准/ / 函数是以函数是以终终端端设备为设备为I/OI/O对

7、对象的,如:象的,如:putcharputchar, , getchargetchar, , printfprintf, , scanfscanf, puts, , puts, getsgets。 (3)(3)使用库函数时使用库函数时:用预编译命令用预编译命令# #includeinclude将有关头文件包含到用户源文件将有关头文件包含到用户源文件中,在头文件中包含了与用到的函数有关的信息,如使中,在头文件中包含了与用到的函数有关的信息,如使用输入输出函数时要用到用输入输出函数时要用到stdio.hstdio.h文件。文件。# #includeinclude放在程序开头放在程序开头如如# #i

8、nclude “include “stdio.hstdio.h” ” 或或# #include include 注意:区别注意:区别# #includeinclude语句中用语句中用和和的区别。的区别。(2)(2)本身不提供本身不提供I/OI/O语句语句: I/OI/O操操作作通通过过函函数数实实现现,标标准准函函数数库库中中提提供供了了一一些些I/OI/O函函数数,如如printf,scanfprintf,scanf等等, ,它它们们不不是是的的关关键键字字,而而是是函数名。函数名。 好处是:使编译系统简化、通用性强、可移植性好。好处是:使编译系统简化、通用性强、可移植性好。C C函数函数库

9、库提供的一些提供的一些标标准准/ / 函数是以函数是以终终端端设备为设备为I/OI/O对对象的,如:象的,如:putcharputchar, , getchargetchar, , printfprintf, , scanfscanf, puts, , puts, getsgets。 四、字符数据的输入输出功能:向输出设备输出一个字符。功能:向输出设备输出一个字符。 形式:形式:putcharputchar( (参数参数) ) 其中,参数可以是整型或字符型变量或常量。其中,参数可以是整型或字符型变量或常量。例如:例如:putchar(97) ; putchar(97) ; putchar(ap

10、utchar(a) ; ) ; 都输出字符都输出字符 a, a, char c= b ; char c= b ; putcharputchar ( c ) ; ( c ) ;输出字符输出字符 b b。 注意:在注意:在C C语言中,除语言中,除printfprintf 和和 scanfscanf 两个函数外,两个函数外,使用其它使用其它I/OI/O函数时,都必须在源文件的开始处加上预函数时,都必须在源文件的开始处加上预编译命令:编译命令:# #include “include “stdio.hstdio.h” 意意义义:将:将标标准准I/OI/O函数函数库库中的函数包含到所在文件中来中的函数包

11、含到所在文件中来 4.1、putchar(字符输出函数)# #include include main( )main( ) char a,b,c; char a,b,c; a=B;b=O;c=Y; a=B;b=O;c=Y; putchar(aputchar(a); ); putchar(bputchar(b); ); putcharputchar (c); (c); 运行运行结结果:果:BOY BOY 若无文件包含编译预处理,在编译连接时系统将指出:若无文件包含编译预处理,在编译连接时系统将指出: Linking Linking Error:UndefineError:Undefine sym

12、bol _ symbol _putcharputchar in in moduelmoduel XXX.c XXX.c 另:另:putcharputchar( )( )函数还可以输出控制字符函数还可以输出控制字符 如如:n n 或或012012 aa或或 007007 r r 或或 015 015 换行换行 响铃响铃 回车回车# #include “include “stdio.hstdio.h”main( )main( ) char a=A char a=A,b=Bb=B,c=007c=007; putchar(aputchar(a) ); putchar(bputchar(b) ); pu

13、tchar(nputchar(n); putchar(cputchar(c) ); sleep(3) sleep(3); putchar(cputchar(c) ); putchar(65) putchar(65);putchar(66)putchar(66);putchar(007)putchar(007); sleep(3) sleep(3); putchar(007) putchar(007); 运行结果:运行结果: AB AB 响响 延时延时3 3秒秒 响响 ABAB 响响 延时延时3 3秒秒 响响 功能:从键盘输入一个字符功能:从键盘输入一个字符 形式:形式:getchargetch

14、ar( ) ( ) 特点:无参数,其特点:无参数,其值值是从是从输输入入设备设备得到的字符。得到的字符。# #include “include “stdio.hstdio.h”main( ) main( ) char c; char c; c=c=getchargetchar(); (); putchar(cputchar(c); ); putchar(getcharputchar(getchar(); (); printf(“%cn”,getcharprintf(“%cn”,getchar( ); ( ); 输入:输入:abcabc 输输出:出:abcabc 如果一个一个输入呢?换行符如果一

15、个一个输入呢?换行符 4.2 getchar函数五、格式输入与输出功能:向输出设备输出若干个任意类型的数据功能:向输出设备输出若干个任意类型的数据 1 1、printfprintf 函数的一般格式函数的一般格式 printfprintf ( (格式控制,输出表列)格式控制,输出表列) (1)(1)格格式式控控制制:由由双双引引号号括括起起来来的的一一串串字字符符(格格式式说说明明和和普通字符)。普通字符)。 格格式式说说明明:由由% %和和格格式式字字符符(c,d,u,f,e,o,x,s,g)c,d,u,f,e,o,x,s,g)组成。组成。 普通字符:需要原样输出的字符。普通字符:需要原样输出

16、的字符。(2)(2)输出表列输出表列:需要桉格式说明所指定的格式输出的数据,:需要桉格式说明所指定的格式输出的数据,可以是常量、变量、表达式。可以是常量、变量、表达式。 格式控制格式控制 一般形式:一般形式:printfprintf( (参数参数1 1,参数,参数2 2,参数参数n) n) 将参数将参数22n n按参数按参数1 1的格式的格式输输出。中出。中间间由逗号隔开。由逗号隔开。 5.1 printf 格式输出函数2 2、格式字符、格式字符(1)(1)d d 格式符:输出十进制整数格式符:输出十进制整数 % %d d:按十进制数据的实际长度输出。按十进制数据的实际长度输出。 % %mdm

17、d :m m为指定输出字段的宽度。为指定输出字段的宽度。 m m时时 按数据的按数据的实际实际位数位数输输出。出。main( ) main( ) intint a=123,b=12345 a=123,b=12345; printfprintf (“a=%4d,b=%4dn”,a,b) (“a=%4d,b=%4dn”,a,b); 运行运行结结果:果:a=_123,b=12345a=_123,b=12345 %ldld:输出长整型数据输出长整型数据 对对于于长长整整型型数数据据只只能能按按长长整整型型的的格格式式说说明明符符输输出出, , 否则否则, ,输出的数据有误。输出的数据有误。 在在长长整

18、型格式整型格式说说明中明中, ,还还可指出其可指出其输输出出宽宽度度. . main( ) main( ) long a=134579; long a=134579; printfprintf (“a=%dn”, a); (“a=%dn”, a); 结结果:果:a=3507a=3507 (2)(2)o o格式符,输出八进制数格式符,输出八进制数 特点:无特点:无论论是正是是正是负负,输输出的都是不出的都是不带带符号的数符号的数 (3)(3)x x格式符,输出十六进制数格式符,输出十六进制数 特点:无特点:无论论数据是正是数据是正是负负,输输出的都是不出的都是不带带符号的数符号的数 (4)(4)

19、u u格式符,输出无符号数据格式符,输出无符号数据 无符号类型的数据可用无符号类型的数据可用% %d,%u,%o,%x d,%u,%o,%x 格式输出。格式输出。 带符号的带符号的char char 和和 intint 整型数据可用整型数据可用% %u u格式输出。格式输出。 单单、双双精精度度实实型型数数据据用用% %u u格格式式输输出出时时,则则得得到到错错误误的的结果。结果。 如果实际值的范围超出格式的范围,输出结果不正确。如果实际值的范围超出格式的范围,输出结果不正确。 (5)(5)C C格式符,输出一个字符格式符,输出一个字符 字符型数据:占一个字节,数据表示范围:字符型数据:占一

20、个字节,数据表示范围:0255 0255 例例 main()main() char c= a char c= a; intint i=97 i=97,j=355j=355,k=232k=232; printfprintf (%c,%c,%c,%cn”,c,i,j,k) (%c,%c,%c,%cn”,c,i,j,k); printfprintf (%d,%d,%d,%dn”,c,i,j,k) (%d,%d,%d,%dn”,c,i,j,k); 输出结果:输出结果: a,a,c, a,a,c, 97,97,355,232 97,97,355,232对对于整型数据,若用字符格式于整型数据,若用字符格式

21、输输出,由于出,由于整型数据占两个字整型数据占两个字节节,如果整型数据的,如果整型数据的值值在在02550255之之间时间时,则输则输出出对应对应的字符,若其的字符,若其值值在在2563276725632767之之间时间时,则则截取截取其低其低8 8位部分,然后位部分,然后输输出出对应对应的字符的字符. .(6 6)S S格式符,用来输出一个字符串,有几种方法格式符,用来输出一个字符串,有几种方法%s s: 按实际长度输出字符串。按实际长度输出字符串。 %msms:m m为列宽为列宽 当串长当串长 m m时,按实际长度输出时,按实际长度输出 当串长当串长 m m时,按串实际长度输出,时,按串实

22、际长度输出, 当串长当串长 mnm时时,m m自自动动取取n n值值, , m m只能是整常量,而不能是只能是整常量,而不能是变变量或表达式。量或表达式。 main( )main( ) printfprintf (“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, (“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA” ); “CHINA”, “CHINA”, “CHINA” ); 运行结果:运行结果: CHINA, _ _ _ _ _CH, CHIN,CHI_ _ CHINA, _ _ _ _ _CH, C

23、HIN,CHI_ _ (7) (7) f f格式符格式符: :输出单、双精度实数输出单、双精度实数 % %f:f:单单精精度度浮浮点点输输出出,有有效效位位7 7位位,通通常常小小数数点点后后有有6 6位位数字。数字。 % %lf:lf:双精度双精度浮点浮点输输出,有效位出,有效位1616位,通常小数点后有位,通常小数点后有6 6位数字。位数字。 例,输出双精度有效位例,输出双精度有效位main( )main( ) float x1,y1;double x2,y2; float x1,y1;double x2,y2; x1=1111111111111.111111111; x1=1111111

24、111111.111111111; y1=2222222222222.222222222; y1=2222222222222.222222222; x2=1111111111111.111111111; x2=1111111111111.111111111; y2=2222222222222.222222222; y2=2222222222222.222222222; printfprintf (“x1+y1=%fnx2+y2=%lfn”,x1+y1,x2+y2); (“x1+y1=%fnx2+y2=%lfn”,x1+y1,x2+y2); 运行结果:运行结果: x1+y1=3333333319

25、680.000000 x1+y1=3333333319680.000000 x2+y2=3333333333333.333010x2+y2=3333333333333.333010 %m. %m. nfnf :输出数据共占输出数据共占m m列,其中小数占列,其中小数占n n位,当数据位,当数据长度长度 m m时,左补空格。时,左补空格。 %-%-m. m. nfnf:输输出出数数据据占占m m列列,其其中中小小数数占占n n位位,当当数数据据长长度度 m m时时,右,右补补空格。空格。main( )main( ) float f=123.456; float f=123.456; printf

26、printf (“%f,_ _%10f_ _%10.2f_ _% .2f_ _ (“%f,_ _%10f_ _%10.2f_ _% .2f_ _ %-10.2fn”,f,f,f,f,f); %-10.2fn”,f,f,f,f,f); 运行结果:运行结果: 123.456001,_ _123.456001_ _ 123.456001,_ _123.456001_ _ _ _ _ _ _ _ _123.46_ _123.46_ _123.46123.46_ _123.46_ _123.46_ _ _ _ _ _ _ (8)(8)e e格式,以指数形式输出实数格式,以指数形式输出实数 %e:e:小数

27、点前有一位数字小数点前有一位数字, ,小数点后有小数点后有5 5位数字位数字规范化数规范化数 float : x. float : x. xxxxxexxxxxxxexx 形式:形式: double: double: x.xxxxxexxxx.xxxxxexxx %m.nem.ne:m m为为输出数据输出数据的列数的列数, ,n n是小数的位数是小数的位数. . mmm数据长度数据长度, ,数据靠右输出数据靠右输出, ,左端补空格左端补空格 %-%-m.nem.ne:m m为输出数据的列数为输出数据的列数, ,n n是小数的位数是小数的位数. . mmm数据长度数据长度, ,数据靠左输出数据靠

28、左输出, ,右端补空格右端补空格 在在TcTc中的中的 n n:指在指在e e左边的数字个数左边的数字个数, ,不包括小数点不包括小数点. . 在不同的在不同的C C系统中输出结果可能不同系统中输出结果可能不同 书中例子指小数位数书中例子指小数位数(9)(9)g g格式符,用来输出实数格式符,用来输出实数 根据数据的大小,自根据数据的大小,自动选动选取取e e,f f 格式中占位数格式中占位数较较少的少的一种格式一种格式输输出。出。 (10)(10)print print 函数的使用说明:函数的使用说明: 格式符用小写字母而不能用大写字母,如格式符用小写字母而不能用大写字母,如% %d d而不

29、是而不是% %D D。 格格式式控控制制的的字字符符串串中中可可包包含含转转义义字字符符,如如: n,t, n,t, b,r, 377, x41 b,r, 377, x41 由由% %和格式字符和格式字符d, f, e, g, u, c, s, o, xd, f, e, g, u, c, s, o, x构成格式构成格式输出符号输出符号 特殊字符:特殊字符:% %和和 的的输输出,如下所示:出,如下所示: main( ) main( ) printfprintf (“ ,%, “n”); (“ ,%, “n”); printfprintf (“%f% n”,1.0/3); (“%f% n”,1.

30、0/3); 输出:输出: ,% % ,“ “ 0.333333% 0.333333%定定义义数据数据类类型与格式符型与格式符说说明要一致,否明要一致,否则则将将输输出出错误结错误结果。果。 1 1、一般形式、一般形式 scanfscanf( (格式控制,地址表列格式控制,地址表列) ) (1)(1)格式控制:是字符串,内容有格式控制:是字符串,内容有: 格格式式说说明明:由由% %和和格格式式字字符符 d, d, f, f, e, e, c, c, s, s, o, o, x x中中之之一一组成。组成。 普通字符:需原样输入的字符普通字符:需原样输入的字符 转义字符:转义字符: n, t n,

31、 t 用来实现换行和制表输入用来实现换行和制表输入 (2)(2)地址表列:地址表列: 变变量量名名前前加加& &,表表示示将将输输入入的的数数据据存存入入变变量量所所指指定定的的存存储储单元内,字符数组前不加单元内,字符数组前不加& &5.2 scanf :格式输入函数 main( )main( ) intint a,b,c a,b,c; scanfscanf (“%d%d%d”, (“%d%d%d”,&a, &b,&c&a, &b,&c) ); printfprintf (“a=%d, b=%d, c=%dn”, a, b, c) (“a=%d, b=%d, c=%dn”, a, b, c)

32、; 输入方法:输入方法: 3_4_5 3_4_5 3_ _4_ _ _ _5 3_ _4_ _ _ _5 3 3 4 4 5 5 3 3 TabTab 4 4 TabTab 5 5 输输出出: :a=3,b=4,c=5 a=3,b=4,c=5 常常见问题见问题:scanfscanf (“%d,%d,%d”, (“%d,%d,%d”,&a,&b,&c&a,&b,&c) ); 2 2、格式说明格式说明 以以% %开开始始,以以一一个个格格式式符符(d, d, f, f, e(E), e(E), g(G),c, g(G),c, s, s, o, o, x(X)x(X))结束,中间可插普通字符。结束,

33、中间可插普通字符。 附加格式说明符有:附加格式说明符有: % %ld, ld, %lo, %lo, %lx %lx : :用用于于输输入入长长整整型型数数据据(十十、八八、十十六六进进制制数)数) % %lf, %le :lf, %le :用于输入双精度类型数据用于输入双精度类型数据 % %hdhd, %ho, %, %ho, %hxhx : :用于输入十、八、十六进制短整型数据用于输入十、八、十六进制短整型数据 域宽域宽n :n :指出输入数据所占的列数指出输入数据所占的列数n n。 * : * :本本输输入入项读项读入后不入后不赋给赋给任何任何变变量。量。 (1)(1)指出指出输输入数据所

34、占列数,系入数据所占列数,系统统自自动动按其截取数据。按其截取数据。 main( ) main( ) intint a,b; a,b; scanfscanf (“%3d%3d”,&a,&b); (“%3d%3d”,&a,&b); printfprintf (“a=%d,b=%dn”,a,b); (“a=%d,b=%dn”,a,b); 输入:输入:123456789123456789输输出:出:a=123,b=456 a=123,b=456 (2)(2)字符型数据若指出字符型数据若指出n n位位宽宽度,度,则则只将第一个字符只将第一个字符赋给变赋给变量。量。 main( ) main( ) ch

35、ar char chch; ; scanfscanf (“%3c”,&ch); (“%3c”,&ch); printfprintf (“% (“%cn”,chcn”,ch); ); 输入:输入:abcdabcd输输出:出:a a (3)%(3)%后加后加*, *, 表示跳表示跳过过相相应应数据数据 例例 main( ) main( ) intint a,b; a,b; scanfscanf (“%2d %*3d %2d”,&a,&b); (“%2d %*3d %2d”,&a,&b); printfprintf (“a=%d,b=%dn”,a,b); (“a=%d,b=%dn”,a,b); 输入

36、:输入:12_345_67812_345_678输输出:出:a=12,b=67 a=12,b=67 (4)(4)格式格式说说明中不能明中不能规规定精度,定精度,编译虽编译虽不指出不指出错误错误,但,但结结果果不不对对。 main( ) main( ) float a; float a; scanfscanf (“%6.2f”,&a); (“%6.2f”,&a); printfprintf (“a=%fn”,a); (“a=%fn”,a); TCTC:输入:系统通过,不让输入数据输入:系统通过,不让输入数据 输输出:出:a=0.000000 a=0.000000 (5) (5)o, xo, x格

37、式格式输输入入main ( ) main ( ) intint a,b,c; a,b,c; scanfscanf (“%o%x%c”, &a,&b,&c); (“%o%x%c”, &a,&b,&c); printfprintf (“%d, %d, %dn”,a,b,c); (“%d, %d, %dn”,a,b,c); 输入:输入:12 12 12 12 1 12 2输输出:出:1010,1818,4949 3 3、使用使用sacnfsacnf 函数应注意的问题函数应注意的问题 (1)(1)、sacnfsacnf()()中的中的变变量必量必须须使用地址。使用地址。intint a, b; a,

38、b;scanf(%d,%d,a,bscanf(%d,%d,a,b););scanf(%d,%d,&a,&bscanf(%d,%d,&a,&b););(2)(2)、scanf()scanf()的的“格格式式控控制制中中”,可可以以使使用用其其它它字字符符,但但在输入时必须输入这些相同的字符。在输入时必须输入这些相同的字符。 scanf(%dscanf(%d, ,%d,&a,&b%d,&a,&b););输入:输入: 3 3,4 4 (逗号与(逗号与%d,%dd,%d中的逗号对应)中的逗号对应) scanf(%d%d,&a,&bscanf(%d%d,&a,&b);); 输入:输入:34 34 (两个

39、或以上空格)(两个或以上空格) scanf(%dscanf(%d:%d%d:%d%d,&h&h, &m, &s);, &m, &s); 输入:输入: 12 12:2323:36 36 (与格式控制中的冒号对应)(与格式控制中的冒号对应) scanf(ascanf(a=%d,b=%d,c=%d,&a,&b,&c);=%d,b=%d,c=%d,&a,&b,&c); 输输入入:a=12,b=24,c=36 a=12,b=24,c=36 (a=,b=,c=a=,b=,c=及及逗逗号号与与格格式式控控制制相对应)相对应)在用在用%cc输输入入时时,空格和,空格和“转义转义字符字符”均作均作为为有效字符。

40、有效字符。例、例、 scanf(%c%c%c,&c1,&c2,&c3); scanf(%c%c%c,&c1,&c2,&c3); 输入:输入:abcabc 结果:结果:ac1ac1,c2c2,bc3 (bc3 (其余被丢弃其余被丢弃) )(4)(4)、输输入数据入数据时时,遇以下情况,遇以下情况结结束一个数据束一个数据的的输输入:(不入:(不是是结结束束该该scanfscanf函数,函数,scanfscanf函数函数仅仅在每一个数据域均有在每一个数据域均有数据,并按回数据,并按回车车后后结结束)。束)。 遇空格、遇空格、“回回车车”、“跳格跳格”键键。 遇遇宽宽度度结结束。束。 遇非法输入。遇非

41、法输入。 六、程序举例 例例 输输入三角形的三入三角形的三边长边长,计计算其面算其面积积。设设三三边长边长a a、b b、c c,面面积积areaarea的算法是:的算法是:求平方根函数求平方根函数sqrtsqrt()()在在math.hmath.h中定中定义义。求平方根函数求平方根函数sqrtsqrt()()在在math.hmath.h中定义。中定义。运行情况如下:运行情况如下:3,4,6 a=3.00,b=4.00,c=6.00area=5.33 # #include math.hinclude math.hmain()main() float a,b,c,s,area;float a,b

42、,c,s,area;scanf(%f,%f,%f,&a,&b,&cscanf(%f,%f,%f,&a,&b,&c););s = 1.0/2*(a+b+c);s = 1.0/2*(a+b+c);area = area = sqrt(ssqrt(s*(s-a)*(s-b)*(s-c);*(s-a)*(s-b)*(s-c);printf(aprintf(a=7.2f, b=%7.2f, c=%7.2fn,a,b,c);=7.2f, b=%7.2f, c=%7.2fn,a,b,c);printf(areaprintf(area = %7.2fn,area); = %7.2fn,area); #incl

43、ude#includemain()floata,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(nnx1=%5.2fnx2=%5.2fn,x1,x2); 例例 分分析析:华华氏氏温温度度( (F)F)与与摄摄氏氏温温度度( (c)c)之之间间的的关关系系由由公式:公式:c c5/9(F-32)5/9(F-32)确定确定. .分析:分析:所需的变量:华氏温度所需的变量:华氏温度f f 数据类型:数据类型:float

44、 f;float f; 摄氏温度摄氏温度c c 数据类型:数据类型:float c;float c; 表达式:表达式: c=5/9*(f-32)c=5/9*(f-32) 程序执行过程:程序执行过程: 1 1、输入、输入f f 2 2、计算计算c c 3 3、输出输出c c由此不难直接写出以下程序:由此不难直接写出以下程序:main()main() float f float f,c;c; Printf(”FahrenheitPrintf(”Fahrenheit temperature temperature: nfnf=)=) scanf(%fscanf(%f,f f) ); c c(5.0/

45、9.0)*(f(5.0/9.0)*(f一一32);32); printf(Celsiusprintf(Celsius trmperature:ntrmperature:n c=%.2fn,c);c=%.2fn,c); 运行结果;运行结果; FanrenhettFanrenhett temperature: temperature: f f98.598.5 Celsius temperature Celsius temperature: C C363694 94 例例 输出两个整型变量交换前后的值。输出两个整型变量交换前后的值。分析:分析: 所需的变量:整型变量所需的变量:整型变量a a int

46、int a a 整型变量整型变量b b intint b b 中间变量中间变量temp temp intint temp temp / /用来两个值交换时作临时保存用用来两个值交换时作临时保存用 算法:算法:1 1、先把、先把a a的值保存到的值保存到: : temp=atemp=a2 2、把把b b的值赋给的值赋给a : a=b;a : a=b;3 3、把把temptemp中保存的中保存的a a值给值给b: b=temp;b: b=temp;main()main() intint a,b; a,b; scanf(%d,%d,&a,&bscanf(%d,%d,&a,&b);); printf(

47、origenalprintf(origenal number:n a=%d,b=%dn,a,b) number:n a=%d,b=%dn,a,b); intint temp; temp; temp=a; temp=a; a=b; a=b; b=temp; b=temp; printf(swappedprintf(swapped numbers:n a=%d numbers:n a=%d,b=%dn”,a,b);b=%dn”,a,b);/*/*printf(tempprintf(temp numbers:n temp=%dn,temp) numbers:n temp=%dn,temp);*/*/ 运行结果:运行结果: 3 35 5 origenalorigenal numbers numbers: a a3 3, b b5 5 swapped swapped numbebersnumbebers: : a a5 5、b b3 3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号