选择结构小学练习(if语句和case语句)
- 格式:doc
- 大小:57.50 KB
- 文档页数:8
《JAVA程序设计基础》(选择结构)练习一、选择题1. 为一个boolean类型变量赋值时,可以使用()方式A. boolean a = 1;B. boolean a = (9>=10);C. boolean a = “真”;D. boolean a == false;2. java中关于if选择结构描述错误的是()A. If选择结构是根据条件判断之后再做处理的一种语法结构B. 关键字if后小括号里必须是一个条件表达式,表达式的值必须为布尔型C. If后小括号里表达式的值为false时,程序需要执行大括号里的语句D. If语句可以和else一起使用3. 编译运行如下java代码,输出结果是()public class Test{public static void main(String[] args){int num = 5;if(num<=5){num += 2;System.out.println(num);}System.out.println(num+5);}}A.10B.510C.712D.运行出错4.下面这段代码的输出为()int year = 2046;if(year%2==0){System.out.println(“进入了if”);}else{System.out.println(“进入了else”);}System.out.println(“退出”);A.进入了ifB.进入了elseC.进入了else退出D.进入了if退出5.有else if块的选择结构是( )A.基本if选择结构B.if-else选择结构C.多重if选择结构D.switch选择结构6.下列关于if 选择结构和 switch选择结构的说法正确的是()A.(if-else)选择结构中else语句是必须有的B.多重if选择结构中else语句可选C.嵌套if选择结构中不能包含else语句D.switch选择结构中default语句可选7.下面程序的运行结果是().public class Weather {public static void main(String[] args).{int shiDu=45;//湿度if(shiDu>=80){System.out.println("要下雨了");.}else if(shiDu>=50){System.out.println("天很阴");}else if(shiDu>=30){System.out.println("很舒适");}else if(shiDu>=0){System.out.println("很干燥");}}}A.要下雨了B.天很阴C.很舒适D.很干燥8.在JDK1.7中,下列有关switch选择结构的说法,正确的是( )A.switch选择结构可以完全替代多重 if 选择结构B.当条件判断为等值判断,并且判断的条件为字符串时,可以使用switch选择结构C.当条件判断为等值判断.并且判断的条件为字符时,可以使用 switch选择结构D.当条件判断为等值判断,并且判断的条件为整型变量时,可以使用switch 选择结构9.下面这段代码的运行结果为( )int day=3;switch(day){case 1:case 3:case 5:System.out.println("学钢琴!");break;case 2:System.out.println("学英语!");default:System.out.println("休息哦!");}A.学钢琴!B.学钢琴!学英语!休息哦!C.学钢琴!休息哦!D.没有任何输出二、简答题1.说明什么情况下可以使用 switch选择结构代替多重if 选择结构。
习题一、选择题1.在C语言中,紧跟在关键字if 后一对圆括号里的表达式()。
A.只能用逻辑表达式B.只能用关系表达式C.只能用逻辑表达式或关系表达式D.可以是任意表达式2.在嵌套使用if语句时,C语言规定else总是()。
A.和之前与其具有相同缩进位置的if配对B.和之前与其最近的if配对C.和之前与其最近的且不带else的if配对D.和之前的第一个if配对3.若有条件表达式(exp)?a++: b--,则以下表达式中能完全等价于表达式(exp)的是()。
A. (exp= =0)B. (exp!=0)C. (exp= =1)D. (exp!=1)4.以下程序的输出是()。
main( ){ int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf(“%d\n”,z);}A. 3B. 2C. 1D. 05.若有表达式(w)?(-x):(++y),其中与w等价的表达式是()。
A.w==1B.w==0C.w!=1D.w!=06.C语言中的switch语句形式如下所示,关键字switch后一对圆括号中表达式exp的类型是()。
switch (exp){ case常量表达式1:语句1;…case常量表达式n:语句n;default:语句n+1;}A.只能是整型或字符型B.只能是int类型C.只能是字符型D.只能是整型或实型7.以下不正确的if语句形式是()。
A.if (x>y&&x!=y);B.if (x= =y) x+=y;C.if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);D. if (x<y) {x++;y++;}8.执行以下程序后的输出是()。
int i=-1;if(i<=0) printf(“****\n”)else printf(“%%%%\n”);A.****B.有语法错误,不能正确执行C.%%%%cD.%%%%9.下列叙述正确的是()。
选择结构练习题选择结构练习题(导练)一、基础训练题:1.当VB执行下面语句后,A的值为()A=1IF A>0 THEN A=A+1IF A>1 THEN A=0A 、2B 、1C 、0D 、32.下列语句中,用于选择结构的是()A、While…Wend语句B、If语句C、For…Next语句D、Select Case语句3. 在如下VB的If语句中,假设a=15:b=23: If a>b Then max=a Else max=b那么执行该程序段后max值为()A、15B、23C、0D、-14.以下是一段VisualBasic程序,它的基本结构属于…IF x>0 Then X=x+1 Else X=x-1 EndIf…()A、顺序结构B、选择结构C、循环结构D、树型结构5.当程序出现多分支选择时,用If语句比较繁琐,用Select Case 语句就方便多了。
()6.在VB中进行程序设计时,IF语句用于处理单分支及双分支型的选择结构,SelectCase 语句用于处理多分支选择结构。
()7.补充完善下列程序段计算旅客的行李费,收费标准为:20千克以下(包括20千克)不收费,超过20千克的部分每千克收20元。
X表示行李重量,Y表示行李费。
Dim X, YAs SingleX=InputBox("输入行李重量")If ________ ThenY=0ElseY=20*(X-20)End IfPrint "行李费= ";Y二、考题训练(能力提升训练)1、[ 单选题1 分]在VisualBasic中,将多个语句合并在一行上的并行符是()A、撇号(’)B、冒号(:)C、大于号(>)D、感叹号(!)2、[ 多选题2 分]程序的三种基本结构是( )A、顺序结构B、循环结构C、选择结构D、树型结构3、[ 单选题1 分]税务部门征收个人所以税,以2000元为起征点,规定如下:①不超过500元的,税率为5%;②超过500至2000,税率为10﹪;③超过2000至5000,税率为15﹪;……该题设计程序结构时最适合使用的控制结构是()。
以下是几个常用的选择结构语句:1、if语句:if语句用于根据条件是否为真来执行不同的代码块。
它可以与可选的else或else if语句一起使用来实现多个条件的判断。
if (condition) {// 如果条件为真,执行这里的代码} else {// 如果条件为假,执行这里的代码}switch语句:switch语句用于在多个可能的选项之间进行选择。
它根据表达式的值来匹配不同的case标签,执行相应的代码块。
2、switch (expression) {case value1:// 执行代码块1break;case value2:// 执行代码块2break;// 其他case标签default:// 如果没有匹配的值,执行这里的代码}3、三元运算符:三元运算符是一种紧凑的选择结构,它允许根据条件的真假选择不同的值。
result = (condition) ? value_if_true : value_if_false;这些是C语言中常用的选择结构语句。
它们允许程序根据条件来做出决策,并执行相应的代码块或选择不同的值。
这在编写控制流程和逻辑的程序时非常有用。
4、if-else if-else语句:if语句可以与多个else if子句一起使用,用于处理多个条件。
if (condition1) {// 如果条件1为真,执行这里的代码} else if (condition2) {// 如果条件2为真,执行这里的代码} else {// 如果以上条件都为假,执行这里的代码}5、嵌套if语句:你可以在一个if语句内部嵌套另一个if语句,以处理更复杂的条件。
if (condition1) {if (condition2) {// 如果条件1和条件2都为真,执行这里的代码}}6、条件运算符:条件运算符(也称为三元运算符)可以用来实现简单的条件选择。
result = (condition) ? value_if_true : value_if_false;7、逻辑操作符:逻辑操作符(如&&和||)允许你在条件语句中组合多个条件,以实现更复杂的选择。
小学生句式练习题### 句式练习题1. 选择句式:小明喜欢吃水果,他会选择吃苹果还是香蕉?- 小明喜欢吃苹果,因为他觉得苹果又甜又脆。
- 小明更喜欢吃香蕉,因为香蕉软软的,吃起来很方便。
2. 条件句式:如果明天天气晴朗,我们会去公园放风筝。
- 明天如果下雨,我们就会在家里玩拼图。
3. 假设句式:假如我有一双翅膀,我会飞到天空中去。
- 如果我有一台时光机,我会回到过去看看恐龙。
4. 因果句式:因为今天作业很多,所以小明没有时间玩游戏。
- 由于昨天晚上没有睡好,小明今天上课打瞌睡。
5. 并列句式:小华喜欢画画和唱歌,他经常在课余时间练习。
- 小红既喜欢跳舞,也喜欢游泳,她每个周末都会去舞蹈班和游泳池。
6. 转折句式:虽然小明数学成绩很好,但他更喜欢语文课。
- 尽管今天天气很冷,但是小华还是决定去户外跑步。
7. 递进句式:小丽不仅学习好,而且乐于助人。
- 小华不仅完成了作业,还帮助妈妈做家务。
8. 疑问句式:你今天为什么没有来学校?- 这本书是谁的?我好像没有见过。
9. 感叹句式:多么美丽的彩虹啊!- 哇,这个蛋糕看起来真好吃!10. 祈使句式:请把窗户关上,外面风很大。
- 不要忘了带雨伞,天气预报说今天有雨。
11. 虚拟语气句式:如果我是你,我会选择那个红色的气球。
- 如果我有更多的时间,我会去图书馆看书。
12. 被动句式:这个礼物被小明送给了小红。
- 那本书被老师推荐给了全班同学。
通过这些练习,小学生可以更好地理解和掌握不同类型的句式结构,提高语言表达能力。
if选择语句练习题if选择语句是编程中常用的控制结构之一,它可以根据某个条件的真假来决定程序执行的路径。
通过练习if选择语句的使用,我们能够加深对条件判断和流程控制的理解,提升编程能力。
下面是一些if选择语句的练习题,帮助大家巩固所学知识。
练习一:判断成绩等级根据学生的成绩,判断其等级,并输出相应的提示。
具体要求如下:1. 成绩等级为"A"时,输出"优秀"。
2. 成绩等级为"B"时,输出"良好"。
3. 成绩等级为"C"时,输出"及格"。
4. 成绩等级为"D"时,输出"不及格"。
5. 对于其他成绩,输出"成绩输入错误"。
练习二:判断奇偶数判断一个整数是否为奇数或偶数,并输出相应的结果。
具体要求如下:1. 判断整数是否为奇数,若是,输出"奇数";若不是,继续判断。
2. 判断整数是否为偶数,若是,输出"偶数";若不是,输出"无效输入"。
练习三:判断闰年判断一个年份是否为闰年,并输出相应的结果。
具体要求如下:1. 输入一个年份,判断是否为4的倍数,若是,继续判断。
2. 判断是否为100的倍数,若是,继续判断。
3. 判断是否为400的倍数,若是,输出"闰年";若不是,输出"不是闰年"。
练习四:计算面积根据用户输入的图形类型,计算相应图形的面积,并输出结果。
具体要求如下:1. 输入图形类型,如"圆形"、"矩形"等。
2. 若输入为"圆形",则继续输入圆的半径,计算圆的面积。
3. 若输入为"矩形",则继续输入矩形的长和宽,计算矩形的面积。
4. 若输入为其他图形类型,输出"无效输入"。
if条件句练习题If条件句练习题If条件句是英语语法中的一个重要部分,它用于表达假设、条件和可能性。
在日常生活和工作中,我们经常会遇到各种各样的情况,需要使用if条件句来表达自己的意思。
下面是一些if条件句的练习题,帮助我们更好地理解和运用这一语法结构。
1. 如果明天下雨,我会带伞去上班。
2. 如果我有足够的时间,我会去旅行。
3. 如果你不小心摔倒了,我会立刻帮助你。
4. 如果你不喜欢这本书,我可以给你推荐其他的。
5. 如果他来参加派对,我会感到非常高兴。
6. 如果我有机会学习海外,我会选择去英国。
7. 如果你早点告诉我,我会帮你解决这个问题。
8. 如果你想要成功,你必须付出努力。
9. 如果我有钱,我会买一辆豪车。
10. 如果我是你,我会尽快处理这个事情。
这些练习题涵盖了不同的情境和语法结构,下面我将对每个句子进行解析和说明。
1. 如果明天下雨,我会带伞去上班。
这是一个表示将来可能发生的情况的条件句。
如果明天下雨,那么我会带伞去上班。
这个句子中的if条件句使用的是一般现在时,表示可能性。
2. 如果我有足够的时间,我会去旅行。
这是一个表示假设情况的条件句。
如果我有足够的时间,那么我会去旅行。
这个句子中的if条件句使用的是一般现在时,表示假设和可能性。
3. 如果你不小心摔倒了,我会立刻帮助你。
这是一个表示将来可能发生的情况的条件句。
如果你不小心摔倒了,那么我会立刻帮助你。
这个句子中的if条件句使用的是一般现在时,表示可能性。
4. 如果你不喜欢这本书,我可以给你推荐其他的。
这是一个表示假设情况的条件句。
如果你不喜欢这本书,那么我可以给你推荐其他的。
这个句子中的if条件句使用的是一般现在时,表示假设和可能性。
5. 如果他来参加派对,我会感到非常高兴。
这是一个表示将来可能发生的情况的条件句。
如果他来参加派对,那么我会感到非常高兴。
这个句子中的if条件句使用的是一般现在时,表示可能性。
6. 如果我有机会学习海外,我会选择去英国。
C语言选择结构练习题一、单选题A. ifB. switchC. forD. while2. 当表达式 (a > b) 为真时,下列哪个表达式的值为假?A. !(a <= b)B. (a == b)C. (a >= b)D. (a != b)A. ifelseB. switchcaseC. whileD. dowhile4. 当if语句的条件为真时,下列哪个选项的语句不会执行?A. if语句内的语句B. else语句内的语句C. if语句和else语句内的语句D. 与if语句平级的下一个语句二、多选题A. ifB. else ifC. switchD. forA. if和else语句块只能包含一条语句B. if和else语句块可以包含多条语句,但需要用大括号括起来C. if语句块后面可以不跟else语句块D. else语句块后面可以继续跟if语句块A. 没有与case匹配的值B. case后面的值与switch表达式匹配C. switch表达式为空D. default分支位于所有case分支之前三、填空题1. 在C语言中,______ 关键字用于实现选择结构。
2. 当if语句的条件为真时,执行______ 语句块;当条件为假时,执行______ 语句块。
3. 在switch语句中,每个case分支后面需要使用______ 语句来跳出switch结构。
四、编程题1. 编写一个C程序,输入一个整数,判断它是正数、负数还是零,并输出相应的结果。
2. 编写一个C程序,输入三个整数,找出其中的最大值并输出。
3. 编写一个C程序,根据用户输入的成绩(0100),输出相应的等级(A、B、C、D、E)。
4. 编写一个C程序,输入一个年份,判断它是否为闰年,并输出结果。
5. 编写一个C程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。
用户输入两个整数和一个运算符,程序输出运算结果。
第五章选择控制结构1.学会正确使用关系与逻辑运算,熟练构建关系与逻辑表达式。
2.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构。
3.掌握if、switch语句嵌套使用。
习题一大小写转换【目的】熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。
【内容】下面程序希望完成大小写字母转换功能。
若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。
运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。
如果程序有错,请改正。
#include<stdio.h>void main(){char ch;ch=getchar();if('a'<=ch<='z') ch-=32;if('A'<=ch<='Z') ch+=32;putchar(ch);putchar('\n');}#include<stdio.h>void main(){char ch;ch=getchar();if('a'<=ch&&ch<='z'){ch=ch-32;}else{if('A'<=ch&&ch<='Z'){ch=ch+32;}}putchar(ch);putchar('\n');}习题二成绩转换【目的】学习if~else、switch语句的嵌套使用。
【内容】【提示】本程序需要从键盘接收两个字符,先判断第一个字符,再判断第二个字符以确定其对应的百分制数。
例如:输入4+,第一个字符等于'4',则应再判断第二个字符,如果是'+'则输出80,如果是回车符则输出75,如果是'-'则输出70。
C语⾔学习-选择结构if语句、switch语句今天主要学习了,if语⾔和switch语句,下⾯直接进⼊正题。
C语⾔为我们提供了3种流程控制结构,分别为:顺序结构,选择结构,循环结构。
顺序结构:默认的流程结构。
按照书写顺序执⾏每⼀条语句。
选择结构:对给定的条件进⾏判断,根据不同的结果执⾏不同的代码断。
循环结构:对给定条件成⽴的情况下,反复执⾏某⼀代码断。
3种流程图如下:⼀、顺序结构1int main(){23 printf("hello world!\n");45 printf("I like iOS!\n");67return0;89 }以上程序的运⾏结果如下:⼆、选择结构C语⾔中选择结构的实现⽅式有两种:if语句和switch语句。
先来看下if语句的使⽤,⽽if语句的形式是有好多种的。
先来看看if语句最简单的形式if ( 条件 ){语句1;语句2;....}如果if右边⼩括号()中的条件成⽴,也就是为“真”时,就会执⾏第2~6⾏⼤括号{}中的语句;如果条件为假,就不执⾏⼤括号{}中的语句。
这⾥的if是关键字。
例如:1int main(){23int a = 7;45if ( a ){6 printf("条件a成⽴\n");7 printf("a的值为真");8 }910 }C语⾔规定所有⾮0值都为“真”,⽽a的值是7,因此第3⾏的条件是成⽴的,接着就会执⾏第5、6⾏代码。
输出结果如下:条件a成⽴a的值为真如果将a的值改为0,那么第3⾏的条件就不成⽴,就不会执⾏第5、6⾏代码语句嵌套if1int main(){23int a = 7;45if ( a > 0 ){67 printf("a的值⼤于0\n");89if ( a<9 ){1011 printf("a的值⼩于9");12 }13 }14 }第3⾏的a>0是成⽴的,因此会按顺序执⾏第4~11⼤括号中的代码。
第五章if语句练习题1..已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是____ ____ _if(x>y)z=x;x=y;y=z;2.以下if语句语法正确的是________A.if(x>0)printf(“%f”,x)else printf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f’,x);}else printf(“%f”,-x);C.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f,x);}else printf(“%f”,-x);3.请阅读以下程序:main( ){int a=5,b=0,c=0;if(a=b+c)printf(“* * *\n”);elseprintf(“$ $ $\n”);}以上程序______A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出* * *D.输出$ $ $4.以下程序的运行结果是______main( ){int m=5;if(m++>5)printf(“%d\n”,m);else printf(“%d\n”,m--);}A. 4B. 5C. 6D. 75.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是______if(a<b)if(c<d) x=1;elseif(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A. 1B. 2C. 3D. 66.有一个函数关系见下表:下面程序段中能正确表示上面关系的是( )A. y=x+1;if(x>=0)if(x==0)y=x;else y=x-1;B. y=x-1;if(x!=0)if(x>0)y=x+1;else y=x;C. if(x<=0)if(x<0)y=x-1;else y=x;else y=x+1;D.y=x;if(x<=0)if(x<0)y=x-1;else y=x+1;7.以下程序的输出结果是______main( ){int a=100,x=10,y=20,okl=5,ok2=0;if(x<y)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf(“%d\n”,a);}A.1B.0C.-1D.值不确定8.以下程序输出结果是_______main( ){int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf(“%d\n”,z);A.3B.2C.1D.09.以下不正确的语句为______A.if(x>y);B.if(x=y)&&(x! =0) x+=y;C,if(x! =y)scanf(“%d”,&x);else scanf(“%d”,&y);D.if(x<y){x++;y++;}10.阅读以下程序#include<stdio.h>main( ){float a, b;scanf(“%f”,&a);if(a<0.0)b=0.0;else if((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);else if(a<10.0)b=1.0/a;else b=10.0;printf(“%f\n”,b);}若运行时输入 2.0<回车>,则上面程序的输出结果是_____A.0.000000B.0.500000C.1.000000D.0.25000011.若运行时输入:16<回车>,则以下程序的运行结果是( )#include<stdio.h>main( ){int year;printf(“Input you year:”);scanf(“%d”,&year);if(year>=18)printf(“you$4.5yuan/xiaoshi”);else printf(“your$3.0yuan/xiaoshi”);} 12.若运行时输入:2<回车>,则以下程序的运行结果是( )#include<stdio.h>main( ){char class;scanf(“%c”,&class);if(class==’1’)printf(“1st class postage is 19p”);elseprintf(“2nd class postage is 14p”);} 13.若运行时输入:4.4<回车>,则以下程序的运行结果是( )#include<stdio.h>main( ) {float costprice,sellingprice;printf(“enter cost price $:”);scanf(“%f”,&costprice);if(costprice>=5){sellingprice=costprice+costprice*0.25;printf(“sellingprice(0.25)$%6.2f”,sellingprice);}else{sellingprice=costprice+costprice*0.30;printf(“sellingprice(0.30)$%6.2f”,sellingprice);}}14.以下程序的运行结果是( )main( ){ if(2*2= =5<2*2= =4) printf(“T”);else printf(“F”);}15.请阅读以下程序:main( ){int t,h,m;scanf(“%d”,&t);h=(t/100)%12;if(h= =0)h=12;printf(“%d:”,h);m=t%100;if(m<10)printf(“0”);printf(“%d”,m);if(t<1200||t= =2400)printf(“AM”);else printf(“PM”);}若运行时输入:1605<回车>时,程序的运行结果是( )16.以下程序实现:输入圆的半径r和运行标志m,按照运行标志进行指定计算.请在( )内填入正确的内容.标志运算a 面积c 周长b 二者均计算#define pi 3.14159main( ){char m;float r,c,a;printf(“input mark a c or b&&r\n”);scanf(“%c%f”,&m,&r);if( ){a=pi*r*r;printf(“area is %f”,a);}if( ){c=2*pi*r;printf(“circle is %f”,c);}if( ){a=pi*r*r;c=2*pi*r;printf(“area&&circleare%f%f”,a,c);}}17.若运行时输入:5999<回车>,则以下程序的运行结果(保留小数后一位)是( )main( ){int x;float y;scanf(“%d”,&x);if(x>=0&&x<=2999)y=18+0.12*x;if(x>=3000&&x<=5999)y=36+0.6*x;if(x>=6000&&x<=10000)y=54+0.3*x;printf(“%6.1f”,y);}18.以下程序实现输出x,y,z三个数中的最大者.请在( )添入正确内容.main( ){int x=4,y=6,z=7;int ( )if( )u=x;else u=y;if( )v=u;else v=z;printf(“v=%d”,v);}19.以下程序实现:输入三个整数,按从大到小的顺序进行输出.请在( )内填入正确内容main( ){int x,y,z,c;scanf(“%d%d%d”,&x,&y,&z);if( ){c=y;y=z;z=c;}if( ){c=x;x=z;z=c;}if( ){c=x;x=y;y=c;}printf(“%d,%d,%d”,x,y,z);}20.以下程序对输入的两个整数,按从大到小顺序输出.请在( )内填正确内容.main ( ){int x,y,z;scanf(“%d,%d,”,&x,&y);if( ){z=x; }printf(“%d,%d”,x,y);}21.以下程序对输入的一个小写字母,将字母循环后移5个位置后输出.如’a’变成’f’,’w’变成’b’.请在( )填入正确内容#include “stdio.h”main( ){char c;c= ;if(c>=’a’&&c<=’u’)else if(c>=’v’&&c<=’z’) putchar(c);}22.输入一个字符,如果它是一个大写字母,则把它变成小写,如果是小写,则变成大写,其他字符不变,请在( )填正确内容main ( ){char ch;scanf(“%c”,&ch);if( )ch=ch+32;else if(ch>=’a’&&ch<=’z’)printf(“%c”,ch);}23.以下程序的运行结果是( )main( ){int a,b,c;int s,w,t;s=w=t=0;a=-1,b=3,c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}else if(c>0)w=a-b;else t=c;printf(“%d%d%d”,s,w,t);}24.以下程序的运行结果是( )main( ){int a,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;else if(! b)if(! c)x=15;else x=25;printf(“%d\n”,d);}25.以下程序的运行结果是( )#include<stdio.h>main( ){int x,y=1,z;if(y!=0)x=5;printf(“\t%d\n”,x);if(y= =0)x=4;else x=5;printf(“\t%d\n”,x);x=1;if(y<0)if(y>0)x=4;else x=5;printf(“\t%d\n”,x);}26.以下程序的运行结果是( )#include<stdio.h>main( ){int x,y=-2,z=0;if((z=y)<0)x=4;else if(y= =0)x=5;else x=6;printf(“\t%d\t%d\n”,x,z);if(z=(y= =0))x=5;x=4;printf(“\t%d\t%d\n”,x,z);if(x=z=y)x=4;printf(“\t%d\t%d\n”,x,z);}27.阅读下面程序:main ( ){int s,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;else if(a= =b)t=5;else t=2*s;printf(“s=%d,t=%d”,s,t);}为使输出结果t=4,输入量a和b应满足的条件是( )28.请阅读下面程序:main( ){int s ,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t; else if(a= =b)t=5; else t=2*s;printf(“s=%d,t=%d ”,s,t);}为使输出结果s=1,t=5,输入量a 和b 应满足条件是( )29. 下面程序根据以下函数关系,对输入的每个x 值,计算出y 值,在( )填正确内容main( ) {int x,y; scanf(“%d,&x); if(1)y=x*(x+2); else if(2)y=2*x; else if(x<=-1)y=x-1; else ; if(y!=-1)printf(“%d ”,y); else printf(“error ”);}30. 下面程序根据以下函数关系,对输入的每个x 值,计算出相应的y 值.在( ) 填正确内容#include “math.h ” main( ) {int x,a; float y;scanf(“%d%d ”,&x,&a); if( )y=0; elseif( )y=sqrt(a*a-x*x); else y=x; printf(“%f ”,y);}31. 以下程序的功能是计算一元二次方程ax 2+bx+c=0的根,在( )填正确内容 #include “math.h ” main( ){float a,b,c,t,disc,twoa,term1,term2; printf(“enter a,b,c:”); scanf(“%f%f%f ”,&a,&b,&c); if( ) if( )printf(“no answer due to input error\n ”); elseprintf(“thesinglerootis%f\n ”,-c/b); else{disc=b*b-4*a*c; twoa=2*a;terml=-b/twoa; t=abs(disc); term2=sqrt(t)/twoa; if(3)printf(“complex root\n real part=%fimag part=%f\n ”, terml,term2); elseprintf(“realroots\nrootl=%froot2=%f\n ”,terml+term2,term1-te rm2);}}32. 以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型.在( )填正确内容. #include “math.h ” main( ) {float a,b,c; float s,area;scanf(“%f %f %f ”,&a,&b,&c); if( ) {s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“%f ”,area); if( ) printf(“等边三角形”); else if( ) printf(“等腰三角形”);else if((a*a+b*b= =c*c)| |(a*a+c*c= =b*b)||(b*b+c*c= =a*a) ) printf(“直角三角形”); else printf(“一般三角形”);} else printf(“不能组成三角形”);} 33. 某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei 计算的资料:重量(千克) 收费标准(元/公斤) wei<=10 0.80 10<wei<=20 0.75 20<wei<=30 0.70 请在程序的[ ]内填入正确的内容. main( ){float len,wei,hei,wid,mon,r;scanf(“%f %f %f %f ”,&len,&wid,&hei,&wei );if(len>1| |wid>1| |hei>1| |wei>30); else if(wei<10) r=0.8; else if(wei<=20) r=0.75; else if(wei<=30);if(r= =-1)printf(“error\n ”):else{ ;printf(“%f”,mon);} }34.以下程序的功能是判断输入的年份是否是闰年.请在[ ]内填入正确的内容.main( ){int y,f;scanf(“%d”,&y);if(y%400= =0) f=1;else if( ) f=1;else ;if(f)printf(“%d is”,y);else printf(“%d is not”,y);printf(“a leap year\n”);} 35.有四个数a, b, c, d,要求按从大到小的顺序输出.请在[ ]内填入正确内容main( ){int a,b,c,d,t;scanf(“%d %d %d %d”,&a,&b,&c,&d);if(a<b){t=a;a=b;b=t;}if ( ){t=c;c=d;d=t;}if(a<c){t=a;a=c;c=t;}if( ){t=b;b=c;c=t;}if(b<d){t=b;b=d;d=t;}if(c<d){t=c;c=d;d=t;}printf(“%d %d %d %d\n”,a,b,c,d);} 36.以下程序的运行结果是__main( ){int a=2,b=3,c;c=a;if(a>b)c=1;else if(a= =b)c=0;else c=-1;printf(“%d\n”,c);}37.在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为_______。
case语句。
属于顺序语句,处理多分支的情况。
语法结构;
case表达式is
when 选择值1 => 顺序语句1;
when选择值2=> 顺序语句2;
……………….
when others => 顺序处理语句n;
end case;
这个case语句类似于C里的switch。
有几点要注意:
(1)选择值不能有交集,即每个选择值必须不同。
(2)选择值必须包含该表达式所以的可能值,若不能一一例举全,就必须用关键词others来涵盖其他所有的情况
(3)case中的各个分支是并行的,即优先级是一样的,这点是与IF构成的选择器的不同点。
一下我们解析一个实例来对比加深印象:
用IF语句构成的选择器源码:
20~28:IF..ELSEIF..ELSE结构。
这里的每个条件后的执行是有优先级的。
先执行第20句a=”00”,如满足就执行21句,然后跳出IF结构,否则才往下判断第22句,如满足就执行第23句,然后跳出IF结构,否则再往下运行,如此运行。
所以第20句a=”00’的执行优先级是最高的,肯定是它先做判断后其它的语句才有条件执行,即排列越前的语句,优先级越高。
而case中的各个条件,无优先级,它们是一起运行的。
这也反证了为什么其选择值不能重复。
因为若重复的话,同
一个时刻就会有两个选择值满足条件,那么这个时刻到底执行那一条语句就出现冲突了。
选择结构的程序设计练习(if语句和case语句)第一部分:1.以下运算符优先级最高的是( ) 。
A. <=B. ORC. +D. DIV2.下列语法正确的关系表达式是 ( ) 。
A. 1<x<20B. ‟243‟>200C. 11.37>=12D. a<5 AND b>=03.设A1=ture,A2=False,A3=True表达式A1 OR A2 ANDA3的值为()。
A、FALSEB、TRUEC、0D、14.已知a , b ,c都是布尔变量,它们的值分别是Flase 、True、True,,计算下面各表达式的值,正确的一组是( )①NOT a OR NOT b ②b AND c OR a③NOT( b AND c) AND a OR c ④ b OR NOT c AND True AND NOT aA) ①True ②True ③True ④True B)①True ②True ③False ④FalseC) ①True ②False ③True ④False D)①False ②False ③True ④True五、判断一个整数是两位数并且能被5整除的正确的表达式是:()A:(X>10) AND (x MOD 5)B:(10<=x) AND (x<100) OR (x MOD 5=0)C:(10<=x<100) AND (x DIV 5)D:(x>=10) AND (x<100) AND (x MOD 5=0)六、写出判断下列条件的条件表达式。
1.i是j的整数倍的布尔表达式.2.m是偶数的布尔表达式是.3.y在5至10之间的布尔表达式.4.x在20~40或60~100之间5.写出一个数a既能被3整除又能被5整除的表达式.6.y是闰年的布尔表达式是.(年号能被4整除,并且不能被100整除,但可以被400整除的年份为闰年)7.m,n都是偶数或都是奇数8. a不等于0且b不等于0的布尔表达式第二部分:1.下列程序运行后,变量value的值为()x:=20;if x>=10 then value:=5*x else value:=4*x;(A) 100 (B) 80 (C) 90 (D) 702.下列程序运行后,变量max的值为()a:=5;b:=10;max:=a;if b>max then max:=b(A) 5 (B) 10 (C) 5和10 (D) 以上都不是3.下列程序段运行后,变量a,b的值为()a:=3;b:=4;if a>b then begin t:=a; a:=b; b:=t; end(A) 3, 4 (B) 4, 3 (C) 3, 3 (D) 4, 44.下列程序段运行后,下面运行的结果是()。
A:=1; B:=2.0; c:=3;If A>B then writeln(A) else C:=B-A;Writeln(C);(A) 3.0 (B) 2.0 (C) 1.0 (D) –1.0 5.分析下面程序段,执行后所得到的输出是()。
X:=2; Y:=6;IF X>3 THENY:=2*X;Y:=3*Y;Write(Y);(A) 6 (B) 12 (C) 18 (D) 24当 X:=4; Y:=6; 时 ( )(A) 6 (B)12 (C) 18 (D) 246.当X在5<X<=21或60<=X AND x <80范围内时Y为True,否则Y为False的表达式是()。
A.If (x>5) And (x<=21) and (x>=60) And (x<80) Then Y:=True Else Y:=False;B. If (x>5) Or (x<=21) or (x>=60) Or (x<80) Then Y:=True Else Y:=False;C. If (x>5) And (x<=21) or (x>=60) And (x<80) Then Y:=True Else Y:=False;D. If x>5 And x<=21 or x>=60 And x<80 Then Y:=True Else Y:=False;7.实型变量a,b中放有两门课的成绩,如果都及格(成绩>=60)则显示“pass”,如果a成绩不及格,则显示“fail”,如果a及格b不及格则不做任何处理,有待补考,下列程序可实现上述要求的是()。
A. If a>=60 ThenB. If a<60 ThenIf b>=60 Then Writeln(…Fail‟)Writeln(…Pass‟)ElseElse If b>=60 ThenWriteln(…Fail‟) Writeln(…Pass‟)C If (a>=60) And (b>=60) ThenD If b>=60 ThenWriteln(…Pass‟)If a>=60 Then W riteln(…Pass‟) Else If b<60 Then Else If b>=60 Then Writeln(…Fail‟); Writeln(…Fail‟) 8.分析下面程序段,执行后所得到的输出是()y:=0;if x<10 then y:=10else if x<100 then y:=100else y:=200;writeln(y);试指出:当x:=80时,运行的结果是(),x:=8时结果为(),x:=100时结果为()(A) 0 (B) 10 (C) 100 (D) 2009.当同时满足a1<a2且a3>a4条件时,把y赋值给x,当a1>=a2时把n赋值给m的程序段应该是:10.已知A=1,B:=6,C=7下面程序输出的结果是。
PROGRAM RE (INPUT,OUTPUT);V AR A,B,C,L:REALBEGINReadln(A,B,C);IF (A+B)>C THENIF (A+C)>B THENIF (B+C)>A THENBEGINL:=(A+B+C)/2Writeln(L);ENDELSEWriteln (…B+C<=A‟);ELSEWriteln(…A+C<=B‟);ELSEWriteln(…A+B<=C‟);END.11、已知有说明V ar x:Real;下列程序段中错误的是( ) 。
Case x<=2.0 of0:x:=0;1:x:=1;end;A. 情况表达式中有常数B. 情况常量与情况表达式类型不一致C.情况表达式为关系D. 赋值语句两边类型不一致12设K为整型变量,用case语句重定下面的程序段IF (K<=10)AND(K>0) THENIF K>5 THENIF K<8 THEN X:=0ELSE X:=1ELSE IF K>2 THEN X:=3ELSE X:=4;第三部分完善程序1.如何使用计算机产生二个二位数相加题,让学生输入后判断其正误?(前面略)Randomize;X:=random(10)*10+ random(10); 或X:=trunc(random*90)+10;Y:= ;Wri te(X,‟+‟,Y,‟=‟);Readln(s);Writeln;If then writeln(…right‟)else writeln(…wrong‟);end2.输入三角形的三个边,判断它是何类型的三角形(等边三角形?等腰三角形?一般三角形?)。
Program ex5_4();V ar a,b,c:integer;BeginWrite(…a,b,c=?‟);Readln(a,b,c);If a=b thenIf then writeln(…Deng bian san jiao xing‟)else writeln(…Deng yao san jiao xing‟)elseif then writeln(…Deng yao san jiao xing‟)else writeln(…yi ban san jiao xing‟)编写程序:(请各位学生选做,并不要求每题都做,但希望能够写出关键语句,就是程序中的if 语句部分和case语句部分)1、输入两个数a,b,输出较大数的平方值。
2、节日期间,某超市购物优惠规定:所购物品不超过100元时,按九折付款,如超过期100元,超过部分按七折收费,编一程序完成超市自动计费的工作。
3、铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。
编一程序完成自动计费工作。
4、某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。
编一程序完成超市的自动计费的工作。
5、对一批货物征收税金,价格在10000元以上的货物征税5%;对5000元以上,10000元以下的货物征税3%;对5000元以下,1000元以上的货物征税2%;对1000元以下的货物免税。
编一程序读入某一货物的价格,计算并输出其应征税金。
6、输入三个数a,b,c ,打印出最大者;二种方法A:用不嵌套的if语句B:用嵌套的if语句7.输入两个正整数a,b。
b最大不超过三位数,使a在左,b在右,拼接成一个新的数c。
例如:a =2,b=16,则c=216;若a=18,b=476,则c=18476。
提示:求c的公式为:c=a×K+b8.编写程序来模拟石头剪子布的游戏,要求学生输入一个选择(石头剪子布分别有一个数字来表示0代表石头,1代表剪子,2代表布),计算机随机产生一个选择,然后比较大小,最后显示两者的选择和输赢情况)9.输入两个数值(均不为零)及一个算术运算符,输出其运算的结果如输入3, 5 ,* 。
则输出3*5=15输入6,7 ,- 。
则输出6-7=--110.当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。
编一程序完成分数的自动转换工作。
转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。
(提示:可以利用DIV运算来使程序更简明)11.某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。