C语言程序设计课件_第1页
C语言程序设计课件_第2页
C语言程序设计课件_第3页
C语言程序设计课件_第4页
C语言程序设计课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1、一、C语句概述 牛牛文库文档分享第1页,共52页。 牛牛文库文档分享第2页,共52页。案例 已知圆半径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、长、面积*/ 预处理命令全局变量函数 牛牛文库文档分享第3页,共52页。C语言提供的语句分五大类: (1)控制语句,完成控制功能if( ) else 条件 for ( ) 循环 while ( ) 循环 do while ( ) 循环 continue 结束本次循环 break 中止switch 或循环 switch 多分支选择 goto 转向 return 从函数返回 牛牛文库文档分享第4页,共52页。(2)函数调用语句 函数名(参数); 如:printf (“This is a C program.n”); max(a,b); (3)表达式语句 在表达式后加 “ ;” 构成 a=6 a=5

3、 ; 如 i=i+2 是表达式 而 i=i+2; 是表达式语句 x+y x+y ; 牛牛文库文档分享第5页,共52页。(4)空语句 ; 无任何操作,但合法,可用于循环中的转折(5)复合语句 用 将若干语句括起来而构成的语句。 如:if (xy) 与 if (xy) 意义不同 z=x; z=x; x+; x+; y-; y-; 牛牛文库文档分享第6页,共52页。二、赋值语句 牛牛文库文档分享第7页,共52页。由赋值表达式与 “;” 组成。 形式:变量=表达式; 功能:计算表达式的值,然后赋给左边的变量。 说明: 1.赋值号与数学上的等号意义不同,如 x=x+2; 2.在C语言中,赋值号作为赋值运

4、算符使用,具有计算的功能。 3.赋值表达式可以包含在其它表达式之中。 如:if ( (a=b) 0) t=a ; 但赋值语句不能包含在条件表达式中,如: if (a=b;)0) t=a ; 牛牛文库文档分享第8页,共52页。三、数据输入输出 牛牛文库文档分享第9页,共52页。(1)输入输出:相对主机而言的 输入设备:键盘、扫描仪、磁盘、光盘等 输出设备:显示器、打印机、磁盘等。 (2)本身不提供I/O语句: I/O操作通过函数实现,标准函数库中提供了一些I/O函数,如printf,scanf等,它们不是的关键字,而是函数名。 好处是:使编译系统简化、通用性强、可移植性好。C函数库提供的一些标准

5、/ 函数是以终端设备为I/O对象的,如:putchar, getchar, printf, scanf, puts, gets。 牛牛文库文档分享第10页,共52页。(3)使用库函数时:用预编译命令#include将有关头文件包含到用户源文件中,在头文件中包含了与用到的函数有关的信息,如使用输入输出函数时要用到stdio.h文件。#include放在程序开头如#include “stdio.h” 或#include 注意:区别#include语句中用和的区别。 牛牛文库文档分享第11页,共52页。(2)本身不提供I/O语句: I/O操作通过函数实现,标准函数库中提供了一些I/O函数,如prin

6、tf,scanf等,它们不是的关键字,而是函数名。 好处是:使编译系统简化、通用性强、可移植性好。C函数库提供的一些标准/ 函数是以终端设备为I/O对象的,如:putchar, getchar, printf, scanf, puts, gets。 牛牛文库文档分享第12页,共52页。四、字符数据的输入输出 牛牛文库文档分享第13页,共52页。功能:向输出设备输出一个字符。 形式:putchar(参数) 其中,参数可以是整型或字符型变量或常量。例如:putchar(97) ; putchar(a) ; 都输出字符 a, char c= b ; putchar ( c ) ;输出字符 b。 注意

