文档库 最新最全的文档下载
当前位置:文档库 › 第5章 选择结构练习题

第5章 选择结构练习题

第5章 选择结构练习题
第5章 选择结构练习题

选择结构练习题

一、判断题

1.若行If语句中逻辑表达式值为True,则关键字Then后的若干语句都要执行。2.在行If语句中,关键字End If是必不可少的。

3.块If结构中的Else子句可以缺省。

二:选择题

1.下列程序段的执行结果()

X=5

Y=-20

IF NOT X>0 then x=y-3 else y=x+3

Print x-y; y-x

A:-3 3 B:5 -8 C:3 -3 D:25 -25

2:下列程序段,只有()能正确实现条件:如果A>B ,则输出A;否则输出B A: IF AB, print A, print B)

PRINT A

C: IF AB then

print A

ELSE

PRINT B

END IF

3: 下列程序段的执行结果()

X=3 A: True

Y=2 B: False

IF X*Y<1 then Y=Y-1 ELSE Y=-2 C: -1

PRINT Y-X>0 D: 1

4: 下列程序段的执行结果()

A=”abcd”A: cdebcd

B=”bcde”B: cdd

E=Right(A , 3) C: cdcd

F=Mid(B , 2 , 3) D:bcdcde

IF E

5:以下语句中正确的是( )

A: select case a B: select case a

case “A” case “A”

b=1 b=1

case “B” case “B”

b=2 b=2

case else case default

b=3 b=3

end select end select

C: switch a D: switch a

case “A ” case “A ”

b=1 b=1

case “B ” case “B ”

b=2 b=2

case else case default

b=3 b=3

end switch end switch

6: 下列程序段的执行后,变量X 的值为( ) Dim a , b , c, d As single Dim x As single a= 100 b=20 c=1000 if b>a then d=a : a= b :b=d end if if b>c then x=b else if a>c then x=c else x=a end if A: 100 B: 20 C: 1000 D: 0

7: 下列程序段的执行后,整型变量C 的值为( )

A=24

B=328

select case b\10

case 0

c=a*10 + b

case 1 to 9

c=a*100 + b

case 10 to 99

c=a*1000 + b

end select

A: 537 B: 2427 C: 24328 D:240328

三:程序设计题

1.用InputBox 函数输入3个任意整数,按从大到小的顺序输出。

2.编程,输入x 值,按下式计算并输出y 值。

???????≤<<≤≤>+==0

0103133)(2x x x

x x x x x f y

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

第5章选择结构程序设计

第5章选择结构程序设计 在日常生活和工作中,经常会遇到各种各样的选择,根据选择的不同,会得到不同的结果。在程序设计中,也经常会根据不同的情况执行不同的操作,这与现实生活中的选择非常类似。但程序设计中的选择结构根据条件只能选择一个分支执行,即无论分支多寡,必择其一;纵然分支众多,仅选其一。 本章主要介绍实现选择结构程序设计方面的知识,包括If语句、Select Case语句、条件函数的使用,最后介绍与选择结构相关的单选按钮、复选框和框架三个基本控件的使用。 5.1引例 【例5.1】输入学生百分制成绩,将该成绩转换为五级分制显示输出。程序运行结果如图5.1所示。其中转换规则为:90及90分以上为优,80~90为良(含80,不含90,后面相同),70~80为中,60~70为及格,0~60为不及格。 图5.1 例5.1的运行结果 该题目是选择结构的典型应用。程序代码如下: Private Sub Command1_Click() cj = Val(Text1) If cj < 0 Or cj > 100 Then MsgBox "输入的成绩无效" Text1.Text = "" Label1.Caption = "" ElseIf cj >= 90 Then Label3.Caption = "优" ElseIf cj >= 80 Then Label3.Caption = "良" ElseIf cj >= 70 Then Label3.Caption = "中" ElseIf cj >= 60 Then Label3.Caption = "及格" Else Label3.Caption = "不及格" End If End Sub

第五章选择结构程序设计练习含答案v1

第五章选择结构程序设计 5.1 选择题 【题5.4】能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假” 的表达式是。C A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B)(x>=1)||(x<=10)||(x>=200)||(x<=210) C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D)(x>=1)||(x<=10)&&(x>=200)||(x<=210) 【题5.5C //// //// X a b c A)(x<=a)&&(x>=b)&&(x<=c) B)(x<=a)||(b<=x<=c) C)(x<=a)||(x>=b)&&(x<=c) D)(x<=a)&&(b<=x<=c) 【题5.6】判断char型变量ch是否为大写字母的正确表达式是。C A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’) C)(ch>=‘A’)&&(ch<=‘Z’) D)(‘A’<=ch)AND(‘Z’>=ch) 【题5.10】设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后n的值为。B A)1 B)2 C)3 D)4 【题5.11】判断char型变量c1是否为小写字母的正确表达式是。D A)‘a’<=c1<=‘z’B)(c1>=a)&&(c1<=z) C)(‘a’>=c1)||(‘z’<=c1) D)(c1>=‘a’)&&(c1<=‘z’) 【题5.12】以下程序的运行结果是。B #include “stdio.h” main() {

