第三章 顺序结构程序设计_第1页
第三章 顺序结构程序设计_第2页
第三章 顺序结构程序设计_第3页
第三章 顺序结构程序设计_第4页
第三章 顺序结构程序设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第三章顺序结构程序设计第1页,课件共20页,创作于2023年2月一、C语句概述一个程序应包括以下两方面内容:(1)数据的设计——数据结构。数据设计是通过一系列的数据描述语句来实现,主要用来定义数据的类型、完成数据的初始化等;(2)操作的设计——操作步骤(即算法)。操作设计是通过一系列的操作控制语句来完成,其作用是向计算机系统发出操作指令,以完成对数据的加工计算和流程控制。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤,而这些都要通过语句的执行来实现。C语句通常分为以下5类:

1.表达式语句由表达式加“;”组成的语句,称表达式语句。其一般形式为:

表达式;

如:a=3//表达式

a=3;//表达式语句再如:i++//表达式

i++;//表达式语句第2页,课件共20页,创作于2023年2月2.函数调用语句由函数加“;”组成的语句,称函数调用语句。其一般形式为:

函数名(参数表列);如:scanf("%d",&num);//函数调用语句printf("%d\n",num);//函数调用语句3.空语句只有一个分号的语句,称空语句。其一般形式为:

;通常用作后面章节提到的循环语句中的循环体,起着延时的作用。如:for(i=0;i<1000;i++);//循环体是空语句也可用于还未实现函数的空函数体。如:voidmax(){;}//表示一个待写函数第3页,课件共20页,创作于2023年2月4.复合语句用大括号“{}”把多条语句括起来成为复合语句。在程序中,应把复合语句看成是单条语句,即在语法的地位上相当于一条语句。其一般形式为:

{

语句1;

语句2;…

语句n;}

如:{sum=sum+i;i++;}5.控制语句

C语言9种控制语句如下:

(1)if()条件语句

(2)switch()多分支选择语句

(3)while()while循环语句

(4)dowhile()dowhile循环语句

(5)for()for循环语句

(6)continue结束本次循环语句

(7)break中止执行switch语句或循环语句

(8)goto转向语句

(9)return从函数返回语句第4页,课件共20页,创作于2023年2月二、流程图在编写程序之前,首先要考虑解决问题的步骤,然后用流程图表示出来,最后根据流程图编写程序代码。美国国家标准化协会(ANSI)规定了一些常用的流程图符号如图3-1所示,已被世界各国计算机工作者普遍采用。常用流程图的图框说明如下:(1)起止框:表示程序的开始和结束;(2)输入输出框:在框内写出输入项或输出项;(3)判断框:框内写明条件,有一个入口,两个出口,在出口处注明条件是否成立;(4)执行框:框内写明某一段程序或模块的功能,有一个入口和一个出口;(5)连接点:将画在不同地方的流程线连接起来;(6)流程线:表示程序的执行顺序。第5页,课件共20页,创作于2023年2月三、顺序结构程序设计

C语言是结构化程序设计语言。结构化程序设计的思想要求程序只能用顺序结构、选择结构和循环结构三种基本结构来描述。这三种基本结构可以组成各种各样的程序,无论多么复杂的问题,都可以用这三种基本结构来表示。本章只介绍顺序结构程序设计。顺序结构是程序中最简单的一种结构,用来描述依次执行的操作,流程如图3-2(a)所示。程序执行时,先执行A,再执行B。

1973年,美国学者I.Nassi和B.Shneiderman提出了一种新的的流程图形式,这种流程图以二人名字姓氏的首字母来命名,称为N-S流程图。图3-2中(b)是N-S流程图。这种流程图从形式上看,完全不同于传统的流程图,去掉了传统流程图中的流程线,所有结构全部由矩形框表示,全部算法写在一个矩形框中。N-S流程图使用的场合也较多,应该读懂且能够绘制N-S流程图。第6页,课件共20页,创作于2023年2月【例3-1】求一个数的平方根。第7页,课件共20页,创作于2023年2月经过分析,此问题的流程图如图3-3所示。然后,根据流程图编写代码:#include<stdio.h>#include<math.h>voidmain(){doublex,y;scanf("%lf",&x);y=sqrt(x);printf("%lf\n",y);}说明:通常简单的问题不画流程图,直接编写程序代码;稍复杂的问题先画流程图,根据流程图编写程序代码。

#include<math.h>

求平方根时,需要调用数学函数sqrt(),因此必须加此头文件,参见附录Ⅲ。对于double型的变量,输入的格式必须是“%lf”。对于double型的变量,输出的格式“%f”和“%lf”都可以,通常用“%lf”。第8页,课件共20页,创作于2023年2月四、字符数据的输入输出1.putchar()函数

该函数的作用是向终端输出一个字符。其一般形式为:putchar(参数);

其中:参数可以是单字符常量、字符变量、ASCII码、也可以是转义字符。【例3-2】输出单个字符。

