C程序设计顺序程序设计.ppt

上传人:wuy****n92 文档编号:70101494 上传时间:2023-01-16 格式:PPT 页数:25 大小:276KB
返回 下载 相关 举报
C程序设计顺序程序设计.ppt_第1页
第1页 / 共25页
C程序设计顺序程序设计.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《C程序设计顺序程序设计.ppt》由会员分享,可在线阅读,更多相关《C程序设计顺序程序设计.ppt(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第3章章 C程序设计程序设计顺序程序设计顺序程序设计3.1 程序的控制结构程序的控制结构算法的基本概念算法的基本概念 程序程序=算法算法+数据结构数据结构+程序设计方法程序设计方法+语言工具和环境语言工具和环境 算法的特性算法的特性有穷性:一个算法应包含有限的操作步骤而不能是无限的。有穷性:一个算法应包含有限的操作步骤而不能是无限的。确定性:算法中每一个步骤应当是确定的,而不能是含糊确定性:算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。的、模棱两可的。有零个或多个输入。有零个或多个输入。有一个或多个输出。有一个或多个输出。有效性:算法中每一个步骤应当能有效地执行,并得到确有效性:

2、算法中每一个步骤应当能有效地执行,并得到确定的结果。定的结果。3.1.3 算法的表示算法的表示1 1 用自然语言表示算法用自然语言表示算法2 2 用流程图表示算法用流程图表示算法 图图3-1 3-1 流程图符号流程图符号【例【例3.13.1】求】求5!5!的算法流程图表示。的算法流程图表示。图图3-2 没有打印功能没有打印功能 图图3-3 带有打印功能带有打印功能【例【例3.23.2】判定闰年的算法用流程图表示。】判定闰年的算法用流程图表示。三种基本结构和改进的流程图三种基本结构和改进的流程图顺序结构:顺序结构:选择结构:选择结构:循环结构循环结构三种基本结构的共同特点:三种基本结构的共同特点

3、:只有一个入口;只有一个入口;只有一个出口;只有一个出口;结构内的每一部分都有机会被执行到;结构内的每一部分都有机会被执行到;结构内不存在结构内不存在“死循环死循环”。用用N-SN-S流程图表示算法流程图表示算法1.1.顺序结构:顺序结构:2.2.选择结构:选择结构:3.3.循环结构:循环结构:用计算机语言表示算法用计算机语言表示算法【例3.3】用C语言求5!。#include void main()int i,t;t=1;i=2;while(i=5)/循环结构,判断下循环条件是否为真 t=t*i;i=i+1;printf(%d,t);3.1.6 结构化程序设计方法结构化程序设计方法结构化程序

4、设计所遵循的原则:结构化程序设计所遵循的原则:自顶向下;自顶向下;逐步细化;逐步细化;模块化设计;模块化设计;结构化编码。结构化编码。3.2 语句概述语句概述图图3-5 3-5 程序的结构图程序的结构图 C C语句可分为以下五类:语句可分为以下五类:表达式语句表达式语句函数调用语句函数调用语句控制语句控制语句复合语句复合语句空语句空语句3.3 3.3 数据输入输出的概念及在数据输入输出的概念及在C C语言中的实现语言中的实现在使用语言库函数时,要用预编译命令在使用语言库函数时,要用预编译命令#include#include将有关将有关“头文件头文件”包括到源文件包括到源文件中。中。使用标准输入

5、输出库函数时要用到使用标准输入输出库函数时要用到“stdio.h”“stdio.h”文件,文件,stdiostdio是是standard standard input and outuptinput and outupt的意思。因此源文件开的意思。因此源文件开头应有以下预编译命令:头应有以下预编译命令:#include#include或或#include“stdio.h”#include“stdio.h”3.4 字符数据的输入与输出字符数据的输入与输出 putchar putchar 函数(字符输出函数)函数(字符输出函数)putchar putchar 函数是字符输出函数,函数是字符输出函数

6、,其功能是在其功能是在显示器上输出单个字符。显示器上输出单个字符。其一般形式为:其一般形式为:putchar(字符型量字符型量)例如:例如:putchar(A);(输出大写字母(输出大写字母A)putchar(x);(输出字符变量(输出字符变量x的值)的值)putchar(101);(也是输出字符(也是输出字符A)putchar(n);(换行)(换行)【例【例3.43.4】输出单个字符。】输出单个字符。#include#includevoid main()void main()char a=G,b=o,c=o,d=d;char a=G,b=o,c=o,d=d;putchar(a);putcha

7、r(b);putchar(c);putchar(a);putchar(b);putchar(c);putchar(d);putchar(d);putchar(t);putchar(t);3.4.2 getchar函数(键盘输入函数)函数(键盘输入函数)getchargetchar函数的功能是从键盘上输入一个字函数的功能是从键盘上输入一个字符。符。其一般形式为:其一般形式为:getchar();【例【例3.5】输入单个字符。】输入单个字符。#includevoid main()char c;printf(input a charactern);c=getchar();putchar(c);put

8、char(getchar();或或printf(“%c”,getchar();3.5 printfprintf函数(格式输出函数)函数(格式输出函数)3.5.1 printf函数调用的一般形式函数调用的一般形式 printfprintf函数是一个标准库函数,它的函数原函数是一个标准库函数,它的函数原型在头文件型在头文件“stdio.h”“stdio.h”中。中。printf(“printf(“格式控制字符串格式控制字符串”,输出表列,输出表列)1.格式控制字符串格式控制字符串%标志标志输出最小宽度输出最小宽度.精度精度长度长度类型类型printfprintf函数调用的一般形式为:函数调用的一般

9、形式为:输出最小宽度输出最小宽度:用十进制整数来表示输出的最少位数。若用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,保证实际位数多于定义的宽度,则按实际位数输出,保证不因为输出而使数据发生截断误差。若实际位数少于不因为输出而使数据发生截断误差。若实际位数少于定义的宽度则按表定义的宽度则按表3-23-2补以空格或补以空格或0 0。精度精度:精度格式符以精度格式符以“.”“.”开头,后跟十进制整数。本项开头,后跟十进制整数。本项的意义是:如果输出数值,则表示小数的位数;如果的意义是:如果输出数值,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数输

10、出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则四舍五入截去超过的部分。大于所定义的精度数,则四舍五入截去超过的部分。长度长度:长度格式符为长度格式符为h,lh,l两种,两种,h h表示按短整型表示按短整型(short)(short)量量输出,输出,l l表示按长整型表示按长整型(long)(long)量输出。量输出。【例【例3.6】输出整数】输出整数#include void main()int a=88,b=89;printf(%4d%4on,a,b);printf(%+4ld,%-4dn,a,b);printf(%+04d,%-04dn,a,b);printf(a=%d

11、,b=%dn,a,b);【例【例3.7】按格式控制字符串要求输出浮点型小数和字符按格式控制字符串要求输出浮点型小数和字符型数据型数据#includevoid main()int a=15;float b=123.1234567f;double c=12345678.1234567;char d=p;printf(a=%d,%5d,%o,%Xn,a,a,a,a);printf(b=%f,%lf,%5.4lf,%en,b,b,b,b);printf(c=%lf,%f,%8.4lfn,c,c,c);printf(d=%c,%8cn,d,d);3.5 使用使用printfprintf函数注意事项函数注

12、意事项(1 1)如果想输出,则应该在)如果想输出,则应该在“格式控制格式控制”字符串中用连字符串中用连续两个表示。续两个表示。(2 2)输出最小宽度输出最小宽度.精度精度 仅用于输出仅用于输出浮点型浮点型小数和小数和字字符串符串时的格式控制。时的格式控制。输出浮点型小数:形如,输出浮点型小数:形如,%-m.nf%-m.nf,f f是一个浮点型是一个浮点型变量,当按此格式输出时,包括小数点共变量,当按此格式输出时,包括小数点共m m列宽(按列宽(按照对齐方式补齐)、取照对齐方式补齐)、取n n位小数;当位小数;当f f的实际宽度大于的实际宽度大于m m时,则按实际宽度输出。时,则按实际宽度输出。

13、输出字符串:形如,输出字符串:形如,%-m.ns,s%-m.ns,s是一个字符串,当按是一个字符串,当按此格式输出时,按照对齐方式用空格补齐此格式输出时,按照对齐方式用空格补齐m m列、取列、取n n个个字符;当字符;当s s的实际宽度大于的实际宽度大于m m时,则按实际宽度输出。时,则按实际宽度输出。(3 3)printf()printf()函数格式控制字符串可以包含转移字符。函数格式控制字符串可以包含转移字符。float f=-3.14587f;float f=-3.14587f;printf(%-10.2f,f);printf(%-10.2f,f);/输出数据占输出数据占1010列宽,取

14、列宽,取2 2位小数,左对齐位小数,左对齐 printf(%5.2f,f);printf(%5.2f,f);/输出数据占输出数据占5 5列宽,取列宽,取2 2位小数位小数 printf(%8.2f,f);printf(%8.2f,f);/输出数据占输出数据占8 8列宽,取列宽,取2 2位小数,右对齐位小数,右对齐 printf(%3.2fn,f);printf(%3.2fn,f);/输出数据占输出数据占3 3列宽,取列宽,取2 2位小数位小数f f的实际的实际 /宽度大于宽度大于3 3时,按实际宽度输出时,按实际宽度输出 printf(%3s,%7.2s,%.4s,%-printf(%3s,%

15、7.2s,%.4s,%-5.3sn,CHINA,CHINA,CHINA,CHINA);5.3sn,CHINA,CHINA,CHINA,CHINA);输出为:输出为:CHINA,CHINA,CH,CHIN,CHICH,CHIN,CHI3.6 scanfscanf函数函数(格式输入函数格式输入函数)scanf函数的一般形式函数的一般形式scanf(“scanf(“格式控制字符串格式控制字符串”,地址地址表列表列););【例【例3.8】scanf函数的使用函数的使用#include void main()int a,b,c;printf(input a,b,cn);scanf(%d%d%d,&a,&

16、b,&c);printf(a=%d,b=%d,c=%d,a,b,c);在在scanfscanf语句的格式串中由于没有非格式字符在语句的格式串中由于没有非格式字符在“%d%d%d”“%d%d%d”之之间作输入时的间隔,因此在输入时要用一个或一个以上的间作输入时的间隔,因此在输入时要用一个或一个以上的空格、回空格、回车键、车键、TabTab键键作为每两个输入数之间的间隔。作为每两个输入数之间的间隔。格式字符串格式字符串%*%*输入数据宽度输入数据宽度长度长度 类型类型类型:表示输入数据的类型,其格式符和意义如下表类型:表示输入数据的类型,其格式符和意义如下表(2)“*”(2)“*”:抑制符,用以表

17、示输入的数据不赋值给相应的变:抑制符,用以表示输入的数据不赋值给相应的变量,即跳过该输入值。量,即跳过该输入值。如如:scanf(%d%*d%d,&a,&b);scanf(%d%*d%d,&a,&b);当输入为:当输入为:1 2 31 2 3时,把时,把1 1赋予赋予a a,2 2被跳过,被跳过,3 3赋予赋予b b。(3)(3)宽度宽度:用十进制整数指定输入的宽度用十进制整数指定输入的宽度(即字符数即字符数),遇空格,遇空格或不可转换字符则结束。或不可转换字符则结束。(4)(4)长度长度:长度格式符为长度格式符为l l和和h h,l l表示输入长整型数据表示输入长整型数据(如如%ld)%ld

18、)和双精度浮点数和双精度浮点数(如如%lf)%lf)。h h表示输入短整型数据。表示输入短整型数据。使用使用scanfscanf函数还必须注意以下几点:函数还必须注意以下几点:(1)scanf(1)scanf函数中没有精度控制,函数中没有精度控制,如:如:scanf(“%5.2f”,&a);scanf(“%5.2f”,&a);是非法的。是非法的。(2)scanf(2)scanf中要求给出变量地址,如给出变量名则会中要求给出变量地址,如给出变量名则会出错。如出错。如 scanf(“%d”,a);scanf(“%d”,a);是非法的,应改为是非法的,应改为 scnaf(%d,&a);scnaf(%

19、d,&a);才是合法的。才是合法的。(3)(3)在输入多个在输入多个数值数值数据时,若格式控制串中没有非数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用格式字符作输入数据之间的间隔则可用空格、空格、TABTAB或或回车符作间隔回车符作间隔。C C编译在碰到空格、编译在碰到空格、TABTAB、回车或非、回车或非法数据法数据(如对如对“%d”“%d”输入输入“12A”“12A”时,时,A A即为非法数据即为非法数据)时时即认为该数据结束。即认为该数据结束。(4)(4)在输入在输入字符字符数据时,特别需要注意数据时,特别需要注意空格符、回车空格符、回车符均作为有效字符使用符均作为有效字

20、符使用。若格式控制串中无非格式。若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。字符,则认为所有输入的字符均为有效字符。【例【例3.63.6】数据的格式化输入输出。输入一学生数据的格式化输入输出。输入一学生的学号(的学号(8 8位数字)、生日(年位数字)、生日(年-月月-日)、性别日)、性别(M M:男,:男,F F:女)及三门功课(语文、数学、:女)及三门功课(语文、数学、英语)的成绩,现要求计算该学生的总分和平英语)的成绩,现要求计算该学生的总分和平均分,并将该学生的全部信息输出(包括总分、均分,并将该学生的全部信息输出(包括总分、平均分)。平均分)。#includevoid

