第3章顺序结构程序设计.ppt

上传人:我**** 文档编号:1900401 上传时间:2019-10-31 格式:PPT 页数:53 大小:2.40MB
返回 下载 相关 举报
第3章顺序结构程序设计.ppt_第1页
第1页 / 共53页
第3章顺序结构程序设计.ppt_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《第3章顺序结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章顺序结构程序设计.ppt(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、,C语言程序设计,第3章 顺序结构程序设计,3.1 算法的基本知识3.2 C语句3.3 数据的输入和输出,课程回顾,3.1 算法的基本知识,1、指出下列各表达式的值:2、以下程序的输出结果是:,如:123/10%10、19%4/5、16/5.0,#include “stdio.h”main() i nt a=4,b=5,c=0,d; d=!a ,课程回顾,3.1 算法的基本知识,阅读以下程序,写出程序的输出结果?,#include stdio.hmain() int a=5,b=4,c=6,d; printf(%dn,d=ab?(ac?a:c):(b); getch();,课程回顾,3.1 算

2、法的基本知识,阅读以下程序,写出程序的输出结果?,#include stdio.hmain() int sum,pad; sum=pad=6; pad=sum+,pad+,+pad; printf(“sum=%dnpad=%dn,sum,pad); getch();,课程回顾,3.1 算法的基本知识,阅读以下程序,写出程序的输出结果?,#include stdio.hmain() int a=0,b=5,c=0; c=(a-=a-8) , (a+=b,b+5) ; printf(“a=%d,b=%dnc=%d, a,b,c); getch();,学习目标,理解算法的特性和要素,掌握常用的算法描

3、述方法,3.1 算法的基本知识,广义上讲,算法是解决某一问题的方法和步骤。狭义上,算法指的是计算机算法,即对特定问题求解步骤的一种描述,它是计算机指令的有限序列,其中每一条指令表示计算机可以进行的一个或多个操作。,算法的概念,3.1 算法的基本知识,算法的特性,3.1.1 算法的特性和要素,(1)有穷性,(2)确定性,(3)可行性,(4)有零个或多个输入,(5)有一个或多个输出,算法的要素,3.1.1 算法的特性和要素,一个计算机所能执行的算法必须具备以下两个要素:(1)基本操作即构成算法的操作取自哪个操作集。计算机操作主要包括:算术运算、关系运算、逻辑运算、函数运算、位运算及I/O操作等。由

4、于不同的计算机语言所对应的操作集略有不同,所以在设计算法前,应先确定编程语言。(2)控制结构每个算法都是由一系列的操作组成。同一操作序列,按不同的顺序执行,就会得到不同的结果。控制结构即如何控制组成算法的各操作的执行顺序。一个算法只能由种结构组成,即顺序结构、选择结构、循环结构。,3.1.2 算法的描述,算法的描述方法有很多种,最常用的有自然语言、伪代码、流程图、N-S图、PAD图和计算机语言等。,自然语言,3.1.2 算法的描述,自然语言是人们在日常生活、工作、学习中通用的语言,一般不需要专门学习和训练就能理解用这种语言所表达的意思。但用自然语言描述程序(或算法)的流程时,一般要求直接而简练

5、,尽量减少语言上的修饰。,实例分析,3.1.2 算法的描述,用自然语言描述sum=1+2+3+99+100的算法。定义变量sum,并置初始值为0。计算1+2+3+99+100的和,并将结果赋给sum。输出变量sum的值。,流程图,3.1.2 算法的描述,流程图是一种传统的算法表示方法,用一些图框表示各种操作,用流程线表示操作的执行顺序。用图形表示算法,直观形象、易于理解。ANSI(American National Standard Institute)规定了一些常用流程图符号。,实例分析,3.1.2 算法的描述,用流图描述sum=1+2+3+99+100的算法,图,3.1.2 算法的描述,N

6、-S图是由I.Nassi和B.Shneiderman于1973年共同提出的一种结构化描述方法。在这种流图图中,去掉了所有的流程线,算法写在一个矩形框内,在该矩形框内还可以包括其他的矩形框。N-S流程图用以下的流程图符号。,图,3.1.2 算法的描述,实例分析,3.1.2 算法的描述,用图描述sum=1+2+3+99+100的算法,程序设计语言,3.1.2 算法的描述,对于采用自然语言、流程图和N-S图描述的算法,计算机是不能执行的。要让计算机执行一个算法,必须把该算法转换成计算机语言。用计算机语言表示算法必须严格遵循所使用语言的语法规则。,实例分析,3.1.2 算法的描述,【例3-1】 编程求

7、1+2+3+99+100的累加和。#include int main( )int i,sum;i=1; sum=0;while(iy) max=x;elsemax=y;,printf(Hello!);,由表达式加一个分号构成一个语句。,a=3;,;,由 将一些语句括起来。, t=x; x=y; y=t;,?,语句分类,3. 2 语句,语句构成,3.2.1 表达式语句,表达式语句是由表达式加上分号(;)组成。其一般形式如下: 表达式;这里的表达式是指语言中任何合法的表达式。例如: x=y+z; /赋值表达式语句 y+z;/加法运算语句,计算结果不能保留,无实际意义 i+;/自增语句,即i的值增,

8、注意事项,3.2.1 表达式语句,使用赋值语句时需要注意以下几点。(1)在赋值符“”右边的表达式也可以是一个赋值表达式。例如:a=b=c=5;(2)注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。,语句构成,3.2.2 函数调用语句,函数是C程序的基本组成单位,一个函数的执行是通过在程序中调用这个函数来实现的,调用函数的操作由C语句来完成,通常称为函数调用语句。其一般形式如下:函数名(参数表);例如,“printf(hello!);”就是一个函数调用语句。,3.2.3 控制语句,语句构成,3.2.4 空语句,仅由分号“;”组成的语

9、句称为空语句。空语句是不执行任何操作的语句。例如,while(getchar( ) !=n) ; /循环体为空语句空语句通常起到占位的作用,在程序没有完全开发完成前,可用空语句占位,以便后续开发填充代码。,语句构成,3.2.5 复合语句,把多个语句用大括号括起来组成的语句称为复合语句。在语法上,复合语句相当于单条语句,而不是多条语句。其一般形式为: 语句1 语句n复合语句可以放在能够使用语句的任何地方,它建立一个新的作用域或块。复合语句是C语言中唯一不用分号“;”结尾的语句。,学习目标,掌握格式化输入函数的基本用法,3.3 数据的输入和输出,掌握格式化输出函数的基本用法,注意事项,一个完整的计

10、算机程序应具备输入输出功能,C语言本身并不提供数据的输入输出语句,有关的输入输出操作都是通过调用C标准库函数来实现的。C语言提供的输入输出标准库函数有getchar( )、putchar( )、puts()、gets()、scanf( )和printf( )。引用语言标准库函数时,必须用编译预处理命令“#include”将头文件“stdio.h”包含到用户源程序中,即在程序的开始写一行命令#include或者#include”stdio.h”。,3.3 数据的输入和输出,getchar( ),字符输入函数的一般形式如下:int getchar();功能:接收从终端输入的一个字符,并返回其ASC

11、II码值。例如:int ch=getchar( ); /从输入终端(如键盘)接收一个字符并把它赋给ch变量。,注:getchar函数没有参数,所接受的字符可以赋给字符型或整型变量,也可以作为表达式的一部分。,3.3 数据的输入和输出,实例分析,#include void main() char c1; c1=getchar(); putchar(c1); putchar(getchar();,输入:a ,a_,输入:ab ,ab_,?,3.3 数据的输入和输出,getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回

12、车为止(回车字符也放在缓冲区中).如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键. getch()与getchar()基本功能相同,差别是getch()直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch()就立刻返回,getchar()与getch()的区别?,3.3 数据的输入和输出,实例分析,#include void main() char c1,c2,c3; c1=getchar(); c2=get

13、char(); putchar(c1); putchar(getchar(); putchar(c2); getch();,程序运行结果:,3.3 数据的输入和输出,putchar( ),字符输出函数的一般形式如下:int putchar(char ch)功能:向终端输出一个字符,并返回该字符的ASCII码值,注: ch 可以是一个字符型(整型)变量、常量或表达式;也可以是一个转义字符,如 putchar(n)、putchar(101)。,?,A,#include void main() char ch1B,ch2=O,ch3=Y; putchar(); /*输出双引号*/ putchar(c

14、h1); putchar(ch2); putchar(ch3); /*输出BOY*/ putchar(); /*输出双引号*/,BOY,putchar(B);,3.3 数据的输入和输出,实例分析,#include int main() char ch1,ch2,ch3,ch4; ch1=getchar();ch2=getchar(); ch3=getchar();ch4=getchar(); putchar(ch1);putchar(n); putchar(ch2);putchar(n); putchar(ch3);putchar(n); putchar(ch4); return 0;,程序运

15、行结果如下:C+C+,3.3 数据的输入和输出,printf( ),格式化输出函数的一般形式如下: int printf (char *format ,argument,.); 功能:函数printf将一组参数,按format给定的格式,把数据格式化并且输出到标准输出设备。若出错,则返回负数。向终端输出一个字符,并返回该字符的ASCII码值。 函数调用的一般形式为: printf(格式控制字符串,输出项列表);,3.3 数据的输入和输出,%标识宽度.精度 格式字符,printf( ),方括号表示该项可有可无,- :左对齐输出,缺省为右对齐输出+ :正数输出加号(+),负数输出减号(-)空格:正

16、数输出空格代替加号(+),负数输出减号(-)。,十进制整数,指定输出宽度。指定宽度实际宽度,补空格。指定宽度实际宽度,按实际输出。不指定宽度,按实际输出。,输出精度指示符。对整数,表示至少要输出的数字个数,不足补,多则原样输出。对实数,表示小数点后至多输出的数字个数,不足补,多则舍入处理。对字符串,表示最多输出的字符个数,不足补空格,多则丢弃。,3.3 数据的输入和输出,#include main() int num1=123; long num2=123456; /*用3种不同格式,输出int型数据num1的值*/ printf(num1=%d,num1=%5d,num1=%-5d,num1

17、=%2dn, num1,num1,num1,num1); /*用3种不同格式,输出long型数据num2的值*/ printf(num2=%ld,num2=%8ld,num2=%5ldn,num2,num2,num2); printf(num1=%ldn,num1); ,实例分析d格式符,3.3 数据的输入和输出,40,float x,y;x=111111.111;y=222222.222;printf(%f,x+y);,333333.328125,整数部分全部输出,小数部分输出6位,因有效位数为7位,因此后面数字不准确。,float x=123.456;printf(%f,x);printf

