选择结构程序设计练习题
选择结构程序设计,循环结构程序设计习题

else {printf("不能组成三角形") ;}
}
二、编程题
1.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。例如:1转换成Monday,7转换成Sunday。
2.输入年号,计算这一年的2月份的天数,将结果输出。
3.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出:
A)n=0;while((ch=getchar())!=’\n’)n++;
B) n=0;while(getchar()!=’\n’)n++;
C)for(n=0; getchar()!=’\n’;n++);
D)n=0;for(ch=getchar();ch!=’\n’;n++);
4.有以下程序
# include <stdio.h>
习题4
选择结构程序设计
一、单选题
1.有如下嵌套的if语句
if(a<b)
if(a<c) k=a;
else k=c;
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
A)k=(a<b)?a:b;k=(b<c)?b:c;
B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);
if(x>y)
if(y<z) printf("%d", ++z);
else printf("%d", ++y);
printf("%d\n", x++);
}
程序的运行结果是【】。
选择结构编程练习 (1)

选择结构编程练习习题1【题目内容】编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的格式:【样式输入】Enter a 24-hour time: 21:11【样式输出】Equivalent 12 hour time: 9:11 PM【注意】不要把12:00显示成0:00习题2【题目内容】下面是用于测量锋利的蒲福风力等级的简化版本。
编写一个程序,要求用户输入风速(海里/小时),然后显示相应的描述。
速度(海里/小时)描述小于1 Calm(无风)1~3 Light air(轻风)4~27 Breeze(微风)28~47 Gale(大风)48~63 Storm(暴风)大于63 Hurricane(飓风)习题3【题目内容】编写一个程序,提示用户输入两个日期,然后显示哪一个日期更早:【样式输入】Enter first date(mm/dd/yy): 3/6/08Enter second date(mm/dd/yy):5/17/07【样式输出】5/17/07 is earlier than 3/06/08习题4【题目内容】编写一个程序,要求用户输入一个两位数,然后显示该数的英文单词:【样式输入】Enter a two-digit number: 45【样式输出】You entered the number forty-five.【提示】把数分解成两个数字。
用一个switch语句显示第一位数字对应的单词(”twenty”,”thirty”等),用第二个switch语句显示第二个数字对应的单词。
不要忘记11~19需要特殊处理。
样式输入的下划线旨在于提示此处为用户输入的部分,编程时无需考虑下划线的输入,以下同理。
习题5【题目内容】下面的表格给出了几种物质的正常沸点。
编写一个程序,提示用户输入某个物质的观察沸点(以℃表示),如果观察沸点在期望沸点的5%误差范围内就识别出该物质。
如果输入的数据在表格中沸点的5%误差范围之外,程序就输出“Substance unknown.”物质通常沸点水(Water) 100水银(Mercury) 357铜(Copper) 1187银 (Silver) 2193金 (Gold) 2660【样式输入】Enter the boiling point of substance to observe : 323【样式输出】Degree (323) is within 5 percent of the boling point of Mercury. The substance maybe Mercury【注意】考虑误差范围精度处理,此处为5,扩大或缩小误差范围程序皆可处理。
第四章选择结构程序设计(A级)

第四章选择结构程序设计(A级)填空题:1、表达式not true or true and false的值为false。
2、表达式ord(false)+5的值为5。
3、表达式pred(succ(true))的值为true。
4、表达式5 div 2<(5-2)的值为true。
5、"若A-B不小于C,则将B增加1,否则将B减少1“用Pascal 语言可表示为if A-B>=C then B:=B+1 else B:=B-1;。
6、"闰年指年号能被4整除,但不能被100整除,或者年号能被400整除的年"写成Pascal语言表达式为(year mod 4=0) and (year mod 100<>0) or (year mod 400=0)。
7、inc(ord(true))的结果是2。
8、表达式(2<=1) or not(2<10) and (10>4)的结果是false。
9、命题"m,n都是偶数或都是奇数"可表示为(m mod 2=0) and (n mod 2=0) or (m mod 2=1) and (n mod 2=1)。
10、dec(inc(ord(true)))的结果是1。
单项选择题:1、下面的表达式中,布尔值为true的是4+5 mod 2>4。
(4+5) mod 2>4'0'>'a'0>a2、下列选项中,不是布尔表达式的是5 div 3。
not b(x>0) or (y>0)9+4>5+33、下面哪一个是布尔变量的标识符?boolean。
trueintegerreal4、下面条件语句的格式书写不正确的是if 条件then 语句1; else 语句2。
if 条件then 语句1if 条件then 语句1 else 语句25、对于复合语句描述不正确的是begin后面没有符号,中间的语句末尾加";",最后一个语句与end之间必须加";"。
选择结构程序设计习题

