C语言程序设计 课件 于红 模块二 程序设计基础_第1页
C语言程序设计 课件 于红 模块二 程序设计基础_第2页
C语言程序设计 课件 于红 模块二 程序设计基础_第3页
C语言程序设计 课件 于红 模块二 程序设计基础_第4页
C语言程序设计 课件 于红 模块二 程序设计基础_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

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

文档简介

高级语言程序设计模块二程序设计基础任务2.1流程图的绘制C语言程序设计基础与实践课程组04技能点拓展03技能点详解02技能点分析目录CONTENTS任务2.1流程图的绘制01问题引入05技能点检测一问题引入流程图是人们对解决问题的方法、思路或算法的一种描述。社会的各行各业都会用到流程图,比如酒店有管理流程,企业有项目实施流程,物流系统有配送流程等等。使用流程图可以形象直观的描述程序设计的思路,使各种操作一目了然,便于理解,并可以直接转化为程序。那么在C程序设计中如何绘制流程图呢?04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.1流程图的绘制二技能点分析1.了解流程图的绘制规范2.掌握流程图绘制方法3.能够使用visio绘制流程图学习目标1.什么是流程图?他的主要作用是什么?2.流程图有哪几种符号?分别表示什么含义?3.从结构化设计角度来看,有哪几种流程控制结构?4.常用的流程图绘制软件有哪几种?分别是哪些公司开发的?学期预习04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.1流程图的绘制三技能点详解——1规范1)流程图形状统一。流程图是由点和线组成的面。要画出规范的流程图,最基本的就是流程图的形状要统一,如表2.1.1所示:表2.1.1流程图标准符号2)流程图的命名要使用主谓结构,如“设备购买流程”。3)操作描述用动宾结构,语言要简洁清晰,如“编制招聘计划”。4)起点必须有且只有一个,而终点可以省略不画或有多个。5)流程图的形状大小一致,统一字号。6)流程线是从下往上或从右向左时,必须带箭头;除此以外,都可以不画箭头;流程线的走向默认都是从上向下或从左向右。7)判断框和选择框上下端连接“yes”线,左右端“no”流入流出。8)流程图从左到右、从上至下排列。9)流程处理关系为并行关系的,需要将流程放在同一高度。10)连接线不要交叉。三技能点详解——1规范三技能点详解——2流程图的三大结构流程图由三大结构构成,这三大结构分别为顺序结构、选择结构和循环结构,这三个结构构成了流程执行的全过程。1)顺序结构在顺序结构中,各个步骤是按先后顺序执行的,这是一种最简单的基本结构。如图2.1.1所示,A、B、C是三个连续的步骤,它们是按顺序执行的,即完成上一个框中指定的操作才能再执行下一个动作。图2.1.1顺序结构流程图三技能点详解——2流程图的三大结构2)选择结构选择结构又称分支结构,选择结构用于判断给定的条件,根据判断的结果来控制程序的流程,如图2.1.2所示。在实际运用中,某一判定结果可以为空操作(如图二)。图2.1.2选择结构流程图三技能点详解——2流程图的三大结构3)循环结构循环结构又称为重复结构,就是流程在一定的条件下,反复执行某一操作的流程结构。循环结构下又可以分为当型结构和直到型结构。循环结构可以看成是一个条件判断条件和一个向回转向条件的组合,循环结构的包括三个要素:循环变量、循环体和循环终止条件。在流程图的表示中,判断框内写上条件,两个出口分别对应着条件成立和条件不成立时所执行的不同指令,其中一个要指向循环体,然后再从循环体回到判断框的入口处。当型结构:先判断所给条件p是否成立,若P成立,则执行A(步骤);再判断条件p是否成立;若P成立,则又执行A,若此反复,直到某一次条件p不成立时为止,如图2.1.3所示:三技能点详解——2流程图的三大结构直到型结构:先执行A,再判断所给条件P是否成立,若p成立,则再执行A,如此反复,直到P不成立,该循环过程结束,如图2.1.4所示:图2.1.3当型结构流程图图2.1.4直到型结构流程图案例2.1.1顺序结构流程图示例案例题目:计算1+2+3+4+5的和。解题思路:第一步:计算1+2的和等于3第二步:计算3+3的和等于6第三步:计算6+4的和等于10第四步:计算10+5的和等于15流程图如图2.1.5所示:三技能点详解——案例实践案例2.1.2选择结构流程图示例案例题目:判断一个数能否同时被3和5整除。解题思路:第一步:先输入这个数(假定为变量a)的值第二步:判断a是否可以同时被3和5整除第三步:如果可以,则输出“可以整除”;如果不可以,则输出“不可以整除”流程图如图2.1.6所示:三技能点详解——案例实践04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.1流程图的绘制四技能点拓展——1画流程图工具MicrosoftVisio(微软老牌制作流程图软件)亿图(国产不错的流程图软件)Xmind(涵盖pc\Mac\IOS\安卓)/(在线制作流程图)四技能点拓展——2OfficeVisio04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.1流程图的绘制五技能点检测1)下列图形符号,属于判断框的是(

)。A)B)C)D)2)下列关于流程线的说法,正确的有(

)。A)流程线表示算法步骤执行的顺序,用来连接图框。B)流程线只要是上下方向就表示自上而下执行可以不要箭头。C)流程线无论什么方向,总要按箭头的指向执行。D)流程线是带有箭头的线,它可以画成折线。五技能点检测3)解决下列几个问题,能用顺序结构画出其流程图的是(

)。A)计算1+2+3+...+100的和B)判断两数的大小关系,输出结果C)求两个整数的和D)求1-100内的所有素数4)算法中通常有三种不同的基本逻辑结构,下面说法正确的是(

)。A)一个算法中只能包含一种基本逻辑结构。B)一个算法可以包含三种基本逻辑结构的任意组合。C)一个算法最多可以包含两种基本逻辑结构。D)一个算法必须包含三种基本逻辑结构。课后作业完成课堂任务,在线提交;完成技能检测,在线提交;高级语言程序设计模块二程序设计基础任务2.2顺序结构的使用C语言程序设计基础与实践课程组04技能点拓展03技能点详解02技能点分析目录CONTENTS任务2.2顺序结构的使用01问题引入05技能点检测一问题引入

