}
(3)测试数据:98 86 75 64 53 105 -22
(4)运行结果:优秀 良好 中等 及格 不及格 输入不合法 输入不合法 (5)问题及解决方法:
问题:大于100的分数未给出明确结果
解决方法;在代码中加上对高于100分的限制
4、运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下: s = 250km 没有折扣 250km ≤ s < 500km 2%折扣 500km ≤ s < 1000km 5%折扣 1000km ≤ s < 2000km 8%折扣 2000km ≤ s < 3000km 10%折扣 3000km ≤ s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费的计算公式为: f = p * w * s * ( 1 – d )
请编程实现:从键盘输入基本运费p,货物重w,距离s,计算输出用户最终需要支付的运费。
(1)算法描述:
if(s<250) d=0.0 if(s>=250&&s<500) d=0.02 if(s>=500&&s<1000) d=0.05 if(s>=1000&&s<2000) d=0.08 if(s>=2000&&s<3000) d=0.1
else d=0.15
然后再将数据代入公式money=p*w*s*(1-d),输出money。 (2)源代码及说明: #include
第 6 页 共 6 页
} else if(s>=1000&&s<2000) { d=0.08; } else if(s>=2000&&s<3000) { d=0.1; } else d=0.15; money=p*w*s*(1-d); printf(\总运费为:%.2lf\}
(3)测试数据:10 2 230 (4)运行结果:4600.00 (5)问题及解决方法:无
三、实验总结:掌握了if和switch分支语句的使用。
实验三 循环结构程序设计 实验 (验证性 综合性 实验 2学时)
一、目的要求:
(1)使用循环语句完成累乘、图像输出的程序编写。 (2)掌握较复杂结构程序的编写。 (3)掌握程序调试的方法。 (4)编写实验报告。
二、实验内容(参考实验指导书):
1、已知xyz + yzz = 532,其中x、y、z都是数字(0~9),编写一个程序求出x、y、z分别代表什么数字。 (1)算法描述: for i=1到9
for j=1到9 for z=1到9
if满足xyz + yzz = 532 则输出x、y、z (2)源代码及说明: #include
第 7 页 共 7 页
{ for(y=0;y<=9;y++) { for(z=0;z<=9;z++) { if(x*100+y*10+z+y*100+z*10+z==532) printf(\ } } } }
(3)测试数据: (4)运行结果:3 2 1 (5)问题及解决方法:无
2、编写一个程序打印如下对称图形(行数由键盘输入1~9范围的值),例如下面是输入的数字4时的情形:
4444444 33333 222 1 222 33333 4444444 (1)算法描述:
for(i=number;i>0;i--){ for(k=number;k>=i;k--){ printf(\ } for(j=0;j
for(i=2;i<=number;i++){ for(k=number;k>=i;k--) } for(j=0;j
(2)源代码及说明: #include
int number; int i,j,k;
scanf(\
第 8 页 共 8 页
for(i=number;i>0;i--) { for(k=number;k>=i;k--) { printf(\ } for(j=0;j
for(i=2;i<=number;i++) { for(k=number;k>=i;k--) { printf(\ } for(j=0;j
}
(3)测试数据:4
(4)运行结果: 4444444 33333 222 1 222 33333 4444444 (5)问题及解决方法:无 3、学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一个程序求该校的学生人数。 (1)算法描述:
for(x=1;x<1000;x++)
if满足x%5==2 && x%7==3 && x%3==1 则输出x
(2)源代码及说明: #include
第 9 页 共 9 页
int x; for(x=1;x<1000;x++) { if(x%5==2 && x%7==3 && x%3==1) printf(\ } }
(3)测试数据:
(4)运行结果:52 157 262 367 472 577 682 787 892 997 (5)问题及解决方法:无
4、学校某班A、B、C、D四位同学中的一位做了好事不留名,表扬信来了之后,班主任问这四位是谁做了好事,四位回答如下: A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。
已知三个人说的是真话,一个人说的是假话。请根据这些信息,找出做了好事的人。 (1)算法描述:
for(x='A';x<='D';x++)
if((x!='A')+(x=='C')+(x=='D')+(x!='D')==3)
输出谁做了好事 (2)源代码及说明:
#include
(3)测试数据:
(4)运行结果:C做了好事 (5)问题及解决方法:无
三、实验总结:通过这几个实验基本掌握了循环的用法和循环嵌套的使用。
实验四 数组程序设计 实验 (验证性 综合性 实验 4学时)
一、目的要求:
(1)掌握一维和二维数组的使用技巧。 (2)编写实验报告。
第 10 页 共 10 页