选择结构程序设计练习1.从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[提示]根据字符型数据的ASCII码值是否在‘0’字符与‘9’字符之间进行判断。
使用if…else…语句。
精选文档,供参考!2.编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。
[提示] 条件判断表达式x+y==z3.编写一个程序,其功能为:输入三个整数,输出最大数和最小数。
[提示] 设置最大值变量max和最小值变量min;首先比较a,b的大小,并把大数存入max,小数存入min;然后最大值变量max和最小值变量min 再与c比较,若c大于max,则max取值c,否则保持不变;如果c小于min,则min取值c,否则保持不变。
最后输出max和min的值。
使用if…else…语句、if语句以及复合语句。
精选文档,供参考!精选文档,供参考!4.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。
当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为:分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。
精选文档,供参考!5.分段函数的计算。
编写一个程序,计算下列函数:y= x x<12x-1 1≤x<10 3x-11 x≥10[提示]根据输入的x值的取值,计算y的值并输出。
使用if…else if语句以及复合语句。
精选文档,供参考!6.编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。
[提示]利用三角形两边之和大于第三边判断是否能够构成三角形,能够成三角形时再以等腰、等边、直角三角形的条件进行判断。
选择结构程序设计练习题

选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型( )A.只能是0和1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据2.下列运算符中优先级最高的是( )A.<B.+C.&&D.!=3.能正确表示“当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)4.表示图中坐标轴上阴影部分的正确表达式是( )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<=c5.判断char型量ch是否为大写字母的正确表达式是()A.‘A’<=ch<=‘Z’B.(ch>=‘A’)&(ch<=‘Z’)C.(ch>=‘A’)&&(ch<=‘Z’)D.(‘A’<=ch)AND(‘Z’>=ch)6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()A.‘x’&&‘y’B.x<=yC.x||y+z&&!yD.!(x<y)&&!z||1)7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是( )优先级最高的是( )A.?B.&&C.+D.!=11.以下程序的运行结果是( )#include<stdio.h>main(){int a,b,d=241;a=d/100%9; b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为( )int a,b,c;a=b=c=1; ++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1 A.6 B.0 C.1 D.414.以下不正确的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++;}15.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:( )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=xy; pri ntf(“%f”,x);};else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);17.请阅读以下程序,该程序( )main(){int a=5,b=0,c=0;if(a+b+c) printf(“***\n”); else printf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);} A.4 B.5 C.6 D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是( )if(a<b)if(c<d) x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={ x(x=0)x+1 (x>0)则下面程序段中能正确表示上面关系的是( )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;21.以下程序的输出结果是( )main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;else if(ok2) a=10;a=-1; printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是( )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.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。
C语言选择结构程序设计编程题

