选择(分支)结构
计算机二级JAVA-110

计算机二级JAVA-110(总分:80.80,做题时间:90分钟)一、选择题(总题数:49,分数:80.80)1.结构化程序所要求的基本结构不包括______。
(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:[解析] 结构化程序的基本结构有3种,即顺序结构、选择结构(又称分支结构)、循环结构。
1)顺序结构。
顺序结构是程序设计中最基本的结构。
在该结构中,程序的执行是按命令出现的先后顺序依次执行的。
2)分支结构。
分支结构是按给定的选择条件成立与否来确定程序的走向。
分支可分为单向选择分支、双向选择分支和多路分支。
在任何条件下,无论分支多少,只能选择其一。
3)循环结构。
循环结构是一种重复结构,程序的执行发生了自下而上的往复,某一程序段将重复执行。
按循环的嵌套层次,循环可分为单循环结构和多循环结构。
按循环体执行的条件性质,循环又可分为计数循环和条件循环。
无论何种类型的循环结构,都要确保循环的重复执行能够终止。
2.对于下面语句的说法,不正确的是______。
Thread thrObj=new Thread();(分数:1.80)A.系统没有为该线程对象分配资源B.只能启动或者终止C.创建了一个空的线程对象D.可以调用其他方法√解析:[解析] 本题考查线程的创建。
通过new命令创建一个线程对象后,该线程对象就处于创建状态,上面的语句只是创建了一个空的线程对象,选项C说法正确。
此时,系统并没有为该线程对象分配资源,选项A说法正确。
处于这种状态的线程,只能启动或者终止,选项B说法正确。
该线程此时并不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理,选项D说法错误。
3.下面对软件特点描述不正确的是______。
(分数:1.00)A.软件是一种逻辑实体,具有抽象性B.软件开发、运行对计算机系统具有依赖性C.软件开发涉及软件知识产权、法律及心理等社会因素D.软件运行存在磨损和老化问题√解析:[解析] 软件与硬件不同,它在运行、使用期间不存在磨损、老化问题。
程序流程有三种最基本的控制结构,即顺序结构、选择结构和讲解

布尔表达式练习
?-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选择控制结构选择控制结构又称分支结构它体现了程序运行过程中的自我判断能力程序可以根据当前执行的某个条件进行比较判断并依据判断的结果成立与否来决定下一步做什么不做什么在两条或多条程序路径中选择一条来执行即只执行程序中的一部分语句可见在此结构的程序运行过程中有些语句会执行一次有些语句在此次程序运行过程中没有机会执行
五、分支结构(选择结构)

【教学目标与知识点】1)掌握和理解选择结构的几种形式2)学会使用选择结构解决问题【教学重点】选择结构的几种形式【教学难点】Selece Case语句形式和选择结构的嵌套使用【教学过程】复习顺序结构:交换两个变量中的数据【流程图】【程序代码】Dim a As Single, b As Single, c As Singlea=Val(Inputbox("请输入a", " 输入框"))b=Val(Inputbox("请输入b", " 输入框"))Print "交换前:a=";a; "b=";bc=aa=bb=cPrint "交换后:a=";a; "b=";b引入新课:比较上面程序和下面程序的执行结果,比较程序的不同之处。
【程序二】Dim a As Single, b As Single, c As Singlea=Val(Inputbox("请输入a", " 输入框"))b=Val(Inputbox("请输入b", " 输入框"))Print "交换前:a=";a; "b=";bIf a>b Thenc=aa=bb=cEnd ifPrint "交换后:a=";a; "b=";b【分析】不同之处:【程序二】中多了以下语句If a>b Then……End If,这就是本节可我们要学习的选择机构。
1、选择结构格式【形式一】单分支选择结构If 条件Then语句或语句组'语句组是指有多条语句的情况End if说明:如果条件为真就执行语句或语句组中语句,否则继续执行这段程序后面的语句。
程序的三种基本控制结构