世间万物都在遵循着规律各自运作。太阳总是先从东边升起,再从西边落下;大自然春夏秋冬,四季更迭;学习总是先有付出,才有收获。在C语言的编程世界里,也有一种结构有着自己的编写规律,这就是顺序结构。那么什么是顺序结构编程呢?它又有什么样的编程规律呢?04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.2顺序结构的使用二技能点分析1.了解顺序结构的含义2.掌握顺序结构编程的主要步骤3.能够利用顺序结构解决简单问题学习目标1.什么是顺序结构?它的特点是什么?2.顺序结构编程的主要步骤是什么?学期预习04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.2顺序结构的使用三技能点详解顺序结构是C语言的基本结构,平时写程序基本都用到顺序结构。所谓“顺序结构”,即指程序中语句的执行顺序,就是按照书写的先后顺序从前到后执行的结构。程序设计者要把事情交给计算机去做,通常是写出一条条语句,用它们描述事情的原委,这在程序设计里称作“顺序式”结构,它的执行特点如图2.2.1所示:图2.2.1顺序结构执行特点示意图三技能点详解顺序结构编程的主要步骤可分为三步:1)输入数据2)对数据进行加工处理3)输出结果其中第一步可通过调用输入函数来实现,第二步可运用我们在模块一中给大家介绍的各种表达式和赋值语句组合完成,第三步调用输出函数即可。其流程图如图2.2.2所示:图2.2.2顺序结构执行流程图案例2.2.1顺序结构程序示例1案例题目:已知一圆的半径,求其面积(圆周率记pi=3.14)。/**********************************内容简述:已知圆的半径,求面积。**********************************/#include

<stdio.h>

intmain(void){

float

s,r,pi=3.14;

printf("请输入圆的半径:\n");

scanf("%f",&r);//输入数据 s=pi*r*r;//对数据加工处理

printf("面?积ys=%.2f\n",s);//输出结果

return0;}三技能点详解——案例案例题目:从键盘输入一个小写字母,将其转换成大写字母后输出。案例2.2.2顺序结构程序示例2/***************************************内容简述:将小写字母转换成大写字母输出。***************************************/#include

<stdio.h>