第5章 选择结构程序设计

第5章选择结构程序设计 第一讲选择结构简介、单分支选择结构、多分支选择 结构 教学目标 1. 了解选择结构。 2. 理解掌握单分支选择结构和多分支选择结构的使用。 教学过程 预备知识 5.1 选择结构程序的设计 所谓选择结构就是由特定的条件决定执行哪条语句的程序结构。 在C#中,提供两种选择语句实现流程的改变: if语句,用于判断特定的条件能否满足,用于单分支选择,也可以通过嵌套实现多分支选择。 switch语句,用于多分支选择。 5.2 单分支选择结构(if语句) if语句是程序设计中基本的选择语句,它根据条件表达式的值选择要执行的后面的内嵌语句序列。一般用于简单选择,即选择项中有一个或两个分支,语句执行的过程中根据不同的情况进行选择其中一个分支执行。 5.2.1if 语句 格式: if(布尔条件表达式) 语句序列; 功能:根据布尔条件表达式的值进行判断: 当该值为真时执行if后的语句序列;

当该值为假时什么都不执行。 5.2.2if …else语句 格式为: if (布尔条件表达式) 内嵌语句序列1; else 内嵌语句序列2; 根据布尔条件表达式的值进行判断,当该值为真时执行if语句后的语句序列,当为假时,执行else语句后的语句序列。该结构一般用于两种分支的选择。 下面结合实例介绍if…else语句的使用方法。

【例5-1】某商店为了吸引顾客,采取以下优惠活动:所购商品在1000元以下的,打9折优惠;所购商品多于1000元的,打8折优惠。试采用if语句实现该优惠。 分析:该问题属于数学分段函数问题,当所购商品总额<1000元时,打折后的商品总额为(所购商品总额*0.9);当所购商品总额>1000时,打折后的商品总额为(所购商品总额*0.8)。 (1) 建立项目 在Visual https://www.wendangku.net/doc/ee4498142.html,中, 打开“文件”菜单, 依次选择“新建→项目”命令, 打开“新建项目”对话框, 选择“Visual C#项目”, 选择“Windows应用程序”输入项目的名称和存放位置。 (2) 设计窗体 单击工作区左侧的“工具箱”或单击工具栏上工具箱图标,工具箱将显示在工作区左侧。添加相应的控件。 (3) 编辑代码 选中按钮控件,单击鼠标右键,在弹出的菜单中选择“查看代码”命令,或通过“视图”菜单中的“代码”命令,切换到代码视图。也可以双击控件直接在事件中添加代码。代码为: private void button1_Click(object sender, System.EventArgs e)

