电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c语言 第3章顺序结构程序设计

35页
  • 卖家[上传人]:zw****58
  • 文档编号:35830772
  • 上传时间:2018-03-21
  • 文档格式:PPT
  • 文档大小:538KB
  • / 35 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、本章要求:,了解结构化程序的算法描述掌握C语言中数据的输入/输出方法顺序结构程序设计,本章重点: C程序中数据的输入/输出方法,顺序、选择、循环(分支),一、什么是算法,算法是解决一个问题采取的方法和步骤的描述 。,1有穷性:算法须在执行有穷多个计算步骤后终止 2确定性:算法的每个步骤必须都是精确定义的、无二义性的; 3有效性:算法中的每一个步骤必须有效地执行,并能得到确定结果; 4输入:一个算法中可以没有输入,也可以有一个或多个输入信息 5输出:一个算法应有一个或多个输出,算法的特性:,(一)自然语言与伪代码表示算法 自然语言就是指人们日常使用的语言,可以是汉语、英语或其它语言。 伪代码是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。,二、算法的表示,例的伪代码表示如下:Begin(算法开始) 输入 A,B,C IF AB 则 AMax 否则 BMax IF CMax 则 CMaxPrint MaxEnd (算法结束),例: 输入三个数,然后输出其中最大的数。算法可以写成:(1) 输入A,B,C。(2) 若AB,则MAX A;否则MAXB。(3) 若CMAX,

      2、则MAX C。(4) 输出MAX,MAX即为最大数。,结构化程序的算法描述:,1常用的流程符号l 起止框:表示算法的开始和结束。l 处理框:表示初始化或运算赋值等操作。l 输入输出框:表示数据的输入输出操作。l 判断框:表示根据一个条件成立与否,决定执行两种不同操作中的其中一个。l 流程线:表示流程的方向。,(二)用流程图表示算法,用流程图表示如下图所示:,例: 输入三个数,然后输出其中最大的数。,(三)用NS流程图表示算法,C语言中实现顺序结构的语句:赋值语句、变量声明语句、符号常量声明语句等。,三、赋值语句,赋值语句是由赋值表达式再加分号构成的表达式语句。 其一般形式为: 变量=表达式;,1赋值符“=”右边的表达式可以又是一个赋值表达式因此,下述形式是正确的:变量=(变量=表达式);其展开之后的一般形式为:变量=变量=表达式;,例如:a=b=c=d=e=5;按照赋值运算符的右结合性,因此实际上等效于: e=5; d=e; c=d; b=c; a=b;,2.注意变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间

      3、隔,而赋值语句则必须用分号结尾。3.在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的:int a=b=c=5; 必须写为 int a=5,b=5,c=5; 而赋值语句允许连续赋值。 4.注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。下述语句是合法的:if(x=y+5)0) z=x; 下述语句是非法的:if(x=y+5;)0) z=x; 说明:右边的表达式可以是变量、常量、函数调用等表达式。,5语句中的“=”称为赋值号,它不同于数学中的等号,如A=A+1在数学中是不成立的,但在程序设计中表示取变量A单元中的值,将其加1后,仍然放回到A变量的存储单元 。6、赋值符号“=”左边一定只能是变量名,不能是常量、符号常量、表达式。,例如:z=x+y; 是合法的。下面的赋值语句都是错的:5=x; /* 左边是常量 */sin(x)=20; /* 左边是函数调用,即是表达式 */,7赋值符号“=”两边的数据类型一般要求应一致。 如果两边的类型不同,则以左边变量或对象属性的数据类型为基准,如果右边表达式结果的数据类型能够转换

      4、成左边变量或对象属性的数据类型,则先强制转换后,赋值给左边的变量。若都是数值型,但精度不同,强制转换成左边变量的数据精度。,例如,有定义 int x; float y;x=3.5415926; /* 取其整数赋值给x,x的值为3 */y=123; /* 将整数123转换实数123.0,赋值给y,执行后,y的值是123.0 (小数点补六个0)*/,数据输入/输出的概念,内存,RAM,从键盘将数据输入,从数据文件读入,将数据输出到屏幕,将数据输出到文件,数据输入/输出是相对计算机内存,在语言中所有的数据输入输出都是由库函数完成的。 因此都是函数语句。在C语言中使用库函数时,要使用预编译命令#include 将相关的头文件(*.h)包含到用户源文件中。使用形式: #include “头文件” 或 #include ,说明:1. 标准输入/输出头文件是:stdio.h 2. printf() 和 scanf()函数不需要头包含文件 3.常用的输入输出函数有: printf() scanf() putchar() getchar(),四、数据格式输入scanf()函数,scanf()的功能:从键

      5、盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。函数一般格式为: scanf(控制字符串,输入项地址列表);控制字符串规定数据的输入格式,其内容由格式说明和普通字符两部分组成。输入项地址列表由一个或多个变量地址组成,各变量地址之间用逗号“,”分隔。scanf()中各变量要加地址操作符,表示如下: &变量名,scanf(%d,%d,%c,,控制字符串的两个组成部分:格式说明和普通字符。,1. 格式说明格式说明规定输入项中的变量以何种类型的数据格式被输入,形式是: % 各个格式字符及其意义见表3-3。,各修饰符是可选的,这些修饰符是:(1)字段宽度(2) l和h:可与d、o、x一起使用,l表示输入数据为长整数,h表示输入数据为短整数。(3)字符*:表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。,例:scanf(“%3d”,&a);输入123456,按宽度输入一个整数123赋给变量a。,例:scanf(%ld%hd,&x,&i);x按长整型读入,i按短整数读入。,例如:scanf(“%d%*d%d”,&x,&y,&z);执行该语句,若输入为“ ” 结果为x=1,y=3

      6、,z未赋值,被跳过。,/* EX3-11.C */#include main() int x,y; scanf(%2d%*3d%4d,,2.普通字符普通字符包括空格、转义字符和可打印字符。(1)空格在有多个输入项时,一般用空格或回车作为分隔符,若以空格作分隔符,则当输入项中包含字符类型时,可能产生非预期的结果,(2)可打印字符,例如:scanf(%d%c,&a,&ch); 输入32 q期望a=32,ch=q,但实际上,分隔符空格被读入并赋给ch。,例如:scanf(%d,%d,%c,当输入为:1,2,q 即:a=1,b=2,ch=q若输入为1 2 q 除a=1正确赋值外,对b与ch的赋值都不能正确赋值。这些不打印字符应是输入数据分隔符,scanf在读入时自动去除与可打印字符相同的字符。,使用scanf函数还必须注意以下几点: (1) scanf函数中没有精度控制 。 如: scanf(“%5.2f”, 则输入应为 a=5,b=6,c=7,五、 数据格式输出printf()函数,格式化输出函数printf()功能:按控制字符串规定的格式,向输出设备输出各输出项其基本格式为:printf(

      7、“控制字符串”,输出项列表)输出项可以是常量、变量、表达式,其类型与个数必须与控制字符串中格式字符的类型、个数一致、当有多个输出项时,各项之间用逗号分隔。控制字符串由格式说明和普通字符两部分组成。,1格式说明一般格式为:%格式字符规定了输出项的输出格式,常用格式字符见表3-2,(1) 字段宽度修饰符该修饰符用于确定数据输出的宽度、精度、小数位数、对齐方式等,用于产生更规范整齐的输出,下表列出了字段宽度修饰符。,例如:void main() int a=123; float x=12.345678; printf(%5d, %5.2fn,a,x); printf(%2d, %2.1fn,a,x); 程序的运行结果如下:,说明:当指定宽度小于数据的实际宽度时,对整数,按该数的实际宽度输出。对浮点数,相应小数位的数四舍五入。若度宽小于等于浮点数整数部分的宽度,则该浮点数按实际位数输出,但小数位数仍遵守宽度修饰符给出的值。,(2)对齐方式修饰符一般的输出数据为右对齐格式,加“-”号,变为“左对齐”方式。,例如:void main() int i=123; float a=12.34567; p

      8、rintf(%6d%10.4fn,i,a); printf(%-6d%10.4fn,i,a); printf(%6d%-10.4fn,i,a); 程序运行结果如图所示:,(3)l和h可以与输出格式字符d、f、u等连用,以说明是用long型或short型格式输出数据,如:hd 短整型lf 双精度型ld 长整型hu 无符号短整型,2普通字符普通字符包括可打印字符和转义字符。可打印字符是一些说明字符,这些字符按原样显示在屏幕上转义字符是不可打印的字符,它们其实是一些控制字符,控制产生特殊的输出效果。常用的有“t”,“n”,其中t为水平制表符,作用是跳到下一个水平制表位, “n”为回车换行符,遇到“n”,显示自动换到新的一行。,例如:void main() int i=123; long n=456; float a=12.34567,y=20.5; printf(%d=4dta=%7.4fntn=%ldn,i,a,n); printf(y=%5.2f%n,y);,程序运行的输出结果:,【注意】,(1)输出项从右向左计算后,按格式说明的顺序、类型和要求对应输出。格式说明和输出项的个数类型应相同

      9、,如不匹配系统不能正确输出格式说明的个数少于输出项个数,多余的输出项将不输出;格式说明的个数多于输出项个数,多余的格式说明将输出随机的值。整型数据按%f 输出或者实型数据按%d 输出,均出现输出错误结果。,(2)格式字符除X(表示输出的十六进制数用大写字母输出)、E(表示输出的指数e用大写字母E输出)、G(表示若选用指数形式输出,则用大写字母E输出)外,必须是小写字母。如%d不能写成%D。(3)若想输出字符“%”,则在格式字符串中用连续两个%表示。如:printf(“%f%”,1.0/4); 则输出:0.250000%,【注意】,试编写求梯形面积的程序,数据由键盘输入。分析:设梯形上底为A,下底为B,高为面职为,则S=(AB)*2,程序如下:void main() float a,b,h,s; printf(please input a,b,h:); scanf(%f%f%f, ,六、字符数据非格式输入/输出函数,1字符输入函数getchar()getchar()函数的格式: getchar(); getchar()函数的作用:从系统的输入设备键盘输入一个字符。从功能角度来看,scanf()函数可以完全代替getchar()函数。,

      《c语言 第3章顺序结构程序设计》由会员zw****58分享,可在线阅读,更多相关《c语言 第3章顺序结构程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.