intmain(void){

charc1,c2;

printf("请输入一个小写字母:\n"); c1=getchar(); c2=c1-32;//小写字母的ASCII码值比大写字母大32

printf("%c,%d\n",c2,c2);//将转换后的字母分别以字符和整数两种形式输出

return0;}三技能点详解——案例04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.2顺序结构的使用四技能点拓展——1printf()函数的计算顺序我们知道任何一个程序都是要有输出结果的,顺序结构也不例外。在C中通过调用printf()函数来完成,那么大家知道printf()函数的计算顺序吗?printf()函数对输出变量表里所列诸变量(或表达式),其计算顺序是自右向左进行的。因此,要注意右边的参数值是否会影响到左边的参数取值。案例2.2.3printf()函数的计算顺序有如下程序,试分析该程序的输出是什么?四技能点拓展——1printf()函数的计算顺序输出结果为:案例解析:此时,要特别注意printf()函数对输出变量表里所列诸变量(或表达式)的计算顺序是自右向左进行的。因此printf()在输出前,应该先计算x--,再计算中间的x++,最后计算左边的x++。但%d与输出变量的对应关系仍然是从左往右一一对应。所以,该程序执行后的输出是:434,而不是:454。四技能点拓展——2复合语句在C语言程序中,可以用一对花括号把若干条语句括起来,形成一个整体。这个整体就被称为“复合语句”。从语法上讲,它只相当于一个语句。复合语句的一般格式是:关于复合语句,要注意:1)复合语句中可以出现变量说明;2)复合语句中的最后一条语句的语句结束符(分号)不能省略,否则会产生语法错误;3)标识复合语句结束的右花括号的后面不能有语句结束符(分号);4)在选择结构和循环结构中,常会用复合语句作为程序中的一个语法成分。四技能点拓展——2复合语句案例2.2.4复合语句演示输出结果为:04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.2顺序结构的使用五技能点检测1)根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是(

)。main(){inta;floatx;printf("inputa,x:");输入语句输出语句}输入形式inputa,x:32.1输出形式a+x=5.10五技能点检测A)scanf("%d,%f",&a,&x);B)scanf("%d%f",&a,&x);printf("\na+x=%4.2f",a+x);printf("\na+x=%4.2f",a+x);C)scanf("%d%f",&a,&x);D)scanf("%d%3.1f",&a,&x);printf("\na+x=%6.1f",a+x);printf("\na+x=%4.2f",a+x);五技能点检测2)以下程序的输出结果是(

)。main(){inti=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);}A)8,10,16B)8,10,10C)10,10,10D)10,10,16五技能点检测3)以下程序的输出结果是(

)。#include<stdio.h>main(){printf("%d\n",NULL);}A)不确定的值(因变量无定义)B)0C)-1D)1五技能点检测4).以下程序的输出结果是(

)。main(){charc1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}A)因输出格式不合法,输出出错信息B)6,0,6,102C)6,0,7,6D)6,0,5,7课后作业完成课堂任务撰写任务书完成云课堂作业高级语言程序设计模块二程序设计基础任务2.3选择结构的使用C语言程序设计基础与实践课程组04技能点拓展03技能点详解02技能点分析目录CONTENTS任务2.3选择结构的使用01问题引入05技能点检测一问题引入

大千世界,茫茫人海。变幻的世界,让我们在人生的旅途中不断地选择,其实,人的一生就是在不断地选择。每当我们站在人生的十字路口时,交警是我们自己,自己选择要去的方向。人生绽放光彩,总是在我们做出完美的选择时。在计算机的世界里,我们需要根据某些条件来选择执行指定的操作,这就需要选择结构。04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.3选择结构的使用二技能点分析1.了解实现选择结构的两种语句:if语句和switch语句2.掌握if语句和switch语句的语法3.能够使用这两种语句进行选择结构编程学习目标1.什么是选择结构?实现选择结构的语句有哪些?2.if语句的使用形式有哪些?3.什么情况下使用嵌套if语句?4.switch语句的使用注意事项有哪些?学期预习04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.3选择结构的使用三技能点详解选择结构要求程序员指定一个或多个要评估或测试的条件,以及条件为“真”时要执行的语句(必需的)和条件为“假”时要执行的语句(可选的)。C语言把任何非零和非空的值假定为“真”,把零或null假定为“假”。下面是大多数编程语言中典型的选择语句的流程图:图2.3.1选择语句流程图三技能点详解常用选择语句对应关系,如表2.3.1所示:表2.3.1选择语句描述对照表三技能点详解——1

