资源描述:
《第3章 顺序和选择结构习题参答》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
第3章顺序和选择结构程序设计_编程序练习题aP82–5题:假设美元与人民币的汇率是1美元兑换6.79元人民币,编写程序输入人民币的钱数,输出能兑换的美元金额。程序如下(顺序结构):#includevoidmain(){intx;floaty;scanf(“%d”,&x);y=x/6.79 ;printf("%d%元人民币兑换%f美元 ",x,y);}输入数据:1000↙输出结果:1000元人民币兑换147.275405美元a课件3章练习3题:输入一个3位的正整数,将该数的百位、十位、个位分三行输出。并输出3位数的和。例如:输入357输出:3573+5+7=15 程序如下(顺序结构):#includevoidmain(){intn,n3,n2,n1,s;scanf(“%d”,&n);n3=n/100;n2=(n/10)%10;n1=n%10;s=n1+n2+n3;printf(“百位数字是:%d ”,n3);printf(“十位数字是:%d ”,n2);printf(“个位数字是:%d ”,n1);printf(“%d+%d+%d=%d ”,n3,n2,n1,s);}bP82–8题:编写程序,将输入的小写字母变为大写,大写字母不变,若输入的不是,则提示错误信息。(要求:用if-elseif-else编写)程序如下(用if-elseif-else编写):#includevoidmain(){charch,ch1;scanf(“%c”,&ch);if(ch>=’a’&&ch<=’z’){ch1=ch-32; printf("%c的大写字母是%c ",ch,ch1);}elseif(ch>=’A’&&ch<=’Z’)printf("%c ",ch);elseprintf("%c不是字母! ",ch);}输入数据:6↙输出结果:6不是字母!输入数据:b↙输出结果:b的大写字母是BbP82–13题(修改):编写程序,求方程ax2+bx+c=0的实根。(a、b、c≠0)分析:>0有两个不同实根d=b2-4ac=0有两个相同实<0无实根程序如下(用if-elseif编写):#include#includevoidmain() {doublea,b,c,d,x1,x2;scanf(“%lf%lf%lf”,&a,&b,&c);d=b*b-4*a*c;if(d>0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(“x1=%lfx2=%lf ”,x1,x2);}elseif(d==0){x1=-b/(2*a);printf(“x1=x2=%lf ”,x1);}elseprintf(“无实根! ”);}输入数据:342↙输出结果:无实根!输入数据:483↙输出结果:x1=-0.500000x2=-1.500000参考_P82–13题:编写程序,求方程ax2+bx+c=0的根。(a、b、c≠0)分析: >0有两个不同实根d=b2-4ac=0有两个相同实根<0有两个复根:(-b+i)/(2×a)(-b-i)/(2×a)程序如下(用if-elseif编写):#include#includevoidmain(){doublea,b,c,d,x1,x2,re,im;//re实部im虚部scanf(“%lf%lf%lf”,&a,&b,&c);d=b*b-4*a*c;if(d>0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(“x1=%lfx2=%lf ”,x1,x2);}elseif(d==0){x1=-b/(2*a);printf(“x1=x2=%lf ”,x1);}elseif(d<0){re=-b/(2*a);im=sqrt(fabs(d))/(2*a);printf(“x1=%lf+%lfi ”,re,im);printf(“x2=%lf-%lfi ”,re,im);} }输入数据:483↙输出结果:x1=-0.500000x2=-1.500000输入数据:342↙输出结果:x1=-0.6666667+0.471405ix2=-0.6666667-0.471405i程序如下(用if嵌套编写):#include#includevoidmain(){doublea,b,c,d,x1,x2,re,im;//re实部im虚部scanf(“%lf%lf%lf”,&a,&b,&c);d=b*b-4*a*c;if(d>=0)if(d>0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(“x1=%lfx2=%lf ”,x1,x2);}else{x1=-b/(2*a);printf(“x1=x2=%lf ”,x1);}else {re=-b/(2*a);im=sqrt(fabs(d))/(2*a);printf(“x1=%lf+%lfi ”,re,im);printf(“x2=%lf-%lfi ”,re,im);}}输入数据:242↙输出结果:x1=x2=-1.000000cP82–9题:编写程序,从键盘接受一个简单的表示四则运算的表达式,计算结果并输出。例如,输入“20+32”,输出“=52”。(要求:用switch语句编写,使用两种方法。)程序如下(方法一:switch(表达式)中表达式是字符型):#includevoidmain(){floata,b;charch;scanf(“%f%c%f”,&a,&ch,&b);switch(ch){case’+’:printf("a+b=%f ",a+b);break;case’-’:printf("a-b=%f ",a-b);break;case’*’:printf("a*b=%f ",a*b);break;case’/’:printf("a/b=%f ",a/b);break; default:printf("不是四则运算符 ");}}输入数据:10*20↙输出结果:a*b=200.000000程序如下(方法二:switch(表达式)中表达式是整型):#includevoidmain(){floata,b;intk=5;charch;scanf(“%f%c%f”,&a,&ch,&b);if(ch==’+’)k=1;if(ch==’-’)k=2;if(ch==’*’)k=3;if(ch==’/’)k=4;switch(k){case1:printf("a+b=%f ",a+b);break;case2:printf("a-b=%f ",a-b);break;case3:printf("a*b=%f ",a*b);break;case4:printf("a/b=%f ",a/b);break;case5:printf("不是四则运算符 ");}} 输入数据:10*20↙输出结果:a*b=200.000000参考_P82–9题:编写程序,从键盘接受一个简单的表示四则运算的表达式,计算结果并输出。例如,输入“20+32”,输出“=52”。程序如下(用if-elseif-else编写):#includevoidmain(){floata,b;charch;scanf(“%f%c%f”,&a,&ch,&b);if(ch==’+’)printf("a+b=%f ",a+b);elseif(ch==’-’)printf("a-b=%f ",a-b);elseif(ch==’*’)printf("a*b=%f ",a*b);elseif(ch==’/’)printf("a/b=%f ",a/b);elseprintf("不是四则运算符 ");} 输入数据:10*20↙输出结果:a*b=200.000000