《C语言程序设计》(江宝钏著)实验三答案.doc

上传人:sk****8 文档编号:3150462 上传时间:2019-05-23 格式:DOC 页数:7 大小:55KB
下载 相关 举报
《C语言程序设计》(江宝钏著)实验三答案.doc_第1页
第1页 / 共7页
《C语言程序设计》(江宝钏著)实验三答案.doc_第2页
第2页 / 共7页
《C语言程序设计》(江宝钏著)实验三答案.doc_第3页
第3页 / 共7页
《C语言程序设计》(江宝钏著)实验三答案.doc_第4页
第4页 / 共7页
《C语言程序设计》(江宝钏著)实验三答案.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、3.5 实验三 选择结构程序设计一、实验目的与要求1. 理解 C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。2. 掌握利用 if 结构实现选择结构的方法。3. 掌握利用 switch 结构实现多分支选择结构。4 结合程序掌握一些简单的算法,学习调试程序5 实验 4 学时二、实验内容1程序改错题改正下面程序中的错误。输入实数 x,计算并输出下列分段函数 f(x)的值(保留 1位小数) 。 )10(x)(xfy)10(x输入输出示例 1(改正后程序的运行结果)Enter x:100f(100.00)= 0.1输入输出示例 2(改正后程序的运行结果)Enter x:23f(23.00

2、)= 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“, if (x=100)y = 1/sqrt(x); else y= x;printf(“f(

3、%.2lf)=%.1lfn“,x,y); 2一般编程题编程题 1 输入任意三个整数 a,b,c,求 3 个数中的最大值和最小值。答:#include void main()int a,b,c;printf(“请输入三个整数:“);scanf(“%d %d %d“,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 函数求

4、幂。)0(12)(xx)(f)0(x输入输出示例 (共运行 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“,if (x#includevoid main()double x,y;printf(“Enter x:n“);scanf(“%lf“,if (x0printf(“输入上衣 x 件,裤子 y 件:n“);scanf(“%lf%lf“,if

5、(x=yelse if (y=xelse if (xyscanf(“%d“,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“);c

6、ase 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 与提成的关系,转换成某些整数与提成的关系。分析本题可知,提成的变化

7、点都是 1000 的整数倍(1000、2000、5000、) ,如果将利润 profit 整除 1000,则相邻两个区间的重叠。为解决相邻两个区间的重叠问题,最简单的方法就是:利润 profit 先减 1(最小增量) ,然后再整除 1000 即可:profit1000 对应 01000profit2000 对应 12000profit5000 对应 2、3、45000profit10000 对应 5、6、7、8、910000profit 对应 10、11、12、答:#include void main()double p,m,t,q;int n;printf(“某月所接工程利润为:“);pri

8、ntf(“nn“);scanf(“%lf“,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

9、: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“,switch (op)case +:x=exp1+exp2;break;case -:x=exp1-exp2;break;case *:x=exp1*exp2;break;case /:x=exp1/exp2;break;printf(“nnn%5.2f%c%5.2f=%5.2fnnn“,exp1,op,exp2,x);+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 建筑建材

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。