if语句1.if语句一个if语句由一个布尔表达式后跟一个或多个语句组成。C语言中if语句的语法:如果布尔表达式为“真”,则if语句内的代码块将被执行。如果布尔表达式为“假”,则if语句结束后的第一组代码将被执行。C语言把任何非零和非空的值假定为“真”,把零或null假定为“假”。if语句流程图如图2.3.2所示:图2.3.2if语句流程图三技能点详解——2

if...else语句2.if...else语句一个if语句后可跟一个可选的else语句,else语句在布尔表达式为“假”时执行。C语言中if...else语句的语法:三技能点详解——2

if...else语句如果布尔表达式为“真”,则执行if块内的代码。如果布尔表达式为“假”,则执行else块内的代码。C语言把任何非零和非空的值假定为“真”,把零或null假定为“假”。if...else语句流程图如图2.3.3所示:图2.3.3if...else语句流程图三技能点详解——3

if...elseif...else3.if...elseif...else语句一个if语句后可跟一个可选的elseif...else语句,这可用于测试多种条件。当使用if...elseif...else语句时,以下几点需要注意:一个if后可跟零个或一个else,else必须在所有elseif之后。一个if后可跟零个或多个elseif,elseif必须在else之前。一旦某个elseif匹配成功,其他的elseif或else将不会被测试。

三技能点详解——3

if...elseif...elseC语言中的if...elseif...else语句的语法:三技能点详解——3

if...elseif...elseif...elseif...else语句流程图如图2.3.4所示:图2.3.4if...elseif...else语句流程图三技能点详解——4

C嵌套if语句4.C嵌套if语句在C语言中,嵌套if-else语句是合法的,这意味着您可以在一个if或elseif语句内使用另一个if或elseif语句。C语言中嵌套if语句的语法:您可以嵌套elseif...else,方式与嵌套if语句相似。嵌套if语句流程图如图2.3.5所示:图2.3.5嵌套if语句流程图三技能点详解——5

switch语句5.switch语句一个switch语句允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个case进行检查。C语言中switch语句的语法:三技能点详解——5

switch语句switch语句必须遵循下面的规则:1)switch语句中的表达式是一个常量表达式,必须是一个整型或枚举类型。2)在一个switch中可以有任意数量的case语句。每个case后跟一个要比较的值和一个冒号。3)case后的常量必须与switch中的变量具有相同的数据类型,且必须是一个整数或字符常量。4)当被测试的变量等于case中的常量时,case后跟的语句将被执行,直到遇到break语句为止。5)当遇到break语句时,switch终止,控制流将跳转到switch语句后的下一行。6)不是每一个case都需要包含break。如果case语句不包含break,控制流将会继续后续的case,直到遇break为止。7)一个switch语句可以有一个可选的defaultcase,出现在switch的结尾。defaultcase可用于在上面所有case都不为“真”时执行一个任务。defaultcase中的break语句不是必需的。三技能点详解——5

switch语句switch...case语句流程图如图2.3.6所示:图2.3.6switch...case语句流程图三技能点详解——6嵌套switch语句6.嵌套switch语句您可以把一个switch作为一个外部switch的语句序列的一部分,即可以在一个switch语句内使用另一个switch语句。即使内部和外部switch的case常量包含共同的值,也没有矛盾。C语言中嵌套switch语句的语法:案例2.3.1if语句在这个案例中,我们要先定义一个整型变量,并对其赋值,然后判断其值是否小于20,如果是则输出“a小于20”,再输出它的值。/****************************************内容简述:判断输入的值是否小于20。

***************************************/#include

<stdio.h>

//头函数

intmain(void){

inta=10;//变量赋值

if(a<20)//条件判断 {

printf("a小于20\n"); }

printf("a的值是%d\n",a);//输出变量a

return0;}三技能点详解——案例案例2.3.2if...else语句在这个案例中,我们要先定义一个整型变量,并对其赋值,然后判断其值是否小于20,如果是则输出“a小于20”,否则输出“a大于20”再输出它的值。/*********************************内容简述:判断a值的大小。

*********************************/#include

<stdio.h>

//头文件

intmain(void){

inta=100;//定义a值

if(a<20)//小于20 {

printf("a小于20\n"); }

else

//不小于20 {

printf("a大于20\n"); }

printf("a的值是%d\n",a);

