《C语言程序设计》(江宝钏著)实验三答案.doc_第1页
《C语言程序设计》(江宝钏著)实验三答案.doc_第2页
《C语言程序设计》(江宝钏著)实验三答案.doc_第3页
《C语言程序设计》(江宝钏著)实验三答案.doc_第4页
《C语言程序设计》(江宝钏著)实验三答案.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.5 实验三 选择结构程序设计一、实验目的与要求1. 理解C语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。2. 掌握利用if结构实现选择结构的方法。3. 掌握利用switch结构实现多分支选择结构。4 结合程序掌握一些简单的算法,学习调试程序5 实验4学时二、实验内容1程序改错题改正下面程序中的错误。输入实数x,计算并输出下列分段函数f(x)的值(保留1位小数)。 输入输出示例1(改正后程序的运行结果)Enter x:100f(100.00)= 0.1输入输出示例2(改正后程序的运行结果)Enter x:23f(23.00)= 23.0源程序(有错误的程序)#include#includevoid main(void)double x;printf(Enter x: n);scanf(=%f, x);if (x = 100) y = 1/sqrt(x)else (x != 100) y = x;printf(f(%.2f) = %.1fn,x,y);答:#include #include void main(void) double x,y; printf(Enter x:n); scanf(%lf,&x); if (x=100)y = 1/sqrt(x); else y= x;printf(f(%.2lf)=%.1lfn,x,y); 2一般编程题编程题1 输入任意三个整数a,b,c,求3个数中的最大值和最小值。答:#include void main() int a,b,c; printf(请输入三个整数:); scanf(%d %d %d,&a,&b,&c); if (a=b) t=a,a=b,b=t; if (a=c) t=a,a=c,c=t; if (b=c) t=b,b=c,c=t; printf(最小值为:%dn,a); printf(最大值为:%dn,c);编程题2输入x,计算并输出下面分段函数f(x)的值(保留2位小数)。请调用sqrt函数求平方根,调用pow函数求幂。 输入输出示例(共运行3次)Enter x:10f(10.00) = 3.16Enter x:0.5f(0.50) = 2.75Enter x:0f(0.00) = 0.00成本答:#include#includevoid main()double x,y;printf(Enter x:n);scanf(%lf,&x);if (x0)y=pow(1+x,2)+2*x+1/x;elsey=sqrt(x);printf(f(%.2f)=%.2fn,x,y); 编程题3有一函数: x (-5x0) y= x-1 (x=0) x+1 (0x10)编写程序,要求用scanf函数输入x的值,输出y的值。具体要求如下:(1)用if语句实现分支,自变量和函数值均用实数类型。(2)自变量用scanf函数输入,给一些输入提示。(3)运行程序,输入x的值(分别为-5x0,x=0,0x10)三种情况,检查输出的y值是否正确。答:#include#includevoid main()double x,y;printf(Enter x:n);scanf(%lf,&x);if (x0&x-5&x0)y=x; printf(f(%.2f)=%.2fn,x,y); 编程题4 某服装店经营成套服装的买卖,同时也允许单件销售。若一次购买不少于70套,则每套90元;若不足70套,则每套110元;只买上衣每件70元;只买裤子每条60元。请编写程序假设用户买入x件上衣和y条裤子,请编写程序计算相应的应付款是多少?答:#include#includevoid main()double x,y,z;printf(输入上衣x件,裤子y件:n);scanf(%lf%lf,&x,&y);if (x=y&y=70)z=90*y+70*(x-y);else if (y=x&x=70)z=90*x+60*(y-x);else if (xy&yx&x70)z=110*x+60*y-x;printf(应付:%.3f(元)n,z);编程题5编写程序实现:输入一个整数,判断它能否被3 、5 、7整除,同时输出如下信息。(1) 能同时被3 、5 、7整除;(2) 能同时被其中的哪二个数整除;(3) 能被其中的哪一个数整除;(4) 不能被3 、5 、7任一个数整除。答:#includevoid main()int x,a,b,c,d;scanf(%d,&x);a=x%3;a=a/a*100;b=x%5;b=b/b*10;c=x%7;d=a+b+c;switch(d)case 100:printf(能被5,7整除n);case 10 :printf(能被3,7整除n);case 1 :printf(能被3,5整除n);case 110:printf(能被7整除n);case 101:printf(能被5整除n);case 11 :printf(能被3整除n);case 111:printf(不能被3,5,7整除n);case 0 :printf(能被3,5,7整除n);3较难编程题编程题1请用switch语句编程计算员工每月的薪水。(exph3_1.cpp) 已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与提成的关系如下(计量单位:元): profit1000 没有提成;1000profit2000提成10%;2000profit5000提成15%;5000profit10000提成20%;10000profit 提成25%。分析:为使用switch语句,必须将利润profit与提成的关系,转换成某些整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍(1000、2000、5000、),如果将利润profit整除1000,则相邻两个区间的重叠。为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可: profit1000 对应0 1000profit2000对应1 2000profit5000对应2、3、4 5000profit10000对应5、6、7、8、910000profit对应10、11、12、答:#include void main()double p,m,t,q;int n;printf(某月所接工程利润为:);printf(nn);scanf(%lf,&p);m=p-1;n=(int)m/1000;switch (n)case 0 : printf(n薪水为:500n); break;case 1 :q=500+p*0.1 ;printf(n薪水为:%.2lfn,q);break;case 2 :case 3 :case 4 :q=500+p*0.15;printf(n薪水为:%.2lfn,q);break;case 5 :case 6 :case 7 :case 8 :case 9 :q=500+p*0.2 ;printf(n薪水为:%.2lfn,q);break;default:q=500+p*0.25;printf(n薪水为:%.2lfn,q);编程题2编写程序实现如下功能:输入二个运算数(exp1,exp2)和一个运算符(op),计算表达式exp1 op exp2的值,其中OP可以为+、-、*、/、%五个符号中的任一种(提示:用switch语句实现)。 答:#include void main()float exp1,exp2,x;char op;printf(输入:);scanf(%f%c%f,&exp1,&op,&exp2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论