第3章 顺序结构及其应用

上传人:痛*** 文档编号:243897089 上传时间:2024-10-01 格式:PPT 页数:31 大小:317.50KB
返回 下载 相关 举报
第3章 顺序结构及其应用_第1页
第1页 / 共31页
第3章 顺序结构及其应用_第2页
第2页 / 共31页
第3章 顺序结构及其应用_第3页
第3页 / 共31页
点击查看更多>>
资源描述
,*,36,单击此处编辑母版文本样式,第,3,章 顺序结构及其应用,第,3,章 顺序结构及其应用,学习目标,掌握数据的输入输出操作,编写顺序结构程序,解决简单问题。,学习内容,scanf,( ),函数,,printf,( ),函数,,getchar,( ),函数,,putchar,( ),函数,顺序结构程序的设计方法。,下一页,返 回,第,3,章 顺序结构及其应用,3.1,一个顺序结构程序实例,3.2,数据的输入输出,3.3,顺序结构应用实例,3.4,本章小结,3.5,实训,上一页,返 回,3.1,一个顺序结构程序实例,【,例,3-1】,编写程序,计算长方形的面积。,【,编程思路,】,(,1,)定义程序所需要的变量:,a,,,b,,,area,,,float,类型。,(,2,)输入长方形的长和宽给变量,a,,,b,。,(,3,)计算长方形的面积:,area=a*b,。,(,4,)输出长方形的面积,area,。,【,程序代码,】,#include ,stdio.h,main( ),float,a,b,area,; /*,变量定义*,/,printf(n,请输入长方形的长和宽,:); /*,输出提示信息*,/,scanf(%f,%f,&a,&b,); /*,输入数据*,/,area=a*b; /*,计算面积*,/,下一页,返 回,3.1,一个顺序结构程序实例,printf,(,长方形的面积为:,%7.2fnnn,area); /*,输出结果*,/,执行这个程序,可以看到当输入数据,2.5,和,5,时,程序的输出结果为:,这个程序的结构非常简单。在,main(),函数中包含,5,条语句,第,1,条是变量定义语句,声明了,3,个变量,第,2,条是输出语句,提示用户要输入数据,第,3,条是输入语句,用于接收用户从键盘敲入的数据并存放到变量,a,,,b,中,第,4,条是赋值语句,用于计算并保存结果到变量,c,中,第,5,条是输出语句,把计算结果输出到显示屏上。,上一页,下一页,返 回,3.1,一个顺序结构程序实例,从程序结构来看,本例中所有的语句代码都是按照先后顺序执行下来的,所以是典型的顺序结构程序。顺序结构是三种基本结构中最简单的一种,其执行流程如,图,3-1,所示。,提示:,C,程序的三种基本结构是顺序结构、分支结构和循环结构。,从总体走势来看,计算机程序通常可分成三个部分,即输入数据、处理数据和输出数据。计算机通过输入操作接收数据,然后对数据进行处理,再将处理完的数据以有效的方式提供给用户,即输出数据。,本章主要介绍数据的输入输出操作。,上一页,返 回,3.2,数据的输入输出,C,语言中数据的输入和输出主要由标准库函数来完成,其中,printf,( ),和,scanf,( ),是编程时经常会用到的一对输入输出函数,这两个函数在前面的举例中已经多次用到,下面详细介绍它们的使用方法。,3.2.1,格式输出函数,printf,( ),是格式输出函数,其功能是把计算机中的数据输出到显示屏上,并且可以指定输出数据的格式。,函数调用格式为:,printf,(,格式控制字符串,输出项表,),;,例如:,printf(“a,=%,d,b,=%,dn”,a,b,);,函数说明:,1.,格式控制字符串可以包含,3,类字符:,(,1,)格式字符:由,%,打头后跟格式符。其中格式符由,C,语言约定,作用是指定数据输出时的格式。,表,3-1,列出了一些常用格式符及其功能说明。,下一页,返 回,3.2,数据的输入输出,(,2,)转义字符:,n,是输出函数中最常用到的转义字符,起回车换行的作用。,(,3,)普通字符:格式控制字符串中除了格式字符和转义字符以外,其余都是普通字符,普通字符的处理是照原样输出。,2.,输出项表。,输出项表列出要输出的数据项,数据项可以是常量、变量或表达式,各输出项之间用逗号分隔。,【,例,3-2】,通过以下,4,个程序段,观察,printf,( ),的输出效果。,(,1,),printf(“I,am a student.”);,输出结果:,该语句中不含输出项以及控制输出项的格式字符,只有普通字符,所以原样显示输出。这种用法经常用在输出提示信息时采用。,上一页,下一页,返 回,3.2,数据的输入输出,(,2,),int,a=2,b=5;,printf(“%d,%dn”,a,b,);,printf(“a,=%,d,b,=%,dn”,a,b,);,输出结果:,提示:格式字符与输出数据之间个数、类型及顺序必须一一对应。输出时,除了格式符位置上用对应输出数据代替外,其他字符被原样显示输出。,(,3,),char,ch,=A;,printf(“%c,%dn”,ch,ch,);,输出结果:,字符输出时,,%c,用于输出字符本身,,%d,则输出字符的,ASCII,码值。,上一页,下一页,返 回,3.2,数据的输入输出,(,4,),float,fx,=123.45;,printf(“%f,%en”,fx,fx,);,输出结果:,可以看到,实数输出时系统默认的小数位均为,6,位。为了更加符合用户的需要,,printf,(),允许用户指定输出数据的宽度以及对齐方式。方法是在,%,和格式符之间插入控制符,例如:,%5d,、,%7.2f,、,%-5d,等。数据宽度及对齐方式的说明具体见,表,3-2,。,上一页,下一页,返 回,3.2,数据的输入输出,【,例,3-3】,通过下面程序,观察,printf,( ),的输出效果。,#include ,stdio.h,main( ),int,a=12;,float,fx,=12.58;,printf(a,=%5dta=%-5dn,a,a);,printf(fx,=%,ftfx,=%7.2ftfx=%-7.2fn,fx,fx,fx);,printf(fx,=%,etfx,=%12.2etfx=%-12.2ennn,fx,fx,fx);,程序输出结果为:,上一页,下一页,返 回,3.2,数据的输入输出,3.2.2,格式输入函数,scanf,(),是格式输入函数,其功能是按指定格式输入各种类型的数据,输入的数据将存放到指定的变量中。,函数调用格式为:,scanf,(,格式控制字符串,输入项表,),;,例如:,scanf(“%d,%d”,&a,&b,);,函数说明:,1.,输入项必须是变量的地址。在,C,语言中用“,&,变量名”表示变量的地址,比如,,&a,表示变量,a,的地址。,2.,格式控制字符串可以包含,2,类字符:格式字符和普通字符。格式字符的用法见表,3-1,所示。,使用,scanf,( ),函数时,应特别注意数据的键盘输入操作,其输入规则是除了格式符位置上输入具体的数据外,其他字符照原样输入一遍。,下面根据具体的函数格式加以介绍。,上一页,下一页,返 回,3.2,数据的输入输出,举例,1,:,scanf(“%d,%d”,&a,&b,);,假如给,a,输入,12,,给,b,输入,36,,则正确的输入操作为:,12,,,36 ,举例,2,:,scanf(“%d%d”,&a,&b,);,假如给,a,输入,12,,给,b,输入,36,,则正确的输入操作为:,12 36 ,或者:,12 ,36 ,举例,3,:,scanf(“a,=%,d,b,=%,d”,&a,&b,);,假如给,a,输入,12,,给,b,输入,36,,则正确的输入操作为:,a=12,,,b=36 ,可以看到,这里的“,a=”,和“,b=”,不仅没有起到提示作用,还给输入带来不便,因此要达到提示效果,有效的做法是用,printf,( ),输出提示信息,尽量减少,scanf,( ),函数中的普通字符。例如:,printf(“please,enter,a,b,:”);,scanf(“%d,%d”,&a,&b,);,上述方法在改善人机界面的同时还简化了键盘输入操作,推荐读者采用。,上一页,下一页,返 回,3.2,数据的输入输出,举例,4,:,scanf(“%c%c”,假如给,c1,输入,A,,给,c2,输入,B,,则正确的输入操作为:,AB ,错误操作为:,A B ,,错误原因是变量,c1,取值字符,A,,但变量,c2,取值是空格符而不是字符,B,。,提示:(,1,)使用,scanf,( ),函数时,输入项为变量的地址。,(,2,)输入数据时,一定注意键盘的输入操作要与设计的格式控制保持一致,否则变量得不到预期的赋值。,小测验,int,a; float b; char c;,scanf(“%d%f%c”,&a,&b,&c,);,假如给变量,a,输入,2,,给变量,b,输入,12.5,,给变量,c,输入字符,a,,应该如何进行输入操作?,上一页,下一页,返 回,3.2,数据的输入输出,3.2.3,字符输入输出函数,在,C,程序中,经常需要对字符数据进行输入和输出操作。字符的输入输出除了可以使用,scanf( ),和,printf( ),函数外,还可以使用专门用于字符输入输出的函数,getchar( ),和,putchar( ),函数。,getchar( ),是字符输入函数,作用是接受键盘输入的一个字符,它没有参数。,putchar( ),是字符输出函数,作用是在屏幕上输出一个字符,它的参数是待输出的字符。,【,例,3-4】getchar( ),和,putchar( ),函数的使用。,#include stdio.h,main(),char ch1,ch2,ch3;,printf(1)Input a character: );,ch1=getchar(); /*,变量,ch1,接受第,1,次输入的字符*,/,上一页,下一页,返 回,3.2,数据的输入输出,getchar(); /*,第,7,行*,/,printf(2)Input a character: );,ch2=getchar(); /*,变量,ch2,接受第,2,次输入的字符*,/,getchar(); /*,第,10,行*,/,printf(3)Input a character: );,ch3=getchar(); /*,变量,ch3,接受第,3,次输入的字符*,/,putchar(ch1); /*,输出,ch1,中的字符*,/,putchar(ch2); /*,输出,ch2,中的字符*,/,putchar(ch3); /*,输出,ch3,中的字符*,/,putchar(n); /*,换行*,/,上一页,下一页,返 回,3.2,数据的输入输出,执行程序时,根据屏幕提示,依次输入字符,S,、,U,、,N,,程序输出结果为,:,程序的第,7,行和第,10,行各有一个函数语句,getchar( );,,其作用是接受上次输入时的回车符,以保证程序的正常执行。,上一页,返 回,3.3,顺序结构应用实例,【,例,3-5】,设变量,a=2,、,b=5,,编写程序实现两个变量的值互换。,【,编程思路,】,变量是存放数据的容器,现在要交换两个容器中的内容,自然地要借助第,3,个容器进行周转。,【,程序代码,】,#include stdio.h,main(),int a,b,t;,a=2;b=5;,printf(1)a=%d,b=%dn,a,b); /*,输出原始数据*,/,t=a;a=b;b=t;,printf(2)a=%d,b=%dnnn,a,b); /*,输出交换后的数据*,/,下一页,返 回,3.3,顺序结构应用实例,程序输出结果为:,小测验,针对上面实例,思考下列问题:,(,1,)把程序中的交换过程用语句,a=b;b=a;,代替,程序的运行结果会怎样?,(,2,)如果是交换任意两个变量的值,程序该如何修改?,【,例,3-6】,已知三角形的三个边长,计算三角形的面积。,【,编程思路,】,本题按照输入数据、计算处理、输出结果的顺序进行,其中三角形面积可以利用如下数学公式进行计算。,上一页,下一页,返 回,其中:,3.3,顺序结构应用实例,【,程序代码,】,#include stdio.h,#include math.h,main( ),int a,b,c;,float s,area ;,printf(,请输入三角形的三边:,);,scanf(%d, %d, %d,s =1.0/2*(a+b+c) ;,area = sqrt(s*(s-a)*(s-b)*(s-c) ;,printf(,三角形的面积,= %8.3fn,area) ;,上一页,下一页,返 回,3.3,顺序结构应用实例,程序输出结果为:,小测验,程序运行时如果输入的三个数据为:,1,,,2,,,3 ,,运行结果会怎样,?,【,例,3-7】,加法练习程序。随机产生一道,100,以内的加法题,要求用户输入答案后,系统再给出正确答案。,【,编程思路,】,本题按照以下顺序完成:生成,2,个随机整数,出题,用户回答,输出用户答案,给出正确答案。,为了使程序每次运行生成的两个加数不同,需要使用函数,srand(),设置随机数种子,它所在的头文件为”,time.h”,。,上一页,下一页,返 回,3.3,顺序结构应用实例,【,程序代码,】,#include stdio.h,#include stdlib.h,#include time.h,main(),int num1,num2,answer;,srand(time(NULL); /*,随机数种子 *,/,num1=rand()%100; /*,生成随机数*,/,num2=rand()%100; /*,生成随机数*,/,printf(%d+%d=? ,num1,num2); /*,出题*,/,scanf(%d, /*,用户回答*,/,printf(,用户答案,:%d+%d=%dn,num1,num2,answer);,printf(,正确答案,:%d+%d=%dn,num1,num2,num1+num2);,上一页,下一页,返 回,3.3,顺序结构应用实例,执行程序,输出结果为:,再次执行程序,输出结果为:,程序说明:,受所学内容的限制,本例采用顺序结构编写,因此不能判断用户答案的正确性。随着学习内容的增加,在以后章节中将逐步完善解决这个问题。,上一页,返 回,3.4,本章小结,通过本章的学习,读者应掌握以下内容:,1. C,程序通常可分为,3,大处理部分,即输入数据部分、处理数据部分和输出数据部分。,2.,顺序结构是指程序中的语句都是按先后顺序执行的,不存在分支、循环和跳转。因此,顺序结构程序是最简单、最基本的一种程序结构。,3.,数据的输入和输出函数。,C,语言中数据的输入和输出函数有多种,其中,scanf( ),和,printf( ),是使用频率最高的一对函数。利用它们不仅可以完成各种数据的输入和输出操作,而且可以控制输入输出的格式,以保证输入数据整齐、规范,输出结果清晰而美观。,下一页,返 回,3.4,本章小结,4.,使用,printf( ),函数时,格式字符与输出数据之间个数、类型及顺序必须一一对应。输出时,除了格式符位置上用对应输出数据代替外,其他字符被原样显示输出。,5.,使用,scanf( ),函数时,输入项为变量的地址,输入数据时,特别应注意键盘的输入操作要与设计的格式控制保持一致,否则变量得不到预期的赋值。,6.,字符输入输出函数,getchar( ),和,putchar( ),只能用于单个字符的输入和输出。,上一页,返 回,3.5,实训,实训,1,【,实训内容,】printf( ),函数。,【,实训目的,】,灵活使用,printf( ),函数输出各种数据。,【,实训题目,】,运行以下程序,输入指定的,2,组数据,记录程序输出结果。,#include stdio.h,main( ),float fx=0.0;,printf(Input a float number:);,scanf(%f,printf(fx=%ftfx=%etfx=%dn,fx,fx,fx);,printf(fx=%12.2ftfx=%10.2etn,fx,fx);,(,1,)输入数据为,123456,。(,2,)输入数据为,456.789,下一页,返 回,3.5,实训,实训,2,【,实训内容,】scanf( ),函数。,【,实训目的,】,灵活使用,scanf( ),函数进行数据输入。,【,实训题目,】,#include stdio.h,main(),int a,b,c;,printf(Please enter a,b,c: );,scanf(%d,%d,%d,printf(a=%d,b=%d,c=%dn,a,b,c);,(,1,)程序执行时,为了使,a,、,b,、,c,分别取值,1,、,2,、,3,,键盘如何操作?,(,2,)将程序中的,scanf(),函数格式改为,scanf(“%d%d%d”,,,键盘又如何操作?,上一页,下一页,返 回,3.5,实训,实训,3,【,实训内容,】,顺序结构程序设计,【,实训目的,】,编写顺序结构程序,解决简单问题,【,实训题目,】,(,1,)上机调试例,3-7,,体验随机函数的功能,同时进一步理解顺序结构程序的执行流程。,(,2,)编写程序,计算任意两点之间的距离。,编程点拨 本题目可以按照以下步骤进行:,(,1,)进行变量定义:设置,5,个变量,变量名自拟,变量的类型应符合题目需要,例如:一个点的坐标可用,x1,、,y1,表示,另一个点的坐标可用,x2,、,y2,表示,距离用,d,表示,数据类型可定为实型;,(,2,)输入两个点的坐标值:用,scanf( ),函数输入;,(,3,)利用数学公式计算距离:用赋值语句计算并保存结果;,(,4,)输出计算结果:用,printf( ),函数输出。,上一页,返 回,图,3-1,顺序结构流程,返 回,表,3-1,常用格式符,返 回,格式符,printf( ),scanf( ),d,输出一个十进制整数(,int,型),输入一个十进制整数(,int,型),f,输出一个单精度实数(,float,型),输入一个单精度实数(,float,型),c,输出一个字符(,char,型),输入一个字符(,char,型),e,输出一个指数形式的单精度实数,输入一个指数形式的单精度实数,ld,输出一个十进制整数(,long,型),输入一个十进制整数(,long,型),lf,输出一个双精度实数(,double,型),输入一个双精度实数(,double,型),le,输出一个指数形式的双精度实数,输入一个指数形式的双精度实数,s,输出字符串,输入字符串,提示:格式符必须小写,大写无效。,表,3-2,输出数据时控制宽度及对齐方式说明,返 回,控制宽度及对齐方式,说,明,指定整数和字符数据的总宽度,如:,%5d,、,%4c,、,%8ld,右对齐,数据不足总宽度时,前面补空格;,数据超出总宽度时,按实际宽度输出,指定实数的总宽度,如:,%10.2f,、,%12.3lf,、,%7.2e,右对齐,总宽度包括整数位数、小数点、小数位数。,数据不足总宽度时,前面补空格;,数据超出总宽度时,按实际宽度输出,指定左对齐,如:,%-5d,、,%-7.2f,左对齐,数据不足总宽度时,后面补空格;,数据超出总宽度时,按实际宽度输出,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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