问答题 针对以下C语言程序,请按要求回答问题。
已知weekday.c源程序如下:
#inelude<sgidio.h>
#include<conio.h>
/*主函数*/
Int main ()

Char letter;
Printf("please input the first letter,"Y"to exit!/n");
While ((letter=getch ()) !="Y") //当输入字母为Y是结束

Switch (letter)

Case 'S':
Printf ("%c/n", letter);
Printf("please input second letter/n"); //输入第二个字母
If((letter=getch())=='a')
Printf ("Saturday/n");
Else if (letter=='u')
Printf ("Sunday/n");
Else printf("data error/n");
Break;
Case 'F':
Printf ("fridaykn");
Break;
Case'M':
Printf ("mondayha");
Break;
Case'T':
Printf("%c/n",letter);
Printf("please input second letter/a"); //输入第二个字母
If ((letter=getch ()) =='u')
Printf("Tuesday/n");
Else if(letter=='h')
Printf ("Thursday/n");
Break;
Case'W':
Printf ("Wednesday/n");


Return 0;


问答题 画出主函数main的控制流程图。
【正确答案】[*]
【答案解析】
问答题 设计一组测试用例,使main函数的语句覆盖率尽量达到100%。
【正确答案】[path1]1, 2
[path2]2,3
[path3]2,3,4,5,22
[path4]2,3,6,7,22
[path5]2,3,6,8,22
[path6]9,10,22
[path7]11,12,22
[path8]13,14
[path9]13,14,15,16
[path10]13,14,17,-18,22
[path11] 13,14,8,22
[path12]19,20,22
[path13]19,8,22
生成测试用例,确保基本路径集中每条路径的执行:
path1:输入数据y,输出的结果程序结束返回值0。
path2:输入数据s,输出结果“s输入第二个字母”。
path3:输入数据s后,输入数据a,输出结果“Saturday”。
path4:输入数据s后,输入数据u,输出结果“Sunday”。
path5:输入数据s后,输入数据非a非u,输出结果“data error”。
path6:输入数据f,输出结果“friday”。
path7:输入数据m,输出结果“monday”。
path8:输入数据t,输出结果“输入第二个字母”。
path9:输入数据t后,输入数据u,输出结果“tuesday”。
path10:输入数据t后,输入数据h,输出结果“thursday”。
path11:输入数据t后,输入数据非u非h,输出结果“data error”。
path12:输入数据w,输出结果“Wednesday”。
path13:输入数据defalt,输出结果“data error”。
【答案解析】
问答题 Main函数的语句覆盖率能否达到100%?如果认为无法达到,则说明原因。
【正确答案】不能达到100%,一些独立的路径如此程序中的“输入”,往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的部分。
【答案解析】