c语言课件(第三版)-第四章.ppt

上传人(卖家):三亚风情 文档编号:2688479 上传时间:2022-05-18 格式:PPT 页数:47 大小:332KB
下载 相关 举报
c语言课件(第三版)-第四章.ppt_第1页
第1页 / 共47页
c语言课件(第三版)-第四章.ppt_第2页
第2页 / 共47页
c语言课件(第三版)-第四章.ppt_第3页
第3页 / 共47页
c语言课件(第三版)-第四章.ppt_第4页
第4页 / 共47页
c语言课件(第三版)-第四章.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、第四章第四章 最简单的最简单的C程序设计程序设计顺序程序设计顺序程序设计4.1 C语句概述语句概述一、一、C程序结构程序结构C程序程序源程序文件源程序文件1源程序文件源程序文件2源程序文件源程序文件n 预处理命令预处理命令全局变量声明全局变量声明函数函数1函数函数n 函数首部函数首部函数体函数体局部变量声明局部变量声明执行语句执行语句二、二、C语句概述语句概述C语句分类语句分类: 1.控制语句控制语句 2.函数调用语句函数调用语句 3.表达式语句表达式语句 4.空语句空语句 5.复合语句复合语句 一条完整的C语句必须以“;”结束。 “;”是一个语句不可缺少的一部分。1. 控制语句:控制语句:完

2、成一定的控制功能。完成一定的控制功能。C 有9种控制语句: if( ) else (条件语句) for( ) (循环语句) while( ) (循环语句) do while( ) (循环语句) continue (结束本次循环语句) break (中止执行switch或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句)2. 函数调用语句函数调用语句 由一次函数调用加一个“ ; ”构成。 如:printf(“Hello World!”) ; 函数调用分号3. 表达式语句表达式语句 由表达式加上“ ; ”构成。如:x+4*y; 算术表达式语句 4

3、*7,4+8; 逗号表达式语句 x=4*7; 赋值表达式语句(赋值语句)4. 空语句空语句 由一个 “ ; ”构成。 即: ;作用:程序转向点; 什么也不做的循环体。 whiel(ix2) y=x1*x1+x2 ; printf(y=%d,y) ; 不能省略不能加“;”4. 空语句空语句 由一个 “ ; ”构成。 即: ;作用:程序转向点; 什么也不做的循环体(待开发)。5. 复合语句复合语句 用 括起的一组语句 。 复合语句中的每一个语句还可以是复合语句; 复合语句尽管可由多个语句组合,但它只相当于一个语句,在任何单一语句可以存在的地方,复合语句都可以存在。4.2 赋值语句赋值语句 赋值表达

4、式和赋值语句不同,赋值表达式可以被包含在其它表达式之中。 如: if (a=b)0) t=a; 其执行过程是:先进行赋值运算(将b的值赋给a),然后判断a是否大于0,如大于0,执行t=a。 如果写成: if (a=b ; )0) t=a;错了。在if的条件中不能包含赋值语句 C语言中的赋值号“=”是一个运算符。 注意:4.3 数据输入输出的概念及在语言中的实现数据输入输出的概念及在语言中的实现一一、数据输入输出的概念数据输入输出的概念计算机的输入输出是以计算机主机为主体而言。输入:从外部通过输入设备(如,键盘、磁盘 、光盘、扫描仪等)向计算机输入数据。输出:从计算机向外部设备(如,显示屏、打

5、印机、磁盘等)输出数据。二、二、数据输入输出在语言中的实现数据输入输出在语言中的实现调用调用输入输出函数输入输出函数实现输入输出操作实现输入输出操作 语言本身不提供输入输出语句,输入和输出操作是通过调用语言库函数中输入输出函数来实现的。如:putchar函数输出字符getchar函数输入字符printf函数 格式输出scanf函数 格式输入 puts 函数 输出字符串 gets 函数 输入字符串1、C语言库函数已被编译成目标文件(二进制形式)2、源程序必须先编译编译成目标文件。 源程序中的输入输出函数等库函数,在编译时并不被 翻译成目标指令。3、生成好的目标文件(.OBJ)必须与与系统的函数库

6、(以及其他的目标文件)进行连接连接,形成可执行文件(EXE)4、运行运行EXE文件时,调用已被连接的函数库中的系统函数。main() int a,b; a=10;b=20; printf(“a=%d,b=%d”,a,b);printf()的目标代码系统函数库系统函数库.2文件开头应有文件开头应有“#include”命令命令 在调用标准输入输出库函数时,文件开头应有预编译命令: #include 或 #include “stdio.h” 其中,stdio.h是“头文件”,包含了与用到的标准输入输出函数有关的信息。 系统允许在使用 printf 和 scanf 两个函数时可不加“#include”

