c语言第篇顺序结构程序设计_第1页
c语言第篇顺序结构程序设计_第2页
c语言第篇顺序结构程序设计_第3页
c语言第篇顺序结构程序设计_第4页
c语言第篇顺序结构程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1c语言第篇顺序结构程序设计一、什么是算法算法是解决一个问题采取的方法和步骤的描述。1.有穷性:算法须在执行有穷多个计算步骤后终止

2.确定性:算法的每个步骤必须都是精确定义的、无二义性的;

3.有效性:算法中的每一个步骤必须有效地执行,并能得到确定结果;

4.输入:一个算法中可以没有输入,也可以有一个或多个输入信息

5.输出:一个算法应有一个或多个输出算法的特性:第1页/共35页(一)自然语言与伪代码表示算法

自然语言就是指人们日常使用的语言,可以是汉语、英语或其它语言。

伪代码是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。

二、算法的表示第2页/共35页例的伪代码表示如下:Begin(算法开始)

输入

A,B,CIFA>B则

A→Max

否则

B→MaxIFC>Max则C→MaxPrintMaxEnd(算法结束)例:输入三个数,然后输出其中最大的数。算法可以写成:(1)输入A,B,C。(2)若A>B,则MAX←A;否则MAX←B。(3)若C>MAX,则MAX←C。(4)输出MAX,MAX即为最大数。结构化程序的算法描述:第3页/共35页1.常用的流程符号l

起止框:表示算法的开始和结束。l

处理框:表示初始化或运算赋值等操作。l

输入输出框:表示数据的输入输出操作。l

判断框:表示根据一个条件成立与否,决定执行两种不同操作中的其中一个。l

流程线:表示流程的方向。(二)用流程图表示算法第4页/共35页用流程图表示如下图所示:例:输入三个数,然后输出其中最大的数。第5页/共35页(三)用N—S流程图表示算法

第6页/共35页C语言中实现顺序结构的语句:赋值语句、变量声明语句、符号常量声明语句等。三、赋值语句

赋值语句是由赋值表达式再加分号构成的表达式语句。其一般形式为:变量=表达式;1.赋值符“=”右边的表达式可以又是一个赋值表达式因此,下述形式是正确的:变量=(变量=表达式);其展开之后的一般形式为:变量=变量=…=表达式;例如:a=b=c=d=e=5;按照赋值运算符的右结合性,因此实际上等效于:e=5;d=e;c=d;b=c;a=b;第7页/共35页2.注意变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。3.在变量说明中,不允许连续给多个变量赋初值。如下述说明是错误的:inta=b=c=5;必须写为

inta=5,b=5,c=5;而赋值语句允许连续赋值。

4.注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。下述语句是合法的:if((x=y+5)>0)z=x;下述语句是非法的:if((x=y+5;)>0)z=x;说明:右边的表达式可以是变量、常量、函数调用等表达式。

第8页/共35页5.语句中的“=”称为赋值号,它不同于数学中的等号,如A=A+1在数学中是不成立的,但在程序设计中表示取变量A单元中的值,将其加1后,仍然放回到A变量的存储单元。6、赋值符号“=”左边一定只能是变量名,不能是常量、符号常量、表达式。例如:z=x+y;是合法的。下面的赋值语句都是错的:5=x;/*左边是常量*/sin(x)=20;/*左边是函数调用,即是表达式*/第9页/共35页7.赋值符号“=”两边的数据类型一般要求应一致。如果两边的类型不同,则以左边变量或对象属性的数据类型为基准,如果右边表达式结果的数据类型能够转换成左边变量或对象属性的数据类型,则先强制转换后,赋值给左边的变量。若都是数值型,但精度不同,强制转换成左边变量的数据精度。例如,有定义

intx;floaty;x=3.5415926;/*取其整数赋值给x,x的值为3*/y=123;/*将整数123转换实数123.0,赋值给y,执行后,y的值是123.0(小数点补六个0)*/第10页/共35页数据输入/输出的概念内存RAM从键盘将数据输入从数据文件读入将数据输出到屏幕将数据输出到文件数据输入/输出是相对计算机内存第11页/共35页

在C语言中所有的数据输入/输出都是由库函数完成的。因此都是函数语句。在C语言中使用库函数时,要使用预编译命令#include将相关的头文件(*.h)包含到用户源文件中。使用形式:

#include“头文件”或#include<头文件>说明:1.标准输入/输出头文件是:stdio.h2.printf()和scanf()函数不需要头包含文件