18、(%10f,x);printf(%10.2f,x);printf(%.2f,x);printf(%-10.2f,x);,123.456001123.456001123.46123.46123.46,实数最常用的两种输出格式,实例分析f格式符,3.3 数据的输入和输出,float x=123.456;printf(%e,x);printf(%10e,x);printf(%10.2e,x);printf(%.2e,x);printf(%-10.2e,x);,1.234560e+0021.234560e+002 1.23e+0021.23e+0021.23e+002,输出: 1.234560e+00

19、2,指数部分,尾数部分,2 6 5,总宽度为 13,实例分析e格式符,3.3 数据的输入和输出,Internet,InternetInter,Inter,输出:,系统输出字符和字符串时,不输出单引号和双引号。,注意,#include void main() printf(“%s,%5sn,Internet,Internet); printf(%10.5s,%4.5sn,Internet,Internet);,3.3 数据的输入和输出,实例分析s格式符,注意说明:,(5)修饰符0(数字):指定数字前的空格用0填补。,运行结果,语句编写,main(),int a=123;,printf(%04dn

20、,a);,(6)修饰符:指定输出项的对齐方式,表示左对齐 。,0123,123,printf(%-4dn,a);,3.3 数据的输入和输出,scanf( ),格式化输入函数的一般形式如下: int scanf(格式控制字符串,地址列表)功能:按照格式控制的要求,将从终端输入的数据赋值给地址列表中的各个变量。格式控制字符串的含义和函数printf( )中的格式控制字符串类似,地址列表列出了各变量的地址,由取地址运算符“&”后跟变量名组成。 函数调用的一般形式为: scanf(格式控制字符串,地址列表);,3.3 数据的输入和输出,scanf( ),% * 宽度 格式字符,输入赋值抑制字符: 该格