7、命令。4.4 字符数据的输入与输出字符数据的输入与输出一、一、putchar 函数(字符输出函数)函数(字符输出函数)一般格式:putchar(c)必须有预编译命令 #include 功能 从终端输出一个字符一个字符, 且转换成ascii 码返回。说明:其中c可以是字符型常量、字符型变量、 整型常量、整型变量表达式。一、一、putchar 函数(字符输出函数)函数(字符输出函数)例:例:#include main() char a,b,c; a=B; b=O; c=Y; putchar(a);putchar(b);putchar(c); putchar();输出结果输出结果: BOY一般格式:

8、 getchar() 没有参数没有参数必须有预编译命令 #include 功能 从终端输入一个字符。#include”stdio.h” main() char c; c=getchar(); putchar(c); a例:a二、二、getchar函数函数(字符输入函数字符输入函数)4.5 格式输入输出函数格式输入输出函数printf();scanf();格式字符说 明d,i用来输入有符号的十进制整数u用来输入无符号的十进制整数o用来输入无符号的八进制整数x,X用来输入无符号的十六进制整数c用来输入单个字符s用来输入字符串f用来输入实数(小数或指数)e,E,g,G与f作用相同,e与f,g可以互相

9、替换4.5 .1 printf 函数(格式输出函数)函数(格式输出函数)功能:向终端输出若干个任意类型的数据。功能:向终端输出若干个任意类型的数据。(一一)printf函数的一般格式函数的一般格式printf(格式控制,输出表列)(格式控制,输出表列)举例:举例:main( ) int a=3,b=4; printf(“a=%d b=%dn ”, a, b );输出结果输出结果: a=3 b=4格式说明格式说明(格式字符格式字符)普通字符普通字符输出表列输出表列转义字符转义字符main()char c1=a,c2=b,c3=c,c4=101,c5=116; printf(“a%c b%ctc%

10、ctabcn”,c1,c2,c3); printf(“tb%c %c”,c4,c5);aabbccabcA Nprintf(格式控制,输出表列)1.1.格式说明格式说明, ,由由“%”%”和格式字符组成和格式字符组成, ,如如%d,%f%d,%f等。等。 说明:说明:“输出表列输出表列”是需要输出的一些数据是需要输出的一些数据(变量、表变量、表 达式达式)。“格式控制格式控制”是用双引号括起来的字符是用双引号括起来的字符 也称也称 “转换控制字符串转换控制字符串”,它包括三种信息:,它包括三种信息:3.3.转义字符转义字符, ,将将 后面的字符转换成另外的意义后面的字符转换成另外的意义P48P

11、48表表2.2.普通字符普通字符, ,即需要原样输出的字符。即需要原样输出的字符。(二二) 格式字符格式字符 对不同类型的数据用不同的格式字符。对不同类型的数据用不同的格式字符。1. d格式符格式符 用来输出十进制整数。用来输出十进制整数。(1)%d :按整型数据的实际长度输出。:按整型数据的实际长度输出。如:如:int a=123; printf(“%d”,a); 结果:结果:123(二二) 格式函数格式函数 对不同类型的数据用不同的格式字符。对不同类型的数据用不同的格式字符。1. d格式符格式符 用来输出十进制整数。用来输出十进制整数。(2)%md:m为指定的输出字段的宽度。若数据为指定的

12、输出字段的宽度。若数据 位数小于位数小于m,则,则左端左端补以空格补以空格;若大于若大于 m,则按实际位数输出。,则按实际位数输出。如:如:int a=123, b=12345; printf(“%4d,%4d”,a,b); 结果:结果:123 ,12345 (二二) 格式函数格式函数 对不同类型的数据用不同的格式字符。对不同类型的数据用不同的格式字符。1. d格式符格式符 用来输出十进制整数。用来输出十进制整数。(3)%ld:输出长整型数据。也可以对长整型数:输出长整型数据。也可以对长整型数 据指定字段宽度。据指定字段宽度。如:如:long a=1234567; printf(“%ld,%8

13、ld,%5ld”,a,a,a); 结果:结果:1234567, 1234567,1234567 2. o格式符格式符以以8进制数形式输出整数进制数形式输出整数. 输出的数值不带符号输出的数值不带符号,即将符号也一起作为八即将符号也一起作为八进制数的一部分输出。进制数的一部分输出。 如:如:int a=-1; printf(“%d,%o”,a,a); 结果:结果:-1,177777 o格式符同d格式符一样,可以输出长整型数据,也可以指定字段宽度。1 111 111 111 111 1113. x格式符格式符以以16进制数形式输出整数。进制数形式输出整数。同样不会出现负的十六进制数。同样不会出现负

14、的十六进制数。4. u格式符格式符以十进制形式输出以十进制形式输出unsigned型数据型数据如:如: main() unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b);输出结果:输出结果: a=-1,177777,ffff,65535 b=-2,177776,fffe,655345. C格式符格式符用来输出一个字符。用来输出一个字符。 一个整数一个整数,只要它的值在只要它的值在0255范围内,也范围内,也可以用字符形式输出,在输出前可以用字符形式输