return0;}三技能点详解——案例案例2.3.3if...elseif...elseif...else语句我们要先定义一个整型变量,并对其赋值,然后判断其值是否为10,20或者30,并输出相应的结果,如果都不是则输出“没有匹配的值”,最后再输出它的值。/***************************************内容简述:输入数值,与设定值进行数值匹配

***************************************/#include

<stdio.h>intmain(void){

inta=100;//定义变量值

if(a==10)//判断是否与10相等{

printf("a的值是10\n");}

else

if(a==20)//判断是否与20相等{

printf("a的值是20\n");}

else

if(a==30)//判断是否与30相等{

printf("a的值是30\n");}

else

//以上都不匹配{

printf("没有匹配的值\n");}

printf("a的准确值是%d\n",a);

return0;}三技能点详解——案例案例2.3.4嵌套if语句在这个案例中,我们先定义两个整型变量,并对它们各自赋值,然后先判断第一个变量的值是否满足条件,在满足条件的情况下再去判断第二个变量的值是否也满足条件,如果两个变量的值都满足条件,则输出一句话,说明两个变量的值是多少,最后再输出这两个变量的值加以验证。/***************************************内容简述:判断两个条件都满足时候的条件

***************************************/#include

<stdio.h>

//头文件

intmain(void){

inta=100;//定义变量值

intb=200;

if(a==100)//条件1满足 {

if(b==200)//条件2满足 {

printf("a的值是100且b的值是200\n"); } }

printf("a的准确值是%d\n",a);

printf("b的准确值是%d\n",b);

return0;}三技能点详解——案例案例2.3.5switch语句我们要根据某学生考试所得成绩去输出相应的结果提示,最后再输出其成绩。三技能点详解——案例/***************************************************内容简述:根据某学生考试所得成绩去输出相应的结果提示

***************************************************/#include

<stdio.h>

//头文件

intmain(void){

chargrade='B';//分数等级

switch(grade) {

case'A'://如果是A等级

printf("很棒\n");break;

case'B'://如果是B等级

case'C'://如果是C等级

printf("做得好\n");break;

case'D'://如果是D等级

printf("您通过了\n");break;

case'E'://如果是E等级

printf("最好再试一下\n");break;

default://以上等级都不是

printf("无效的成绩\n"); }

printf("您的成绩是:%c\n",grade);

return0;}三技能点详解——案例案例2.3.6嵌套switch语句的应用在这个案例中,我们先定义两个整型变量,并对它们各自赋值,然后先用一个switch...case语句去判断a的值,在此case分支内再去嵌套一个switch...case去判断b的值,最后再输出这两个变量的值加以验证。三技能点详解——案例/***************************************************内容简述:根据某学生考试所得成绩去输出相应的结果提示

***************************************************/#include

<stdio.h>

intmain(void){

inta=100;//定义变量值

intb=200;

switch(a)//根据a的值进行选择{

case100:

printf("a的值是100。\n");

switch(b)//根据b的值进行选择 {

case200:

printf("a的值是100,且b的值是200。\n");break;

default:printf("没有找到符合b的值。\n");}

break;

default:printf("没有找到符合a的值。\n");}

printf("a的准确值是%d\n",a);

printf("b的准确值是%d\n",b);

return0;}三技能点详解——案例04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.3选择结构的使用四技能点拓展——1?:运算符(三元运算符)我们已经在前面的章节中讲解了条件运算符?:,可以用来替代if...else语句。它的一般形式如下:Exp1?Exp2:Exp3;其中,Exp1、Exp2和Exp3是表达式。请注意,冒号的使用和位置。?表达式的值是由Exp1决定的。如果Exp1为“真”,则计算Exp2的值,结果即为整个?表达式的值。如果Exp1为“假”,则计算Exp3的值,结果即为整个?表达式的值。其执行示意图如图2.3.13所示:图2.3.13三元运算符执行示意图四技能点拓展——1?:运算符(三元运算符)以下实例通过输入一个数字来判断它是否为奇数或偶数四技能点拓展——1?:运算符(三元运算符)输出结果为:四技能点拓展——2If语句和switch语句的区别if语句和switch语句可以从使用的效率上来进行区别,也可以从实用性角度区分。如果从使用效率上区分:在对同一个变量在不同值做条件判断时,可以使用switch语句,也可以使用if语句,使用switch语句的效率更高一些尤其是判断的分支越多越明显。如果从语句的实用性的角度去区分,那switch语句肯定不如if条件语句。if条件语句是应用最广泛和最实用的语句。在程序开发的过程中,具体如何使用if和switch语句哦,需要根据实际的情况来定,应尽量做到物尽其用,不要因为switch语句的效率高就一味的使用,也不要因为if语句常用就不应用switch语句,根据实际情况,具体问题具体分析,使用最适合的条件语句。一般情况下,对于判断条件较少的,可以使用if条件语句,但是在实现一些多条件的判断中,就应该使用switch语句。04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.3选择结构的使用五技能点检测1)以下if语句书写正确的是(

)。A)if(x=0;)B)if(x>0)