实验2选择结构程序设计一.实验目的:1.掌握选择控制语句的使用方法;2.了解C程序语句的执行过程。
二.实验内容:1.编写程序:输入一个整数,判断该数的奇偶性。
(输出相应的标志even-偶数odd-奇数,请记住这两个单词)。
2.从键盘输入的正整数,判断是否能被5和7同时整除,若是, 则输出Yes;否则输出N。
3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字母,则把它变为大写字母;若是其它字符则不变。
4.编写程序,对于给定的一个百分比制成绩,输出相应的五分制成绩。
设:90分以上为'A' , 80~89分为'B' , 70~79分为'C', 60、69分为’D' , 60分以下为'E'(用if •••else…与switch语句两种方法实现)。
5.企业发放的奖金根据利润提成。
利润(i)低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元时,低于10 万元的部分按10%提成,高于10万元的部分,可提成7. 5%; 20万元到40万元之间时,高于20万元的部分,可提5%; 40万元到60万元之间时,高于40万元的部分,可提成3%; 60万元到100万元之间时, 高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求发放奖金总数。
6.输入某年某月某日,判断这一天是这一年的第几天。
7.输入一个字符,请判断是字母、数字还是特殊字符。
8.身高预测:男性成人身高二(父亲身高+母亲身高)*0. 54cm女性成人身高二(父亲身高*0.923+母亲身高)/2cm如果喜爱体育锻炼,那么身高可增加2%;如果有良好的饮食习惯,可增加身高1.5%。
键盘输入性别、父母身高、是否爱好体育锻炼、是否有良好的饮食习惯,利用给定身高预测方法对你的身高进行预测。
9.要求用switch语句编程设计一个简单的计算器程序。
C语言选择结构程序设计练习题

C语⾔选择结构程序设计练习题第四章选择结构程序设计⼀、填空1.在C语⾔中,表⽰逻辑“真”值⽤_________。
2.得到整型变量a的⼗位数字的表达式为_________。
3.表达式:(6>5>4)+(float)(3/2)的值是_________。
4.表达式:a=3,a-1‖--a,2*a的值是_________。
(a是整型变量)5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。
(a是整型变量)6.C语⾔编译系统在给出逻辑运算结果时,以数值_________代表“真”,以_________代表“假”;但在判断⼀个量是否为“真”时,以_________代表“假”,以_________代表真。
7.当m=2,n=1,a=1,b=2,c=3时,执⾏完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。
8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。
⼆、编程:1.企业发放的奖⾦根据利润提成。
利润(i)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润i,求应发放奖⾦总数?2.输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。
3.输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?4.本程序演⽰从键盘输⼊x的值,计算并打印下列分段函数的值。
y=0(x<60)y=1(60<=x<70)y=2(70<=x<80)y=3(80<=x<90)y=4(x>=90)5.在显⽰器上显⽰⼀个菜单程序的模型。
选择结构程序设计习题1-文档资料

阅读下面程序,写出程序的运行结果
1. 以下程序的执行结果是 。 #include <stdio.h> void main( ) { int a,b,c; a=2;b=3;c=1; if (a>b) if (a>c) printf("%d\n",a); else printf("%d\n",b); printf("end\n"); } 程序的运行结果:
习题
一、选择题 1、要判断 char 型变量 m 是否是数字字符,可以使用表达式( ) 。 A.m>=0&&m<=9 B.m>=’0’ && m<=’9’ C.m>=”0” && m<=”9” D.m>=0 and m<=9 2、在 C 语言的 if 语句中,可以作为判断的表达式是( ) 。 A.关系表达式 B.任意表达式 C.逻辑表达式 D.算术表达式 3、为了避免嵌套的 if…else 语句的二义性,c 语言规定 else 总是与( )组成配对关系。 A.缩排位置相同的 if B.在其之前末配对的 if C.在其之前未配对的最近的 if D.同一行上的 if 4、假设有定义 int a=1,b=2,c=3,d=4,m=2,n=2。则执行表达式(m=a>b) && (n=c>d)后,n 的值为 ( ) 。 A.0 B.2 C.3 D.4
case 4: printf("%d\n",k++); break;
default: printf("Full!\n");
}
} (1)A、1 B、2 C、2 3 4 5 (竖排) D、1 2 3 4(竖排)
选择结构编程题

