《第三章顺序结构程序设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《第三章顺序结构程序设计精选PPT.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章 顺序结构程序设计第1页,本讲稿共20页一、一、C语句概述语句概述 一个程序应包括以下两方面内容:一个程序应包括以下两方面内容:(1)数据的设计)数据的设计数据结构。数据设计是通过一系列的数据描述语数据结构。数据设计是通过一系列的数据描述语句来实现,主要用来定义数据的类型、完成数据的初始化等;句来实现,主要用来定义数据的类型、完成数据的初始化等;(2)操作的设计)操作的设计操作步骤(即算法)。操作设计是通过一系列的操作步骤(即算法)。操作设计是通过一系列的操作控制语句来完成,其作用是向计算机系统发出操作指令,以完成对数操作控制语句来完成,其作用是向计算机系统发出操作指令,以完成对数据的加
2、工计算和流程控制。据的加工计算和流程控制。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤,而这作为程序设计人员,必须认真考虑和设计数据结构和操作步骤,而这些都要通过语句的执行来实现。些都要通过语句的执行来实现。C语句通常分为以下语句通常分为以下5类:类:1表达式语句表达式语句 由表达式加由表达式加“;”组成的语句,称表达式语句。其一般形式为:组成的语句,称表达式语句。其一般形式为:表达式表达式;如:如:a=3 /表达式表达式 a=3;/表达式语句表达式语句 再如:再如:i+/表达式表达式 i+;/表达式语句表达式语句第2页,本讲稿共20页 2函数调用语句函数调用语句 由函数加由函数加“
3、;”组成的语句,称函数调用语句。其一般形式为:组成的语句,称函数调用语句。其一般形式为:函数名函数名(参数表列参数表列);如:如:scanf(%d,&num);/函数调用语句函数调用语句 printf(%dn,num);/函数调用语句函数调用语句 3空语句空语句 只有一个分号的语句,称空语句。其一般形式为:只有一个分号的语句,称空语句。其一般形式为:;通常用作后面章节提到的循环语句中的循环体,起着延时通常用作后面章节提到的循环语句中的循环体,起着延时的作用。的作用。如:如:for(i=0;i1000;i+);/循环体是循环体是空语句空语句 也可用于还未实现函数的空函数体。也可用于还未实现函数的
4、空函数体。如:如:void max();/表示一个表示一个待写函数待写函数第3页,本讲稿共20页4复合语句复合语句 用大括号用大括号“”把多条语句括起来成为复合语句。在程序中,应把复合语句看成是单条语把多条语句括起来成为复合语句。在程序中,应把复合语句看成是单条语句,即在语法的地位上相当于一条语句。其一般形式为:句,即在语法的地位上相当于一条语句。其一般形式为:语句语句1;语句语句2;语句语句n;如:如:sum=sum+i;i+;5控制语句控制语句 C语言语言9种控制语句如下:种控制语句如下:(1)if()条件语句条件语句 (2)switch()多分支选择语句多分支选择语句 (3)while(
5、)while循环语句循环语句 (4)do while()do while循环语句循环语句 (5)for()for循环语句循环语句 (6)continue 结束本次循环语句结束本次循环语句 (7)break 中止执行中止执行switch语句或循环语句语句或循环语句 (8)goto 转向语句转向语句 (9)return 从函数返回语句从函数返回语句第4页,本讲稿共20页二、流程图二、流程图 在编写程序之前,首先要考虑解决问题的步骤,然后用流程图表示出来,最后在编写程序之前,首先要考虑解决问题的步骤,然后用流程图表示出来,最后根据流程图编写程序代码。根据流程图编写程序代码。美国国家标准化协会(美国国
6、家标准化协会(ANSI)规定了一些常用的流程图符号如图)规定了一些常用的流程图符号如图3-1所示,已所示,已被世界各国计算机工作者普遍采用。被世界各国计算机工作者普遍采用。常用流程图的图框说明如下:常用流程图的图框说明如下:(1)起止框:表示程序的开始和结束;)起止框:表示程序的开始和结束;(2)输入输出框:在框内写出输入项或输出项;)输入输出框:在框内写出输入项或输出项;(3)判断框:框内写明条件,有一个入口,两个出口,)判断框:框内写明条件,有一个入口,两个出口,在出口处注明条件是否成立;在出口处注明条件是否成立;(4)执行框:框内写明某一段程序或模块的功能,有)执行框:框内写明某一段程序
7、或模块的功能,有一个入口和一个出口;一个入口和一个出口;(5)连接点:将画在不同地方的流程线连接起来;)连接点:将画在不同地方的流程线连接起来;(6)流程线:表示程序的执行顺序。)流程线:表示程序的执行顺序。第5页,本讲稿共20页三、顺序结构程序设计三、顺序结构程序设计 C语言是结构化程序设计语言。结构化程序设计的思想要求程序只能语言是结构化程序设计语言。结构化程序设计的思想要求程序只能用顺序结构、选择结构和循环结构三种基本结构来描述。这三种基本结构用顺序结构、选择结构和循环结构三种基本结构来描述。这三种基本结构可以组成各种各样的程序,无论多么复杂的问题,都可以用这三种基本结可以组成各种各样的
8、程序,无论多么复杂的问题,都可以用这三种基本结构来表示。本章只介绍顺序结构程序设计。构来表示。本章只介绍顺序结构程序设计。顺序结构是程序中最简单的一种结构,用来描述依次执行的操作,流顺序结构是程序中最简单的一种结构,用来描述依次执行的操作,流程如图程如图3-2(a)所示。程序执行时,先执行)所示。程序执行时,先执行A,再执行,再执行B。1973年,美国学者年,美国学者I.Nassi和和B.Shneiderman提出了一提出了一种新的的流程种新的的流程图图形式,形式,这这种流程种流程图图以二人名字姓氏的首字以二人名字姓氏的首字母来命名,称母来命名,称为为N-S流程流程图图。图图3-2中(中(b)
9、是)是N-S流程流程图图。这这种流程种流程图图从形式上看,完全不同于从形式上看,完全不同于传统传统的流程的流程图图,去掉了,去掉了传统传统流程流程图图中的流程中的流程线线,所有,所有结结构全部由矩形框表示,全部构全部由矩形框表示,全部算法写在一个矩形框中。算法写在一个矩形框中。N-S流程流程图图使用的使用的场场合也合也较较多,多,应应该读该读懂且能懂且能够绘够绘制制N-S流程流程图图。第6页,本讲稿共20页【例例3-1】求一个数的平方根。求一个数的平方根。第7页,本讲稿共20页经过分析,此问题的流程图如图经过分析,此问题的流程图如图3-3所示。然后,根据流程图编写代码:所示。然后,根据流程图编
10、写代码:#include#include void main()double x,y;scanf(%lf,&x);y=sqrt(x);printf(%lfn,y);说明:说明:l 通常简单的问题不画流程图,直接编写程序代码;稍复杂的问题先画流程图,根通常简单的问题不画流程图,直接编写程序代码;稍复杂的问题先画流程图,根 据流程图编写程序代码。据流程图编写程序代码。l#include 求平方根时,需要调用数学函数求平方根时,需要调用数学函数sqrt(),因此必须加此头文件,参见附录因此必须加此头文件,参见附录。l 对于对于double型的变量,输入的格式必须是型的变量,输入的格式必须是“%lf”
11、。l 对于对于double型的变量,输出的格式型的变量,输出的格式“%f”和和“%lf”都可以,通常用都可以,通常用“%lf”。第8页,本讲稿共20页四、字符数据的输入输出四、字符数据的输入输出 1.putchar()函数函数 该函数的作用是向终端输出一个字符。该函数的作用是向终端输出一个字符。其一般形式为:其一般形式为:putchar(参数参数);其中:参数可以是单字符常量、字符变量、其中:参数可以是单字符常量、字符变量、ASCII码、也可以是转义字符。码、也可以是转义字符。【例例3-2】输出单个字符。输出单个字符。#include void main()char c=A;putchar(A
12、);putchar(c);putchar(65);putchar(n);printf(%cn,c);第9页,本讲稿共20页2.getchar()函数函数 该函数的作用是从终端得到一个字符。该函数的作用是从终端得到一个字符。其一般形式为:其一般形式为:getchar();此函数无参数,函数的值就是从输入设备得到的字符。此函数无参数,函数的值就是从输入设备得到的字符。【例例3-3】输入单个字符。输入单个字符。#include void main()char c,d;c=getchar();scanf(%c,&d);putchar(c);putchar(d);putchar(n);说明:说明:一般情
13、况下,一般情况下,getchar()和和putchar()、scanf()和和printf()配对使用。配对使用。第10页,本讲稿共20页五、格式输入输出五、格式输入输出1.printf()函数函数 该函数的作用是该函数的作用是输出若干个任意类型输出若干个任意类型的数据。的数据。(1)printf()函数的一般形式函数的一般形式 printf(格式控制格式控制,输出表列输出表列);如:如:printf(%d,%c,%fn,x,y,z);(2)格式字符格式字符 对不同类型的数据用不同的格式字符。对不同类型的数据用不同的格式字符。d格式符:格式符:用来输出十进制整数。用来输出十进制整数。%d,按整
14、型数据的实际长度输出。,按整型数据的实际长度输出。%md,m为指定的输出宽度。如果数据的位数小于为指定的输出宽度。如果数据的位数小于m,则左端补以,则左端补以 空格,若大于空格,若大于m,则按实际位数输出。,则按实际位数输出。%ld,输出长整型数据。,输出长整型数据。第11页,本讲稿共20页【例【例3-4】举例说明】举例说明“%d”的使用。的使用。#include void main()int a,b,c;long d;a=300;b=400;c=500;d=600;printf(a=%d,b=%5d,c=%2d,d=%ldn,a,b,c,d);第12页,本讲稿共20页(2)o格式符:格式符:
15、以八进制数形式输出整数。以八进制数形式输出整数。(3)x(或(或X)格式符:)格式符:以十六进制数形式输出整数。以十六进制数形式输出整数。(4)u格式符:格式符:用来输出用来输出unsigned型数据。型数据。(5)c格式符:格式符:用来输出一个字符。用来输出一个字符。(6)s格式符:格式符:用来输出一个字符串。用来输出一个字符串。%s,按字符串的实际长度输出。,按字符串的实际长度输出。%ms,输出的字符串占,输出的字符串占m列,如字符串本身长度大于列,如字符串本身长度大于m,则突破,则突破m 的限制,将字符串全部输出。若串长小于的限制,将字符串全部输出。若串长小于m,则左补空格。,则左补空格
16、。%-ms,若串长小于,若串长小于m,则在,则在m列范围内,字符串向左靠,右补空格。列范围内,字符串向左靠,右补空格。%m.ns,输出占,输出占m列,但只取字符串中左端列,但只取字符串中左端n个字符。这个字符。这n个字符输个字符输 出在出在m列的右侧,左补空格。列的右侧,左补空格。%-m.ns,其中,其中m、n含义同上,含义同上,n个字符输出在个字符输出在m列范围的左侧,右列范围的左侧,右 补空格。如果补空格。如果nm,则,则m自动取自动取n值,即保证值,即保证n个字符正常输出。个字符正常输出。第13页,本讲稿共20页【例例3-5】举例说明举例说明“%s”的使用。的使用。#include vo
17、id main()printf(%s,%3s,%5.2s,%.4s,%-5.3sn,Intel,Intel,Intel,Intel,Intel);第14页,本讲稿共20页(7)f格式符:格式符:用来输出实数(包括单、双精度),以小数形式输出。用来输出实数(包括单、双精度),以小数形式输出。%f,整数部分全部输出,输出,整数部分全部输出,输出6位小数。位小数。%m.nf,指定输出的数据共占,指定输出的数据共占m列,其中有列,其中有n位小数。如果数值长度小于位小数。如果数值长度小于m,则左端补,则左端补 空格。(空格。(m包括小数点)包括小数点)%-m.nf与与%m.nf基本相同,只是使输出的数值
18、向左端靠,右端补空格。基本相同,只是使输出的数值向左端靠,右端补空格。【例例3-6】举例说明举例说明“%f”的使用。的使用。#include void main()float f=235.5674;printf(%f,%10f,%10.2f,%.2f,%-10.2fn,f,f,f,f,f);(8)e(或(或E)格式符:)格式符:以以“规范化的指数形式规范化的指数形式”输出实数。输出实数。(9)g(或(或G)格式符:)格式符:自动在自动在“%f”、“%e”两种格式中取输出数据占宽度较小的一种,且两种格式中取输出数据占宽度较小的一种,且 不输出无意义的不输出无意义的0。(。(“%g”格式符使用较少
19、)格式符使用较少)第15页,本讲稿共20页2.scanf()函数函数 该函数的作用是该函数的作用是输入若干个任意类型输入若干个任意类型的数据。的数据。(1)scanf()函数的一般形式函数的一般形式 scanf(格式控制格式控制,地址表列地址表列);如:如:scanf(%d,%c,%f,&x,&y,&z);(2)格式字符格式字符 格式字符的含义同格式字符的含义同printf()函数。函数。【例【例3-7】用】用scanf()正确地输入数据。正确地输入数据。#include void main()int x,y,z;scanf(%d%d%d,&x,&y,&z);printf(%d,%d,%dn,
20、x,y,z);说明:说明:图图3-10用用“空格键空格键”分隔三个值;图分隔三个值;图3-11用用“回车键回车键”分隔三个值;图分隔三个值;图3-12用用“tab键键”分隔三个值。分隔三个值。第16页,本讲稿共20页【例【例3-8】用】用scanf()正确地输入数据。正确地输入数据。#include void main()int x,y,z;scanf(x=%d,y=%d,z=%d,&x,&y,&z);printf(%d,%d,%dn,x,y,z);说明:说明:scanf()函数函数“格式控制格式控制”中的普通字符必须原样输入。中的普通字符必须原样输入。【例【例3-9】用】用scanf()正确
21、地输入数据。正确地输入数据。#include void main()char x,y,z;scanf(%c%c%c,&x,&y,&z);printf(%c%c%c,x,y,z);说明:说明:用用“%c”格式输入字符时,空格、回车、格式输入字符时,空格、回车、tab键都作为有效字符输入。键都作为有效字符输入。第17页,本讲稿共20页3.使用使用printf()函数和函数和scanf()函数时的注意事项函数时的注意事项 (1)printf()函数输出数据时可以有精度,而函数输出数据时可以有精度,而scanf()函数输函数输 入数据时不能规定精度。入数据时不能规定精度。printf(%6.2fn,x
22、);/正确正确 scanf(%6.2f,&x);/错误错误 scanf(%f,&x);/正确正确 (2)printf()函数中函数中“格式控制格式控制”右边通常是变量,而右边通常是变量,而scanf()函数中函数中“格式控制格式控制”右边通常是变量地址。右边通常是变量地址。printf(%fn,x);/正确正确 scanf(%f,&x);/正确正确 (3)printf()函数函数“格式控制格式控制”中可以有中可以有n,而,而scanf()函数函数 “格式控制格式控制”中不能有中不能有n。printf(%fn,x);/正确正确 scanf(%fn,&x);/错误错误 scanf(%f,&x);/
23、正确正确第18页,本讲稿共20页六、程序举例六、程序举例【例【例3-10】两数交换位置。两数交换位置。#include void main()int num1,num2,temp;/变量的定义变量的定义 scanf(%d,%d,&num1,&num2);/输入值输入值 temp=num1;num1=num2;num2=temp;/交换值交换值 printf(%d,%dn,num1,num2);/输出值输出值 说明:说明:两数交换通常是定义一个变量作为过渡变量。两数交换通常是定义一个变量作为过渡变量。第19页,本讲稿共20页【例例3-11】输入一个华氏温度,要求输出摄氏温度(保留输入一个华氏温度
24、,要求输出摄氏温度(保留1位小数)。位小数)。#include void main()float f,c;/变量的定义变量的定义 printf(请输入一个华氏温度请输入一个华氏温度:);scanf(%f,&f);/输入值输入值 c=5.0/9.0*(f-32);/计算计算 printf(摄氏温度是摄氏温度是(保留保留1位小数位小数):%.1fn,c);/输出值输出值 说明:说明:分子或分母至少有一个是小数,即分子或分母至少有一个是小数,即5.0/9、5/9.0、5.0/9.0。否则,在。否则,在C语言中两个整数相除的结果是整数,即语言中两个整数相除的结果是整数,即5/9得得0。第20页,本讲稿共20页