问题 问答题

针对一下C语言程序,请按要求回答问题。 已知weekday. c源程序如下: #include<stidio. 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; } (1) 画出主函数main的控制流程图; (2) 设计一组测试用例,使main函数的语句覆盖率尽量达到100%; (3) 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]1 3,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 erroi” path6.输入数据f,输出结果“friday” path7.输入数据m,输出结果“monday” path8.输入数据t,输出结果“输入第二个字母” path9.输入数据t后,输入数据u,输出结果“tuesday” path10.输入数据t后,输入数据h,输出结果“thursday” path11.输入数据t后,输入数据非u非h,输出结果“data crror” pathl2.输入数据w,输出结果“Wednesday"’ path13.输入数据defalt,输出结果“data error” 3.不能达到100%,一些独立的路径如此程序中的[输入],往往不是完全孤立的,有时候它是程序正常的控制流的一部分,这是这些路径的测试可以是另一条路径测试的部分。

单项选择题
填空题