C课件第3章程序设计初步_第1页
C课件第3章程序设计初步_第2页
C课件第3章程序设计初步_第3页
C课件第3章程序设计初步_第4页
C课件第3章程序设计初步_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

算法简介C语言程序的基本语句数据的输入输出Begin:第三章程序设计初步所谓面向过程的程序设计,是指利用面向过程的语言工具(如Basic、Pascal、Fortran和C语言等)进行程序开发的各项活动。3.1结构化程序设计1面向过程的程序设计优点:编程简单、结构性强、可读性好,程序执行时序特征明显;遵循这种结构的程序只有一个入口和一个出口。缺点:存在数据与程序模块的分离和程序的可重用性差等问题。基本思想:把一个需要求解的复杂问题分为若干个模块来处理,每个模块处理一个子问题;设计时遵循自顶向下、逐步细化、模块化设计和结构化编码的原则。3.1结构化程序设计2.面向对象的程序设计面向对象的程序设计是一种新的程序设计范型。它将一些新的理念和结构化程序设计中好的思想相融合,提供了一种全新的程序设计方法。基本思想将一个需要求解的问题分解为一系列实体(对象),然后围绕这些对象建立数据和函数;函数的功能决定了该对象的行为。规定一个对象的函数可以访问另一对象的函数,但一个对象的数据不能应用于另一对象的函数中。(即只有属于该对象的成员函数才能访问自己的数据成员,从而达到了保护数据的目的。)几个基本概念:三类机制:类、对象、属性、事件、方法封装、继承、多态算法——解决某一问题所采取的方法和步骤。3.2算法3.2.1算法的概念

⑴有穷性一个算法其操作步骤应当是有限的;⑵确定性算法中的每一个步骤应当有确定的意义,不能有二义性;⑶有效性算法中的每一个步骤应当正确、可行,并且能有效地执行;⑷有零个或多个输入执行算法时需要从外界获取的信息;⑸有一个或多个输出执行算法后应当得到正确的结果。计算机算法的特性3.2算法3.2.2算法的基本结构顺序结构选择(分支)结构循环结构3.2算法3.2.3算法的表示1.用自然语言表示算法

——用人们日常使用的语言和语序来表示算法。【例1-1】:输入n个整数,输出其中最大的数。

自然语言伪代码流程图设置变量:n代表整数的个数,num代表参与取值比较的整数,i代表已参与取值比较的整数个数,max代表n个整数中的最大数。步骤1:从键盘输入一个整数给n(设n=5),将1=>i;步骤2:从键盘输入一个整数给num,再将num=>max;步骤3:如果i<n,再从键盘输入一个整数给num;步骤4:如果num>max,将num=>max,否则max的值为原值;步骤5:i+1=>i,如果i<n,重复步骤3和步骤4;否则输出max的值,即输出n个整数中的最大数。用自然语言描述算法如下:2.用伪代码表示算法

——一种接近于程序设计语言,但又不受语言语法约束的算法表示法。上例用伪代码表示:

输入n个整数,输出其中最大的数。inputninputnummax=numi=1whilei<ndoinputnumifnum>maxthenmax=numendifi=i+1enddoprintmax3.2算法3.用流程图表示算法

——用一些图框和方向线表示算法的图形表示法。常用流程图符号及含义如下:开始max=num,计数器i=1i<n输入n和num的值num>maxmax=numi=i+1输出max结束输入数给num假假真真上例用流程图表示:3.2算法⒋用N-S流程图表示算法——用一些基本结构图框来表示算法的图形表示法。语句A语句B条件P成立不成立语句A语句B当条件P成立时语句语句直到条件P不成立顺序结构分支结构循环结构基本结构图框及含义如下:输入n的值,i=1输入num的值,max=num输入numnum>max真

假max=numi=i+1当i<n输出max的值上例用N-S流程图表示:3.2算法3.3C语言程序的基本语句3.1C语言程序的基本语句

C语言语句分为五类:声明语句、表达式语句、函数调用语句、控制语句、复合语句、空语句。声明语句

