已知C源程序如下: / * longIntAdd * / # include # include # define LENGTH 81 void addLInt(char sl[],char s2[]); void reverse(char s[])

admin2011-10-24  19

问题 已知C源程序如下:
/ * longIntAdd * /
# include
# include
# define LENGTH 81
void addLInt(char sl[],char s2[]); void reverse(char s[]) ; int main()
{
char intstrl[LENGTH],intstr2[LENGTH];
printf("请输入超长整数的被加数和加数:\n")
scanf("%s%s" ,intstrl ,intstr2) ; addLInt(intstrl ,intstr2) j printf("超长整数和为: %s" .intstrl); return 0;
}
void addLInt(char sl[] ,char s2[]) {
int i=0,tmp,c=0;
char s[LENGTH];
if(strlen(s1)}
reverse(sl);reverse(s2);
while(s2! =’\0’){
tmp=sl-’0’+s2-’0’+ c;
sl = tmp%10+,0’;
c=tmp/10;
i++; } while(sl! =’\0,&&c){
tmp=sl —’0’ + c;
sl = tmp%10+’0’;
c=tmp/10;
i++; } If(c){
sl[i++] = c+’0’;
sl = ’\0’; } reverse(sl);
}
void reverse(cliar s[])
{
inti,j,c;
for(i=0,j = strlen(s) -l;ic=s; s = s[j]; s[j] = c; } }
(1)画出程序中函数addLInt的控制流程图(10分);
(2)设计一组测试用例,使该程序addLInt函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该函数的语句覆盖率或分支覆盖率无法达到100%,需说明为什么(10分)。

选项

答案(1)函数addLInt的控制流程图。 [*] C2)测试用例 a.sl:“111111111111111l”s2:“2222222222222222” b. s1:“123456789” s2:“989” c.s1:“989” s2 :“123456789” d.sl :“999999999999” s2 :“111111” 解析:语句覆盖是指设计若干测试用例,运行被测程序,使得每个可执行语句至少执行一次。 语句覆盖率=被评价到的语句数量/可执行的语句数量×100%。 设计若干测试用例,运行被测程序使得每个判定的取真分支和取假分支至少评价一次。 判定覆盖率=被评价到的判定分支个数/判定分支的总数×100%。 当输入a、b、c、d中的测试用例后,语句覆盖率和分支覆盖率均为100%。

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

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