printf(“%f”,x);{x=x+1;printf(“%f”,x);}elseprintf(“%f”,-x);elseprintf(“%f”,-x);C)if(x>0);D)if(x>0)

{x=x+1;printf(“%f”,x);}{x=x+1;printf(“%f”,x)}elseprintf(“%f”,-x);elseprintf(“%f”,-x);五技能点检测2)分析以下程序:main(){intx=5,a=0,b=0;if(x=a+b)printf(“****\n”);elseprintf(“####\n”);以上程序(

)。A)有语法错,不能通过编译B)通过编译,但不能连接C)输出****D)输出####五技能点检测3)两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(

)。main(){intx;

scanf(“%d”,&x);if(x++>5)printf(“%d”,x);elseprintf(“%d\n”,x--);

}A)7和5B)6和3C)7和4D)6和4五技能点检测4)写出下面程序的执行结果(

)。main(){intx,y=1;if(y!=0)x=5;printf(“%d\t”,x);if(y==0)x=3;elsex=5;printf(“%d\t\n”,x);}A)13B)15C)53D)55课后作业完成课堂任务,在线提交;完成技能检测,在线提交;高级语言程序设计模块二程序设计基础任务2.4循环结构的使用C语言程序设计基础与实践课程组04技能点拓展03技能点详解02技能点分析目录CONTENTS任务2.4循环结构的使用01问题引入05技能点检测一问题引入早在公元三世纪,魏晋时期的数学家刘徽利用割圆术,用圆内接六边形起算,令边数加倍,以圆内接正3*2n边形的面积为圆面积的近似值,从而进一步可以算出圆周率。南北朝时期杰出的数学家祖冲之,更是将圆周率精确到小数第7位。无论是刘徽还是祖冲之,他们都付出了常人难以想象的心血重复进行了大量的运算。科技发达的今天,我们可以运用计算机里的循环结构来帮助我们进行这些重复的操作,那么如何编写循环结构的程序呢?04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.4循环结构的使用二技能点分析1.了解循环的概念和意义2.掌握while循环和do…while循环的语法和应用3.掌握for循环的语法和应用4.掌握循环嵌套的方法5.能够使用循环结构解决实际问题学习目标1.什么是循环结构?实现循环结构的语句有哪些?2.while循环和do...while循环的区别是什么?3.for循环的使用变体形式有哪些?4.什么情况下需要使用嵌套循环?学期预习04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务2.4循环结构的使用三技能点详解在一定的条件下,去重复执行一组语句,这样的语句结构称为“循环结构”,被重复执行的那组语句被称为“循环体”。循环结构在程序设计中的应用是极为广泛的,下面是大多数编程语言中循环语句的流程图:图2.4.1循环语句流程图三技能点详解C语言提供了以下几种循环类型,如表2.4.1所示:表2.4.1循环语句描述对照表三技能点详解——1while循环只要给定的条件为真,C语言中的while循环语句就会重复执行一组目标语句。C语言中while循环的语法:在这里,循环体语句可以是一个单独的语句,也可以是几个语句组成的代码块。条件可以是任意的表达式,当为任意非零值时都为true。当条件为true时执行循环体。当条件为false时,退出循环,程序流将继续执行紧接着循环的下一条语句。三技能点详解——1while循环

