【文档说明】C语言程序设计单元2-顺序结构程序设计.ppt,共(24)页,1.877 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-2214.html
以下为本文档部分文字说明:
单元二顺序结构程序设计C语言程序设计➢知识目标1.掌握算法定义、算法的五大特性及表示方法;2.了解三种控制结构,能画出对应控制结构的流程图或N-S图;3.掌握格式、字符输入输出函数的使用方法;4
.掌握顺序结构程序设计方法。➢能力目标1.能够用流程图、N-S图描述算法。2.能够用流程图、N-S图描述程序的三种基本结构。3.能够使用C语言进行顺序结构程序设计。单元二顺序结构程序设计C语言程序设计引例描述已知有两个整数定义如下:inta=10,b=20;请编写一函数,交换两个变量的值,
使得交换后,a=20,b=10。演示C语言程序设计一、算法1、算法的概念:为解决某一个问题而采取的方法和步骤。2.1算法及其表示2、算法的五大特性:⑴有穷性:有限步骤内结束⑵确定性:不能产生歧义⑶可行性⑷0个或多个输入:从外界获取必要信息⑸1个或多
个输出:算法必须有结果①计算出5!;②输入一个正整数n,然后判断n是否为素数;③计算任意两个整数的最大公约数。示例程序=算法+数据结构将成绩优秀的学生名单打印C语言程序设计二、算法的表示1、自然语言:易懂但不直观2、流
程图:自然图形3、N-S图:矩形框4、伪代码:介于自然语言和计算机语言之间的文字和符号【示例】求a,b的最大值max。自然语言:如果a的值比b的值大,把a的值赋给max;否则,把b的值赋给max。符号形状
名称圆角矩形起止框平行四边形输入、输出框矩形处理框菱形判断框带箭头的(折)线段流程线a>ba=>maxb=>maxYN流程图【例2-1】⑴用伪代码方式表示算法“打印出x的绝对值”;⑵用伪代码方式表示算法“求5!”;⑵开始置t的值为1置i的值为2当
i<=5时t=t×ii=i﹢1输出t结束N-S图a>ba=>maxb=>max成立不成立⑴开始若x为正数打印x的值否则打印-x的值结束C语言程序设计一、顺序结构是指按照程序中语句书写的顺序一条一条依次执行。二、选择结构是根据条件判断的结果,从两种或多种路径中
选择其中的一条执行。三、循环结构是将一组操作重复执行多次。2.2程序的三种基本结构ABAB顺序结构流程图N-S图选择结构流程图N-S图PBA真假P真假AB当循环结构流程图N-S图PA真假当P为真A直到循环结构流程图N-S图PA假
真直到P为假AC语言程序设计【例2-2】用流程图和N-S图表示算法“求两个数中的最大值”。开始输入a,ba=>maxb>maxb=>max输出max结束YN输入a,ba=>max输出maxb>max成立不成立b=>maxC语言程序设计【例2-3】请分别用流程和N-S图表示算法“求5!”。开始1=
>t,1=>ii<=5t*i=>t,i+1=>iY输出t结束N思考2.1:上题中,直到型循环的流程图和当型循环的N-S图又该怎样表示?想一想1=>t1=>it*i=>ti+1=>i输出t直到i<=5不成立开始置t的值为1
置i的值为1当i<=5时t=t×ii=i﹢1输出t结束C语言程序设计做一做【课堂实践2-1】用流程图和N-S图表示算法“求三个数中的最大值”。C语言程序设计2.3数据的输入和输出C语言的输入和输出操作是通过函数来实现的,在使用前必须在程
序的前面使用命令:#include<stdio.h>。一、格式化输出函数printf()printf(格式控制字符串,输出表列)说明:⑴格式控制字符串,包括普通字符和格式说明两部分,格式说明由%开头,后跟格式字符及修饰符组成;如:printf("a=%d\n",a)
;说明:⑵格式控制字符串中的普通字符按原样输出;如:printf("hello!\n");输出结果为hello!用双引号括起来的字符串变量,常量,表达式说明:⑶格式说明与输出表列输出项的个数要一致,格式说
明的作用是使对应的输出项按指定的格式输出;说明:⑷输出表列由输出项组成,两个输出项之间用逗号分隔;输出结果为:1,3,51,3,1993(不确定)1,3如:inta=1,b=3,c=5;printf("%d,%d,%d\
n",a,b,c);printf("%d,%d,%d\n",a,b);printf("%d,%d\n",a,b,c);printf("%d,%c,%f",a,b,c);将输出表列中的值按格式输出到屏幕上C语言程序设计格式字符及作用①d或i:按有符号十进制
整型数据形式输出;②x或X:按无符号十六进制整型数据形式输出;③o(小写字母):按无符号八进制整型数据形式输出;④u(小写字母):按无符号十进制整型数据形式输出;⑤c(小写字母):按字符形式输出;⑥s(小写字母):
按字符串形式输出;⑦f(小写字母):按小数形式输出单精度实数;⑧e或E:按指数形式输出单精度实数;⑨g或G:自动选择f格式或e格式中占宽度较小的一种输出单精度实数;⑩%:输出%本身。如:inta=-2;printf("
%x\n",a);输出结果为:如:inta=-2;printf("%x\n",a);输出结果为:(ffff)fffe如:inta=-2;printf("%o\n",a);输出结果为:如:inta=-2;printf("%o\n",a);输出结果为:3777
7777776如:inta=-2;printf("%u\n",a);输出结果为:4294967294如:charch='a';inta=-191;printf("%c,%c\n",ch,a);输出结果为:如:charch='a';inta=-191;printf("%c,%c\n",
ch,a);输出结果为:a,A如:printf("%s\n","Hello!");输出结果为:Hello!如:floata=3.14159;printf("%f\n",a);输出结果为:如:floata=3.14159;printf("%f
\n",a);输出结果为:3.141590如:floata=3.14159;printf("%E\n",a);输出结果为:如:floata=3.14159;printf("%E\n",a);输出结果为:3.141590E+000如:inta=78,b=64;printf
("%d%%*%d\n",a,b);输出结果为:如:inta=78,b=64;printf("%d%%*%d\n",a,b);输出结果为:78%*64C语言程序设计修饰符及作用:修饰符在使用时应加在格式字符和%之间。①l或L
:按长整型或双精度型数据输出,可加在d,x,o,u,f,e,g格式符前;②h:按短整型数据输出,可加在d,x,o,u格式符前;③m(正整数):指定输出项所占的字符数(域宽),当指定域宽小于实际域宽时按实际域宽输出,当指定域宽大于实际
域宽时在前面用空格补足;④.n(正整数):指定输出的实型数据的小数位数,系统默认小数位数为6;⑤0(数字):指定数字前的空格用0填补;⑥-或+:指定输出项的对齐方式,-表示左对齐,+表示右对齐。如:longa=65538;printf("%ld,%d\n",a,a);输出结果为:如:longa=
65538;printf("%ld,%d\n",a,a);输出结果为:65538,65538如:inta=123,b=12345;printf("%4d,%4d\n",a,b);输出结果为:如:inta=123,b=12345;printf("%4d,%4d\n",a
,b);输出结果为:123,12345如:floatx=123.44;printf("%.1f,%.2f,%.6f\n",x,x,x);输出结果为:如:floatx=123.44;printf("%.1f,%.2f,%.6f\n",x,x,x);输出结果为
:123.4,123.44,123.440002如:floatx=123.46;printf("%07.1f,%07.2f\n",-x,x);输出结果为:如:floatx=123.46;printf("%07.1f,%07.2f\n",
-x,x);输出结果为:-0123.5,0123.46如:floatx=123.46;printf("%-07.1f,%07.2f\n",-x,x);输出结果为:如:floatx=123.46;printf("%-07.1f,%07.2f\n",-x,x);输出结果为:-123.5,0123.4
6C语言程序设计二、格式化输入函数scanf()例如:scanf("%d,%d",&a,&b);不能写成scanf("%d,%d",a,b);从键盘按格式输入变量值同printf函数输入项组成,两个输入项之间用逗号分隔,输入项由取地址运算符&和变量名组成,即:&变量名;scanf(格式控制
字符串,地址表列)说明:修饰符及作用:l,h,m(正整数)的作用同printf()函数;*(称为抑制字符)的作用是按格式说明输入的数据不赋给相应的变量,即“虚读”。如:inta,b;scanf("%d%*d%d",&a,&b);printf("%d,
%d\n",a,b);如果输入数据为:12345678↙,则将123赋给变量a,45不赋给任何变量,678赋给变量b,因此,输出结果为:123,678说明:普通字符按原样输入,用来分割所输入的数据;C语言程序设计输入数据流的分割有以下四种方法:①根据格式说
明规定的数据类型从数据流中取得数据,即当数据流的数据类型与格式说明的类型不一致时,就认为这一数据项结束;如:inta;charch;floatx;scanf("%d%c%f",&a,&ch,&x);如果输入流为:123%456.78↙,系统将输入流
送入缓冲区,然后按格式%d为变量a读入数据,当读到数据%时发现类型不符,于是把123存入变量a的内存单元,再把字符%存入变量ch的内存单元,最后把456.78存入变量x的内存单元。②根据格式说明中指定的域宽从数据流
中分割数据;③通过在格式字符串指定分割符来分割数据,分割符可以是一切非格式字符;如:inta,b;printf(“a=,b=:”);scanf("a=%d,b=%d",&a,&b);scanf()函数中的a=,b=都是普通字符,作为数据流的分割符,比如:要把45
6赋值给变量a,789赋值给变量b,则在输入数据时应输入:a=456,b=789↙。④在格式字符串中没有指定分割符时,常使用空格、Tab键、回车键来分割数据。如:intk1,k2;scanf("%d%d",&k1,&k2);输入流可以是10
20↙,也可以是10↙20↙,还可以是10(按Tab键)20↙。如:chara;intb;scanf("%3c%3d",&a,&b);printf(“%c,%d\n”,a,b);如果输入流为:ab12345↙,则输出结果为:a,234。C语言程
序设计说明:如果输入的数据多于变量的个数时,余下的数据可为下一个scanf()函数使用。如:inta,b,c,d;scanf("%d%d",&a,&b);scanf("%d%d",&c,&d);若输入流为1234567890↙,则a、b、c、d的值分别为12,2
3,45,78。C语言程序设计三、字符输出函数putchar()一般形式putchar(ch)说明:⑴函数参数ch,可以是字符变量或整型变量或字符常量;⑵函数的返回值是向输出的字符;向屏幕输出一个字符C语言程序设计【例2-4】putchar
()函数举例。#include<stdio.h>intmain(){chara,b,c,d;a='g';b='o';c=111;//与ASCII码值111对应的字符为od='d';putchar(a);putchar(b);putchar(c);put
char(d);return0;}运行以上程序,运行结果为:goodC语言程序设计四、字符输入函数getchar()一般形式getchar()说明:⑴该函数没有参数,函数的返回值是从输入设备得到的字符;⑵从键盘输入的数据通过回车键确认结束
;⑶该函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,而作为表达式的一部分;从键盘读入一个字符说明:⑷常用if((ch=getchar())==‘Y’)确定用户输入的字符是否是所需的字符。⑸该函数常与putchar()配合使用,将读入的字符输出到终端。C语言程
序设计【例2-5】getchar()的应用举例。#include"stdio.h"intmain(){charc;c=getchar();putchar(c);return0;}运行以上代码,从键盘输入a↙,输出结果为:a。C语言程序设计2.4典型实例【例2-
6】求一元二次方程ax2+bx+c=0的两个不同的实数根,要求:a、b、c三个系数从键盘输入,保证a≠0且b2-4ac>0。分析:由高中数学可知,当判别式∆=b2-4ac>0时,方程有两个不相等的实数根,并可用求根公式表示。令p=-b/2a,q=sqrt(
∆)/2a,两个根分别为:x1=p+q,x2=p-q。因此,程序中要用到系统提供的平方根函数sqrt(),需要将该函数所在的头文件math.h包含到程序中。操作演示定义变量disc,x1,x2,p,qp+q=>x1b*b-
4*a*c=>discsqrt(disc)/(2*a)=>q-b/(2*a)=>pp-q=>x2输出x1,x2C语言程序设计【例2-7】编写程序,输入一个三位整数,输出各位数字的和。如,输入123,输出6。分析:通
过单元一的学习,我们已经学会提取各位数字的值。对于本例题,我们仅需要输出依次得到的值的累加而已。操作演示C语言程序设计做一做【课堂实践2.2】输入三角形的三边长,求三角形面积。注意:三角形已知三条边长
后,求面积的公式为:其中s=(a+b+c)/2。另外,使用math.h头文件中的sqrt(x)函数来表示开根号。))()((csbsassarea−−−=C语言程序设计引例分析与实现一、引例分析1.交换两个变量的值,就像交换两个杯子中的酒一样,必
须借助第三个变量;2.通过单元一的学习,我们已经明确交换两个形参变量的值不能改变实参变量的值。3.我们采用全局变量来解决这个问题。二、引例实现操作演示再见