




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章顺序程序设计,程序设计语言,2,回顾,常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型单精度浮点型和双精度浮点型变量可存储实数,但双精度型取值范围要比单精度型大的多字符型变量可以存储单个字符,其值是该字符的ASCII码表达式是操作数和运算符以及括号的有意义的组合赋值运算符的语法如下:variable=expression;算术运算符提供运算功能,包括+、-、*、/、%、+和-,3,教学目标,了解语句的基本概念了解语句的分类掌握字符输入输出函数getchar和putchar掌握格式输入输出函数scanf和printf算法及其表示掌握顺序程序设计,4,C语言中的语句,语句:由常量、变量、运算符、表达式等按一定规则组合,并以;结束变量声明语句inta=1;函数调用语句printf(helloworld!);表达式语句k+;k=k+1;空语句;复合语句t=x;x=y;y=t;控制语句if(a=1)b=2;elsec=3;return;,被当作一个整体来处理,什么也不做,只表示语句的存在,赋值语句,5,字符输入输出函数,getchar(),字符型数据,字符型数据,putchar(),6,getchar和putchar函数,#includevoidmain()charch;printf(PressakeyandthenpressEnter:);ch=getchar();printf(Youpressed);putchar(ch);putchar(n);,运行程序,PressakeyandthenpressEnter:,A,Youpressed,A,该语句的作用是什么?,7,getchar和putchar函数使用,#includevoidmain()chara,b;printf(请输入2个字符:n);a=getchar();fflush(stdin);b=getchar();fflush(stdin);putchar(a);putchar(b);putchar(n);,O,K,输出:请输入两个字符:OKOKPressanykeytocontinue_,8,格式输入输出函数,输入/输出函数(scanf/printf)用于接受和显示数据或信息,#includeintmain(void)intnum;printf(请输入一个数:);scanf(%d,格式字符串,转义序列,printf()函数的一般形式为:printf(“格式描述串”,变量列表);说明:第一个参数说明采用什么样的格式输出内容。格式描述串中可以包含格式字符串(以“%”开始),也可以包含转义序列(以“”标识)。第二个参数是要显示其值的参数列表。如果格式描述串中没有特殊字符“%”,那么该输出语句里就不能有变量列表,也不需要表示分隔的逗号这是使用printf()函数的最简单的形式。,9,printf函数,intvisitor_count=150;printf(%d,visitor_count);,printf,将一些信息按照指定的格式送到标准输出(显示器),%d,visitor_count,将按指定的格式显示该变量的值,10,printf函数,intvisitor_count=150;printf(%d,visitor_count);,输出结果:150,重要结论:printf函数格式串中除了格式控制符外,若包含其它常量字符,则其中所有字符都将在屏幕上原样输出。,11,printf函数,intsalary=5500;printf(%10d,salary);,输出结果:5500,输出结果的左边显示了6个空格,%10d,12,printf函数,floatcircumference=78.53;printf(%f,circumference);,输出结果:78.530000,默认情况下精确到六位小数,9.4786789;,9.478679,13,printf函数,doublemercury_level=168.2251074;printf(%7.2f,mercury_level);,输出结果:168.23,宽度:表示所有的数字和小数点所占的位数。不够7位右对齐,%7.2f,精度:精确到小数点后多少位,14,scanf函数,scanf(%d,scanf函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。,格式字符串,scanf(%f,tax_rate,在内存中分配一块32位存储空间存储空间使用名称“tax_rate”标识,提示用户输入一个值输入的值存储在变量中(因为scanf提供此变量的地址),12.234,16,scanf函数常见错误,常见错误scanf(%d,%fn”,注意:scanf函数格式字符中不能有精度n和n,17,scanf函数使用,#includevoidmain()inta,b;printf(Pleaseinputintegeraandb:);scanf(%d%d,Pleaseinputaandb:34a=12,b=34,a+b=46,12,以回车键作为分隔符,以空格或TAB键作为分隔符,18,scanf函数使用,#includevoidmain()inta,b;printf(Pleaseinputaandb:);scanf(%d,%d,Pleaseinputaandb:,a=12,b=34,a+b=46,12,34,重要结论:scanf函数格式串中除了格式控制符外,若包含其它常量字符,则其中所有字符都必须在键盘上原样输入。,19,输入数据的格式控制,#includevoidmain()inta,b;scanf(%d%d,问题:将语句scanf(%d%d,时,用户应该如何输入数据?,a=12,b=34,20,输入数据的格式控制,#includevoidmain()inta,b;scanf(%d%d,问题:如果限定用户输入数据为以下格式为a=12,b=34同时要求程序输出结果为a=12,b=34,scanf(a=%d,b=%d,21,输入输出示例,例:从键盘输入一个小写英文字母,转化为大写字母并输出。分析:单字母的输入输出可用getchar()、putchar()函数大小写字母的编码相差32,大写字母=小写字母-32#includevoidmain()charch;printf(“输入一个小写字母:n”);ch=getchar();ch=ch-32;printf(“对应的大写字母为:”);putchar(ch);,ch=getchar()-(a-A);,ch=getchar()-32;,问:输入数据不是小写字母,程序会咋样?,22,算法,算法:为解决某个具体问题而采取的确定且有限的操作步骤,仅指计算机能执行的算法程序=数据结构+算法算法特性有穷性:只包含有限个操作步骤确定性:每一条指令有确切含义,无歧义有效性:算法是可以实现的0n个输入:通过输入得到要处理的数据1n个输出:输出问题的解,23,算法的基本结构,结构化程序的3种基本结构顺序结构程序中的语句按照先后顺序依次逐条执行选择结构根据所满足的条件有选择的执行程序段循环结构根据设定的条件重复执行某程序段已证明任何复杂的问题都可以由3种基本结构组成的算法来解决,24,算法的表示方法,自然语言表示传统的流程图表示用几何图形代表各类操作,图形内表明文字表示操作内容,箭头表示操作的顺序N-S图表示将算法写在一个大的矩形框内,由一系列方块组成伪代码表示用介于自然语言与计算机语言之间的文字及符号来描述算法(方便、易懂、便于向计算机语言过渡),25,程序流程图表示方法,也称为程序框图,常使用的标准符号如下:圆角框:表示开始或结束平行四边形:表示数据输入与输出矩形框:表示一个处理,处理内容写于框内菱形框:表示一个判断,判断条件写于框内箭头:表示程序流程,26,流程图的五种基本控制结构,27,求给定10个数中最大数的程序流程图,28,N-S图的表示方法,N-S图也叫做盒图。五种基本控制结构图形表示,29,求给定10个数中最大数的N-S图,30,顺序程序设计,例1:编写一个重量单位换算程序,输入用公斤表示的重量,然后程序能够转换并输出用镑和盎司表示的等效重量。请输入重量(公斤):23转换为用磅表示的重量(磅):50.7055转换为用盎司表示的重量(盎司):811.287其中:公斤、磅和盎司的转换公式:1磅=16盎司=0.4536千克(公斤),问题如何设计变量及选择相应的数据类型?如何设计算法,实现公斤、磅和盎司的转换?,31,顺序程序设计,设计数据结构确定变量的个数:3个确定变量的数据类型程序需要处理带小数点的数值,变量的数据类型需选用实型,这里选可以对实数进行操作的double型因此设计变量为:doublekilogram,pound,ounce;/公斤、镑、盎司设计算法如下:1.输入用公斤表示的重量:scanf函数2.将重量转化为磅:pound=kilogram/0.4536;3.将磅转化为盎司:ounce=pound*16;4.输出转换后的重量:printf函数,问题分析,32,顺序程序设计,/重量单位换算#includevoidmain()doublekilogram,pound,ounce;/公斤、镑、盎司printf(请输入重量(公斤):);scanf(%lf,33,顺序程序设计,例2:从键盘输入两个整数给变量x和y,然后输出x和y,交换x和y的值后再输出x和y。分析:确定变量确定算法#includevoidmain()intx,y,temp;printf(“输入两个整数x和y:”);scanf(“%d%d”,intx,y,temp;temp=x;x=y;y=temp;,34,顺序程序设计,思考练习:从键盘输入三个整数给变量a、b和c,然后输出a、b和c,交换a、b和c的值,即a的值给b,b的值给c,c的值给a,然后再输出a、b和c。#includeVoidmain()inta,b,c,temp;printf(“输入三个整数a、和c:”);scanf(“%d%d%d”,temp=c;c=b;b=a;a=temp;,35,顺序程序设计,例3:输入一个华氏温度,计算并输出对应的摄氏温度值,输出时保留2位小数。,#includevoidmain()floatc,f;/c和f分别存放摄氏温度和华氏温度printf(请输入一个华氏温度:);scanf(%f,c=5./9*(f-32);,36,顺序程序设计,找零钱问题:假定有5角、1角、5分、2分和1分共5种硬币,在给顾客找硬币时,一般都会尽可能地选用硬币个数最小的方法。例如,当要给某顾客找7角2分钱时,会给他一个5角,2个1角和1个2分的硬币。试编写一个程序,输入的是要找给顾客的零钱(以分为单位),输出的是应该找回的各种硬币数目,并保证找回的硬币数最少。解题思考:利用整数除法/和求余运算符%的特点,计算每种硬币的数目和每次剩余零钱的金额。,37,总结,了解语句的基本概念了解语句的分类掌握字符输入输出函数getchar和putchar掌握格式输入输出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论