7、:在C语言中,除printf 和 scanf 两个函数外,使用其它I/O函数时,都必须在源文件的开始处加上预编译命令:#include “stdio.h” 意义:将标准I/O函数库中的函数包含到所在文件中来 4.1、putchar(字符输出函数) 牛牛文库文档分享第14页,共52页。#include main( ) char a,b,c; a=B;b=O;c=Y; putchar(a); putchar(b); putchar (c); 运行结果:BOY 若无文件包含编译预处理,在编译连接时系统将指出: Linking Error:Undefine symbol _putchar in mod

8、uel XXX.c 牛牛文库文档分享第15页,共52页。另:putchar( )函数还可以输出控制字符 如:n 或012 a或 007 r 或 015 换行 响铃 回车#include “stdio.h”main( ) char a=A,b=B,c=007; putchar(a); putchar(b); putchar(n); putchar(c); sleep(3); putchar(c); putchar(65);putchar(66);putchar(007); sleep(3); putchar(007); 运行结果: AB 响 延时3秒 响 AB 响 延时3秒 响 牛牛文库文档分享

9、第16页,共52页。功能:从键盘输入一个字符 形式:getchar( ) 特点:无参数,其值是从输入设备得到的字符。#include “stdio.h”main( ) char c; c=getchar(); putchar(c); putchar(getchar(); printf(“%cn”,getchar( ); 输入:abc 输出:abc 如果一个一个输入呢?换行符 4.2 getchar函数 牛牛文库文档分享第17页,共52页。五、格式输入与输出 牛牛文库文档分享第18页,共52页。功能:向输出设备输出若干个任意类型的数据 1、printf 函数的一般格式 printf (格式控制,

10、输出表列) (1)格式控制:由双引号括起来的一串字符(格式说明和普通字符)。 格式说明:由%和格式字符(c,d,u,f,e,o,x,s,g)组成。 普通字符:需要原样输出的字符。(2)输出表列:需要桉格式说明所指定的格式输出的数据,可以是常量、变量、表达式。 格式控制 一般形式:printf(参数1,参数2,参数n) 将参数2n按参数1的格式输出。中间由逗号隔开。 5.1 printf 格式输出函数 牛牛文库文档分享第19页,共52页。 牛牛文库文档分享第20页,共52页。2、格式字符(1)d 格式符:输出十进制整数 %d:按十进制数据的实际长度输出。 %md :m为指定输出字段的宽度。 m时

11、 按数据的实际位数输出。main( ) int a=123,b=12345; printf (“a=%4d,b=%4dn”,a,b); 运行结果:a=_123,b=12345 牛牛文库文档分享第21页,共52页。%ld:输出长整型数据 对于长整型数据只能按长整型的格式说明符输出, 否则,输出的数据有误。 在长整型格式说明中,还可指出其输出宽度. main( ) long a=134579; printf (“a=%dn”, a); 结果:a=3507 牛牛文库文档分享第22页,共52页。(2)o格式符,输出八进制数 特点:无论是正是负,输出的都是不带符号的数 (3)x格式符,输出十六进制数 特

12、点:无论数据是正是负,输出的都是不带符号的数 (4)u格式符,输出无符号数据 无符号类型的数据可用%d,%u,%o,%x 格式输出。 带符号的char 和 int 整型数据可用%u格式输出。 单、双精度实型数据用%u格式输出时,则得到错误的结果。 如果实际值的范围超出格式的范围,输出结果不正确。 牛牛文库文档分享第23页,共52页。(5)C格式符,输出一个字符 字符型数据:占一个字节,数据表示范围:0255 例 main() char c= a; int i=97,j=355,k=232; printf (%c,%c,%c,%cn”,c,i,j,k); printf (%d,%d,%d,%dn

13、”,c,i,j,k); 输出结果: a,a,c, 97,97,355,232对于整型数据,若用字符格式输出,由于整型数据占两个字节,如果整型数据的值在0255之间时,则输出对应的字符,若其值在25632767之间时,则截取其低8位部分,然后输出对应的字符. 牛牛文库文档分享第24页,共52页。(6)S格式符,用来输出一个字符串,有几种方法%s: 按实际长度输出字符串。 %ms:m为列宽 当串长m时,按实际长度输出 当串长m时,按串实际长度输出, 当串长m时,m自动取n值, m只能是整常量,而不能是变量或表达式。 牛牛文库文档分享第25页,共52页。main( ) printf (“%3s,%7

14、.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA” ); 运行结果: CHINA, _ _ _ _ _CH, CHIN,CHI_ _ 牛牛文库文档分享第26页,共52页。(7) f格式符:输出单、双精度实数 %f:单精度浮点输出,有效位7位,通常小数点后有6位数字。 %lf:双精度浮点输出,有效位16位,通常小数点后有6位数字。 牛牛文库文档分享第27页,共52页。例,输出双精度有效位main( ) float x1,y1;double x2,y2; x1=1111111111111.111111111; y1=2222222222222