21、 main()unsigned long no;/学号学号 unsigned int year,month,day;/生日生日 unsigned char sex;/性别性别 float chinese,math,english;float total,average;printf(input the students NO:);scanf(%8ld,&no);printf(input the students Birthday(yyyy-mm-dd):);scanf(%4d-%2d-%2d,&year,&month,&day);fflush(stdin);/清除键盘缓冲区清除键盘缓冲区 pr

22、intf(input the students Sex(M/F);scanf(%c,&sex);printf(input the students Score(chinese,math,english):);scanf(%f,%f,%f,&chinese,&math,&english);total=chinese+math+english;average=total/3;printf(n=No=birthday=sex=chinese=math=english=total=averagen);printf(%08ld%4d-%02d-%02d%c%-5.1f%-5.1f%-5.1f%-5.1f

23、%-5.1fn,no,year,month,day,sex,chinese,math,english,total,average);【例【例3.9】数据的数据的格式输入输出。格式输入输出。3.73.7顺序结构程序设计举例顺序结构程序设计举例【例例3.10】输入三角形的三边长,求三角形】输入三角形的三边长,求三角形面积。面积。#include#includevoid main()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);/sqrt函数在函数在math.h中

24、声明中声明 printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c,s);printf(“area=%7.2fn”,area);【例【例3.11】求】求ax2+bx+c=0方程的根,方程的根,a,b,c由键由键盘输入,设盘输入,设b2-4ac0。#include#includevoid 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(“nx1=%5.2fnx2=%5.2fn”,x1,x2);【例【例3.12】从键盘输入一个大写字母,要从键盘输入一个大写字母,要求改用小写字母输出。求改用小写字母输出。#includevoid main()char c1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com