一、顺序结构1、从键盘上任意输入一个4位数的整数,将每一位上的数字剥离出来,按从低位到高位的顺序依次输出,输出形式如下图所示。
二、选择结构1、从键盘上任意输入两个整数,选择大者输出。
分别用if语句和条件表达式两种方式编程。
输出形式如下图所示。
2、从键盘上任意输入三个整数,输出最大者。
输出形式如下图所示。
3、从键盘上任意输入两个整数a和b,若a小于b,则将两者的值进行交换,然后输出a 和b的值。
输出形式如下图所示。
4、从键盘上任意输入三个整数a、b和c,按降序形式进行交换,既交换后a最大,b次之,c最小,然后输出a、b和c的值。
输出形式如下图所示。
5、编写一程序P114.C实现以下功能*编写一个简单计算器程序,输入格式为:data 1 op data2。
其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。
编程可用素材:printf("Please input data1 op data2: ")...、printf("\nError! chu shu wei 0.\n")...。
程序的运行效果应类似地如图1、图2、图3、图4所示,图1中的3000 + 2000、图2中的3000 % 2000、图3中的3000 % 0和图4中的3000 / 0是从键盘输入的内容。
图1 程序运行效果示例(加法)图2 程序运行效果示例(取余)图3 程序运行效果示例(取余时除数为0)图4 程序运行效果示例(相除时除数为0)6、编写一程序P111.C实现以下功能*x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:),然后计算并在屏幕上输出函数值。
编程可用素材:printf("Please input x: ")...、printf("\nF(...) = ..."...。
C语言习题四选择结构程序设计

习题四选择结构程序设计1. 设变量x和y均已正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是______。
A、if(x++);B、if(x>y && y!=0);C、if(x>0) x--D、if(y<0) {;}else y++; else x++;解析:本题考查的是if语句。
if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。
选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。
故本题答案选C。
2. 有以下程序main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf ("%d",i);}printf("\n"); }执行后的输出结果是______。
A、5B、24C、32D、40解析:本题考查的是if语句的应用。
在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。
故本题答案选C。
3. 在嵌套使用if语句时,C语言规定else总是______。
A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对解析:本题考查的是if语句的使用规则。
在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。
故本题答案为C。
4. 有以下程序main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是______。
c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计习题(P111)4。
2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。
4.3 写出下面各逻辑表达式的值。
设a=3,b=4,c=5。
(1)a+b〉c&&b==c (2)a||b+c&&b-c (3)!(a〉b)&&!c||1(4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c—1&&b+c/2解:该题在求解过程中注意:一、优先级。
逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低;二、逻辑表达式的求值规则。
(P94)所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)14。
4有3个整数a、b、c,由键盘输入,输出其中最大的数。
分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。
该题不用函数调用实现,但方法类似。
法一:先求前两个数的最值,再用前两个数的最值和第三个数比较即得结果。
法二:先假设第一个数是最值,再依次和第二、第三个数比较得结果。
其中都要用到单分支或双分支选择结构语句。
参考程序如下:法一:main(){ int a,b,c,max;/*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf(”\ninput the value of a,b,c:"); /*提示输入*/scanf(”%d%d%d",&a,&b,&c);/*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/if(a>b) max=a;else max=b;if(max<c) max=c;printf("\nmax=%d\n",max);}法二:main(){int a,b,c,max;printf(”\ninput the value of a,b,c:”);scanf(”%d%d%d",&a,&b,&c);max=a;if(max〈b) max=b;if(max<c) max=c;printf("\nmax=%d\n”,max);}4.6有一个函数:写一段程序,输入x,输出y的值。
第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 仔细阅读以下程序 , 指出程序的运行结果 .⎪⎪⎩⎪⎪⎨⎧>=<-=010001x x x y#include<stdio.h>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仔细阅读以下程序,指出程序的运行结果。
选择结构程序设计题

选择结构程序设计题选择结构程序设计一、实验目的1.熟练掌握关系表达式和逻辑表达式的使用。
2.熟练掌握嵌套的if语句和switch语句实现多分支结构程序设计。
3.掌握选择结构程序设计的方法。
4.继续熟悉跟踪调试程序的方法和过程。
二、实验内容及步骤1.分析程序并上机运行验证结果。
#includevoid main(){int a,b,t;printf("请输入a,b的值:");scanf("%d,%d",&a,&b);if(a<b)< p="">{t=a;a=b;b=t;}printf("%d ,%d \n",a,b);2,3>>3,2 3,2>>3,2}思考:从输入数据和运行结果分析程序的功能。
将“{t=a;a=b;b=t;}”改为“t=a,a=b,b=t;”,程序的功能改变了吗?为什么?一样的将“if(a<="" p="" {t="a;a=b;b=t;}" ”中的花括号去掉后,程序的功能改变了吗?为什么?2,3》》3,2="">2.分析程序功能,上机验证时输入不同的数据。
#includevoid main()int a,b;printf("请输入a,b的值:");scanf("%d,%d",&a,&b);if (b) printf("a/b=%d \n",a/b); //在确保b非零的情况下执行a/b 运算else printf("ERROR:Cannot divide by zero!\n");}提示:程序的功能是实现两个整数相除。
程序设计时应避免被零除的错误,所以“if(b)printf("a/b=%d \n",a/b);”就是在确保b非零的情况下执行a/b运算。
选择结构试题及答案

选择结构试题及答案
1. 以下哪个选项是选择结构的典型代表?
A. 顺序结构
B. 选择结构
C. 循环结构
D. 模块结构
答案:B
2. 在编程语言中,用于实现选择结构的关键字是什么?
A. if
B. for
C. while
D. do
答案:A
3. 选择结构通常用于解决什么问题?
A. 循环问题
B. 条件判断问题
C. 数据存储问题
D. 数据输出问题
答案:B
4. 在C语言中,以下哪个语句不是用于选择结构的?
A. if
B. else
C. switch
D. continue
答案:D
5. 以下哪个选项不是选择结构的组成部分?
A. 条件判断
B. 循环体
C. 选择分支
D. 条件执行
答案:B
6. 在Python中,实现选择结构的关键字是?
A. if
B. elif
C. else
D. all of the above
答案:D
7. 选择结构可以嵌套使用吗?
A. 是
B. 否
答案:A
8. 在Java中,以下哪个关键字用于多条件分支选择?
A. if
B. else if
C. switch
D. case
答案:C
9. 以下哪个选项不是选择结构的优点?
A. 代码简洁
B. 逻辑清晰
C. 易于调试
D. 执行速度快
答案:D
10. 在选择结构中,条件不满足时执行的代码块称为?
A. 条件分支
B. 选择分支
C. 条件执行
D. else分支
答案:D。
选择结构程序设计典型例题

#include <stdio.h> int main() {int year,leap; printf("enter year:"); scanf("%d",&year); if (year%4==0) if(year%100==0) if(year%400==0) leap=1; else leap=0; 采取锯齿形式 else leap=1; else leap=0; if (leap) printf("%d is ",year); else printf("%d is not ",year); printf("a leap year.\n"); return 0; 25 }
21
用变量leap代表是否闰年的信息。若闰 年,令leap=1;非闰年,leap=0。最 后判断leap是否为1(真),若是,则 输出“闰年”信息
22
解法1 #include <stdio.h> void main( ) { int year, leap=0; scanf(“%d”, &year); /* 输入年份值 */ if ((year%4= =0&&year%100!=0)||(year%400= =0)) leap=1; else leap=0; if(leap= =1) printf(“%d is leap ”, year); else printf(“%d is not leap ”, year); }
设每吨每千米货物的基本运费为p,货物重 为w,距离为s,折扣为d 总运费f的计算公式为f=p×w×s×(1-d)
29
折扣的变化规律:
折扣的“变化点”都是250的倍数 在横轴上加一种坐标c,c的值为s/250 c代表250的倍数 当c<1时,表示s<250,无折扣 1≤c<2时,表示250≤s<500,折扣d=2%
答案第四章 选择结构程序设计

第四章选择结构程序设计一、选择题1.下列运算符中优先级最高的是 B 。
(0级)A)> B)+ C)&& D)!=2.以下关于运算符优先级的描述中,正确的是 A 。
(0级)A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算B)&&(逻辑与)>算术运算>关系运算>赋值运算C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)3.逻辑运算符的运算对象的数据类型 D 。
(0级)A)只能是0或1 B)只能是.T.或.F.C)只能是整型或字符型D)任何类型的数据4.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 B 。
(1级) A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)5.以下程序的运行结果是 B 。
(1级)main( ){int c,x,y;x=1;y=1;c=0;c=x++||y++;printf(“\n%d%d%d\n”,x,y,c);}A)110 B)211 C)011 D)0016.以下程序的运行结果是 A 。
(1级)main( ){int c,x,y;x=0;y=0;c=0;c=x++&&y++;printf(“\n%d%d%d\n”,x,y,c);}A)100 B)211 C)011 D)0017.判断字符型变量ch为大写字母的表达式是 C 。
c语言选择结构练习题

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程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。
用户输入两个整数和一个运算符,程序输出运算结果。
C语言 第四章 选择结构程序设计期末测试习题与答案

D.其之前最近的没有else配对的if
参考答案:D
12、在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( )。
A.if (a)语句1 else语句2
B.if (a!=0)语句1 else语句2
C.if (a==0)语句2 else语句1
D.if (a==0)语句1 else语句2
printf(“a=%d,b=%d\n”,aa=2,b=2
C.a=1,b=0
D.a=1,b=1
参考答案:B
16、假定所有变量均已正确说明,以下程序段运行后的输出结果是( )。
int a=1,b=5,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
D.if(a==0) printf("%d\n",x); else printf("%d\n",y);
参考答案:D
2、假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=12; if(!a)x--; else x=5; if(c) x=3; else x=4;
A.3
B.4
C.12
int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n");
A.3
B.5
C.1
D.2
参考答案:A
5、当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。
A.k%2==1
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”的表达式x<z||y<z 。
7、条件“2<x<3或x<-10”的C语言表达式是x<-10||x>2&&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=,B=2,C=,表达式A>B&&C>A||A<B&&!C>B的值是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)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型( )A.只能是0和1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据2.下列运算符中优先级最高的是( )A.<B.+C.&&D.!=3.能正确表示“当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)4.表示图中坐标轴上阴影部分的正确表达式是( )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<=c5.判断char型量ch是否为大写字母的正确表达式是()A.‘A’<=ch<=‘Z’B.(ch>=‘A’)&(ch<=‘Z’)C.(ch>=‘A’)&&(ch<=‘Z’)D.(‘A’<=ch)AND(‘Z’>=ch)6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是()A.‘x’&&‘y’B.x<=yC.x||y+z&&!yD.!(x<y)&&!z||1)7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是( )优先级最高的是( )A.?B.&&C.+D.!=11.以下程序的运行结果是( )#include<stdio.h>main(){int a,b,d=241;a=d/100%9; b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为( )int a,b,c;a=b=c=1; ++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1 A.6 B.0 C.1 D.414.以下不正确的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++;}15.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:( )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=xy; pri ntf(“%f”,x);};else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);17.请阅读以下程序,该程序( )main(){int a=5,b=0,c=0;if(a+b+c) printf(“***\n”); else printf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);} A.4 B.5 C.6 D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是( )if(a<b)if(c<d) x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={ x(x=0)x+1 (x>0)则下面程序段中能正确表示上面关系的是( )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;21.以下程序的输出结果是( )main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;else if(ok2) a=10;a=-1; printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是( )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.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。
A.缩进排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if24.以下不正确的语句为( )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++;}25.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/x;else b=10.0;printf(“%f\n”,y);}若程序运行时输入为 2.0<CR>,则上面程序的输出结果是( )A.0.000000B.0.500000C.1.000000D.0.25000026.若运行时给变量x输入12,则以下程序的运行结果是()main(){int x,y; scanf(“%d\n”,y);}A.0B.22C.12D.1027.以下程序的运行结果是( )main(){int k=4,a=3,b=2,c=1;printf(“\n%d\n”,k<a?k:c<b?c:a);}A.4B.3C.2D.128.执行以下程序段后,变量a,b,c的值分别是( ) int x=10,y=9; int a,b,c;a=(-x= =y++)?- -x:++y; x=x++;c=y;A.a=9,b=9,c=9B.a=8,b=8,c=10C.a=9,b=10,c=9D.a=1,b=11,c=1029.int w,x,y,z,m;则执行以下语句后m的值为( ) w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y;m=(m<z)?m:z;A.1B.2C.3D.430.若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是:( )A.4B.3C.2D.131.执行以下程序段后的输出结果是:( )int w=3,z=7,x=10;printf(“%d\n”,x>10?x+100:x-10);printf(“%d\n”,w++||z++);printf(“%d\n”,!w>z);printf(“%d\n”,w&&z);A.0B.1C.0D.01 1 1 11 1 0 01 1 1 032.当a=3,b=2,c=1时,表达式f=a>b>c的值是________33.当a=5,b=4,c=2时,表达式a>b!=c的值是________34.以下程序的运行结果是___________main(){int x=1,y,z;x*=3+2; printf(“%d\t”,x);x*=y=z=5; printf(“%d\t”,x);x=y==z; printf(“%d\n”,x);}35.在C语言中,表示逻辑“真”用__________36.设y为int型变量,请写出描述“y是奇数”的表达式__________37.C语言提供的三种逻辑运算符是____ _____ _____38.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式____________39.设int x,y,z;请描述“x,y和z中有两个为负数”的表达式____________40.已知A=7.5,B=2,c=3.6,表达式A>B&&C>A||A<B&&!C>B的值是________41.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是____________42.若 a =2,b=4,则表达式(x=a)||(y=b)&&0的值是___________43.若a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值____________44.若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是___________45.若a=5,b=2,c=1,则表达式a-b<c||b==c的值是____________46.设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是_________47.条件“2<x<3或x<-10”的C语言表达式是_______48.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后;n的值为______,m的值为________49.以下程序运行结果是______main(){int a1,a2,b1,b2; int i=5,j=7,k=0;a1=!k; a2=i!=j;printf(“a1=%d\t a2=%d\n”,a1,a2);b1=k&&j; b2=k||j;printf(“b1==%d\t b2=%d\n”,b1,b2);}51.以下程序的运行结果是:_________main(){int x,y,z x=1;y=1;z=0;x=x||y&&z; printf(“%d,%d”,x,x&&!y||z);}循环控制练习题1.设有程序段int k=10; while (k=0) k=k-1; 则下面描述中正确的是()A while循环执行10次B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次2.设有以下程序段int x=0,s=0; while(!x!=0)s+=++x;printf("%d",s) ;则()A 运行程序段后输出0B 运行程序段后输出1C 程序段中的控制表达式是非法的D 程序段执行无限次3、语句while(!E);中的表达式!E特等价于()A、E==0B、E!=1C、E!=0D、E==14、下面程序段的执行结果是()a=1;b=2;c=2;while(a<b<c ) {t=a;a=b;b=t;c-;}printf("%d,%d,%d",a,b,c);A、1,2,0B、2,1,0 C 、1,2,1 D、2,1,15、下面程序段的运行结果是()x=y=0;while(x<15) y++,,x+=++y;printf("%d,%d",y,x);A、20,7B、6,12C、20,8 D 8,206、下面程序段的运行结果是()int n=0;while (n++<=2); printf("%d",n);A,2 B、3 C、4 D 有语法错误7、设有程序段t=0;while(printf("*")){t++; if(t<3) break;}下面描述正确的是()A、其中循环控制表达式与0等价B、其中循环控制表达式与’0‘等价C 、其中循环表达式是不合法的D、以上说法都不对8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。