已知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++

admin2010-07-27  47

问题 已知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
   s=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:’\o’;
   reverse(s);
   }
   int main(){
   unsigned int number;
   int i=0:
   char s[50];
   printf("%s","please input number;\n");
   scanf("%d",&number):
   getHex(number,s);
   i=0;
   while(s)
   printf("%c",s[i++]);
   return 0;
   }

设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支率无法达到100%,需说明为什么。

选项

答案设计测试用例 ①输入0,输出0。 ②输入2,输出2。 ③输入26,输出A。 ④输入27,输出B。 ⑤输入28,输出C。 ⑥输入29,输出D。 ⑦输入30,输出E。 ⑧输入31,输出F。 ⑨输入20P,输出错误。 语句覆盖率无法达到100%,因为main()函数中的return 0语句永远无法执行。

解析
转载请注明原文地址:https://kaotiyun.com/show/CwNZ777K
0

相关试题推荐
最新回复(0)