3.常用的输入输出函数有:

printf()scanf()putchar()getchar()<stdio.h>第12页/共35页四、数据格式输入­——scanf()函数scanf()的功能:从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。函数一般格式为:

scanf("控制字符串",输入项地址列表);控制字符串规定数据的输入格式,其内容由格式说明和普通字符两部分组成。输入项地址列表由一个或多个变量地址组成,各变量地址之间用逗号“,”分隔。scanf()中各变量要加地址操作符,表示如下:

&变量名scanf("%d,%d,%c",&a,&b,&ch);第13页/共35页控制字符串的两个组成部分:格式说明和普通字符。1.格式说明格式说明规定输入项中的变量以何种类型的数据格式被输入,形式是:%[<修饰符>]<格式字符>

各个格式字符及其意义见表3-3。表3-3输入格式字符格式字符意义举例输入形式d,i输入一个十进制整数scanf("%d",&a)15o输入一个八进制整数scanf("%o",&a)015X(x)输入一个十六进制整数scanf("%x",&a)0x15f输入一个小数形式的浮点数scanf("%f",&x)35680E(e)输入一个指数形式的浮点数scanf("%e",&x)3.568e+3c输入一个字符scanf("%c",&ch)As输入一个字符串scanf("%s",ps)ABCD第14页/共35页各修饰符是可选的,这些修饰符是:(1)字段宽度(2)l和h:可与d、o、x一起使用,l表示输入数据为长整数,h表示输入数据为短整数。(3)字符*:表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。例:scanf(“%3d”,&a);输入123456,按宽度3输入一个整数123赋给变量a。例:scanf("%ld%hd",&x,&i);x按长整型读入,i按短整数读入。例如:scanf(“%d%*d%d”,&x,&y,&z);执行该语句,若输入为“123”结果为x=1,y=3,z未赋值,2被跳过。第15页/共35页/*EX3-11.C*/#include<stdio.h>main(){intx,y;scanf("%2d%*3d%4d",&x,&y);/*注意%*3d的作用*/printf("\nx=%d,y=%d\n",x,y);}第16页/共35页2.普通字符普通字符包括空格、转义字符和可打印字符。(1)空格在有多个输入项时,一般用空格或回车作为分隔符,若以空格作分隔符,则当输入项中包含字符类型时,可能产生非预期的结果,(2)可打印字符例如:scanf("%d%c",&a,&ch);输入32q期望a=32,ch=q,但实际上,分隔符空格被读入并赋给ch。例如:scanf("%d,%d,%c",&a,&b,&ch);当输入为:1,2,q即:a=1,b=2,ch=q若输入为12q除a=1正确赋值外,对b与ch的赋值都不能正确赋值。这些不打印字符应是输入数据分隔符,scanf在读入时自动去除与可打印字符相同的字符。第17页/共35页使用scanf函数还必须注意以下几点:

(1)scanf函数中没有精度控制。如:scanf(“%5.2f”,&a);是非法的。(2)在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格或回车作间隔.(3)如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

例如:scanf("%d,%d,%d",&a,&b,&c);

其中用非格式符“

,”作间隔符,故输入时应为:5,6,7

又如:scanf("a=%d,b=%d,c=%d",&a,&b,&c);

则输入应为a=5,b=6,c=7第18页/共35页五、数据格式输出——printf()函数格式化输出函数printf()功能:按控制字符串规定的格式,向输出设备输出各输出项其基本格式为:printf(“控制字符串”,输出项列表)输出项可以是常量、变量、表达式,其类型与个数必须与控制字符串中格式字符的类型、个数一致、当有多个输出项时,各项之间用逗号分隔。控制字符串由格式说明和普通字符两部分组成。第19页/共35页1.格式说明一般格式为:%[<修饰符>]<格式字符>格式字符规定了输出项的输出格式,常用格式字符见表3-2格式字符意义举例输出结果d按十进制整数输出printf("%d",a)65o按八进制整数输出printf("%o",a)101x或X按十六进制整数输出printf("%x",a)41u按无符号整数输出printf("%u",a)65c按字符型输出printf("%c",a)As按字符串输出printf("%s","abc")abcf按浮点型小数输出printf("%f",x)3.141593E(或e)按科学计数法输出printf("%e",x)3.141593e+00g按e和f格式中较短的一种输出printf("%g",x)3.141593表3-2输出格式字符第20页/共35页(1)

