顺序、选择、循环三种基本结构程序设计.

合集下载

程序流程有三种最基本的控制结构,即顺序结构、选择结构和讲解

程序流程有三种最基本的控制结构,即顺序结构、选择结构和讲解

布尔表达式练习
?-3<-2<-1 False a=3:b=4:c=5 ?a=b=c False 表示一个数x是能被3整除的奇数 x Mod 3=0 and x Mod 2< >0 x Mod 2=1 and x Mod 2< >0 表示一个数x∈[2,5] x>=2 and x<=5 表示一个数x不在[2,5]区间内 x<2 or x>5
(y Mod 4=0 AND y Mod 100<>0 ) OR 400=0 AND y Mod 100=0 )
(y Mod
(y Mod 4=0 AND y Mod 100<>0 ) OR y Mod 400=0
地球公转一周的时间为:365天5小时48分56秒
判断闰年的科学依据
每经过4年,剩余的时间为:5小时48分56秒×4=23小时15分44秒 则每4年都要多加24小时- 23小时15分44秒=44分16秒
每经过100年,就会多加44分16秒×25=18小时26分40秒
比较接近一天,所以每到100年,就将这多加的近似一天的时间减去, 即停止追加一天 而实际上又少加了24小时- 18小时26分40秒=5小时33分20秒 每经过400年,就会少加4 × 5小时33分20秒≈24小时 所以每过400年,就应该再补加一天 故:每4年闰年出现一次;每400年,闰年再出现一次 其它的整100年,闰年停止出现一次
每400年闰年再出现一次其它的整100年闰年停止出现一次12选择控制结构选择控制结构又称分支结构它体现了程序运行过程中的自我判断能力程序可以根据当前执行的某个条件进行比较判断并依据判断的结果成立与否来决定下一步做什么不做什么在两条或多条程序路径中选择一条来执行即只执行程序中的一部分语句可见在此结构的程序运行过程中有些语句会执行一次有些语句在此次程序运行过程中没有机会执行

C语言程序的三种基本结构

C语言程序的三种基本结构

C语⾔程序的三种基本结构1、程序结构:在C语⾔程序中,⼀共有三种程序结构:顺序结构、选择结构(分⽀结构)、循环结构; 顺序结构:从头到尾⼀句接着⼀句的执⾏下来,直到执⾏完最后⼀句; 选择结构:到某个节点后,会根据⼀次判断的结果来决定之后向哪⼀个分⽀⽅向执⾏; 循环结构:循环结构有⼀个循环体,循环体⾥是⼀段代码。

对于循环结构来说,关键在于根据判断的结果,来决定循环体执⾏多少次; 注:在逻辑上有⼀种bool类型(也叫boolean类型,布尔类型),只有两个值,即真和假。

C语⾔的判断表达式最终的值就是⼀个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环;2、顺序结构:顺序结构很简单,⼀般我们遇到的除了选择结构和循环结构外,都是顺序结构;3、选择结构:C语⾔中常⽤的选择结构主要有以下两种: (1) if else:引⼊关键字:if else else if if (bool值) // 如果bool值为真,则执⾏代码段1,否则执⾏代码段2 { 代码段1 } else { 代码段2 } if (bool值1) // 如果bool值1为真,则执⾏代码段1,否则判断bool值2是否为真 { 代码段1 } else if (bool值2) // 若bool值2为真则执⾏代码段2,否则直接执⾏代码段3 { // 开头的if和结尾的else都只能有⼀个,但是中间的else if可以有好多个 代码段2 } else { 代码段3 }1 #include <stdio.h>23int main(void)4 {5int a, b, max;67 a = 456;8 b = 45;910if (a > b) // 判断表⽰式11 {12 max = a;13 printf("true.\n");14 }15else if (a == b)16 {17 max = a;18 printf("a == b.\n");19 }20else21 {22 max = b;23 printf("false.\n");24 }2526 printf("max = %d.\n", max);2728return0;29 } (2) switch case:引⼊关键字:switch case break default switch (变量) // 执⾏到这⼀句时,变量的值是已知的 { // switch case语句执⾏时,会⽤该变量的值依次与各个case后的常数去对⽐,试图找到第⼀个匹配项,找到匹配的项⽬后, case 常数1: // 就去执⾏该case对应的代码段,如果没找到则继续下⼀个case,直到default 代码段1; // 如果前⾯的case都未匹配,则default匹配。

第四章三种基本结构程序设计

第四章三种基本结构程序设计

>0 初值<终值 =1 时,可省略 步长 <0 初值>终值 =0 死循环
4.2.3 循环结构实例
例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I
输出I的值分别为: 2 5 8 11 出了循环输出为: I=14
4.2.3 循环结构实例
2、 Do…Loop循环语句
4.2.2 选择结构实例
例 输入一学生成绩,评定其等级。方法是:90~100分为 “优秀”,80~89分为“良好”,70~79分为“中等”, 60~69分为“及格”,60分以为“不合格” 使用IF语句实现的程序段如下: If x>=90 then Print "优秀" ElseIf x>=80 Then Print "良好" ElseIf x>=70 Then Print "中等" ElseIf x>=60 Then Print "及格" Else Print "不及格" End If
不同分支中执行某一分支的相应操作(程序块),并且任何情 况下总有“无论条件多寡,必择其一;虽然条件众多,仅选其 一”的特性。
4.2.2 选择结构实例
1. If…Then语句(单分支结构)
If <表达式> Then
语句块 End If

If <表达式> Then <语句块>
例:已知两个数x和y,比较它们的大小,使得x大于y. If x<y Then t=x : x=y: y=t End If 或 If x<y Then t=x: x=y: y=t

程序设计的三种基本结构

程序设计的三种基本结构

程序设计的三种基本结构程序设计中的三种基本结构是顺序结构、选择结构和循环结构。

这些结构是用来控制程序执行顺序和逻辑流程的基础。

一、顺序结构:顺序结构是程序中最简单的结构,即按照顺序执行各个语句,一条接一条地执行,没有跳转和分支。

顺序结构利用语句的执行顺序来确定程序的执行流程。

例子如下:```int a, b, c;a=10;b=20;c=a+b;```在上面的例子中,按照顺序结构,首先给变量a赋值为10,然后给变量b赋值为20,最后将a和b的和赋值给变量c。

程序将按照这个顺序执行下去。

二、选择结构:选择结构用来根据一些条件的真假来决定程序的执行流程。

根据条件的结果,可能会选择执行一段代码或者另一段代码。

常见的选择结构有if语句、switch语句等。

例子如下:int x = 10;if (x > 0)//x大于0的情况下执行的代码printf("x is positive");} else//x小于等于0的情况下执行的代码printf("x is not positive");```在上面的例子中,根据if语句中的条件判断表达式x > 0的结果,如果为真,则执行if语句块内的代码;如果为假,则执行else语句块内的代码。

通过选择结构,程序可以根据不同的条件来执行不同的代码块。

三、循环结构:循环结构用来进行重复执行一段代码的操作。

通过判断循环条件的真假来控制循环的执行和退出。

常见的循环结构有for循环、while循环、do-while循环等。

例子如下:```int i;for (i = 0; i < 10; i++)printf("%d\n", i);在上面的例子中,利用for循环结构,通过初始化循环变量i并设置循环条件i < 10以及每次循环完执行的表达式i++来实现了循环打印数字0到9的功能。

循环结构使得程序可以重复执行同一段代码,以达到需要重复执行的任务。

程序设计的主要方法

程序设计的主要方法

程序设计的主要方法
编程或程序设计的主要方法主要包括结构化编程、面向对象编程和面向过程编程等三种。

结构化编程,这是早期程序设计的主要方法,重点是减少代码的复杂性,提高程序的可读性。

它主要包括顺序、选择和循环等三种基本控制结构。

常见的结构化编程语言有C,Pascal等。

面向对象编程是一种热门的编程方法,强调通过抽象的对象模型以模拟世界中的对象。

这种方法的核心思想是数据抽象、封装、多态和继承。

面向对象编程语言具有良好的扩展性和复用性,是现代大多数复杂应用程序的首选设计方法。

常见的面向对象编程语言有Java,C++等。

面向过程编程是一种以过程为中心的编程方法,强调通过算法来解决问题。

这种编程方法以任务的完成为目标,每个过程都被看作是一个独立的实体。

过程之间通过输入和输出数据进行交流。

常见的面向过程编程语言有Fortran,C等。

此外,还有一些较新的程序设计方法,例如函数式编程、逻辑编程等。

函数式编程是一种以函数为主导的编程方法,逻辑编程则是一种以逻辑推理为基础的编程方法。

这些程序设计方法相互之间并不排斥,往往在实际应用中会结合使用。

程序设计的三种基本结构

程序设计的三种基本结构

程序设计的三种基本结构一、概述程序设计的三种基本结构是顺序结构、选择结构和循环结构。

这三种结构是程序设计中最基础且最重要的部分,它们构成了程序的主体框架,决定了程序的执行流程。

二、顺序结构顺序结构是最简单的一种程序结构,按照程序编写的顺序执行,没有条件判断和循环。

通过顺序结构,我们可以实现程序按照预定的操作步骤依次执行。

例如,在一个简单的计算器程序中,用户输入两个数,程序按照先后顺序进行加、减、乘、除的计算。

顺序结构示例代码:1. 输入第一个数2. 输入第二个数3. 计算两个数的和4. 输出计算结果三、选择结构选择结构根据条件判断的结果选择执行不同的代码块。

条件判断通常使用逻辑表达式,判断结果为真或假。

根据判断结果,程序将执行相应的代码块。

例如,在一个学生成绩管理系统中,根据学生的分数判断其等级,可以使用选择结构实现。

如果分数大于等于90,则为优秀;如果大于等于80,则为良好;如果大于等于60,则为及格;否则为不及格。

选择结构示例代码:1. 输入学生分数2. 如果分数大于等于90,输出优秀3. 如果分数大于等于80,输出良好4. 如果分数大于等于60,输出及格5. 否则,输出不及格四、循环结构循环结构根据条件是否满足重复执行某一段代码块,直到条件不满足为止。

循环结构包括while循环、do-while循环和for循环。

循环结构在需要重复执行相同或类似操作的情况下非常有用。

例如,在一个打印九九乘法表的程序中,可以使用循环结构实现。

通过嵌套的循环不断改变乘法表中的行和列,直到打印完整个九九乘法表。

循环结构示例代码:1. 初始化行数和列数2. 当行数小于等于9时执行循环1. 当列数小于等于行数时执行循环1. 计算乘积并输出2. 列数加12. 行数加1五、总结顺序结构、选择结构和循环结构是程序设计的三种基本结构。

通过这三种结构的组合和嵌套,我们可以实现复杂的程序逻辑,完成各种任务。

在实际的程序开发中,我们需要合理运用这些基本结构,以提高程序的可读性和可维护性。

结构化程序设计的三种基本结构

结构化程序设计的三种基本结构
第3章 结构化程序设计的三种 基本结构
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:

第4章 C语言程序的基本控制结构

第4章 C语言程序的基本控制结构

#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B

表达 式

条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告(2012 —2013 学年第一学期)课程名称:结构化程序设计与C语言开课实验室:系机房444 2012 年10月21日一、实验的目的1、学习在VC++环境下编辑调试C语言程序的方法。

2、掌握在C语言中的各种数据类型,以及如何定义整型、实型、字符型的变量,并进行赋值的方法。

3、掌握顺序程序的思路,特别是赋值语句的使用方法。

4、掌握各种类型数据的输入输出方法的正确应用,熟悉各种格式控制符的作用。

5、学会在选择结构中正确应用关系表达式及逻辑表达式。

6、熟练掌握if语句和switch语句的使用。

7、学会选择结构问题算法的编制与调试应用。

8、熟练掌握while语句、do-while语句和for语句实现循环的方法。

9、学会循环问题的编制与调试、运行。

二、实验内容与要求本实验涵盖顺序、选择、循环三部分程序设计的应用,要求每部分完成两个问题的源代码的编辑、编译、连接与运行,最终产生相关的运行结果,按规定要求提交相应的实验报告。

具体要求完成的问题如下:(注意:在模板中给出了题的页数与题号,请写正式报告时将书上的题目内容代替页数与题号)(1)P82/2(2)P84/6(3)P112/6(4)P113/9(5)P140/5(6)P141/16三、算法设计思想或程序流程图(1)设:五年期,三年期,二年期,一年期,活期存款分别为:r5,r2,r3,r0;第一种,第二种,第三种,第四种,第五种五年期存款的本息和分别为p1,p2,p3,p4,p5。

则有:p1=p*((1+r5)*5); 一次存5年期p2=p*(1+2*r2)*(1+3*r3); 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); 存活期存款。

活期利息每一季度结算一次再将所得数据一一输出即可。

(2) 先分别把c1,c2,c3,c4,c5分别赋初值为c,h,I,n,a.想要让它们的字母分别增加四位。

只需将它们的ASCII码增加4个数就可以。

便有c1=c1+4; c2=c2+4 c3=c3+4; c4=c4+4; c5=c5+4;再将所得值以字符型输出便可(3)输入x,用if语句判断X的值的范围。

X<1将x的值赋给y并输出。

除此情况之外(x>1)再进行分类。

若x<10则y=2*x-1。

除此情况之外,y=3*x-11. (4)先判断它的位数。

如果这个数大于9999则输出5;排除这种情况,大于999则输出4…以此类推。

分别输出每一位数字:几位数字便除以此位数的最小值。

如9999便除以1000,由于都是整型,便得到9。

依次除下去。

得到的各位整数在赋给各个变量,反序输出。

(5)用tn=tn+a语句代表赋值后的tn为i个 a组成数的值用 sn=sn+tn语句代表赋值后的sn为多项式前i项之和用while语句实现在I<n的情况下让i自增。

(6)将菱形分为上下两个部分,每个部分为一个三角形。

设置两个变量I,j分别控制行和列。

再用两个循环语句分别对上下两个三角进行控制。

四、源程序代码(1)#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);p2=p*(1+2*r2)*(1+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r1,5);p5=p*pow(1+r0/4,4*5);printf("p1=%f\n",p1);printf("p2=%f\n",p2);printf("p3=%f\n",p3);printf("p4=%f\n",p4);printf("p5=%f\n",p5);return 0;}(2)#include <stdio.h>int main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;}(3)#include <stdio.h>int main(){ int x,y;printf("输入x:");scanf("%d",&x);if(x<1) /* x<1 */{ y=x;printf("x=%3d, y=x=%d\n" ,x,y);}else if(x<10) /* 1=<x<10 */{ y=2*x-1;printf("x=%d, y=2*x-1=%d\n",x,y);}else /* x>=10 */{ y=3*x-11;printf("x=%d, y=3*x-11=%d\n",x,y);}return 0;}(4)#include <stdio.h>#include <math.h>int main(){int num,indiv,ten,hundred,thousand,ten_thousand,place;printf("请输入一个整数(0-99999):");scanf("%d",&num);if (num>9999)place=5;else if (num>999)place=4;else if (num>99)place=3;else if (num>9)place=2;else place=1;printf("位数:%d\n",place);printf("每位数字为:");ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);switch(place){case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);break;case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d%d\n",indiv,ten,hundred,thousand);break;case 3:printf("%d,%d,%d",hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d\n",indiv,ten,hundred);break;case 2:printf("%d,%d",ten,indiv);printf("\n反序数字为:");printf("%d%d\n",indiv,ten);break;case 1:printf("%d",indiv);printf("\n反序数字为:");printf("%d\n",indiv);break;}return 0;}(5)#include <stdio.h>int main(){int a,n,i=1,sn=0,tn=0;printf("a,n=:");scanf("%d,%d",&a,&n);while (i<=n){tn=tn+a; /*赋值后的tn为i个 a组成数的值*/sn=sn+tn; /*赋值后的sn为多项式前i项之和*/a=a*10;++i;}printf("a+aa+aaa+...=%d\n",sn);return 0;}(6)#include <stdio.h>int main(){int i,j,k;for (i=0;i<=3;i++){for (j=0;j<=2-i;j++)printf(" ");for (k=0;k<=2*i;k++)printf("*");printf("\n");}for (i=0;i<=2;i++){for (j=0;j<=i;j++)printf(" ");for (k=0;k<=4-2*i;k++)printf("*");printf("\n");}return 0;}五、运行结果及分析(1)(2)(3)(4)(5)(6)六、结论与体会(在上机程序调试中遇到的问题、采用的解决办法、得到的收获)通过对C语言进行一个学期的学习后,我对C语言有了初步的掌握,也对C 语言的特点和优点有了更深入的体会。

C语言的语言简洁,紧凑,使用方便灵活;运算符丰富,使表达式的类型多样化;数据类型也很丰富,比如字符型,实型,整型…而且在学习的过程中,我越来越体会到了C语言编程的多样性,从初学的只有一种编法,到后来的渐渐会用不同的语句,不同的结构对同一问题进行编写。

相关文档
最新文档