问答题 已知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%1 6+'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 number;
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;


问答题 画出程序中所有函数的控制流程图。
【正确答案】流程图
①void reverse(char s[])的流程图如下图所示。
[*]
②void getHex(int number, char s[])的流程图如下图所示。
[*]
③int main()的流程图如下图所示。
[*]
【答案解析】
问答题 设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支率无法达到100%,则说明为什么。
【正确答案】设计测试用例
①输入0,输出0。
②输入2,输出2。
③输入26,输出1A。
④输入27,输出1B。
⑤输入28,输出1C。
⑥输入29,输出1D。
⑦输入30,输出1E。
⑧输入31,输出1F。
⑨输入20P,输出错误。
语句覆盖率无法达到100%,因为main()函数中的return 0语句永远无法执行。
【答案解析】