第5章选择结构作业2参考答案

第5章选择结构作业2 一、读程序写结果: 1、如下程序的运行结果是: void main() { int a=1,b=2,c=3,d=4,m=2,n=2; int s; s=(m=a>b)&& (n=c>d); printf(“%d, %d, %d, %d, %d, %d\n”, a, b, c, d, m, n); printf(“%d\n”,s); } 1,2,3,4,0,2 2、如下程序的运行结果是: #include void main() { int x=1,y=1,z=10; if(z<0) if(y>0) x=3; else x=5; printf("%d\t",x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf("%d\t",x); printf("%d\t",z); } 1 7 0 3、如下程序的运行结果是: #include"stdio.h" void main() { int a=1,b=0; switch(a) { case 1: switch (b) { case 0: printf("**0**"); break; case 1: printf("**1**"); break; } case 2: printf("**2**"); break; }

} **0****2** 二、编程题 1.从键盘输入一个整数,判断它的正负性和奇偶性。 参考答案: #include void main() { int n; scanf("%d",&n); if(n==0) printf("0,-0 是非正非负的偶数\n"); else { //注意{ 不能少 if(n>0) printf("%d是正数\n",n); else printf("%d 是负数\n",n); if(n%2==0) printf("%d 是偶数\n",n); //注意== else printf("%d是奇数\n",n); } } 2.输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。 #include void main() { char c; c=getchar(); //也可用scanf(“%c”,&c); if(c>='a' && c<='z') putchar(c-32); else if(c>='A' && c<='Z') putchar(c+32); //else表示不是小写字母 else if(c>='0' && c<='9') putchar(c); //else表示不是小写字母、大写字母else if(c==' ') printf("space\n"); //注意是==,不要写成= else printf("other\n"); //此处的else表示不满上述所有条件 }

第五章 选择结构

第五章选择结构 一、选择题 1.关于C程序在作逻辑运算时判断操作数真、假的表述中,正确的是__________。 A)0为假.非0为真B) 只有l为真 C) -l为假,l为真D) 0为真,非0为假 2.关于C程序关系运算、逻辑运算后得到的逻辑值的表述中,正确的是__________。 A) 假为0,真为随机的一个非0值B) 假为0,真为1 C) 假为-l,真为l D)假为0,真为不确定的值 3.下列运算符中,优先级从高到低依次为__________。 A)&&! || B) || &&! C) &&|| ! D) ! && || 4.设int a=1,b=2,c=3,d=4,m=2 ,n=2;执行(m=a>b)&&(n=c>d)后n的值为____________。 A) l B) 2 C) 3 D) 4 5.若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是______________。 A) ①和②B) ②和③C) ①和③D) ③和④ 6.设int i=10;表达式30-i<=i<=9的值是________________。 A)0 B) 1 C)9 D)20 7.设int a=0,b=0,m=0,n=0;则执行(m=a= =b)||(n=b= =a)后m和n的值是___________。 A) 0,0 B) 0,1 C) 1,0 D) 1,1 8.表达式!x等效于_____________。 A) x= =l B) x= =0 C) x!=l D) x!=0 9.int a=1,b=2,c=4;经过表达式(c=a!=b)&&(a= =b)&&(c=b)运算后,a,b和c的值分别是___________。 A) 1,2,0 B) 1,2,1 C) 1,2,2 D) 1,2,3 10.表达式!x||a= =b等效于____________。 A) !((x||a)= =b) B) !(x||y)= =b C) !(x||(a= =b) ) D) (!x)||(a= =b) 11.设int x=-1;执行表达式++x||++x||++x后x的值是_________________。 A) 3 B) 2 C)1D)0 12.设int x=1,y=1;表达式(!x||y--)的值是_____________。 A) -l B) 0 C) l D) 2 13.设x,y,t均为int型变量,则执行语句:x=y=3; t=++x||++y; 后y的值为_________。 A) 1 B) 3 c) 4 D) 不定值 14.已有定义int x=3,y=4,z=5;则表达式!(x+y)+z-1 && y+z/2的值是_________。 A) 6 B) 2C)1D)0 15.以下选项中非法的表达式是___________。 A) 0<=x<100 B) i=j= =0 C) (char)(x<100) D) x+1=x+1 16.设有定义:int a=2,b=3,c=4;以下选项中值为0的表达式是_____________。 A) a ||(b+b) && (c-a) B) (a=k B) -k++ C) k%f D) k>=f>=m 18.下面各组表达式运算结果均为真的是_________。 A) ①0 && a= =0 ②0 || a= =l