类型说明符变量名;类型说明符函数名(参数列表);inta;charc;intmax(inta,intb);2.表达式语句由一个表达式组成一个语句。

如:++p;/*自增运算表达式加分号构成语句*/N+=10;/*复合赋值表达式加分号构成语句*/a+b;/*a+b表达式加分号构成语句*/3.函数调用语句由一次函数调用加上分号“;”组成。形式:函数名(实参列表);如:printf(“VeryGood!\n”);/*输出VeryGood!*/max(x,y,z);/*调用自定义函数max,求x,y,z中的最大数*/5.复合语句:用{}括起来组成的一个语句

如:if(a>b)

{x=0;b=b+1;x=a;}4.空语句:仅由一个分号构成的语句6.控制语句:控制程序的流程

如:if…else语句,while语句,return语句等。

如:while(getchar()!='\n')

/*空语句*/3.1C语言程序的基本语句1、字符输出:putchar()函数格式:

putchar(C);功能:向终端输出一个字符。C为形式参数,它可以是字符型变量、整型变量,字符型常量或转义字符。3.5数据输入输出intmain(void){chara;intb;a='b';b=111;putchar(a);putchar(b);putchar('y');putchar('\n'); return0;}例:运用putchar()函数程序运行结果:boy“o”的ASCII码为1112、字符输入:getchar()函数格式:

getchar();功能:从终端输入一个字符。getchar()只能接收一个字符,该字符可赋给字符变量、整型变量或作为表达式的一部分。例:

intmain(void)

{charc;c=gethar();putchar(c); return0;}输入一个字符,再将该字符输出功能:通过标准输出设备(如显示器)输出一组数据。输出形式由“格式控制”字符串规定。一般形式:

printf(“格式控制字符串”,输出表列);3.格式输出函数printf()格式控制:由双引号括起来的字符串,用于指定要输出的数据的格式。2)格式说明:用来指定需输出数据的输出格式的,其形式为:

%[<修饰符>]格式字符

格式字符用以说明输出数据的类型,形式,长度,小数位数等。它包括:

1)普通字符:按原样输出的字符;

输出表列:需要输出的数据列表,彼此间用逗号分隔。它可是任意合法的表达式。格式输出:printf()函数用于输出的格式字符格式符功

能形

式d输出十进制整数%d、%md、%ld、%mldo以八进制形式输出整数%o、%mo、%lox以十六进制形式输出整数%x、%mx、%lxu以十进制形式输出一个无符号的数%uc输出一个字符%cs输出一个字符串%s、%ms、%m.nsf以小数的形式输出实数%f、%m.nf、%lfe以标准指数的形式输出实数%e、%m.neg根据实数的大小自动按f或e的形式选择输出格式%g格式输出:printf()函数用于输出的修饰符格式输出:printf()函数例:格式输出:printf()函数printf("a+b=%5.2f",c);附加格式符格式符输出表列普通字符格式说明符格式控制格式输出:printf()函数(1)d格式字符%d:按整型数据的实际长度输出%md:m为指定的输出长度。如果数据位小于m,则左端补以空格;大于m,则按实际位输出。例:printf(“%4d,%4d”,a,b);

若a=12,b=12345,则输出12,12345%ld:输出长整型数据。%d的输出范围为-32768~32767,输出超过该范围的整型数就会出错,此时用%ld输出。其输出格式和功能与%d相同,如:%8ld格式输出:printf()函数(2)o格式字符以八进制数形式输出整数,且不带符号。对于长整数可用“%lo”输出。功能同十进制输出。(3)x格式字符以十六进制数形式输出整数,且不带符号。对于长整数可用“%lx”输出。功能同十进制输出。(4)u格式字符用来输出unsigned型数据,即无符号数,输出十进制数。用%o,%x输出负数时会发生错误。格式输出:printf()函数(5)c格式字符

