}
Int menu_select(void) {
Char s[80]; Int c;
Printf(\\n\Printf(\\n\Printf(\\n\Printf(\\n\ Do{
Printf(\\nEnter your choice:\Gets(s); C=atoi(s);③
}while(c<1||c>4); Return c;④ }
Void enter(void) {
Int slot;
Char s[80];
Slot=find_free();
If(slot==-1) {
Printf(\\Nlist FULL\Return; ⑦ }
Printf(\
Gets(add_list[slot].name); Printf(\
Gets(addr_list[slot].street); Printf(\
Gets(addr_list[slot].city); Printf(\Gets(s);
Addr_list[slot].zip=strtoul(s,\0,10); ⑧ }
Int find_free(void) {
Register int t;
For(t=0;addr_list[t].name[0] && t Void deleteAddr(void) { Register int slot; Char s[80]; Printf(\Gets(s); Slot=atoi(s); ⑨ If(slot>=0 && slot Addr_list[slot].name[0]=\0; ⑩ } void list(void) { Register int t; for(t=0;t If(addr_list[t].name[0]){ Printf(\\n\[t].name); Printf(\\n\[t].street); Printf(\\n\[t].city); Printf(\\n\n\[t.zip]); } } Printf(\\n\n\}S1: t S3: addr_list[t].name[0] && t S5: slot>=0&&slot S6: addr_list[t].name[0] 2.测试用例: TEST1:输入:在\后输入:输出:\\\\ ; 1 \ Test2:输入:在\后输入:1; 在\后输入:王明 在 \后输入:王府井 在 \后输入:北京 在 \后输入:4121500 输出:\\\\ Test3:输入:在\后输入:2; 在\后输入:4; 输出:\\\\ Test4:输入:在\后输入:3; 输出:\\\\王明 王府井 北京 4121500 Test4:输入:在\后输入:4; 输出:无输出,系统退出 不能达到100%,一些独立的路径如此程序中的【输入】,往往不是完全孤立的,有时候它是程序正常的控制流的一部分,这时,这些路径的测试 可以是另一条路径测试的一部分。 ? ? o 试题内容: o 已知C源程序如下: /*A simple mailing list example using an array of structures. */ #include #define MAX 4 struct addr { char name[30]; char street[40]; char city[20]; unsigned long int zip; } addr_list[MAX]; void init_list(void), enter(void); void deleteAddr(void), list(void); int menu_select(void), find_free(void); int main(void) { char choice; init_list();/*initialize the structure array */ for(;;){ choice=menu_select(); switch(choice){ case 1:enter(); break; case 2:deleteAddr(); break; case 3:list(); break; case 4:exit(0); } } return 0; } /* Initialize the list. */ void init_list(void) { register int t; for(t=0;t