程序的三种基本控制结构顺序结构选择结构循环结构一、顺序结构:顺序语句由语句序列组成,程序执行时,按照语句的顺序,从上而下,一条一条地顺序执行如:store 'Visual FoxPro' to nameAge = 4'My name is ' + name + ', I am ' ;+ str(Age) + ' years old'二、选择结构:分支语句根据一定的条件决定执行哪一部分的语句序列。
1、单分支结构格式:if<条件><语句序列>endif例程1:clearuse sbwait ‘是否打印?(y/n)’to aif upper(a)=’Y’wait ‘请接好打印机!按任意键后打印’list to printendif2、双分支选择格式:if<条件><语句序列1>else<语句序列2>endif例程2:clearset talk offaccept ‘请输入密码:’ to mmif mm<>’abc’’你无权使用本系统’quitelse’欢迎使用本系统’endifset talk onif语句的嵌套:在一个if语句中包含另一个语句的程序结构例程3:根据输入的x值,计算下面分段函数的值,并显示结果。
2x-5 (x<1)Y=2x (1<=x<10)2x+5 (x>=10)input ‘请输入x的值:’to xif x<1y=2*x-5elseif x<10y=2*xelsey=2*x+5endifendif?’分段函数的值为’+str(y)3、多分支结构格式:DO CASECASE 〈逻辑表达式1〉〈语句组1〉CASE 〈逻辑表达式2〉〈语句组2〉…CASE 〈逻辑表达式n〉〈语句组n〉[OTHERWISE]〈语句组〉ENDCASE3 / 35例程4:输入某学生成绩,并判断其成绩等级:100-90分为优秀,89-80分为良好,79-70分为中等,69-60分为差,60分以下为不及格。
高中信息技术必修课件程序的选择结构

其他算法中的选择结构
分治算法
将问题分解成若干个子问题,选择结 构用于判断子问题的类型和规模。
回溯算法
通过探索所有可能的解来求解问题, 选择结构用于判断是否满足约束条件 和剪枝策略。
动态规划
将问题分解为更小的子问题,并将子 问题的解保存起来以便后续使用,选 择结构用于判断子问题的状态和转移 方式。
06
首先计算表达式的值,然后与每个case的值进行比较,如果匹配则执行相应的语句块,直 到遇到break或switch语句结束。
switch语句的注意事项
case后的值必须是常量或字面量,且类型必须与表达式类型兼容;如果没有任何case与 表达式值匹配,则执行default后的语句块。
条件运算符
条件运算符的基本语法
判断。
switch语句
switch语句的基本语法
switch (expression) { case value1: statements1; break; case value2: statements2; break; ... default: statements; }
switch语句的执行流程
充分测试
在编写完选择结构后,要进行充分的测试,包括正常情况和异常 情况,确保程序的正确性和稳定性。
THANK YOU
感谢聆听
嵌套选择结构的实现方法
if语句的嵌套
在if语句内部使用另一个if语句,根据条件判断执行相应的代码块 。
switch语句的嵌套
在switch语句内部使用另一个switch语句,根据不同的条件执行相 应的代码块。
if-else语句的嵌套
在if或else语句内部使用另一个if-else语句,实现更复杂的条件判 断和分支控制。
结构化程序设计的三种基本结构

结构化程序设计共有以下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语言程序的基本控制结构

#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)
高中数学 第章 算法初步 .2 流程图 .2.2 选择结构教案 必修3