15、.222222222; x2=1111111111111.111111111; y2=2222222222222.222222222; printf (“x1+y1=%fnx2+y2=%lfn”,x1+y1,x2+y2); 运行结果: x1+y1=3333333319680.000000 x2+y2=3333333333333.333010 牛牛文库文档分享第28页,共52页。 %m. nf :输出数据共占m列,其中小数占n位,当数据长度m时,左补空格。 %-m. nf:输出数据占m列,其中小数占n位,当数据长度m时,右补空格。main( ) float f=123.456; printf (

16、“%f,_ _%10f_ _%10.2f_ _% .2f_ _ %-10.2fn”,f,f,f,f,f); 运行结果: 123.456001,_ _123.456001_ _ _ _ _ _123.46_ _123.46_ _123.46_ _ _ _ 牛牛文库文档分享第29页,共52页。(8)e格式,以指数形式输出实数 %e:小数点前有一位数字,小数点后有5位数字规范化数 float : x. xxxxxexx 形式: double: x.xxxxxexxx %m.ne:m为输出数据的列数,n是小数的位数. m数据长度,数据靠右输出,左端补空格 %-m.ne:m为输出数据的列数,n是小数的位

17、数. m数据长度,数据靠左输出,右端补空格 在Tc中的 n:指在e左边的数字个数,不包括小数点. 在不同的C系统中输出结果可能不同 书中例子指小数位数 牛牛文库文档分享第30页,共52页。(9)g格式符,用来输出实数 根据数据的大小,自动选取e,f 格式中占位数较少的一种格式输出。 (10)print 函数的使用说明: 格式符用小写字母而不能用大写字母,如%d而不是%D。 格式控制的字符串中可包含转义字符,如:n,t, b,r, 377, x41 由%和格式字符d, f, e, g, u, c, s, o, x构成格式输出符号 特殊字符:%和 的输出,如下所示: 牛牛文库文档分享第31页,共5

18、2页。main( ) printf (“ ,%, “n”); printf (“%f% n”,1.0/3); 输出: ,% ,“ 0.333333%定义数据类型与格式符说明要一致,否则将输出错误结果。 牛牛文库文档分享第32页,共52页。1、一般形式 scanf(格式控制,地址表列) (1)格式控制:是字符串,内容有: 格式说明:由%和格式字符 d, f, e, c, s, o, x中之一组成。 普通字符:需原样输入的字符 转义字符: n, t 用来实现换行和制表输入 (2)地址表列: 变量名前加&,表示将输入的数据存入变量所指定的存储单元内,字符数组前不加&5.2 scanf :格式输入函数

19、 牛牛文库文档分享第33页,共52页。main( ) int a,b,c; scanf (“%d%d%d”,&a, &b,&c); printf (“a=%d, b=%d, c=%dn”, a, b, c); 输入方法: 3_4_5 3_ _4_ _ _ _5 3 4 5 3 Tab 4 Tab 5 输出:a=3,b=4,c=5 常见问题:scanf (“%d,%d,%d”,&a,&b,&c); 牛牛文库文档分享第34页,共52页。2、格式说明 以%开始,以一个格式符(d, f, e(E), g(G),c, s, o, x(X))结束,中间可插普通字符。 附加格式说明符有: %ld, %lo,

