




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章要求:,了解结构化程序的算法描述 掌握C语言中数据的输入/输出方法 顺序结构程序设计,本章重点: C程序中数据的输入/输出方法,顺序、选择、循环 (分支),一、什么是算法,算法是解决一个问题采取的方法和步骤的描述 。,1有穷性:算法须在执行有穷多个计算步骤后终止 2确定性:算法的每个步骤必须都是精确定义的、无二义性的; 3有效性:算法中的每一个步骤必须有效地执行,并能得到确定结果; 4输入:一个算法中可以没有输入,也可以有一个或多个输入信息 5输出:一个算法应有一个或多个输出,算法的特性:,(一)自然语言与伪代码表示算法 自然语言就是指人们日常使用的语言,可以是汉语、英语或其它语言。 伪代码是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。,二、算法的表示,例的伪代码表示如下: Begin(算法开始) 输入 A,B,C IF AB 则 AMax 否则 BMax IF CMax 则 CMax Print Max End (算法结束),例: 输入三个数,然后输出其中最大的数。 算法可以写成: (1) 输入A,B,C。 (2) 若AB,则MAX A;否则MAXB。 (3) 若CMAX,则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.在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的: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赋值符号“=”两边的数据类型一般要求应一致。 如果两边的类型不同,则以左边变量或对象属性的数据类型为基准,如果右边表达式结果的数据类型能够转换成左边变量或对象属性的数据类型,则先强制转换后,赋值给左边的变量。若都是数值型,但精度不同,强制转换成左边变量的数据精度。,例如,有定义 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()的功能:从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。 函数一般格式为: 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,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(“控制字符串”,输出项列表) 输出项可以是常量、变量、表达式,其类型与个数必须与控制字符串中格式字符的类型、个数一致、当有多个输出项时,各项之间用逗号分隔。 控制字符串由格式说明和普通字符两部分组成。,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; printf(“%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)输出项从右向左计算后,按格式说明的顺序、类型和要求对应输出。格式说明和输出项的个数类型应相同,如不匹配系统不能正确输出 格式说明的个数少于输出项个数,多余的输出项将不输出; 格式说明的个数多于输出项个数,多余的格式说明将输出随机的值。 整型数据按%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()函数。,例:char c1;则c1=getchar(); 可使用等价语句: scanf(“%c“,说明: (1)getchar()函数一次只能返回一个字符,即调用一次只能输入一个字符。 (2)程序第一次执行getchar()函数时,系统暂停等待用户输入,直到按回车键结束,如果用户输入了多个字符,则该函数只取第一个字符,多余的字符(包括换行符n)存放在键盘缓冲区中,如果程序再一次执行getchar()函数,则程序就直接从键盘缓冲区读入,直到读完后,如果还有getchar()函数才会暂停,再次等待用户输入。,2字符输出函数putchar( ) putchar()函数的格式: putchar(ch); 该函数的功能是向显示器终端输出一个字符。其中,ch可以是一个字符变量或常量,也可以是一个转义字符。 说明: (1)putchar()函数只能用于单个字符的输出,且一次只能输出一个字符。 (2)从功能角度printf()函数可以完全代替putchar()函数,其等价形式:printf(“%c“,ch)。,例输入一个字符,回显该字符并输出其ASCII码值。 #include void main() char ch1,ch2; ch1=getchar(); ch2=getchar(); putchar(ch1); putchar(ch2); printf(“%cn%c“,ch1,ch2); ,程序运行后,若ch1、ch2分别得到字符A、B,应输入AB,如果输入A,则实际上ch1被赋值为字符A,ch2被赋值为字符换行符n,【例3-16】 从键盘上输入一个英文小写字母,编程输出该字母所对应的A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年份七月份艺术教育机构教师海外参展保险协议
- Unit3-A-Lets-talk浙江公开课教案
- 智能化水利监测-全面剖析
- 电商绿色供应链绩效评价-全面剖析
- 智能化气象监测在柑橘生产中的应用-全面剖析
- Unit1-B-Start-to-read浙江公开课教案
- 基于云计算的数学库服务-全面剖析
- 森林生态恢复技术-全面剖析
- 挂车轻量化设计与制造技术-全面剖析
- 真石漆幕墙施工方案
- 医院处方笺模板
- 【工程项目施工阶段造价的控制与管理8100字(论文)】
- XX学校推广应用“国家中小学智慧教育平台”工作实施方案
- 非遗文化创意产品设计 课件全套 第1-5章 概述- 非遗文创产品设计案例解析
- 法律尽职调查所需资料清单
- 幼儿园中班安全教育活动《紧急电话的用途》
- 118种元素原子结构示意图
- 英语四线三格Word版
- 幼儿园行政工作制度
- 广州新华学院
- 部编版七年级下册道法期中试卷1
评论
0/150
提交评论