1.2.2选择结构整体设计教材分析在一个算法中经常会遇到对一个条件进行判断,如果条件成立则执行某个操作,如果条件不成立则执行另一个操作.因此在算法的流程图中,根据条件是否成立有着不同的流向.像这种根据条件作出判断,再决定执行哪一种操作的结构称为选择结构(selection structure)(或称“分支结构")。
一个选择结构都包含一个判断框,当条件成立时执行标有“Y”或者“是”的分支,当条件不成立时执行标有“N”或者“否”的分支。
图1的虚线框内就是常见的几种选择结构,在(1)中,当条件“n>3”成立时执行A,否则执行B;在(2)中,当条件“n>3”成立时执行A,否则直接脱离选择结构;在(3)中,当条件“n〉3"成立时直接脱离选择结构,否则执行B。
图1对于选择结构要注意以下几点:(1)在选择结构中不论条件是否成立,只能执行A框或者B框之一,不能既执行A框,又执行B框,即“Y"和“N”两者之中只能选择一个,不能两者都选择;(2)在选择结构中不论条件是否成立,必须执行A框或者B框之一,不能既不执行A框,又不执行B框,即“Y”和“N”两者之中必须选择一个,不能两者都不选择;(3)A框和B框中可以有一个是空的,即可以不执行任何操作直接脱离选择结构,但是不能两个框都是空的;(4)无论走哪条路径,执行完A或者B之后都经过P,然后才脱离选择结构;(5)选择结构可以是嵌套的,即在选择结构之中还可以出现选择结构,这种结构主要是出现在有多个条件判断的算法中;(6)选择结构可以和其他结构嵌套,形成比较复杂的结构;(7)A框或者B框可以不止一个操作,A框本身就可以是一个独立的算法结构.三维目标1。
通过实例的训练,使学生理解选择结构的意义。
2.能用流程图表示选择结构以及能用选择结构的流程图表示简单问题的算法,养成良好的逻辑思维习惯,发展有条理的思考与表达能力,达到提升学生逻辑思维能力的目标.重点难点教学重点:用选择结构的流程图表示算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例
下面程序的运行结果是什么? main() { int x=2,y=-1,z=2; if(x<y) if(y<0) z=0; else z+=1; printf("%d\n",z); }
2
2014-3-10
Hongyan Nan,HPU
11
if语句的三种形式 0 非0 expr2 形式三: 0 非 0 if(exp1) expr3 statement1 非0 else if(exp2) 例 if(exp1) statement1 statement2 statement3 statementn statement2 if(exp2) 改例 if(exp1) ……statement1 例:if(salary>1000) { index=0.4; [else statementn] else if(exp2) else if(salary>800) statement1 执行过程: statement2 index=0.3; } else if(salary>600) 注意:else与if的配对原则:else总是与它上面的最近 else index=0.2; 的未配对的if配对 statement2 else if(salary>400) index=0.1; 实现if与else正确配对方法:加{ }
2014-3-10
Hongyan Nan,HPU
9
开始
例4.4 输入a、b、c,从小到大顺序输出 #include <stdio.h> main() { float a,b,c,t; scanf("%f%f%f",&a,&b,&c); if(a>b) { t=a; a=b; b=t;} /*对换a和b的值*/ if(a>c) 运行: { t=a; a=c; c=t;} 5.34.66.5↙ if(b>c) 4.60,5.30,6.50 { t=b; b=c; c=t;} printf("%5.2f,%5.2f,%5.2f\n",a,b,c); }
运行: Input integer a:12 Input integer b:12 a==b 再运行: Input integer a:12 Input integer b:9 a!=b
2014-3-10 Hongyan Nan,HPU 6
例4.2
#include <stdio.h> main() 运行结果: { 0,0 char c='k'; 1,0 0,1 int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",!x*!y,!!!x); printf("%d,%d\n",x||(i=5)&&j-3,i<j&&x<y); printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k); }
4.1 关系运算符和关系表达式
关系运算符 种类:<、<=、==、>=、>、!=,双目运算,左结合性 优先级:<、<=、>=、>高于==、!= 运算结果:逻辑值1或0 例 a>b!=c 例 5>3 1 (a>b)!=c 关系运算的值可以参与其他运算 5<=3 0 a==b<c a==(b<c) 注意:用==或!=比较两个浮点数时会出错 '5'==5 0 a=b>c a=(b>c) intb=0.5; i=1, j=7,a; 例 又例 若a=0; x=0.3; 关系表达式 exp1关系运算符exp2 例 int a=3,b=2,c=1,d,f; 10 a=i+(j%4!=0); 则a<=x<=b 值为 0 5!=3 例 C语言中: 1.0/3.0*3.0==1.0 结果为 关系表达式的值:逻辑值1或0 表达式值1 a>b 则 a= 2 例 -i-5*j==k+1 (-i-5*j)==(k+1)表述正确 数学上:1.0/3.0*3.0==1.0 关系表达式的值也可以参与其他运算(a>b)==c 表达式值1 'a'+1<c+b ('a'+1)<(c+b) 可写为:fabs(1.0/3.0*3.0-1.0)<1e-6 表达式值0 b+c<a x=a!=c==d x=((a!=c)==d) d=1 d=a>b f=0 f=a>b>c
2014-3-10 Hongyan Nan,HPU
输入a b c a>b 非0 a b对换 a>c 非0 a c对换 b>c 非0 b c对换 输出a b c 结束
10
0
0
0
例
下面程序的作用是什么? main() { char c; printf("Input :"); scanf("%c",&c); if(c>='a'&&c<='z') c=c-32; else c=c; printf("%c",c); } 将小写字母转换为大写字母
2014-3-10 Hongyan Nan,HPU
expr1
0
else index=0;
12
例4.5 编写程序判别键盘输入字符的类别 #include <stdio.h> main() ASCII码表中,<32的为控制字符, { 48~57间为0~9,65~90间为A~Z, char c; 97~122间为a~z,其余为其他字符 printf("input a character:"); 用多分支选择判断 c=getchar(); if(c<32) printf("This is a control character\n"); 运行: else if(c>=48&&c<=57) input a character:g↙ printf("This is a digit\n"); This is a small letter else if(c>=65&&c<=90) printf("This is a capital letter\n"); else if(c>=97&&c<=122) printf("This is a small letter\n"); else printf("This is an other character\n"); }
序
一:用关系表达式 或逻辑表达式;二:用 if语句或switch语句
在C语言中设计选择 结构程序,必须解决的两 个问题:一是如何表示条 件;二是用什么语句实现 选择结构
C语言中用1表示逻辑“真”,用0表示逻辑“假” 所有非零值按真处理,否则按假处理
2014-3-10 Hongyan Nan,HPU 3
2014-3-10
H成的选择结构
0 if 语句的三种形式 例 4.3 输入一个数,如果为正数,求其平方根并输出, exp 则:例否则,输出该数。 4.3 程序可改为 形式一: if(exp) 非0 #include <stdio.h> #include <stdio.h> statement statement #include <math.h> #include <math.h> 执行过程: main() main() 注意: { float x,y; exp可为表达式、常量或变量,且须加() { 例 if(x>y) printf("input one float x,y; 形式二: if(exp) number:"); 例 %d",x); if(5) printf(" 0 非0 scanf(" % f",&x); printf("input one number:"); exp statement1 printf("%d",1); if (x>0)%f",&x); scanf(" else y=sqrt(x); 又例statement1 if(b) statement2 y=x; statement2 else if(x>0) printf("%d",!b); y=x; y=sqrt(x); 执行过程: 例 运行: if(x>y) input one number:4↙ printf("y= % f",y); max=x; printf("y= % f",y); 注意:statement1、2可为简单或复合语句
2014-3-10 Hongyan Nan,HPU 4
例4.1
#include <stdio.h> main() 运行结果: { 1,0 char c='k'; 1,1 0,0 int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",'a'+5<c,-i-2*j>=k+1); printf("%d,%d\n",1<j<5,x-5.25<=x+y); printf("%d,%d\n",i+j+k==-2*j,k==j==i+5); }