15、出,在输出前,将该整数转换将该整数转换成相应的成相应的ASCII字符;反之,一个字符数据也字符;反之,一个字符数据也可以用整数形式输出。可以用整数形式输出。如:如:main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i); 输出结果:输出结果: a,97 a,976. s格式符格式符用来输出一个字符串。用来输出一个字符串。 (1) %s :按原长度输出字符串。:按原长度输出字符串。 如:如: printf(“%s”,“CHINA”) 输出结果:输出结果:CHINA(2) %ms :输出的字符串占:输出的字符串占m

16、列,如字符串本列,如字符串本 身长度大于身长度大于m,则突破,则突破m的限制,将字符串的限制,将字符串 全部输出,若串长小于全部输出,若串长小于m,则,则左补空格左补空格。(3) %ms :如果串长小于:如果串长小于m,则在,则在m列范围内列范围内 ,字符串向左靠,字符串向左靠,右补空格右补空格。(4) %m.ns :输出占:输出占m列,但只取字符串中左端列,但只取字符串中左端 n个字符。输出在列的右侧,个字符。输出在列的右侧,左补空格左补空格。如。如 果果nm,则自动取值,即保证个字符正常输出。则自动取值,即保证个字符正常输出。(5) %m.ns , 其中其中m、n含义同上,含义同上,n个字

17、符输出个字符输出 在在m列范围的左侧,列范围的左侧,右补空格右补空格。如:printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA” ,“CHINA”, “CHINA”); 输出结果:CHINA, CH,CHIN, CHI 7. f格式符格式符以小数形式输出实数。以小数形式输出实数。 (1) %f :不指定字段宽度:不指定字段宽度,由系统自动指定,由系统自动指定, 使整数部分全部如数输出,并输出使整数部分全部如数输出,并输出6位小数位小数。 注意注意float型和型和double型数据的有效位数,型数据的有效位数, 如:float x=123456.12

18、3; printf(“%f”,x); 输出结果:123456.125000main() double x,y; x=1111111111111.111111111; y=1111111111111.111111111; printf(“%f”,x+y);2222222222222.222170(2) %m.nf :指定输出的数据共占:指定输出的数据共占m列列,其中有其中有n 位小数。若数据长度小于位小数。若数据长度小于m,则左端补空格。,则左端补空格。(3)%m.nf : 与与%m.nf 基本相同,只是使输出基本相同,只是使输出 的数值向左端靠,右端补空格。的数值向左端靠,右端补空格。如:fl

19、oat f=123.456; printf(“%10.2f ,%-10.2f”,f); 输出结果: 123.46,123.468. e格式格式以指数形式输出实数。以指数形式输出实数。 (1) %e如: printf(“%e”,123.456); 输出结果: 1.234560e+002 6位3位一般共占一般共占13列宽度列宽度(2) % m.ne和和 %m.ne: m、n和和“”字符含义字符含义与与 前相同。此处前相同。此处n指数据的数字部分指数据的数字部分(又称尾数又称尾数) 的小数位数。的小数位数。 9. g格式符格式符用来输出实数用来输出实数,它根据数值的大它根据数值的大 小小,自动选自动

20、选f格式或格式或e格式格式(选择输出时占宽度较选择输出时占宽度较 小的一种小的一种),且不输出无意义的零。,且不输出无意义的零。如:f=123.468; printf(“%f , %e , %g”, f , f, f);输出如下输出如下:123.468000 , 1.234680e+002 , 123.46810列13列如:f=123.468; printf(“%f , %e , %g”, f , f, f);输出如下输出如下:123.468000 , 1.234680e+002 , 123.46810列二、二、scanf 函数(格式输入函数)函数(格式输入函数)(一一)scanf(格式控制,

21、地址表列)(格式控制,地址表列)1015main() int a,b,c; scanf(“%d,%d”,&a,&b); printf(“a=%d,b=%d”,a,b);输入:输入:10,15输出:输出:a=10,b=15ab如:如:int a,b,c; scanf(“%d%d%d”,&a,&b,&c);输入形式:输入形式:10 17 181 int a,b,c; scanf(“%d,%d,%dn”,&a,&b,&c);输入形式:输入形式: 10,11,12 scanf(“%3d%3d%c”,&a,&b,&ch); 输入形式:输入形式:123456abc 结果:结果:a=123 b=456 ch

