《C语言程序设计》(江宝钏著)实验三答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5 实验三 选择结构程序设计
一、实验目的与要求
1. 理解C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2. 掌握利用if 结构实现选择结构的方法。
3. 掌握利用switch 结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序
5. 实验4学时
二、实验内容
1.程序改错题
改正下面程序中的错误。输入实数x ,计算并输出下列分段函数f(x)的值(保留1位小数)。 )100(1
=x x
==)(x f y
)100(≠x x
输入输出示例1(改正后程序的运行结果)
Enter x :100
f(100.00)= 0.1
输入输出示例2(改正后程序的运行结果)
Enter x :23
f(23.00)= 23.0
源程序(有错误的程序)
#include
#include
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
#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)=%.1lf\n",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("最小值为:%d\n",a);
printf("最大值为:%d\n",c);
}
编程题2
输入x,计算并输出下面分段函数f(x)的值(保留2位小数)。请调用sqrt函数求平方根,调用pow函数求幂。
)0(12)1(2<+
++x x x x =)(x f
)0(≥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
成本
答:
#include
#include
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 y= x-1 (x=0) x+1 (0 编写程序,要求用scanf 函数输入x 的值,输出y 的值。 具体要求如下: (1)用if语句实现分支,自变量和函数值均用实数类型。 (2)自变量用scanf函数输入,给一些输入提示。 (3)运行程序,输入x的值(分别为-5 答: #include #include void main() { double x,y; printf("Enter x:\n"); 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 #include 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整除,同时输出如下信息。