第5章选择结构程序设计习题及答案

第5章 选择结构程序设计 5-1 比较单分支、双分支、多分支if 语句。 答:(1)多分支if 语句可用多条单分支、双分支if 语句等价实现。 (2)双分支if 语句形式上相当于单分支if 语句扩展else 分支而来。 (3)单分支if 语句可以认为是双分支if 语句缺省else 子句的特殊情况,一条双分支语句可用两条单分支语句实现。 思考:分支结构主要用在哪些情况下?它有哪几种形式? 5-2 , 下列描述哪些是正确的? (1) if (x<0)y=?1; else if(x==0) y=0; else y=1; (2)if(x>=0) if(x>0) y = 1 ; else y = 0 ; else y = -1 ; (3) y = -1 ; if(x!=0) if(x>0) y = 1 ; else y = 0 ; (4)y = 0 ; if (x>=0) if(x>0) y = 1 ; 答:(1) 正确 ; (2) 正确 ;(3) 不正确 ;(4) 不正确 ; 思考 : 若将(3)改为: y = -1 ; (4) 改为:y = 0 ; if(x>=0) /*删除原if(x>=0)*/ if(x>0) y =1 ; if(x>0) y = 1 ; else y = 0 ; else y = -1 ; 后是否正确 ? 5-3 仔细阅读以下程序 , 指出程序的运行结果 . ???????>=<-=01 0001x x x y

#include main() { int a , b ; a = b = 5 ; if(a==1) if(b==5) {a+=b ; printf("a=%d\n ",a) ; } else {a-=b ; printf("a=%d\n",a) ; } printf("a+b=%d",a+b) ; } 解: 结果为: a + b = 10 思考:为何有三个printf 语句,却只有一行输出?如果将第5行去掉或改为if(a==5) , 结果是否一样? 5-3仔细阅读以下程序,指出程序的运行结果。 解:#include main() { int i =1 , j = 0 ,m = 1 ,n =2 ; switch(i++) {case 1 : m++ ;n++ ; case 2 : switch(++j) {case 1 : m++ ; case 2 : n++ ; } case 3 : m++ ;n++ ; break ; case 4 :m++ ;n++ ; } printf("m=%d,n=%d" , m ,n) ; }

第五章选择结构程序设计(2445)

1.设ch是char型变量,其值为A,且有下面的表达式: ch=(ch>='A'&&ch<='Z')?(ch+32):ch 的值是(B)。 A. A B. a C.Z D.z 2.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为(C)。 A.不定值 B. 4 C. 3 D. 1 3.下面关于运算符优先顺序的描述中正确的是(C)。 A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B.逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 4.设有声明语句:int a=1,b=0;则执行以下语句后输出(B) 。 switch (a) { case 1: switch (b) { case 0: printf("**0**");break; case 1: printf("**1**");break; } case 2: printf("**2**");break; } A.**0** B. **0****2** C.**0****1****2** D.有语法错误 5.设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句(B)。 if (x=y) printf(" x is equal to y."); A.语法错 B.不能判断x和y是否相等 C.编译出错 D.能判断x和y是否相等 6.以下有关switch语句的正确说法是(B)。 A.break语句是语句中必须的一部分 B.在switch 语句中可以根据需要使用或不使用break语句 C.break语句在switch 语句中不可以使用 D.在switch 语句中的每一个case都要用break语句 7.设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后,n 的值为( B) A. 1

