
3.5实验3选择结构编程1.实验的目的和要求,以理解用C语言表示逻辑量的方法,学习正确使用逻辑运算符和逻辑表达式. 掌握使用if结构实现选择结构的方法. 掌握使用开关结构来实现多分支选择结构. 4.组合程序以掌握一些简单的算法,并学习调试程序. 5.实验4小时2.实验内容1.程序错误更正可纠正以下程序中的错误. 输入实数x,计算并输出以下分段函数f(x)的值(保留小数点后1位). 输入和输出示例1(校正后程序的运行结果)输入x: 100f(100.00)= 0.1输入和输出示例2(校正后程序的运行结果)输入x: 23f(23.00)= 23.0源程序(程序错误))#include #include void main(void){double x; printf(“输入x: \ n”); scanf(“ =%f”,x); if(x = 100){y = 1 / sqrt(x)}否则(x!= 100){y = x;} printf(“ f(%. 2f)=%.1f \ n”,x,y) ;}答案: #include #include void main(void){double x,y; printf(“输入x: \ n”); scanf(“%lf”,&x);如果(x = 100)y = 1 / sqrt(x);否则y = x; printf(“ f(%. 2lf)=%. 1lf \ n”,x,y);} 2.常规编程问题编程问题1输入任意三个整数a,b,c,找出三个数字的最大值和最小值

答案: #include void main(){int a,b,c; printf(“请输入三个整数: ”); scanf(“%d%d%d”,&a,&b,&c);如果(a> = b)t = a,a = b,b = t;如果(a> = c)t = a,a = c,c = t;如果(b> = c)t = b,b = c,c = t; printf(“最小值是: %d \ n”,a); printf(“最大值为: %d \ n”,c);}编程问题2输入x,计算并输出以下分段函数f(x)的值(保留2个小数位). 请调用sqrt函数以查找平方根,然后调用pow函数以查找幂. 输入和输出示例(总共运行3次)输入x: 10f(10.00)= 3.16输入x: -0.5f(-0.50)= -2.75输入x: 0f(0.00)= 0.00成本答案: #include #include void main(){double x,y; printf(“输入x: \ n”); scanf(“%lf”,&x);如果(x <0)y =战俘(1+ x,2)+ 2 * x + 1 / x; elsey = sqrt(x); printf(“ f(%. 2f)=%. 2f \ n”,x,y);}编程问题3具有一个函数: x(-5

具体要求如下: (1)用if语句实现分支,并且参数和函数值是实型的. (2)使用scanf函数输入自变量,并给出一些输入提示. (3)运行程序,输入x的值(分别为-5 #include void main(){double x,y; printf(“输入x: \ n”); scanf(“%lf”,&x);如果(x> 0 && x <10)y = x + 1;否则(x == 0)y = x-1;否则(x> -5 && x <0)y = x; printf(“ f(%. 2f)=%.2f \ n”,x,y);}编程问题4一家服装店从事成套服装的销售,也允许单件服装的销售. 如果一次购买不少于70套,则每套将花费90元;少于70套的,每套110元;每件大衣只买70元;每条裤子只需购买60元. 请编写一个程序. 假设用户购买了x条上衣和y条裤子,请编写一个程序来计算相应的应付款. 答案: #include #include void main(){double x,y,z; printf(“输入上衣x件,裤子y件: \ n”); scanf(“%lf%lf”,&x,&y);如果(x> = y && y> = 70)z = 90 * y + 70 *(xy);否则(y> = x && x> = 70)z = 90 * x + 60 *(yx);否则(x> y && y <70)z = 110 * y + 70 *(xy);否则(y> x && x <70)z = 110 * x + 60 * yx; printf(“ Payable: %.3f(元)\ n”,z);}编程问题5编写一个程序以实现: 输入一个整数,确定它是否可以被3、5、7整除,并输出以下信息.

可同时除以3、5和7;可以同时将两个数整除;哪个数字可以被整除;并且不能被3、5或7整除. 答案: #include 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;开关(d){情况100: printf(“可以被5,7 \ n整除”);情况10: printf(“可被3,7 \ n整除”);情况1: printf(“可被3,5 \ n整除”);情况110: printf(“可被7 \ n整除”);情况101: printf(“可被5 \ n整除”);情况11: printf(“可除以3 \ n”);情况111: printf(“不能除以3,5,7 \ n”);情况0: printf(“可被3、5、7 \ n整除”);}} 3.更加困难的编程问题编程问题1请使用switch语句计算员工的月薪.

(exph3_1.cpp)已知公司雇员的最低工资为500,一个月内收到的项目利润(整数)与佣金之间的关系如下(计量单位: 元): 利润≤1000,不收取佣金; 1000 <利润≤2000佣金10%; 2000 <利润≤5000佣金15%; 5000 <利润≤10000佣金20%; 10000 <利润佣金25%. 分析: 为了使用switch语句,必须将利润和佣金之间的关系转换为某些整数和佣金之间的关系. 对这个问题的分析表明,佣金的变化点都是1000的整数倍(1000、2000、5000等). 如果将利润除以1000,则两个相邻的时间间隔会重叠. 为了解决两个相邻区间的重叠问题,最简单的方法是: 将利润利润递减1(最小增量),然后除以1000: 利润≤1000对应于0 1000 <利润≤2000对应于1 2000 void main(){double p,m,t,q; int n; printf(“一个月内收到的项目利润为: ”); printf(“ \ n \ n”); scanf(“%lf”c语言程序设计 江宝钏课后习题答案,&p); m = p-1; n =(整数)m / 1000;开关(n){情况0: printf(“ \ n薪水是: 500 \ n”);打破;情况1: q = 500 + p * 0.1; printf(“ \ nSalary Is: %. 2lf \ n”,q);打破;情况2: 情况3: 情况4: q = 500 + p * 0.15; printf(“ \ nSalary是: %. 2lf \ n”,q);休息;情况5: 情况6: 情况7: 情况8: 情况9: q = 500 + p * 0.2; printf(“ \ nSalary: %. 2lf \ n”,q);打破;默认值: q = 500 + p * 0.25; printf(“ \ nSalary是: %.2lf \ n”,q);}}编程问题2编写一个程序来实现以下功能: 输入两个操作数(exp1,exp2)和一个运算符(op),计算exp1 op exp2表达式,其中OP可以是+,-,*c语言程序设计 江宝钏课后习题答案,/,%这五个符号中的任何一个(显示: 在switch语句中实现).
答案: #include void main(){float exp1,exp2,x; char op; printf(“输入: ”); scanf(“%f%c%f”,&exp1,&op,&exp2);开关(op){case'+': x = exp1 + exp2;打破;情况'-': x = exp1-exp2;打破;情况'*': x = exp1 * exp2;打破;情况'/': x = exp1 / exp2; break;} printf(“ \ n \ n \ n%5.2f%c%5.2f =%5.2f \ n \ n \ n”,exp1,op,exp2,x);} +
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-169979-1.html
我们是“让它三分”