520 likes | 691 Vues
第三章 顺序程序设计. 本章主要任务: 1 、了解 C 语言语句分类:控制语句,表达式语句,复合语句。 2 、掌握表达式语句,复合语句的构成。 3 、掌握格式化输入 / 输出函数,常用其它输入 / 输出函数的使用。 4 、了解算法概念、算法特性、算法表示、结构化程序设计概念。 5 、了解结构化流程图、 N-S 流程图。 6 、掌握顺序结构程序设计. 一、 C 语句概述. C 语言的语句用来向计算机系统发出操作指令。
E N D
第三章 顺序程序设计 本章主要任务: 1、了解C语言语句分类:控制语句,表达式语句,复合语句。 2、掌握表达式语句,复合语句的构成。 3、掌握格式化输入/输出函数,常用其它输入/输出函数的使用。 4、了解算法概念、算法特性、算法表示、结构化程序设计概念。 5、了解结构化流程图、N-S流程图。 6、掌握顺序结构程序设计
一、C语句概述 C语言的语句用来向计算机系统发出操作指令。 C程序结构:一个C程序可以由若干个源程序文件组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成,一个函数由数据定义部分和执行语句组成。
C语句分类 1、控制语句
C语句分类 2、表达式语句 表达式语句是在表达式最后加上一个“;”组成。 例如:
C语句分类 3、复合语句 用{}把一些语句(语句序列,表示一系列工作)括起来成为复合语句,又称语句块、分程序。 一般情况凡是允许出现语句的地方都允许使用复合语句。在程序结构上复合语句被看作一个整体的语句,但是内部可能完成了一系列工作。
二、输入/输出及C语言的实现 1、计算机的组成
输入/输出 2、输入/输出:从计算机向外部设备(如显示器、打印机、磁盘等)输出数据称为“输出”, 从外部设备(如键盘、鼠标、扫描仪、光盘、磁盘)向计算机输入数据称为“输入”。 输入/输出是以计算机主机为主体而言的。
C语言的输入输出 3、C语言本身不提供输入/输出语句,输入/输出操作由函数实现。在C标准函数库中提供了一些输入/输出函数,如printf函数,scanf函数。 不要将两者看作是输入/输出语句。实际上完全可以不用这两个函数,而另外编制输入/输出函数。
C语言的输入输出 C函数库中有一批“标准输入/输出函数”,它是以标准的输入/输出设备(一般为终端)为输入/输出对象的。其中有:putchar(输出字符),getchar(输入字符),printf(格式化输出),scanf(格式化输入),puts(输出字符串),gets(输入字符串)。
printf函数(格式输出函数) 功能: 按照用户指定的格式,向系统隐含的输出设备(终端)输出若干个任意类型的数据。 一般格式: printf(格式控制字符串,输出表列) ;
格式控制 “格式控制”字符串是用双引号括起来的字符串,它指定输出数据项的类型和格式。包括两种信息: 格式说明项:由“%”和格式字符组成,如%d,%f等。格式说明总是由“%”字符开始,到格式字符终止。它的作用是将输出的数据项转换为指定的格式输出。输出表列中的每个数据项对应一个格式说明项。 普通字符:即需要原样输出的字符。
输出列表 “输出列表”: 是需要输出的一些数据项,可以是表达式。
格式字符 1、d格式符。用来输出十进制整数。 %d,按照数据的实际长度输出 %md,m指定输出字段的宽度(整数)。如果数据的位数小于m,则左端补以空格(右对齐),若大于m,则按照实际位数输出。 %-md,m指定输出字段的宽度(整数)。如果数据的位数小于m,则右端补以空格(左对齐),若大于m,则按照实际位数输出。 %ld,输出长整型数据,也可以指定宽度%mld。
格式字符 2、O格式符。以八进制形式输出整数。 3、x格式符。以十六进制形式输出整数。 4、u格式符。用来输出unsigned无符号型数据,即无符号数,以十进制形式输出。
格式字符 5、c格式符。用来输出一个字符。一个整数只要它的值在0-255范围内,也可以用字符形式输出。反之,一个字符数据也可以用整数形式输出。 6、s格式符。用来输出一个字符串。 7、f格式符。用来输出实数(包括单、双精度,单双精度格式符相同),以小数形式输出。
输入注意事项 1、scanf函数中“格式控制”后面应当是变量地址,而不应是变量名。 例如: scanf(“%d,%d”,a,b);不合法。 原因:C是传值调用,不能由形参返回值
输入注意事项 2、如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时在对应位置应当输入与这些字符相同的字符。建议不要使用其它的字符。
输入注意事项 3、在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。
输入注意事项 4、在输入数据时,遇到下面情况认为该数据结束: (1)遇到空格,或按“回车”或“跳格”(tab)键。 (2)按指定的宽度结束。 (3)遇到非法的输入。
其它输入/输出函数 1、putchar函数(字符输出函数)。 2、getchar函数(字符输入函数)。 3、puts函数(字符串、字符数组中字符串输出函数)。 4、gets函数(字符串输入函数)。
putchar函数(字符输出函数) 一般形式:putchar(字符表达式); 功能: 向终端(显示器)输出一个字符(可以是可显示的字符,也可以是控制字符或其它转义字符)。 例如: putchar(‘y’); putchar(‘\n’); putchar(‘\101’); putchar(‘\’’);
getchar函数(字符输入函数) 一般形式:c=getchar(); 功能: 从终端(键盘)输入一个字符,以回车键确认。函数的返回值就是输入的字符。
puts函数(字符串、字符数组中字符串输出函数)puts函数(字符串、字符数组中字符串输出函数) 一般形式:puts(char *str); 功能: 将字符串或字符数组中存放的字符串输出到显示器上。 例如: putstr(“China\nBeijing\n”);
gets函数(字符串输入函数) 一般形式:gets(char *str); 功能: 接收从键盘输入的一个字符串,存放在字符数组中。 例如: char s[81]; gets(s);
算法与程序设计 1、算法及其表示方法。 2、结构化程序设计。 3、算法设计举例。
算法及其表示方法 算法: 为解决一个问题而采取的方法和步骤称为“算法”。 对于同一个问题可以有不同的解题方法和步骤,也就是有不同的算法。算法有优劣,一般而言,应当选择简单的、运算步骤少的,既运算快、内存开销小的算法(算法的时空效率)。
算法的5大特性 1、有穷性 2、确定性 3、有0个或多个输入(即:可以没有输入,也可以有输入)。 4、有1个或多个输出(即算法必须得到结果)。 5、有效性。
算法的表示方法 1、用自然语言表示算法 。 2、用流程图表示算法。 3、用N-S流程图表示算法(盒图)。 4、用伪代码表示算法(常常用于算法设计) 5、用计算机语言表示算法 。
用自然语言表示算法 算法可以用自然语言描述的。自然语言就是人们日常使用的语言,可以是汉语、英语或其它语言。用自然语言表示通俗易懂,但文字冗长,容易出现歧义。自然语言表示的含义往往不太严格,要根据上下文才能准确判断其含义。此外,用自然语言描述分支和循环的算法,不是很直观。因此,除了简单问题,一般不采用自然语言描述算法。
流程图的基本元素 1、起止框:表示算法的开始和结束。一般内部只写“开始”或“结束”。 2、处理框:表示算法的某个处理步骤,一般内部常常填写赋值操作。 3、输入输出框:表示算法请求输入输入需要的数据或算法将某些结果输出。一般内部常常填写“输入…”,“打印/显示…” 。
流程图的基本元素 4、菱形框(判断框):作用主要是对一个给定条件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。它有一个入口,两个出口。 5、连接点:用于将画在不同地方的流程线连接起来。同一个编号的点是相互连接在一起的,实际上同一编号的点是同一个点,只是画不下才分开画。使用连接点,还可以避免流程线的交叉或过长,使流程图更加清晰。
流程图的基本元素 注释框:注释框不是流程图中必须的部分,不反映流程和操作,它只是对流程图中某些框的操作做必要的补充说明,以帮助阅读流程图的人更好地理解流程图的作用。
流程图的使用特点 用流程图表示的算法直观形象,比较清楚地显示出各个框之间的逻辑关系,因此得到广泛使用。每一个程序编制人员都应当熟练掌握流程图,会看会画。(软件专业水平、资格考试也用这种流程图表示)。
N-S图 美国学者I.Nassi,B.Shneiderman提出了一种新的流程图N-S流程图。这种流程图中,完全去掉了带箭头的流程线。每种结构用一个矩形框表示。
N-S图的使用特点 1、比文字描述更加直观、形象,易于理解; 2、比传统的流程图紧凑易画 3、废除流程线,整个算法结构是由各个基本结构按顺序组成。N-S流程图的上下顺序就是执行时的顺序。N-S图表示的算法都是结构化的算法。
算法设计举例 例4-2: 对于一个大于或者等于3的正整数,判断它是不是一个素数。(素数,是指除了1和该数本身之外,不能被其它任何整数整除的数)(疑问?1,2是否是素数)
分析 根据素数定义,对于一个≥3的正整数n,如果n只能被1,n整除,那么n是素数;也就是素数必须满足两个条件: 1、是≥3的正整数 2、只能被1和自身整除(被1和自身是肯定可以整除的),不能被其它2-(n-1)的正整数整除(全部不能整除)。 反过来理解:任何≥3的正整数n,如果能够被2-(n-1)的任何一个正整数整除,那么它一定不是素数。
顺序程序设计举例 1、输入三角形的三边长,求三角形面积。 为简单起见,设输入的三边长a,b,c能构成三角形。从数学知识已知求三角形面积的公式为: