tceic.com
学霸学习网 这下你爽了
相关标签
当前位置:首页 >> 工学 >>

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



3.5 实验三 选择结构程序设计
一、实验目的与要求
1. 2. 3. 4. 5. 理解 C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。 掌握利用 if 结构实现选择结构的方法。 掌握利用 switch 结构实现多分支选择结构。 结合程序掌握一些简单的算法,学习调试程序 实验 4 学时

二、实验内容
1.程序改错题 . 改正下面程序中的错误。输入实数 x,计算并输出下列分段函数 f(x)的值(保留 1 位

1
小数) 。

x
y = f (x) =

( x = 100)

x
输入输出示例 1(改正后程序的运行结果)
Enter x:100 f(100.00)= 0.1

( x ≠ 100)

输入输出示例 2(改正后程序的运行结果)
Enter x:23 f(23.00)= 23.0 源程序(有错误的程序) #include<stdio.h> #include<math.h> void 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) = %.1f\n",x,y); }

答: #include<stdio.h> #include<math.h> 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)=%.1lf\n",x,y); }

2.一般编程题
编程题 1 输入任意三个整数 a,b,c,求 3 个数中的最大值和最小值。
答: #include <stdio.h> 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("最小值为:%d\n",a); 最小值为: 最小值为 printf("最大值为:%d\n",c); 最大值为: 最大值为 }

编程题 2 输入 x, 计算并输出下面分段函数 f(x)的值 (保留 2 位小数) 请调用 sqrt 函数求平方根, 。 调用 pow 函数求幂。

( x + 1) 2 + 2 x +

1 x

( x < 0)

f (x) =

x
输入输出示例(共运行 3 次)
Enter x:10 f(10.00) = 3.16 Enter x:-0.5 f(-0.50) = -2.75 Enter x:0 f(0.00) = 0.00 成本

(x≥0)

答:
#include<stdio.h> #include<math.h> void main() { double x,y; printf("Enter x:\n"); scanf("%lf",&x); if (x<0) y=pow(1+x,2)+2*x+1/x; else y=sqrt(x); printf("f(%.2f)=%.2f\n",x,y); } 编程题 3

有一函数: x (-5<x<0) x-1 (x=0) x+1 (0<x<10) 编写程序,要求用 scanf 函数输入 x 的值,输出 y 的值。 具体要求如下: (1)用 if 语句实现分支,自变量和函数值均用实数类型。 (2)自变量用 scanf 函数输入,给一些输入提示。 (3)运行程序,输入 x 的值(分别为-5<x<0,x=0,0<x<10)三种情况,检查输出的 y 值 是否正确。 答: #include<stdio.h> #include<math.h> void main() { double x,y; printf("Enter x:\n"); y=

scanf("%lf",&x); if (x>0&&x<10) y=x+1; else if (x==0) y=x-1; else if (x>-5&&x<0) y=x; printf("f(%.2f)=%.2f\n",x,y); } 编程题 4 某服装店经营成套服装的买卖,同时也允许单件销售。若一次购买不少于 70 套,则每 套 90 元;若不足 70 套,则每套 110 元;只买上衣每件 70 元;只买裤子每条 60 元。请编写 程序假设用户买入 x 件上衣和 y 条裤子,请编写程序计算相应的应付款是多少? 答: #include<stdio.h> #include<math.h> void 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 (x>y&&y<70) z=110*y+70*(x-y); else if (y>x&&x<70) z=110*x+60*y-x; printf("应付 应付:%.3f(元)\n",z); 应付 元 } 编程题 5 编写程序实现:输入一个整数,判断它能否被 3 、5 、7 整除,同时输出如下信息。 (1) 能同时被 3 、5 、7 整除; (2) 能同时被其中的哪二个数整除; (3) 能被其中的哪一个数整除; (4) 不能被 3 、5 、7 任一个数整除。 答: #include<stdio.h> void 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(整数)与提成的关系如下 (计量单位:元) : profit≤1000 没有提成; 1000<profit≤2000 提成 10%; 2000<profit≤5000 提成 15%; 5000<profit≤10000 提成 20%; 10000<profit 提成 25%。 分析: 为使用 switch 语句, 必须将利润 profit 与提成的关系, 转换成某些整数与提成的关系。 分析本题可知,提成的变化点都是 1000 的整数倍(1000、2000、5000、……) ,如果将利润 profit 整除 1000,则相邻两个区间的重叠。为解决相邻两个区间的重叠问题,最简单的方法 就是:利润 profit 先减 1(最小增量) ,然后再整除 1000 即可: profit≤1000 对应 0 1000<profit≤2000 对应 1 2000<profit≤5000 对应 2、3、4 5000<profit≤10000 对应 5、6、7、8、9 10000<profit 对应 10、11、12、……

