为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

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

2020-01-16 3页 doc 88KB 7阅读

用户头像 个人认证

那片星空那片海

性格活泼开朗

举报
第五章选择结构程序设计练习含答案v1第五章 选择结构程序设计5.1 选择题【题5.4】能正确表示“当 x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 。CA)(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<...
第五章选择结构程序设计练习含答案v1
第五章 选择结构程序5.1 选择题【题5.4】能正确示“当 x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 。CA)(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.5】表示图中坐标轴上阴影部分的正确表达式是 。C//// //////// ////Xa b cA)(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是否为大写字母的正确表达式是 。CA)‘A’<=ch<=‘Z’ B)(ch>=‘A’)&(ch<=‘Z’)C)(ch>=‘A’)&&(ch<=‘Z’) D)(‘A’<=ch)AND(‘Z’>=ch)【题5.10】设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 。BA)1 B)2 C)3 D)4【题5.11】判断char型变量c1是否为小写字母的正确表达式是 。DA)‘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(){1inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf( “%d,%d”,a,b); } A)6,1 B)2,1 C)6,0 D)2,0 【题5.13】执行以下语句后 a的值为【1】,b的值为【2】。CA inta,b,c; a=b=c=1; ++a||++b&&++c; 【1】A)错误 B)0 C)2 D)1 【2】A)1 B)2 C)错误 D)0【题5.15】以下不正确的 if 语句形式是 。CA)if(x>y&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf( “%d”,&x)elsescanf( “%d”,&y);D)if(x<y){x++;y++;}【题5.17】已知intx=10,y=20,z=30; 以下语句执行后 x,y,z的值是 。Bif(x>y)z=x;x=y;y=z;A)x=10,y=20,z=30 B)x=20,y=30,z=30C)x=20,y=30,z=10 D)x=20,y=30,z=20【题5.18】以下if 语句语法正确的是 。BA)if(x>0)printf( “%f”,x)elseprintf( “%f”,-x);B)if(x>0){ x=x+y;printf( “%f”,x); }elseprintf( “%f”,-x);C)if(x>0){ x=x+y;printf( “%f”,x); };elseprintf( “%f”,-x);D)if(x>0){ x=x+y;printf( “%f”,x) }2elseprintf( “%f”,-x);【题5.19】请阅读以下程序:main(){inta=5,b=0,c=0;if(a=b+c) printf( “*** n”);else printf( “$$$ n”);}以下程序 。DA)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$【题5.20】以下程序的运行结果是 。Cmain(){intm=5;if(m++>5) printf( “%dn”,m);else printf( “%dn”,m--);}A)4 B)5 C)6 D)7【题5.21】当a=1,b=3,c=5,d=4 时,执行完下面一段程序后 x的值是 。Bif(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A)1 B)2 C)3 D)6【题5.22】有一数关系见下表:x y=x<0 x-1x=0 xx>0 x+13下面程序段中能正确表示上面关系的是 。CA)y=x+1; B)y=x-1;if(x>=0) if(x!=0)if(x==0)y=x; if(x>0)y=x+1;elsey=x-1; elsey=x;C)if(x<=0) D)y=x;if(x<0)y=x-1; if(x<=0)elsey=x; if(x<0)y=x-1;elsey=x+1; elsey=x+1;【题5.23】以下程序的输出结果是 。Cmain(){inta=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf( “%dn”,a);}A)1 B)0 C)-1 D)值不确定【题5.24】以下程序的输出结果是 。Bmain(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;else z+=1;printf( “%dn”,z);}A)3 B)2 C)1 D)0【题5.25】为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:else子句总是与 配对。BA)缩排位置相同的 if B)其之前最近的 if4C)其之后最近的 if D)同一行上的 if【题5.26】以下不正确的语句为 。BA)if(x>y);B)if(x=y)&&(x!=0)x+=y;C)if(x!=y)scanf( “%d”,&x);elsescanf( “%d”,&y);D)if(x<y){x++;y++;}【题5.27】请阅读以下程序:#include<stdio.h>main(){floata,b;scanf(“%f”,&a);if(a<0.0)b=0.0;elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);elseif(a<10.0)b=1.0/x;elseb=10.0;printf( “%f n”,y);}若运行时输入 2.0<回车>,则上面程序的输出结果是 。BA)0.000000 B)0.500000 C)1.000000 D)0.250000【题5.28】若有条件表达式 (exp)?a++:b-- ,则以下表达式中能完全等价于表达式 (exp)的是 。BA)(exp==0) B)(exp!=0) C)(exp==1) D)(exp<>0)【题5.29】若运行时给变量 x输入12,则以下程序的运行结果是 。Amain(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf( “%dn”,y);}A)0 B)22 C)12 D)10【题5.30】以下程序的运行结果是 。Dmain()5{intk=4,a=3,b=2,c=1;printf( “ n”,k<a?k:c<b?c:a);}A)4 B)3 C)2 D)1【题5.31】执行以下程序段后,变量 a,b,c的值分别是 。Bintx=10,y=9;inta,b,c;a=(--x==y++)?--x:++y;b=x++;c=y;A)a=9,b=9,c=9 B)a=8,b=8,c=10C)a=9,b=10,c=9 D)a=1,b=11,c=10【题5.32】若w、x、y、z、m均为int 型变量,则执行下面语句后的 m值是 。Aw=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;A)1 B)2 C)3 D)4【题5.33】若w=1、x=2、y=3、z=4,则条件表达式 w<x?w:y<z?y:z 的值是 。DA)4 B)3 C)2 D)1【题5.34】执行以下程序段后的输出结果是 。Cintw=3,z=7,x=10;printf( “%dn”,x>10?x+100:x -10);printf( “%dn”,w++||z++);printf( “%dn”,!w>z);printf( “%dn”,w&&z); A)0 B)1 C)0 D)0 1 1 1 1 0 1 0 1 1 1 1 05.2 填空题6 【题5.35 】当a=3,b=2,c=1 时,表达式 f=a>b>c的值是【 】。0 【题5.36 】当a=5,b=4,c=2 时,表达式 a>b!=c的值是【 】。1 【题5.37 】以下程序的运行结果是 。5251 #include<stdio.h> voidmain(void) { intx=1,y,z;x*=3+2;printf( “%dt”,x);x*=y=z=5;printf( “%dt”,x);x=y==z;printf( “%dn”,x);}【题5.38】在C语言中,表示逻辑“真”值用【 】。1【题5.39】设y为int 型变量,请写出描述“y是奇数”的表达式【 】。y%2==1或y%2!=0【题5.40】C语言提供的三种逻辑运算符是【 1】、【2】、【3】。&&||!【题5.41】设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式【】。【题5.42】设x,y,z均为int 型变量,请写出描述“ x,y和z中有两个为负数”的表达式【 】。【题5.50】条件“2<x<3或x<-10”的C语言表达式是【 】。【题5.51】当m=2,n=1,a=1,b=2,c=3 时,执行完 d=(m=a!=b)&&(n=b>c)后;n的值是【0】,m的值是【1】。【题5.52】以下程序的运行结果是 。1,1main(){intx,y,z;x=1;y=2;z=3;7x=y--<=x||x+y!=z;printf( “%d,%d”,x,y);}【题5.53】以下程序的运行结果是 。a1=1 a2=1b1=0 b2=1main(){inta1,a2,b1,b2;inti=5,j=7,k=0;a1=!k;a2=i!=j;printf( “a1=%d n”,a1,a2);b1=k&&j;b2=k||j;printf( “b1=%d n”,b1,b2);} 【题5.54】以下程序的运行结果是 。1,0 main() { intx,y,z; x=1;y=1;z=0; x=x||y&&z;; printf( “%d,%d”,x,x&&!y||z);}【题5.61】若运行时输入: 16<回车>,则以下程序的运行结果是 。#include<stdio.h>voidmain(void){intyear;printf( “Inputyouyear: ”);scanf(“%d”,&year);if(year>=18)printf( “you$4.5yuan/xiaoshi ”);elseprintf( “you$3.0yuan/xiaoshi ”);}8【题5.62】若运行时输入: 2<回车>,则以下程序的运行结果是 。#include<stdio.h>voidmain(void){charClass;printf( “Enter1for1stclasspostor2for2ndpost ”);scanf(“%c”,&Class);if(Class== ‘1’)printf( “1stclasspostageis19p ”);elseprintf( “2ndclasspostageis14p ”);}【题5.63】若运行时输入: 4.4<回车>,则以下程序的运行结果是 。#include<stdio.h>voidmain(void){floatCostPrice,SellingPrice;printf( “EnterCostPrice$: ”);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);}}【题5.64】以下程序的运行结果是 。main(){if(2*2==5<2*2==4)print( “T”);else9printf( “F”);}【题5.65】请阅读以下程序:main(){intt,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”);elseprintf( “PM”);}若运行时输入: 1605<回车>时,程序的运行结果是 。【题5.66】以下程序实现:输入圆的半径 r和运算标志 m,按照运算标志进行指定计算。请在【】内填入正确。标志 运算a 面积c 周长b 二者均计算#definepi3.14159main(){charm;floatr,c,a;printf( “inputmark n”);scanf(“%c%f”,&m,&r);if( 【1】) m==’a’{ a=pi*r*r;printf( “areais%f ”,a); }if( 【2】) m==’c’{ c=2*pi*r;printf( “circleis%f ”,c); }10if( 【3】) m==’b’{ a=pi*r*r; c=2*pi*r; printf( “area&&circle are%f%f”,a,c);}}【题 5.67】若运行时输入: 5999<回车>,则以下程序的运行结果(保留小数点后一位) 是 。3635.4main(){intx;floaty;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);}【题5.68】以下程序实现输出 x,y,z三个数中的最大者,请在【】内填入正确内容。main(){ intx=4,y=6,z=7; int【1】; u,v; if( 【2】)u=x; x>y elseu=y; if( 【3】)v=u; u>z elsev=z; printf( “v=%d”,v);}【题5.69】以下程序实现:输入三个整数,按从大到小的顺序进行输出。请在【】内填入正确内容。main(){intx,y,z,c;scanf(“%d%d%d”,&x,&y,&z);if( 【1】) y<z{ c=y;y=z;z=c; }if( 【2】) x<z{ c=x;x=z;z=c; }11if( 【3】) x<y{ c=x;x=y;y=c; }printf( “%d,%d,%d”,x,y,z);}【题5.70】以下程序对输入的两个整数,按从大到小的顺序输出。请在【】内填入正确内容。main(){intx,y,z;scanf(“%d,%d”,&x,&y);if( 【1】) x<y{ z=x; 【2】 } x=y,y=z;printf( “%d,%d”,x,y);}【题5.71】以下程序对输入的一个小写字母,将字母循环后移 5个位置后输出。如‘ a’变成‘f’,‘w’变成‘b’。请在【】内填入正确内容。#include “stdio.h ”main(){charc;c=getchar();if(c>= ‘a’&&c<=‘u’) 【1】; c=c+5;elseif(c>= ‘v’&&c<=‘z’) 【2】; c=c-21;putchar(c);}【题5.71】输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请在【】内填入正确内容。main(){charch;scanf(“%c”,&ch);if(【1】)ch=ch+32;ch>=’A’&&ch<=’Z’elseif(ch>=‘a’&&ch<=‘z’)【2】;ch=ch-32;printf(“%c”,ch);}12 【题5.73】以下程序的运行结果是 。200main(){inta,b,c;ints,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;}elseif(c>0)w=a-b;elset=c;printf( “%d%d%d”,s,w,t);} 【题5.74】以下程序的运行结果是 。20main(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;printf( “%dn”,d);} 【题5.75】以下程序的运行结果是 。551#include<stdio.h>voidmain(void){intx,y=1,z;13if(y!=0)x=5;printf( “ n”,x);if(y==0)x=4;elsex=5;printf( “ n”,x);x=1;if(y<0)if(y>0)x=4;elsex=5;printf( “ n”,x);}【题5.76】以下程序的运行结果是 。#include<stdio.h>voidmain(void){intx,y=-2,z;if((z=y)<0)x=4;elseif(y==0)x=5;elsex=6;if(z=(y==0))x=5;x=4;printf( “ n”,x,z);if(x=z=y)x=4;printf( “ n”,x,z);}运行结果:404-2【题5.77】请阅读以下程序:main(){ints,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;14elseif(a==b)t=5;elset=2*s;printf( “s=%d,t=%d”,s,t);}为了使输出结果 t=4,输入量 a和b应满足的条件是【 】。a<b&&a>0【题5.78】请阅读以下程序:main(){ints,t,a,b;scanf(“%d,%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf( “s=%d,t=%d”,s,t);}为了使输出结果 s=1,t=5,输入量a和b应满足的条件是【 】。a<0&&(a==b)【题5.79】下面程序根据以下函数关系,对输入的每个 x值,计算出 y值。请在【】内填入正确内容。x y2<x<=10 x(x+2)-1<x<=2 2xx<=-1 x-1main(){intx,y;scanf(“%d”,&x);if( 【1】)y=x*(x+2);elseif( 【2】)y=2*x;elseif(x<=-1)y=x-1;else 【3】;if(y!=- 1)printf( “%d”,y);elseprintf( “error”);}15【题5.80】下面程序根据以下函数关系, 对输入的每个 x值,计算出相应的 y值。请在【】内填入正确内容。x yx=a或x=-a 0-a<x<a sqrt(a*a-x*x)x<-a或x>a x#include “math.h”main(){intx,a;floaty;scanf(“%d%d”,&x,&a);if( 【1】)y=0;elseif( 【2】)y=sqrt(a*a-x*x);elsey=x;printf( “%f”,y) ;}【题5.81】以下程序的功能是计算一元二次方程 ax2 bx c 0的根。请在【】内填入正确内容。#include “math.h”main(){floata,b,c,t,disc,twoa,term1,term2;printf( “entera,b,c: ”);scanf(“%f%f%f”,&a,&b,&c);if( 【1】)if( 【2】) printf( “noanswerduetoinputerror n”);else printf( “thesinglerootis%f n”,-c/b);else{disc=b*b-4*a*c;twoa=2*a;term1=-b/twoa;t=abs(disc);term2=sqrt(t)/twoa;16if()printf( “complexroot n”,term1,term2);elseprintf( “re n”,term1+term2,term1-term2);}}【题5.82】以下程序根据输入的三角形的三边判断是否能组成三角形, 若可以则输出它的面积和三角形的类型。请在【】内填入正确内容。#include “math.h”main(){floata,b,c;floats,area;scanf(“%f%f%f”,&a,&b,&c);if( 【1】){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf( “%f”,area);if( 【2】)printf( “等边三角形”);elseif( 【3】)printf( “等腰三角形”);elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))printf( “直角三角形”);elseprintf( “一般三角形”);}else printf( “不能组成三角形”);}【题5.83】某邮局对邮寄包裹有如下规定: 若包裹的长宽高任一尺寸超过 1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费 0.2元,再加上根据下表按重量 wei计算的邮资:重量(千克) 收费(元)wei<10 0.8010<wei<=20 0.751720<wei<=30 0.70请在程序的【】内填入正确内容。main(){floatlen,wei,hei,wid,mon,r;scanf(“%f%f%f%f”,&len,&wid,&hei,&wei);if(len>1||wid>1||hei>1||wei>30) 【1】;elseif(wei<10)r=0.8;elseif(wei<=20)r=0.75;elseif(wei<=30) 【2】;if(r==- 1)printf( “error n”);else{ 【3】;printf( “%f”,mon); }}【题5.84】某服装店经营套服,也单件出售。若买的不少于 50套,每套 80元;不足 50套的每套 90元;只买上衣每件 60元;只买裤子每条 45。以下程序的功能是读入所买上衣 c和裤子t的件数,计算应付款 m。请在【】内填入正确内容。main(){intc,t,m;printf(“inputthenumberofcoatandtrousersyouwantbuy:n”);scanf(“%d%d”,&c,&t);if( 【1】)if(c>=50)m=c*80;elsem=c*90;elseif( 【2】)if(t>=50)m=t*80+(c-t)*60;elsem=t*90+(c-t)*60;elseif( 【3】)m=c*80+(t-c)*45;elsem=c*90+(t-c)*45;printf( “%d”,m);}【题5.85】以下程序的功能是判断输入的年份是否是闰年。请在【】内填入正确内容。main()18{inty,f;scanf(“%d”,&y);if(y%400==0)f=1;elseif( 【1】)f=1;else 【2】;if(f) printf( “%dis”,y);else printf( “%disnot”,y);printf( “aleapyear n”);}【题5.87】有四个数a,b,c,d,要求按从大到小的顺序输出。请在【】内填入正确内容。main(){inta,b,c,d;scanf(“%d%d%d%d”,&a,&b,&c,&d); if(a<b){ t=a;a=b;b=t; } if( 【1】){t=c;c=d;d=t; } if(a<c){ t=a;a=c;c=t; } if( 【2】){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%dn”,a,b,c,d);}【题5.88】以下程序的运行结果是 。main(){inta=2,b=3,c;c=a;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;printf( “%dn”,c);}【题5.96】以下程序的运行结果是 。19#include<stdio.h>main(){inta=-10,b=-3;printf( “%d,”,-a%b);printf( “%d,”,(a -b,a+b));printf( “%dn”,a-b?a-b:a+b);}【题5.97】以下程序的运行结果是 。main(){intx=1,y=1,z=1;y=y+z;x=x+y;printf( “%d,”,x<y?y:x);printf( “%d,”,x<y?x++:y++);printf( “%d,%d”,x,y);}【题5.98】以下程序的运行结果是 。main(){intx,y,z;x=3;y=z=4;printf( “%d,”,(x>=y>=x)?1:0);printf( “%dn”,z>=y&&y>=x);}【题5.99】若运行时输入: -2<回车>,则以下程序的输出结果是 。main(){inta,b;scanf(“%d”,&a);b=(a>=0)?a:-a;printf( “b=%d”,b);}20【题5.100】若运行时输入: 100<回车>,则以下程序的运行结果是 。main(){inta;scanf(“%d”,&a);printf( “%s”,(a%2!=0)? “no”: “yes”);}【题5.101】如果运行时输入字符为‘ Q’,则以下程序的运行结果是 。main(){intch;scanf(“%c”,&ch);ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;ch=(ch>=‘a’&&ch<=‘z’)?(ch-32):ch;printf( “%c”,ch);}【题5.102】当运行时输入: 1992<回车>,则以下程序的运行结果是 。main(){inty,t;scanf(“%d”,&y);t=((y%4==0&&y%100!=0)||y%400==0)?1:0;if(t)printf( “%dis”,y);elseprintf( “%disnot”,y);printf( “aleapyear ”);}【题5.103】以下程序是计算 x,y,z三个数中值最小的。请在【】内填入正确内容。main(){intx=4,y=5,z=8;intu,v;u=x<y?【1】;v=u<z?【2】;printf( “%d”,v);}21【题5.105】执行以下的 C语言程序段后, a=【1】,b=【2】,c=【3】。intx=10,y=9;inta,b,c;a=(x--==y++)?x--:y++;b=x++;c=y;【题5.108】若运行时输入: 35/< 回车>,则以下程序的运行结果是 。main(){floatx,y;charo;doubler;scanf(“%f%f%c”,&x,&y,&o);switch(o){case‘+’:r=x+y;break;case‘-’:r=x-y;break;case‘*’:r=x*y;break;case‘/’:r=x/y;break;}printf( “%f”,r);}【题5.109】根据以下嵌套的 if 语句所给条件,填写switch 语句,使它完成相同的功能。(假设mark的取值在1~100之间。)if 语句:if(mark<60)k=1;elseif(mark<70)k=2;elseif(mark<80)k=3;elseif(mark<90)k=4;elseif(mark<=100)k=5;switch 语句:switch( 【1】){·2】k=1;break;case6:k=2;break;22case7:k=3;break;case8:k=4;break;【3】 k=5; } 【题5.110】设有程序段: switch(grade) { case ‘A’:printf( “85- n”); case ‘B’:printf( “70- n”); case ‘C’:printf( “60- n”); case ‘D’:printf( “<60 n”);default:printf( “error! n”);}若grade的值为‘C’,则输出结果是 。【题5.111】以下程序段的运行结果是 。intx=1,y=0;switch(x){case1:switch(y){case0:printf( “**1** n”);break;case1:printf( “**2** n”);break;}case2:printf( “**3** n”);}【题5.112】根据以下函数关系,对输入的每个 x值,计算出相应的 y值。请在程序的【】内填入正确内容。x yx<0 00<=x<10 x10<=x<20 1020<=x<40 -0.5x+20main(){23 intx,c,m; floaty; scanf(“%d”,&x); if( 【1】)c=-1; elsec=【2】; switch(c) { case-1:y=0;break; case 0:y=x;break; case 1:y=10;break; case 2: case 3:y=-0.5x+20;break; default:y=-2; } if( 【3】)printf(“y=%f”,y); elseprintf( “error n”);}【题5.113】以下程序的运行结果是 。main(){inta=2,b=7,c=5;switch(a>0){case1:switch(b<0){case1:printf( “@”);break;case2:printf( “!”);break;}case0:switch(c==5){case0:printf( “*”);break;case1:printf( “#”);break;default:printf( “#”);break;}default:printf( “&”);}printf( “ n”);}24【题5.114】请读程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf( “a=%d,b=%d”,a,b);}上面程序的运行结果是 。【题5.115】假设奖金税率如下( a代表奖金,r代表税率)a<500 r=0%500<=a<1000 r=5%1000<=a<2000 r=8%2000<=a<3000 r=10%3000<=a r=15%以下程序对输入的一个奖金数,求税率和应交税款以及实得奖金数(扣除奖金税后)。题中r代表税率,t代表实得奖金数。请在【】内填入正确内容。main(){floata,r,t,b;intc;scanf(“%f”,&a);if(a>=3000)c=6;elsec= 【1】;switch(c){case0:r=0;break;25case1:r=0.05;break;case2:case3: 【2】;break;case4:case5:r=0.1;break;case6:r=0.15;break;}t=a*r;b=a-t;printf( “r=%f,t=%f,b=%f”,r,t,b);} 【题5.116】某个自动加油站有‘a’,‘b’,‘c’三种汽油,单价分别为 1.50,1.35,1.18(元/千克),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。本程序针对用户输入加油量a,汽油品种b和服务类型c(‘f’――自动,‘m’――自己,‘e’――协助),输出应付款m。请在【】内填入正确内容。main(){floata,r1,r2,m;charb,c;scanf(“%f%c%c”,&a,&b,&c);switch(b){case‘a’:r1=1.5;break;case‘b’: 【1】;break;case‘c’:r1=1.18;break;}switch(c){case‘f’:r2=0;break;case‘m’:r2=0.05;break;case【2】:r2=0.1;break;}m=【3】;printf( “%f”,m);}【题5.117】以下程序计算某年某月有几天。其中判别闰年的条件是:能被 4整除但不能26·100整除的年是闰年,能被400整除的年也是闰年。请在【】内填入正确内容。main(){intyy,mm,len;printf( “year,month=”);scanf(“%d%d”,&yy,&mm);switch(mm){case1:case3:case5:case7:case8:case10:case12: 【1】;break;case4:case6:case9:case11:len=30;break;case2:if(yy%4==0&&yy%100!=0||yy%400==0) 【2】;else 【3】;break;default:printf( “inputerror ”);break;}printf( “thelengthof%d%dis%d n”,yy,mm,len);}【题5.118】以下程序用以计算 y年m1月d1日与同年的 m2月d2日之间的天数(m2>=m1),并打印计算结果。若 m1=m2且d1=d2则算1天。在闰年时, 2月有29天。闰年的年号由以下方式确定:该年号能被 4整除但不能被 100整除,或者该年号能被400整除则是闰年。例如:输入1997,2,27,3,10< 回车>时,输出为12。表明从1997年2月27日到3月10日共有12天。请在【】内填入正确内容。main(){inty,m1,d1,m2,d2:inti,d;scanf(“%d,%d,%d,%d,%d”,&y,&m1,&d1,&m2,&d2);27y=(y%4==0【1】y%100!=0【2】y%400)?1:0;d=0-d1;for(i=m;i<m2;i++)switch(i){case1:case3:case5:case7:case8:case10:case12:d+=31;break;case2:d=d+28+y;case4:case6:case9:case11: 【3】;}printf( “%d”,d+d2+1);}4.3 编程题【题5.121】请编程序:根据以下函数关系,对输入的每个 x值,计算出相应的 y值。x yx<0 00<x<=10 x10<=x<=20 1020<x<40 -0.5x+20 【题5.127 】编程实现以下功能:读入两个运算数( data1和data2)及一个运算符( op), 计算表达式data1opdata2的值,其中op可为+,-,*,/(用switch 语句 实现)。 【题5.128 】编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设: 90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’(用switch语句实现)。28
/
本文档为【第五章选择结构程序设计练习含答案v1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索