While循环语句流程图如图2.4.2所示:图2.4.2while循环语句流程图在这里,while循环的关键点是循环可能一次都不会执行。当条件为false时,会跳过循环主体,直接执行紧接着while循环的下一条语句。三技能点详解——2do...while循环不像for和while循环,它们是在循环头部测试循环条件。在C语言中,do...while循环是在循环的尾部检查它的条件。do...while循环与while循环类似,但是do...while循环会确保至少执行一次循环。C语言中do...while循环的语法:请注意,条件表达式出现在循环的尾部,所以循环中的循环体语句会在条件被测试之前至少执行一次。如果条件为真,控制流会跳转回上面的do,然后重新执行循环体语句。这个过程会不断重复,直到给定条件变为假为止。三技能点详解——2do...while循环do...while循环语句流程图如图2.4.3所示:图2.4.3do...while循环语句流程图三技能点详解——3for循环for循环允许您编写一个执行指定次数的循环控制结构。C语言中for循环的语法:下面是for循环的控制流:表达式1通常是为循环变量指定初值,会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。接下来,会判断表达式2,如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着for循环的下一条语句。三技能点详解——3for循环在执行完for循环主体后,控制流会跳回上面的表达式3去执行。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for循环终止。for循环语句流程图如图2.4.4所示:图2.4.4for循环语句流程图三技能点详解——4嵌套循环C语言允许在一个循环内使用另一个循环,下面从语法和流程图的角度给大家阐述这个概念。C语言中嵌套for循环语句的语法:嵌套for循环流程图如图2.4.5所示:图2.4.5嵌套for循环流程图三技能点详解——4嵌套循环C语言中嵌套while循环语句的语法:嵌套While循环流程图如图2.4.6所示:图2.4.6嵌套while循环流程图三技能点详解——4嵌套循环C语言中嵌套do...while循环语句的语法:嵌套do...while循环流程图如图2.4.7所示:关于嵌套循环有一点值得注意,您可以在任何类型的循环内嵌套其他任何类型的循环。比如,一个for循环可以嵌套在一个while循环内,反之亦然。图2.4.7嵌套do...while循环流程图三技能点详解——5无限循环如果条件永远不为假,则循环将变成无限循环。for循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。案例2.4.1while循环在这个案例中,我们先定义一个整型变量,并对其赋值10,然后通过while循环将其值增加到20。/**********************************************内容简述:通过while循环将变量的值由10增到20。**********************************************/#include

<stdio.h>

intmain(void){

inta=10;

while(a<=20) {

printf("a的值:%d\n",a); a++; }

printf("a的值:%d\n",a);

return0;}三技能点详解——案例案例2.4.2do...while循环在这个案例中,我们先定义一个整型变量,并对其赋值10,然后通过do...while循环将其值增加到20。/***********************************************内容简述:通过do...while循环将变量的值由10增到20。***********************************************/#include

<stdio.h>

intmain(void){

inta=10;

do {

printf("a的值:%d\n",a); a++; }while(a<=20);printf("a的值:%d\n",a);

return0;}三技能点详解——案例案例2.4.3for循环我们先定义一个整型变量,并对其赋值10,然后通过for循环将其值增加到20。/***********************************************内容简述:通过for循环将变量的值由10增到20。***********************************************/#include

<stdio.h>

intmain(void){

inta;

for(a=10;a<=20;a++) {

printf("a的值:%d\n",a); }

return0;}三技能点详解——案例案例2.4.4嵌套for循环利用嵌套for循环输出2-50内的所有质数。/***********************************************内容简述:利用嵌套for循环输出2-50内的所有质数。***********************************************/#include

<stdio.h>

intmain(void){

int

i,j

for(i=2;i<50;i++) {

for(j=2;j<=i-1;j++)//用2到i-1作为除数去验证 {

if(!(i%j))//如果i能被j整除,则不是质数,余下的循环就无需进行

break;}

if(j>i-1)//在整个循环过程中i都没有被任何一个除数j整除,故是质数

printf("%d是质数\n",i); }

return0;}三技能点详解——案例案例2.4.5嵌套while循环36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖。要求一次全搬完,问男、女、小孩各若干?三技能点详解——案例/**************************内容简述:搬砖问题。**************************/#include

<stdio.h>intmain(void){

intmen=1,women,children;

while(men<=8)//男人的取值范围在1到8之间 { women=1;

while(women<=11)//女人的取值范围在1到11之间 { children=36-men-women;

if(4.0*men+3.0*women+children/2.0==36.0)//利用36块砖36人

一次全搬完列等式

printf("男人有%d个,女人有%d个,小孩有\%d个。\n",men,women,children); women++; } men++; }

return0;}三技能点详解——案例案例2.4.6

嵌套do...while循环打印一个由*组成的5行的直角三角形。/***

温馨提示

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

评论

0/150

提交评论