已知C源程序如下:
#include<stdio.h>
#include<string.h>
void reverse(char s[])
int C, i, J;
for(i=0, j=strlen(s)-1; i<j; i++, j++)
c=s[i];
s[i]=s[j];
s[j]=c;
void getHex(int number, char s[])
int I;
i=0;
while(number>0)
if(number%16<10)
s[i++]=number%16+’0’;
else
switch(number%16)
case 10: s[i++]=’A’; break;
case 11: s[i++]=’B’; break;
case 12: s[i++]=’C’; break;
case 13: s[i++]=’D’; break;
case 14: s[i++]=’E’; break;
case 15: s[i++]=;F’; break;
default: printf("Error"); break;
number/=16;
s[i]=’\0’;
reverse(S);
int main()
unsigned int nmnber;
int i=0;
char s[50];
printf("%s", "please input number: \n");
scanf("%d", &number);
getHex(number, s);
i=0;
while(s[i])
printf("%c", s[i++]);
return 0;
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支率无法达到100%,需说明为什么。
参考答案:设计测试用例:
①输入0,输出0
②输入2,输出2
③输入26,输出1A
④输入27,输出1B
⑤输入28,输出1C
⑥输入29,输出1D
⑦输入30,输出1E
⑧输入31,输出1F
⑨输入20P,输出错误
语句覆盖率无法达到100%,因为main()函数中的return 0语句永远无法执行。