22、=ascanf(“%d%d%c”,&a,&b,&ch); 输入形式:输入形式:123 456abc 结果:结果:a=123 b=456 ch=amain() char c1,c2; scanf(“c1=%c,c2=%c”,&c1,&c2); printf(“%c%c”,c1,c2);输入数据:c1=a,c2=b 输出数据:abmain() int x,y,z; char ch; scanf(“%7.2d%d%d%c”,x,y,z,ch); main() int x,y; scanf(“%5d,%3d”,&x,&y);输入数据: 345,567 有错吗? 说明说明:1. %后的后的“*”附加说明

23、符,用来表示跳过它相应的数据。附加说明符,用来表示跳过它相应的数据。如:如:scanf(“%2d ,%*3d , %2d”,&a,&b); 输入:输入:12 , 456 , 67 结果:结果:a=12 b=67 2. 输入数据时不能规定精度。输入数据时不能规定精度。 Scanf(“%7.2f”,&a);3、scanf(“a=%d, b=%d”,&a,&b); 输入:输入:a=12,b=134、scanf(“%c%c%c”,&a,&b,&c); 输入:输入:a b c 空格和转义字符都作为有效字符输入空格和转义字符都作为有效字符输入main() int a,b; float x,y; char

24、c1,c2; scanf(“a=%d b=%d”,&a,&b); scanf(“ %f %e”,&x,&y); scanf(“ %c %c”,&c1,&c2); printf(“%d,%d,%f,%f,%c,%c”,a,b,x,y,c1,c2);输入数据:a=10 b=20 10 10 a b输出数据:10,20,10.00000,20.00000,a,b输入方式2:a=10 b=20 10 20 a b main() int a,b; float x,y; char c1,c2; scanf(“a=%d b=%d”,&a,&b); scanf(“x=%f y=%e”,&x,&y); scan

25、f(“c1=%c c2=%c”,&c1,&c2); printf(“%d,%d,%f,%f,%c,%c”,a,b,x,y,c1,c2);输入数据:a=10 b=20 x=10 y=10c1=a c2=b输出数据:10,20,10.00000,20.00000,a,b4.6 顺序结构程序设计顺序结构程序设计 (顺序结构) (选择结构) (循环结构)二、顺序结构程序设计二、顺序结构程序设计特点特点:程序按语句从上到下的排列顺序依此执程序按语句从上到下的排列顺序依此执 行,每条语句必须执行且只能执行一次,行,每条语句必须执行且只能执行一次, 没有执行不到或执行多次的语句。没有执行不到或执行多次的语句

26、。例如:例如:已知圆柱体半径已知圆柱体半径6 6米,高米,高7 7米,求体积。米,求体积。#define PI 3.14159main( ) float r , h , s , v ; r=6 ; h=7 ; s=PI*r*r ; v=s*h ; printf(“V=%fn”, v);例4.10 输入三角形的三条边,求三角形的面积。输入三角形的三条边,求三角形的面积。分析:已知三角形的三条边 a,b,c。 求解三角形的面积area。 计算公式设 s=(a+b+c)/2 area=)(*)(*)(*csbsass开始开始给给a,b,ca,b,c赋值赋值计算计算s=(a+b+c)/2s=(a+b+

27、c)/2计算计算area=area=)(*)(*)(*csbsass结果输出结果输出结束结束#include main() float a,b,c,s,area; scanf(“%f%f%f”,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%f b=%f c=%f s=%f”,a,b,c,s); printf(“area=%f”,area);例例4.11 从键盘输入一个大写字母,要求改用小写从键盘输入一个大写字母,要求改用小写 字母输出。字母输出。分析:已知字符变量c1为大写字母。 求解将字符变量c2中放入

28、相应的小写字母。 计算公式c2=c1+32 (小写改成大写字母?)开始开始计算计算c2=c1+32c2=c1+32输出输出c1结束结束输入一大写字母输入一大写字母放入放入c1中中输出输出c2#include main() char c1,c2; c1=getchar(); /*键盘输入一个大写字母*/ printf(“%c,%dn”,c1,c1); c2=c1+32; printf(“%c,%dn”,c2,c2);输入输入:A 输出输出:A,65 a,97 例例4.12 求求ax2+bx+c=0的根,的根,a,b,c由键盘输入,由键盘输入, 设设 b2-4ac0#include main()

29、float a,b,c,disc,x1,x2,p,q; scanf(%f%f%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(”x1=%f x2=%f,x1,x2);运行情况:a=1,b=3,c=2x1=-1.000000 x2=-2.000000本章作业: 一、一、 笔答题笔答题 :本章习题的:本章习题的4 .2、4.5、4.8二、二、 上机操作题:上机操作题: 1. 熟悉熟悉tc 的操作方法的操作方法 2. 熟悉各种类型的输入输出的方法,能熟悉各种类型的输入输出的方法,能正确使用各种格式转换符。正确使用各种格式转换符。 3. 将习题将习题 4.8 的程序编写出来并在计算的程序编写出来并在计算 机上调试通过。机上调试通过。

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(c语言课件(第三版)-第四章.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|