#include<stdio.h>voidmain(){charc='A';putchar('A');putchar(c);putchar(65);putchar('\n');printf("%c\n",c);}第9页,课件共20页,创作于2023年2月2.getchar()函数

该函数的作用是从终端得到一个字符。其一般形式为:getchar();

此函数无参数,函数的值就是从输入设备得到的字符。【例3-3】输入单个字符。

#include<stdio.h>voidmain(){charc,d;c=getchar();scanf("%c",&d);putchar(c);putchar(d);putchar('\n');}说明:一般情况下,getchar()和putchar()、scanf()和printf()配对使用。第10页,课件共20页,创作于2023年2月五、格式输入输出1.printf()函数

该函数的作用是输出若干个任意类型的数据。

(1)printf()函数的一般形式

printf("格式控制",输出表列);

如:printf("%d,%c,%f\n",x,y,z);(2)格式字符对不同类型的数据用不同的格式字符。

d格式符:用来输出十进制整数。①%d,按整型数据的实际长度输出。②%md,m为指定的输出宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。③%ld,输出长整型数据。第11页,课件共20页,创作于2023年2月【例3-4】举例说明“%d”的使用。#include<stdio.h>voidmain(){inta,b,c;longd;

a=300;b=400;c=500;d=600;printf("a=%d,b=%5d,c=%2d,d=%ld\n",a,b,c,d);}第12页,课件共20页,创作于2023年2月(2)o格式符:以八进制数形式输出整数。(3)x(或X)格式符:以十六进制数形式输出整数。(4)u格式符:用来输出unsigned型数据。(5)c格式符:用来输出一个字符。(6)s格式符:用来输出一个字符串。

①%s,按字符串的实际长度输出。②%ms,输出的字符串占m列,如字符串本身长度大于m,则突破m

的限制,将字符串全部输出。若串长小于m,则左补空格。③%-ms,若串长小于m,则在m列范围内,字符串向左靠,右补空格。④%m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。⑤%-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,即保证n个字符正常输出。第13页,课件共20页,创作于2023年2月【例3-5】举例说明“%s”的使用。

#include<stdio.h>voidmain(){printf("%s,%3s,%5.2s,%.4s,%-5.3s\n","Intel","Intel","Intel","Intel","Intel");}第14页,课件共20页,创作于2023年2月(7)f格式符:用来输出实数(包括单、双精度),以小数形式输出。①%f,整数部分全部输出,输出6位小数。②%m.nf,指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。(m包括小数点)③%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。【例3-6】举例说明“%f”的使用。

#include<stdio.h>voidmain(){floatf=235.5674;printf("%f,%10f,%10.2f,%.2f,%-10.2f\n",f,f,f,f,f);}(8)e(或E)格式符:以“规范化的指数形式”输出实数。(9)g(或G)格式符:自动在“%f”、“%e”两种格式中取输出数据占宽度较小的一种,且不输出无意义的0。(“%g”格式符使用较少)第15页,课件共20页,创作于2023年2月2.scanf()函数该函数的作用是输入若干个任意类型的数据。(1)scanf()函数的一般形式

scanf("格式控制",地址表列);如:scanf("%d,%c,%f",&x,&y,&z);(2)格式字符格式字符的含义同printf()函数。【例3-7】用scanf()正确地输入数据。#include<stdio.h>voidmain(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("%d,%d,%d\n",x,y,z);}说明:图3-10用“空格键”分隔三个值;图3-11用“回车键”分隔三个值;图3-12用“tab键”分隔三个值。第16页,课件共20页,创作于2023年2月【例3-8】用scanf()正确地输入数据。#include<stdio.h>voidmain(){intx,y,z;scanf("x=%d,y=%d,z=%d",&x,&y,&z);printf("%d,%d,%d\n",x,y,z);}说明:scanf()函数“格式控制”中的普通字符必须原样输入。【例3-9】用scanf()正确地输入数据。#include<stdio.h>voidmain(){charx,y,z;scanf("%c%c%c",&x,&y,&z);printf("%c%c%c",x,y,z);}说明:用“%c”格式输入字符时,空格、回车、tab键都作为有效字符输入。第17页,课件共20页,创作于2023年2月3.使用printf()函数和scanf()函数时的注意事项(1)printf()函数输出数据时可以有精度,而scanf()函数输入数据时不能规定精度。printf("%6.2f\n",x);//正确scanf("%6.2f",&x);//错误scanf("%f",&x);//正确(2)printf()函数中“格式控制”右边通常是变量,而scanf()函数中“格式控制”右边通常是变量地址。printf("%f\n",x);//正确scanf("%f",&x);//正确(3)printf()函数“格式控制”中可以有‘\n’,而scanf()函数“格式控制”中不能有'\n'。printf("%f\n",x);//正确scanf("%f\n",&x);//错误scanf("%f",&x);//正确第18页,课件共20页,创作于2023年2月六、程序举例【例3-10】两数交换位置。#include<stdio.h>voidmain(){intnum1,num2,temp;//变量的定义sc

温馨提示

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

评论

0/150

提交评论