1. 测试如下程序段: main() { int i=1;n1=n2=0; float sum=0; float average; float score[100]; while(score[i]!=-1&&n2<50) { n2=n2+1; if(score[i]>0&&score[i]<100) { n1=n1+1; sum=sum+score[i]; } i=i+1; } if(n1>0) average=sum/n1; else average=-1; printf(“n1=%d,sum=%f,average=%f\n”,n1,sum,average); } 要求:①画出这段代码的程序流程图和控制流程图;②计算环路复杂度;③列出独立路径;④设计测试用例。
时间: 2023-12-05 11:04:48 浏览: 238
①程序流程图:
![程序流程图](https://i.imgur.com/9jWMg4e.png)
①控制流程图:
![控制流程图](https://i.imgur.com/6L1E7T3.png)
②环路复杂度为4。
③独立路径:
1. 1 → 2 → 3 → 4 → 5 → 7 → 14
2. 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 5
3. 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 12 → 13 → 5
4. 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 12 → 13 → 14
④测试用例:
1. 输入score数组中的数值均为-1,预期输出n1=0, sum=0, average=-1。
2. 输入score数组中的数值均大于等于0且小于等于100,其中包含若干个-1,预期输出n1为不为0的正整数,sum为数组中大于0小于100的元素和,average为数组中大于0小于100的元素均值。
3. 输入score数组中的数值均小于0或大于100,预期输出n1=0, sum=0, average=-1。
4. 输入score数组中的数值包含大于等于0且小于等于100的元素和小于0或大于100的元素,预期输出n1为不为0的正整数,sum为数组中大于0小于100的元素和,average为数组中大于0小于100的元素均值。
阅读全文