2020级3班c语言上机疑问(11月4日)

本文最后更新于:1 个月前

2020级3班c语言上机疑问(11月4日)

实验五-1

1.循环实验(教材习题5-20)。具体要求:

  1. 绘制流程图,编制程序代码。

  2. 分析不进入循环、只循环一次、只循环两次、进入死循环的条件,以及此时各变量的值。

  3. 分析循环退出时的条件表达式值。

  4. 如何测试循环的次数?

  5. 能否将程序改写成另外的形式,如while改写成do whilefor语句?

  6. 总结条件循环的设计、实现步骤和测试方法。

实训5-20 企业发放的奖金根据利润提成。其基本规定是:

  • 利润低于10万元的奖金 可提10% ;
  • 高于等于10万元而低于等于20万元的,其低于10万元的将按10%提成,高于10万元的将按7.5%提成;
  • 对高于20万低于等于40万的,其高于20万的部分按5%提成;对高于40万而低于等于60万的,其高于40万的部分按3%提成;
  • 高于60万低于等于 100万时,其高于60万部分按1. 5%提成;
  • 对高于100万的,超过100万部分按1%提成。

试从键盘输人当月利润并计算奖金总额。

>问题:看完这个题目第一感觉是容易的,大部份同学选择使用if语句或者switch语句完成. 结果当看到实验报告要求让用循环语句写时比较困难,同学们基本上处于没有思路状态.
## 实验四-1 1. if 语句的实验。请分析如下语句段的逻辑关系:
1
2
3
4
5
6
7
8
int main(void)
{
...
if (nA>1 && nB==0) nX=nX/nA;
if (nA==2 || nX>1) nX=nX+1;
...
return 0;
}
(a) 以算法流程图的形式表述;
(b) 增加输入、输出功能以补充完整该程序段,使之能够运行;
(c) 测试该程序段的各种条件组合下的运行结果。测试数据组如下:
1
2
3
4
5
6
7
8
9
nA nB nX
1 1 1
1 1 2
3 0 1
2 0 4
2 1 1
1 0 2
2 1 2
3 0 2
(d) 分析讨论: 1) 用哪组数据就可以使程序段中每个处理语句都执行一次?为了找出程序中的逻辑错误,应使用什么样的数据进行测试?请上机验证自己的分析结果。 2) 用哪两组数据可以使程序段中的每个分支都至少运行一次?为找出各个分支中的逻辑错误,应选用什么样的数据进行逻辑测试?请上机验证自己的分析结果。 3) 用哪四组数据可以将从起点到终点的各条路径都覆盖一次?为了测试程序在各个不同路径上的错误,应选用什么样的测试数据?请上机验证自己的分析结果。

问题1:同学们对题目“为了找出程序中的逻辑错误,应使用什么样的数据进行测试?”中的逻辑错误不太理解,无从下手.

问题2:同学们对题目“用哪四组数据可以将从起点到终点的各条路径都覆盖一次?”中覆盖指代什么产生疑问.