第3章--最简单的C程序设计—顺序程序设计课件.ppt
《第3章--最简单的C程序设计—顺序程序设计课件.ppt》由会员分享,可在线阅读,更多相关《第3章--最简单的C程序设计—顺序程序设计课件.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 最简单的最简单的c程序设计程序设计顺序程序设计顺序程序设计3.1 C语句概述语句概述3.2 程序的三种基本结构程序的三种基本结构3.3 赋值语句赋值语句3.4 数据输入输出的概念及在语言中的实现数据输入输出的概念及在语言中的实现3.5 字符数据的输入输出字符数据的输入输出3.6 格式输入与输出格式输入与输出3.7 顺序结构程序设计举例顺序结构程序设计举例习题习题 在在上上一一章章介介绍绍了了程程序序中中用用到到的的一一些些基基本本要要素素(常常量量、变变量量、运运算算符符、表表达达式式等等),它它们们是是构构成成程程序序的的基基本本成成分分。在在第第1章章中中已已经经介介绍绍了了几
2、几个个简简单单的的c程程序序。本本章章将介绍为编写简单程序所必需的一些内容。将介绍为编写简单程序所必需的一些内容。3.1 C语句概述语句概述 和和其其他他高高级级语语言言一一样样,c语语言言的的语语句句用用来来向向计计算算机机系系统统发发出出操操作作指指令令。一一个个语语句句经经编编译译后后产产生生若若干干条条机机器器指指令令。一一个个实实际际的的程程序序应应当当包包含含若若干干语语句句。应应当当指指出出,c语语句句都都是是用用来来完完成成一一定定操操作作任任务务的的。声声明明部部分分的的内内容容不不应应称称为为语语句句。如如:int a;不不是是一一个个c语语句句,它它不不产产生生机机器器操
3、操作作,而而只只是是对对变变量量的的定定义义。从从第第1章章已已知知,一一个个函函数数包包含含声声明明部部分分和和执执行行部部分分,执执行行部部分分即即由由语语句句组组成成。c程程序序结结构构可可以以用用图图3.1表表示示。即即一一个个c程程序序可可以以由由若若干干个个源源程程序序文文件件(分分别别进进行行编编译译的的文文件件模模块块)组组成成,一一个个源源文文件件可可以以由由若若干干个个函函数数和和预预处处理理命命令令以以及及全全局局变变量量声声明明部部分分组组成成(关关于于“全全局局变变量量”见见第第7章章,“预预编编译译命命令令”见见第第8章章),一一个个函函数数由由数数据据定定义义部部
4、分和执行语句组成。分和执行语句组成。图图3.1 在在第第2章章中中已已经经说说明明,程程序序应应该该包包括括数数据据描描述述(由由声声明明部部分分来来实实现现)和和数数据据操操作作(由由语语句句来来实实现现)。数数据据描描述述主主要要定定义义数数据据结结构构(用用数数据据类类型型表表示示)和和数数据据初初值值。数数据据操操作作的的任务是对已提供的数据进行加工。任务是对已提供的数据进行加工。C语句可以分为以下语句可以分为以下5类:类:(1)控控制制语语句句,完完成成一一定定的的控控制制功功能能。c只只有有9种种控控制制语语句句,它们是:它们是:if()else (条件语句条件语句)for()(循
5、环语句循环语句)hile()(循环语句循环语句)dohile()(循环语句循环语句)continue (结束本次循环语句结束本次循环语句)break (中止执行中止执行switch或循环语句或循环语句)sitch (多分支选择语句多分支选择语句)goto (转向语句转向语句)return (从函数返回语句从函数返回语句)上上面面9种种语语句句中中的的括括号号()表表示示中中是是一一个个条条件件,表表示示内内嵌嵌的语句。例如:的语句。例如:“if()else”的具体语句可以写成:的具体语句可以写成:if(xy)z=x;else z=y;(2)函函数数调调用用语语句句。由由一一次次函函数数调调用用
6、加加一一个个分分号号构构成成一一个个语语句,例如:句,例如:printf(this is a c stateent);(3)表表达达式式语语句句。由由一一个个表表达达式式构构成成一一个个语语句句,最最典典型型的的是,由赋值表达式构成一个赋值语句。是,由赋值表达式构成一个赋值语句。a=3 是一个赋值表达式,而是一个赋值表达式,而a=3;是是一一个个赋赋值值语语句句。可可以以看看到到一一个个表表达达式式的的最最后后加加一一个个分分号号就就成成了了一一个个语语句句。一一个个语语句句必必须须在在最最后后出出现现分分号号,分分号号是是语语句句中中不不可可缺缺少少的的一一部部分分(而而不不像像pascal
7、语语言言那那样样,分号只是语句间的分隔符号分号只是语句间的分隔符号)。例如:。例如:i=i+1(是表达式,不是语句是表达式,不是语句)i=i+1;(是语句是语句)任任何何表表达达式式都都可可以以加加上上分分号号而而成成为为语语句句,例例如如i+;是是一一语语句句,作作用用是是使使i值值加加1。又又如如x+y;也也是是一一个个语语句句,作作用用是是完完成成x+y的的操操作作,它它是是合合法法的的,但但是是并并不不把把x+y的的和和赋赋给另一变量,所以它并无实际意义。给另一变量,所以它并无实际意义。表表达达式式能能构构成成语语句句是是c语语言言的的一一个个重重要要特特色色。其其实实“函函数数调调用
8、用语语句句”也也是是属属于于表表达达式式语语句句,因因为为函函数数调调用用(如如sin(x)也也属属于于表表达达式式的的一一种种。只只是是为为了了便便于于理理解解和和使使用用,我我们们把把“函函数数调调用用语语句句”和和“表表达达式式语语句句”分分开开来来说说明明。由由于于c程程序序中中大大多多数数语语句句是是表表达达式式语语句句(包包括括函函数数调调用用语语句句),所以有人把,所以有人把c语言称作语言称作“表达式语言表达式语言”。(4)空语句。空语句。下面是一个空语句:下面是一个空语句:;即即只只有有一一个个分分号号的的语语句句,它它什什么么也也不不做做。有有时时用用来来做做被被转转向向点点
9、,或或循循环环语语句句中中的的循循环环体体(循循环环体体是是空空语语句句,表表示示循循环体什么也不做环体什么也不做)。(5)可可以以用用把把一一些些语语句句括括起起来来成成为为复复合合语语句句,又又称称分分程程序。序。如下面是一个复合语句。如下面是一个复合语句。z=x+y;t=z/100;printf(%f,t);注注意意:复复合合语语句句中中最最后后一一个个语语句句中中最最后后的的分分号号不不能能忽忽略略不写不写(这是和这是和pascal不同的不同的)。C语语言言允允许许一一行行写写几几个个语语句句,也也允允许许一一个个语语句句拆拆开开写写在在几几行上,书写格式无固定要求行上,书写格式无固定
10、要求(fortran、cobol有严格要求有严格要求)。3.2 程序的三种基本结构程序的三种基本结构 为为了了提提高高程程序序设设计计的的质质量量和和效效率率,现现在在普普遍遍采采用用结结构构化化程程序序设设计计方方法法。结结构构化化程程序序由由若若干干个个基基本本结结构构组组成成。每每个个基本结构可以包含基本结构可以包含 一个或若干个语句。有三种基本结构一个或若干个语句。有三种基本结构:(1)顺顺序序结结构构,见见图图3.2。先先执执行行a操操作作,再再执执行行b操操作作,两两者者是是顺序执行的关系。图中顺序执行的关系。图中(b)是是NS结构化流程图结构化流程图(下同下同)。图图3.2图3.
11、3BABA(a)(b)(2)选选择择结结构构,见见图图3.3。p代代表表一一个个条条件件,当当p条条件件成成立立(或或称称为为“真真”)时时执执行行a,否否则则执执行行b。注注意意,只只能能执执行行a或或b之之一一。两条路径汇合在一起然后出口。两条路径汇合在一起然后出口。(3)循环结构循环结构,有两种循环结构有两种循环结构:当当型型循循环环结结构构,见见图图3.4。当当p条条件件成成立立(“真真”)时时,反反复复执行执行a操作。直到操作。直到p为为“假假”时才停止循环。时才停止循环。直直到到型型循循环环结结构构,见见图图3.5。先先执执行行a操操作作,再再判判断断p是是否否为为“假假”,若若p
12、为为“假假”,再再执执行行a,如如此此反反复复,直直到到p为为“真真”为止。为止。图图3.4图3.5 由由选选择择结结构构可可以以派派生生出出另另一一种种基基本本结结构构:多多分分支支选选择择结结构构,见图见图3.6。根据根据k的值的值(k1,k2,kn)不同而决定执行不同而决定执行a1,a2,an之一。之一。已已经经证证明明,由由以以上上基基本本结结构构组组成成的的程程序序能能处处理理任任何何复复杂杂的的问问题题。上上面面图图3.2图图3.7中中方方框框中中的的a,b,a1,an等等可可以以是是一一个个简简单单的的语语句句,也也可可以以又又是是一一个个基基本本结结构构。例例如如,图图3.7是
13、是一一个个顺顺序序结结构构,它它由由两两个个操操作作顺顺序序组组成成。虚虚线线框框内内是是一一个个当当型型循循环环结结构构,可可以以用用“b”表表示示,因因此此图图3.7就就可可以以理理解解为图为图3.2(a)所示的顺序结构。所示的顺序结构。图图3.6 图图3.7 关关于于三三种种基基本本结结构构的的特特征征以以及及结结构构化化程程序序设设计计方方法法,读读者者可可能能已已在在学学习习其其他他高高级级语语言言程程序序设设计计时时学学习习过过,在在此此不不再再重重复复。只只是是应应当当强强调调说说明明,在在今今后后的的程程序序设设计计中中应应当当采采用用结结构构化化程程序序设设计计方方法法。在在
14、本本章章中中,我我们们将将介介绍绍几几种种最最基基本本的的语语句句,以以及及用用它它们们构构成成顺顺序序结结构构的的程程序序。在在第第4、第第5章章介绍选择结构和循环结构的程序设计。介绍选择结构和循环结构的程序设计。3.3 赋值语句赋值语句 前前已已介介绍绍,赋赋值值语语句句是是由由赋赋值值表表达达式式加加上上一一个个分分号号构构成成。由于赋值语句应用十分普遍,所以专门再讨论一下。由于赋值语句应用十分普遍,所以专门再讨论一下。C语语言言的的赋赋值值语语句句具具有有其其他他高高级级语语言言的的赋赋值值语语句句的的一一切切特特点和功能。但也应当注意到它们的不同:点和功能。但也应当注意到它们的不同:
15、(1)C语语言言中中的的赋赋值值号号“=”是是一一个个运运算算符符,在在其其他他大大多多数数语言中赋值号不是运算符。语言中赋值号不是运算符。(2)关关于于赋赋值值表表达达式式与与赋赋值值语语句句的的概概念念,其其他他多多数数高高级级语语言言没没有有“赋赋值值表表达达式式”一一概概念念。作作为为赋赋值值表表达达式式可可以以包包括括在其他表达式之中,例如:在其他表达式之中,例如:if(a=b)0)t=a;按按语语法法规规定定if后后面面的的()内内是是一一个个条条件件,例例如如可可以以是是:“if(x0)”。现现在在在在x的的位位置置上上换换上上一一个个赋赋值值表表达达式式“a=b”,其其作作用用
16、是是:先先进进行行赋赋值值运运算算(将将b的的值值赋赋给给a),然然后后判判断断a是是否否大大于于0,如如大大于于0,执执行行t=a。在在if语语句句中中的的“a=b”不不是是赋赋值值语语句句而而是是赋赋值值表表达达式式,这这样样写写是是合合法法的的。如如果果写写成成if(a=b;)0)t=a;就就错错了了。在在if的的条条件件中中不不能能包包含含赋赋值值语语句句。由由此此可可以以看看到到,c把把赋赋值值语语句句和和赋赋值值表表达达式式区区别别开开来来,增增加加了了表表达达式式的的种种类类,使使表表达达式式的的应应用用几几乎乎“无孔不入无孔不入”,能实现其他语言中难以实现的功能,能实现其他语言
17、中难以实现的功能.3.4 数据输入输出的概念及在数据输入输出的概念及在C语言中的实现语言中的实现(1)所所谓谓输输入入输输出出是是以以计计算算机机主主机机为为主主体体而而言言的的。从从计计算算机机向向外外部部输输出出设设备备(如如显显示示屏屏、打打印印机机、磁磁盘盘等等)输输出出数数据据称称为为“输输出出”,从从外外部部向向输输入入设设备备(如如键键盘盘、磁磁盘盘、光光盘盘、扫扫描描仪仪等等)输入数据称为输入数据称为“输入输入”。(2)C语语言言本本身身不不提提供供输输入入输输出出语语句句,输输入入和和输输出出操操作作是是由由函函数数来来实实现现的的。在在c标标准准函函数数库库中中提提供供了了
18、一一些些输输入入输输出出函函数数,例例如如,printf函函数数和和scanf函函数数。读读者者在在使使用用它它们们时时,千千万万不不要要误误认认为为它它们们是是C语语言言提提供供的的“输输入入输输出出语语句句”。printf和和scanf不是不是C语言的关键字,而只是函数的名字。语言的关键字,而只是函数的名字。实实际际上上完完全全可可以以不不用用printf和和scanf这这两两个个名名字字,而而另另外外编编两两个个输输入入输输出出函函数数,用用其其他他的的函函数数名名。C提提供供的的函函数数以以库库的的形形式式存存放在系统中,它们不是放在系统中,它们不是c语言文本中的组成部分。语言文本中的
19、组成部分。不不把把输输入入输输出出作作为为C语语言言提提供供的的语语句句的的目目的的是是使使C语语言言编编译译系系统统简简单单,因因为为将将语语句句翻翻译译成成二二进进制制的的指指令令是是在在编编译译阶阶段段完完成成的的,没没有有输输入入输输出出语语句句就就可可以以避避免免在在编编译译阶阶段段处处理理与与硬硬件件有有关关的的问问题题,可可以以使使编编译译系系统统简简化化,而而且且通通用用性性强强,可可移移植植性性好好,对对各各种种型型号号的的计计算算机机都都适适用用,便便于于在在各各种种计计算算机机上上实实现现。各各种种版版本本的的C语语言言函函数数库库是是各各计计算算机机厂厂商商(或或软软件
20、件开开发发公公司司)针针对对某某一一类类型型计计算算机机的的情情况况编编写写的的,并并且且已已编编译译成成目目标标文文件件(.obj文文件件)。它它们们在在连连接接阶阶段段与与由由源源程程序序 经经编编译译而而得得到到的的目目标标文文件件相相连接,生成一个可执行的目标程序。连接,生成一个可执行的目标程序。如如果果在在源源程程序序中中有有printf函函数数,在在编编译译时时并并不不把把它它翻翻译译成成目目标标指指令令,而而是是在在执执行行阶阶段段中中调调用用已已被被连连接接的的函函数数库库中中的的printf函函数数。由由于于c编编译译系系统统与与c函函数数库库是是分分别别进进行行设设计计的的
21、,因因此此不不同同的的计计算算机机系系统统所所提提供供函函数数的的数数量量、名名字字和和功功能能是是不不完完全全相相同同的的。不不过过,有有些些通通用用的的函函数数(如如printf和和scanf等等),各各种种计计算算机机系系统统都都提提供供,成成为为各各种种计计算算机机系系统统的的标标准准函函数数。c语语言言函函数数库库中中有有一一批批“标标准准输输入入输输出出函函数数”,它它是是以以标标准准的的输输入入输输出出设设备备(一一般般为为终终端端设设备备)为为输输入入输输出出对对象象的的。其其中中有有:putchar(输输出出字字符符),getchar(输输入入字字符符),printf(格格式
22、式输输出出),scanf(格格式式输输入入),puts(输输出出字字符符串串),gets(输输入入字字符符串串)。在在本本章章中中介介绍绍前前面面4个最基本的输入输出函数。个最基本的输入输出函数。(3)在在使使用用c语语言言库库函函数数时时,要要用用预预编编译译命命令令“include”将将有有关关的的“头头文文件件”包包括括到到用用户户源源文文件件中中。在在头头文文件件中中包包含含了了与与用用到到的的函函数数有有关关的的信信息息。例例如如使使用用标标准准输输入入输输出出库库函函数数时时,要要用用到到“stdio.h”文文 件件。文文 件件 后后 缀缀“h”是是 head的的 缩缩 写写,#i
23、nclude命命令令都都是是放放在在程程序序的的开开头头,因因此此这这类类文文件件被被称称为为“头头文文件件”。在在调调用用标标准准输输入入输输出出库库函函数数时时,文文件件开开头头应应有有以以下下预编译命令:预编译命令:#include 或或#include studio.h studioh是是standard input&output的的缩缩写写,它它包包含含了了与与标标准准i/o库有关的变量定义和宏定义库有关的变量定义和宏定义(有关预编译有关预编译命命令令见见第第7章章)。考考虑虑到到printf和和scanf函函数数使使用用频频繁繁,系系统统允允许许在使用这两个函数时可不加在使用这两个
24、函数时可不加#include命令。命令。3.5 字符数据的输入输出字符数据的输入输出 我我们们先先介介绍绍c标标准准i/o函函数数库库中中最最简简单单的的、也也是是最最容容易易理理解解的的字字符符输输入入输输出出函函数数putchar()和和getchar(),再再介介绍绍格格式式输输入入输输出出函函数数printf()和和scanf()函数。函数。3.5.1 putchar函数函数(字符输出函数字符输出函数)putchar函函数数的的作作用用是是向向终终端端输输出出一一个个字字符符:例例如如putchar(c);它输出字符变量它输出字符变量c的值。的值。c可以是字符型变量或整型变量。可以是字
25、符型变量或整型变量。例例3.1 输出单个字符。输出单个字符。#include main()char a,b,c;a=b;b=o;c=y;putchar(a);putchar(b);putchar(c);运行结果:运行结果:boy 也也可可以以输输出出控控制制字字符符,如如putchar(n)输输出出一一个个换换行行符符,使输出的当前位置移到下一行的开头。使输出的当前位置移到下一行的开头。如果将例如果将例3.1程序最后一行改为程序最后一行改为putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);则输出结果为:则输出结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 程序设计 顺序 课件
限制150内