一个整数,如果在0~255之间,也可用字符形式输出,系统会将该整数转换成相对应的ASCII码字符;同时,一字符也可以用整数形式输出。例:charc=‘a’;printf(“%c”,c);用来输出一个字符。inta=65;printf(“%c”,a);intc=‘A’;printf(“%d”,c);输出A输出65如:printf(“%3c”,c),则输出c格式字符也可以指定输出字数宽度A格式输出:printf()函数(6)s格式字符%s:用来输出一个字符串例:printf(“%s”,“Hello!”);输出Hello!,不包括“”%ms:输出的字符串占m列。如果字符串长度小于m,则左端补以空格;长度大于m,则输出整个字符串。%-ms:如果串长小于m,则字符串向左靠,右补空格,其余同上。%m.ns:输出的字符串占m列,但只取字符串中左端n个字符,这n个字符输出在m列的右侧,左端补空格。%-m.ns:其他意义同%m.ns,右补空格。例:printf(“%3s”,“Hello!”);输出Hello!

printf(“%7s”,“Hello!”);输出Hello!格式输出:printf()函数(7)f格式字符%f:不指定字段宽度,整数部分全部输出,小数部分输出6位。%m.nf:指定输出数据占m列,其中有n位小数。若数值长度小于m,则左端补以空格。%-m.nf:功能同上,右端补以空格。(8)e格式字符%e:不指定字段宽度,系统自动给出6位小数,指数部分占4位。其中“e”占1位,指数符号占1位,指数占2位。格式输出:printf()函数例:printf(“%e”,123.456);输出:1.234560e+026位小数部分4位指数部分%m.ne,%-m.ne,%me

:中m,-的意义和前相同,n是指数据的小数部分输出的位数。(9)g格式字符

用来输出实数,根据数值大小,自动选f或e格式,且不输出无意义的零。格式输出:printf()函数#include<stdio.h>voidmain(){inta=1234;floatf1=12.34567,f2=678.9;printf("1)%d,%6d,%-6d,%2d;\n",a,a,a,a);printf("2)%f,%10.4f,%3.2f;\n",f1,f1,f1);printf("3)%e,%e;\n",f1,f2);printf("4)%8e,%14e;\n",f1,f1);printf("5)%10.7e,%10.3e;\n",f1,f1);}实例:程序运行结果:1)1234,1234,1234,1234;2)12.345670,12.3457,12.35;3)1.23457e+01,6.78900e+02;4)1.23457e+01,1.23457e+01;5)1.234567e+01,1.23e+01;功能:从终端输入任何类型的多个数据

格式:scanf("格式控制",地址表列);格式控制:由双引号括起来的字符串,用于指定要输入的数据的格式。1)普通字符:按原样输入的字符;

2)格式说明:用来指定需输入数据的输入格式的,其形式为:

%[<修饰符>]格式字符4.格式输入:scanf()函数地址表列:由若干个变量地址组成的表列。地址是由”&”运算得到的。“&”是取址运算符,单目运算符,右结合性。用于输入的修饰符4.格式输入:scanf()函数用于输入的格式字符4.格式输入:scanf()函数格式输入的使用与注意:输入数据时采用的分隔符应与格式控制中的分隔符一致。例1:

scanf("%d%f%d",&a,&b,&c);

格式符中无普通字符时,可用空格、Tab键、回车键作分隔符。如:123.45678↙或12(Tab)3.45(Tab)678例2:

scanf("%d,%f,%d",&a,&b,&c);

必须采用格式:12,3.45,678↙例3:

scanf("a=%d,b=%d",&a,&b);

必须采用格式:a=12,b=345↙4.格式输入:scanf()函数无符号数可用%d、%o、%x

格式输入。输入格式符带有*:表示该数据不赋值。

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

键入:1234567

则a=12,c=567,34未赋值。数据输入时不可规定精度,但可确定宽度。

例:scanf(”%3f%3c”,&a,&b);

合法。

例:scanf(”%3.2f%3c”,&a,&b);

非法。4.格式输入:scanf()函数用c格式符输入字符时,空格、转义字符均为有效字符。

温馨提示

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

评论

0/150

提交评论