21、式要求输入数据,但不赋值,即在地址列表中没有对应有地址项。,宽度指示符: 该输入项最多可输入的字符个数。如遇空格或不可转换的字符,读入的字符将减少。,3.3 数据的输入和输出,46,int a,b;scanf(%d%d,343,4,int a,b;scanf(%d,%d,3 , 43,4,注意,当输入多个数据时,若各个格式说明之间没有其他字符,则系统默认使用空格键、回车键和Tab键进行间隔;若格式说明之间有其他字符,则必须照原样输入。,343,4,实例分析,3.3 数据的输入和输出,float a;scanf(%f,输入: 3.2,float a;scanf(%3.2f,注意,当输入实型数据时

22、,不能规定精度。如果指定了精度,编译时不会报错,但输入的数据将不可预知。,3.200000,输出:,输入: 3.218,-107374176.000000,输出:,实例分析,3.3 数据的输入和输出,48,char ch1,ch2,ch3;scanf(%c%c%c,注意,使用格式说明符%c输入单个字符时,空格和转 义字符均作为有效字符被输入。,输入: a b c,ch1=a,ch2= ,ch3=b,输出:,其中:ch2的值为空格。,实例分析c格式符,3.3 数据的输入和输出,注意说明:,*(抑制字符):表示本输入项只是读入,但不赋给相应变量。,运行结果,语句编写,main(),int a,b;

23、,printf(a=%d,b=%dn,a,b);,scanf(%d%*d%d,a=123,b=678,123 45 678,3.3 数据的输入和输出,#include int main()float c,f;printf(Please input c:);scanf(%f, ,实例分析,运行结果如下:Please input c: 28f = 82.40,输入摄氏温度c的值,计算华氏温度f的值。(计算公式为:f=9*c/5+32),3.3 数据的输入和输出,51,例2,输入三角形的三边,求三角形的面积。,#include #include void main() float a,b,c,p,s

24、; printf(请输入三角形的三边:); scanf(%f%f%f,请输入三角形的三边:3 4 5s=6.00,分析,a,b,c:表示三角形的三边。 p:中间变量。 p=(a+b+c)/2s:三角形面积。以上变量均为实型。,?,若输入3 4 8-2 -3 9,运行情况:,3.3 数据的输入和输出,1、从键盘上输入两个整数,实现两个数的交换并输出2、输入任意三个整数,从小到大输出。 3、编写一个C程序输出123 ,并分别输出个位,十位,百位。,思考?,3.3 数据的输入和输出,练习,算法的基础知识算法的特性和要素算法的描述C语句的分类表达式语句函数调用语句标准输入、输出函数 scanf() printf() getchar() putchar()空语句复合语句顺序结构化程序设计,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com