字段宽度修饰符该修饰符用于确定数据输出的宽度、精度、小数位数、对齐方式等,用于产生更规范整齐的输出,下表列出了字段宽度修饰符。

修饰符格式说明意义m%md以宽度m输出整型数,不足m时,左补空格0m%0md

以宽度m输出整型数,不足m时,左补零m.n%m.nf以宽度m输出实型小数,小数位为n位字段宽度修饰符第21页/共35页例如:voidmain(){inta=123;floatx=12.345678;printf("%5d,%5.2f\n",a,x);printf("%2d,%2.1f\n",a,x);}程序的运行结果如下:说明:当指定宽度小于数据的实际宽度时,对整数,按该数的实际宽度输出。对浮点数,相应小数位的数四舍五入。若度宽小于等于浮点数整数部分的宽度,则该浮点数按实际位数输出,但小数位数仍遵守宽度修饰符给出的值。第22页/共35页(2)对齐方式修饰符一般的输出数据为右对齐格式,加“-”号,变为“左对齐”方式。例如:voidmain(){inti=123;floata=12.34567;printf("%6d%10.4f\n",i,a);printf("%-6d%10.4f\n",i,a);printf("%6d%-10.4f\n",i,a);}程序运行结果如图所示:第23页/共35页(3)l和h可以与输出格式字符d、f、u等连用,以说明是用long型或short型格式输出数据,如:%hd短整型%lf双精度型%ld长整型%hu无符号短整型2.普通字符普通字符包括可打印字符和转义字符。可打印字符是一些说明字符,这些字符按原样显示在屏幕上转义字符是不可打印的字符,它们其实是一些控制字符,控制产生特殊的输出效果。常用的有“\t”,“\n”,其中\t为水平制表符,作用是跳到下一个水平制表位,“\n”为回车换行符,遇到“\n”,显示自动换到新的一行。第24页/共35页例如:voidmain(){inti=123;longn=456;floata=12.34567,y=20.5;printf("%d=4d\ta=%7.4f\n\tn=%ld\n",i,a,n);printf("y=%5.2f%%\n",y);}程序运行的输出结果:第25页/共35页【注意】(1)输出项从右向左计算后,按格式说明的顺序、类型和要求对应输出。格式说明和输出项的个数类型应相同,如不匹配系统不能正确输出①格式说明的个数少于输出项个数,多余的输出项将不输出;②格式说明的个数多于输出项个数,多余的格式说明将输出随机的值。③整型数据按%f输出或者实型数据按%d输出,均出现输出错误结果。第26页/共35页(2)格式字符除X(表示输出的十六进制数用大写字母输出)、E(表示输出的指数e用大写字母E输出)、G(表示若选用指数形式输出,则用大写字母E输出)外,必须是小写字母。如%d不能写成%D。(3)若想输出字符“%”,则在格式字符串中用连续两个%表示。如:printf(“%f%%”,1.0/4);则输出:0.250000%【注意】第27页/共35页试编写求梯形面积的程序,数据由键盘输入。分析:设梯形上底为A,下底为B,高为H面职为S,则S=(A+B)*H÷2程序如下:voidmain(){floata,b,h,s;printf("pleaseinputa,b,h:");scanf("%f%f%f",&a,&b,&h);s=0.5*(a+b)*h;printf("a=%6.3fb=%6.3fh=%6.3f\n",a,b,h);printf("s=%8.4f\n",s);}第28页/共35页六、字符数据非格式输入/输出函数1.字符输入函数——getchar()getchar()函数的格式:getchar();getchar()函数的作用:从系统的输入设备键盘输入一个字符。

从功能角度来看,scanf()函数可以完全代替getchar()函数。例:charc1;则c1=getchar();可使用等价语句:scanf("%c",&c1);第29页/共35页说明:(1)getchar()函数一次只能返回一个字符,即调用一次只能输入一个字符。(2)程序第一次执行getchar()函数时,系统暂停等待用户输入,直到按回车键结束,如果用户输入了多个字符,则该函数只取第一个字符,多余的字符(包括换行符'\n')存放在键盘缓冲区中,如果程序再一次执行getchar()函数,则程序就直接从键盘缓冲区读入,直到读完后,如果还有getchar()函数才会暂停,再次等待用户输入。第30页/共35页2.字符输出函数——putchar()putchar()函数的格式:

putchar(ch);该函数的功能是向显示器终端输出一个字符。其中,ch可以是一个字符变量或常量,也可以是一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论