当前位置:文档之家› 实验四 答案 选择结构程序设计

实验四 答案 选择结构程序设计

②自变量w值从键盘输入,且输入前要有提示信息。
③数据的输出格式采用以下形式:w=输入值,x=计算值
④分别以行李重30公斤,80公斤为自变量,运行该程序。记录运行结果;
⑤源程序以ex4_8.c命名保存。
答案
/*文件名:ex4_8.C */
/*程序功能:计算行李托运费*/
#include <stdio.h>
printf("input x,y,z");
scanf("%d,%d,%d",&x,&y,&z);
if(x<y)
if(y<0)
z=0;
else
z++;
printf("z=%d\n",z);
}
具体要求:
①从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。
②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。
程序运行结果:
a=2,b=1
在“case 3: a++; b++;”语句的下一行再加入default: a++; b++;语句,则运行结果不变。
(5)ex4_5.c
#include <stdio.h>
void main()
{
int a,b,n=0;
printf("input a,b:");
scanf("%d,%d",&a,&b);
if(x<0&& x!=-3)
y=x*x+x-6;
else if(x>=0 && x<10&& x!=2 && x!=3)
y=x*x+5*x+6;
else
y=x*x-x-1;
printf("y=%f\n",y);
}
3、广州市个人所得税计算方法如下:
应纳税所得额 =工资薪金所得-2000
应纳税额 = 应纳税所得额×税率-速算扣除数
/* 文件名:ex4_10.c */
#include <stdio.h>
main()
{
int grade;
float salary,real_salary,ratal,tax;
printf("请输入个人工资薪金所得:\n ");
scanf("%f", &salary);
if(salary<0)
{
printf("输入的数据错误\n");
case 4:tax=ratal*0.2-375;break;
case 5:tax=ratal*0.25-1375;break;
case 6:tax=ratal*0.3-3375;break;
case 7:tax=ratal*0.35-6375;break;
case 8:tax=ratal*0.4-10375;break;
case 1:printf("a,b are odd\n");break;
}
break;
}
}
从键盘输入数据分别为
①48 72 ②36 27 ③17 24 ④37 93
运行结果:
48 72
a,b are even
36 27
a is even, b is odd
17 24
a is odd, b is even
行李重量w=30.00公斤,托运费x=15.00元
输入行李重量:80
行李重量w=80.00公斤,托运费x=49.00元
2、编写程序,计算下列分段函数y的值。
具体要求:
(1)自变量x与函数值y均用单精度类型。
(2)自变量x用scanf()函灵敏输入,且输入前要有提示信息。结果输出采用以下形式:
X=具体值,y=具体值。
default: tax=ratal*0.45-15375;
}
real_salary=salary-tax;
printf("应纳税额: %.2f元\n",tax);
printf("税后月收入: %.2f元\n",real_salary);
}
【实验小结】
应知:
1、选择结构的概念及其应用场合;
2、if语句的语法格式及执行流程,if语句的嵌套;
其税率等级如下表所示:
级数
全月应纳税所得额
税率
速算扣除数
1
不超过500元的部分
5%
0
2
超过500元至2000元的部分
10%
25
3
超过2000元至5000元的部分
15%
125
4
超过5000元至20000元的部分
20%
375
5
超过20000元至40000元的部分
25%
1375
6
超过40000元至60000元的部分
37 93
a,b are odd
二、编程练习
1、编程:铁路托运行李,假设每张车票可按每公斤0.5元托运50公斤以内的行李,如果超过50公斤时,超过的部分每公斤加价0.3元,试编写一道计算行李托运费的程序。
设托运行李重为W公斤,托运费为X元,要求如下:
①用if语句实现分支。自变量w与函数值x均采用单精度实型。
③从键盘上给a、b分别输入16、4,分析程序运行的结果。
程序运行结果:
①n=1②n=3③n=2
(6)ex4_6.c
#include <stdio.h>
main()
{
int a=1,b=0;
switch(a)
{
case 1:
switch(b)
{
case 0: printf("**0**\n");break;
case 1 :printf("**1**\n");break;
}
case 2 : printf("**2**\n");break;
}
}
运行结果:
**0**
**2**
(7)ex4_7.c
#include <stdio.h>
main()
{
int a,b;
scanf("%d%d",&a,&b);
switch(a%2)
ratal=0;
tax=0;
}
else if(salary<=2000)
{
ratal=0;
tax=0;
}
else
ratal=salary-2000;
if(ratal<=500)
grade=1;
if(ratal>500 && ratal<=2000)
grade=2;
if(ratal>2000 && ratal<=5000)
if(条件表达式1)
{
程序段1
}
else if(条件表达式2)
{
程序段2
}…
else if(条件表达式n)
{
程序段n
}
Else
{
程序段n+1
}
if…else if…else语句的特点是使用else语句进行更多的条件判断,不同的条件对应不同的程序段。
main()
{
float w,x;
printf("输入行李的重量:");
scanf("%f",&w);
if(w>50.0)
x=50.0*0.5+(w-50.0)*0.8;
else
x=w*0.5;
printf("行李重量w=%.2f公斤,托运费x=%.2f元\n",w,x);
}
运行结果:
输入行李重量:30
③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。
程序运行结果:
①z=2②z=3③z=0
(3)ex4_3.c
#include <stdio.h>
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
(3)分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运行该程序。源程序以ex4_9.c命名保存。
答案
/*文件名:ex4_9.C */
/*程序功能:求分段函数的值*/
#include <stdio.h>
main()
{
float x,y;
printf("输入实数x:\n");
scanf("%f",&x);
If语句适合于只有两种选择的情况。
(2)if…else…语句的格式是:
if(条件表达式)
{
程序段1
}
else
{
程序段2
}
if…else…语句的特点是:
如果if后面的判断条件的值为true,则执行程序段1,否则执行else后面的程序段2。
if…else…语句也适合于只有两种选择的情况。
(3)if…else if…else语句的格式是:
④输出结果中应包含个人税后月收入、应交的税金。
相关主题