答: #include <stdio.h> void main() { double p,m,t,q;

int n; printf("某月所接工程利润为 某月所接工程利润为:"); 某月所接工程利润为 printf("\n\n"); scanf("%lf",&p); m=p-1; n=(int)m/1000; switch (n) { case case case case case case case case case 0 1 2 3 4 5 6 7 8 : printf("\n 薪水为 薪水为:500\n"); break; :q=500+p*0.1 ;printf("\n 薪水为:%.2lf\n",q);break; 薪水为 : : :q=500+p*0.15;printf("\n 薪水为 薪水为:%.2lf\n",q);break; : : : :

case 9 :q=500+p*0.2 ;printf("\n 薪水为 薪水为:%.2lf\n",q);break; default:q=500+p*0.25;printf("\n 薪水为 薪水为:%.2lf\n",q); } } 编程题 2 编写程序实现如下功能:输入二个运算数(exp1,exp2)和一个运算符(op),计算表 达式 exp1 op exp2 的值,其中 OP 可以为+、-、*、/、%五个符号中的任一种(提示: 用 switch 语句实现) 。 答: #include <stdio.h> void main() { float exp1,exp2,x; char op; printf("输入 输入:"); 输入 scanf("%f%c%f",&exp1,&op,&exp2); switch (op) { case '+':x=exp1+exp2;break; case '-':x=exp1-exp2;break; case '*':x=exp1*exp2;break; case '/':x=exp1/exp2;break; } printf("\n\n\n%5.2f%c%5.2f=%5.2f\n\n\n",exp1,op,exp2,x); } +


推荐相关:

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

7.4 实验七 字符与字符串处理 一、实验目的与要求 1. 2. 3. 4. 5. 6. 掌握 C 语言字符型数据的概念,理解字符型与整型数据之间的关系。 掌握字符的输入...


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

4.5 实验四 循环结构程序设计 一、实验目的与要求 1. 2. 3. 4. 5. 熟练掌握用 while 语句,do-while 语句实现循环的方法。 熟练掌握用 for 语句实现循环的...


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

2. 3. 4. 5. 6. 掌握 C 语言函数的定义方法、函数的声明及函数的调用...实验 4 学时 二、实验内容 1.程序验证与改错题 (1) 程序验证题 ① 下面...


c语言程序设计,江宝钏著,实验九

c语言程序设计,江宝钏著,实验九_IT/计算机_专业资料。宁波大学实验报告 学号 ...C语言程序设计实验报告9 3页 免费 c语言程序设计答案(实验... 暂无评价 9页...


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

2.5 1. 2. 3. 4. 5. 6. 实验二 编写几个简单的 C 程序 一、实验目的与要求掌握 C 语言基本数据类型的概念,理解数据类型与运算的关系。 掌握简单变量的...


《C语言程序设计》实验指导书答案

《C语言程序设计》实验指导书答案_工学_高等教育_教育专区。实验一(第 1 章实验...实验内容:写程序测试++、-- 运算符。 实验过程: main() { int i=3; ...


《C语言程序设计》课后习题答案(第四版)谭浩强

《C语言程序设计》课后习题答案(第四版)谭浩强_工学_高等教育_教育专区。《C...用自然语言表示算法 22 2.4.2 用流程图表示算法 22 2.4.3 三种基本结构和...


《C语言程序设计教程》实验及习题解答

三、教材习题解答(第 1 章—第 11 章) 1 第一部分 Turbo C 集成开发环境简介 Turbo C 是一个集程序编辑、编译、连接、调试为一体的 C 语言程序开发环境,...


C语言程序设计实验指导及习题解答(最新)(1)

C 语言程序的开发过程 和调试方法的介绍;C 语言程序设计相关章节实验项目; 《C 语言程序设计教程》一书中各章 节习题的参考解答;配合全国计算机等级考试二级 C ...


C语言程序设计(第3版 张磊编著)参考答案

C语言程序设计(3版 张磊编著)参考答案_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档C语言程序设计(3版 张磊编著)参考答案_理学_高等教育_...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com