20、 %lx :用于输入长整型数据(十、八、十六进制数) %lf, %le :用于输入双精度类型数据 %hd, %ho, %hx :用于输入十、八、十六进制短整型数据 域宽n :指出输入数据所占的列数n。 * :本输入项读入后不赋给任何变量。 牛牛文库文档分享第35页,共52页。(1)指出输入数据所占列数,系统自动按其截取数据。 main( ) int a,b; scanf (“%3d%3d”,&a,&b); printf (“a=%d,b=%dn”,a,b); 输入:123456789输出:a=123,b=456 牛牛文库文档分享第36页,共52页。(2)字符型数据若指出n位宽度,则只将第一个字

21、符赋给变量。 main( ) char ch; scanf (“%3c”,&ch); printf (“%cn”,ch); 输入:abcd输出:a 牛牛文库文档分享第37页,共52页。(3)%后加*, 表示跳过相应数据 例 main( ) int a,b; scanf (“%2d %*3d %2d”,&a,&b); printf (“a=%d,b=%dn”,a,b); 输入:12_345_678输出:a=12,b=67 牛牛文库文档分享第38页,共52页。(4)格式说明中不能规定精度,编译虽不指出错误,但结果不对。 main( ) float a; scanf (“%6.2f”,&a); pr

22、intf (“a=%fn”,a); TC:输入:系统通过,不让输入数据 输出:a=0.000000 牛牛文库文档分享第39页,共52页。 (5)o, x格式输入main ( ) int a,b,c; scanf (“%o%x%c”, &a,&b,&c); printf (“%d, %d, %dn”,a,b,c); 输入:12 12 12输出:10,18,49 牛牛文库文档分享第40页,共52页。 3、使用sacnf 函数应注意的问题 (1)、sacnf()中的变量必须使用地址。int a, b;scanf(%d,%d,a,b);scanf(%d,%d,&a,&b);(2)、scanf()的“格

23、式控制中”,可以使用其它字符,但在输入时必须输入这些相同的字符。 scanf(%d,%d,&a,&b);输入: 3,4 (逗号与%d,%d中的逗号对应) 牛牛文库文档分享第41页,共52页。 scanf(%d%d,&a,&b); 输入:34 (两个或以上空格) scanf(%d:%d:%d,&h, &m, &s); 输入: 12:23:36 (与格式控制中的冒号对应) scanf(a=%d,b=%d,c=%d,&a,&b,&c); 输入:a=12,b=24,c=36 (a=,b=,c=及逗号与格式控制相对应)在用%c输入时,空格和“转义字符”均作为有效字符。例、 scanf(%c%c%c,&c

24、1,&c2,&c3); 输入:abc 结果:ac1,c2,bc3 (其余被丢弃) 牛牛文库文档分享第42页,共52页。(4)、输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。 遇空格、“回车”、“跳格”键。 遇宽度结束。 遇非法输入。 牛牛文库文档分享第43页,共52页。六、程序举例 牛牛文库文档分享第44页,共52页。例 输入三角形的三边长,计算其面积。设三边长a、b、c,面积area的算法是:求平方根函数sqrt()在math.h中定义。求平方根函数sqrt()在math.h中定义。运行情况如下:3,4,6a=

25、 3.00, b= 4.00, c=6.00area = 5.33 牛牛文库文档分享第45页,共52页。#include math.hmain()float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s = 1.0/2*(a+b+c);area = sqrt(s*(s-a)*(s-b)*(s-c);printf(a=7.2f, b=%7.2f, c=%7.2fn,a,b,c);printf(area = %7.2fn,area); 牛牛文库文档分享第46页,共52页。#include #include main() float a,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,x

温馨提示

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

评论

0/150

提交评论