第5章选择结构作业1参考答案

第五章选择结构作业1 一、选择题 1.关系表达式a≤x<b的正确描述是()。 A.a<=x=a&&x=a||x=b) 2.能正确表示“当x的取值在[1,10]或[200,210]范围内为真,否则为假”的表达式是 ()。 A. (x>=1) && (x<=10) && (x>=200) && (x<=210) B. (x>=1) | | (x<=10) | | (x>=200) | | (x<=210) C. (x>=1) && (x<=10) | | (x>=200) && (x<=210) D. (x>=1) | | (x<=10) && (x>=200) | | (x<=210) 3.下述表达式中,可以正确表示x≤0或x≥1的关系。 A)(x>=1) | | (x<=0) B)x>=1 | x<=0 C)x>=1 && x<=0 D)(x>=1) && (x<=0) 4.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 5.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。 则以下不能满足要求的表达式是()。 A.x%2==1 B.!(x%2==0) C.!(x%2) D.x%2 6.若执行下面的程序时从键盘上输入5和6,则输出的是()。 void main() { int a,b,s; scanf("%d%d",&a,&b); s=a; if(ab) c=a; a=b; b=c; A.a=1, b=2, c=3 B.a=2, b=3, c=3 C.a=2, b=3, c=1 D.a=2, b=3, c=2 8.对下述程序,是正确的判断是()。 void main ( ) { int x,y; scanf(“%d,%d”,&x,&y); if (x>y)

第5章 选择结构练习题

选择结构练习题 一、判断题 1.若行If语句中逻辑表达式值为True,则关键字Then后的若干语句都要执行。2.在行If语句中,关键字End If是必不可少的。 3.块If结构中的Else子句可以缺省。 二:选择题 1.下列程序段的执行结果() X=5 Y=-20 IF NOT X>0 then x=y-3 else y=x+3 Print x-y; y-x A:-3 3 B:5 -8 C:3 -3 D:25 -25 2:下列程序段,只有()能正确实现条件:如果A>B ,则输出A;否则输出B A: IF AB, print A, print B) PRINT A C: IF AB then print A ELSE PRINT B END IF 3: 下列程序段的执行结果() X=3 A: True Y=2 B: False IF X*Y<1 then Y=Y-1 ELSE Y=-2 C: -1 PRINT Y-X>0 D: 1 4: 下列程序段的执行结果() A=”abcd”A: cdebcd B=”bcde”B: cdd E=Right(A , 3) C: cdcd F=Mid(B , 2 , 3) D:bcdcde IF E

第五章选择结构程序设计

1. 第五章选择结构程序设计 一、 1. 1.若有int y;则表示命题“y是奇数”成立的C语言表达式是(13) 。 2. 2.在C语言中,表示逻辑“真”值用(14) 表示。 3. 3.条件“2<x<3或x<-10”的C表达式是(15) 。 4. 4.以下程序运行的结果是(16) 。 5.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 ); } 6. 5.若有说明语句:“int x=1, y=0;”,则表达式x――>(y+x)?5:25>y++?‘1’:‘2’的值 是(17) 。 7. 6.以下程序段的运行结果是(18) 。 int x=1, y=0; switch (x) { case 1: switch (y) { case 0: printf(“**1**”); break; case 1: printf(“**2**”); break; } case 2: printf (“**3**”); } 8. 1.以下程序运行的结果是(19) 。 #include main ( ) { int x=1, y=0, a=0, b=0; switch (x) { case 1: switch (y) { case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; } printf (“a=%d, b=%d\n”,a, b); } 二、选择题 一、 1.若有int y;则表示命题“y是奇数”成立的C语言表达式是 (13) 。

相关文档
相关文档 最新文档