niusouti.com

已知C源程序如下:/ * longIntAdd * /include <stdio. h>include <string. h>define LENGTH 81void addLInt(char sl[],char s2[]); void reverse(char s[]) ; int main(){char intstrl[LENGTH],intstr2[LENGTH];printf("请输入超长整数的被加数和加数:\n")scanf("%s%s" ,intstrl ,intstr2) ; addLIn

题目

已知C源程序如下:

/ * longIntAdd * /

include <stdio. h>

include <string. h>

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)<strlen(s2)){ strcpy(s,sl); strcpy(sl,s2); strcpy(s2,s);

}

reverse(sl);reverse(s2);

while(s2[i]! ='\0'){

tmp=sl[i]-'0'+s2[i]-'0'+ c;

sl[i] = tmp%10+,0';

c=tmp/10;

i++; } while(sl[i]! ='\0,&&c){

tmp=sl[i] —'0' + c;

sl[i] = tmp%10+'0';

c=tmp/10;

i++; } If(c){

sl[i++] = c+'0';

sl[i] = '\0'; } reverse(sl);

}

void reverse(cliar s[])

{

inti,j,c;

for(i=0,j = strlen(s) -l;i<j;i++,j--){

c=s[i]; s[i] = 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%。
更多“已知C源程序如下:/ * longIntAdd * / include &lt;stdio. h&gt; include &lt;string. h&gt; defi ”相关问题
  • 第1题:

    有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

    有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。

    A.21

    B.11

    C.6

    D.1


    正确答案:A
    解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。

  • 第2题:

    正常售票的快捷键是()。

    A.lt+P

    B.trl+P

    C.lt+T

    D.lt+S


    正确答案:D

  • 第3题:

    7、已知lt=[1,2,3],下面表达式能够修改lt为[1,2,3,4]的是

    A.lt+=4

    B.lt.append(4)

    C.lt.insert(3,4)

    D.lt.insert(-1,4)


    lt.append(4);lt.insert(3,4)

  • 第4题:

    若有运算符:>;、一、<;<;、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。

    A.%、sizeof、>;、<;<;、=

    B.sizeof、%、>;、一、<;<;

    C.sizeof、<;<;、>;、%、=

    D.sizeof、%、<;<;、>;、=


    正确答案:D
    主要考查运算符的优先级。sizeof的优先级最高,其次是%<<、>,优先级最低的是“=”。

  • 第5题:

    设有一列表lt,实现下列功能: 判断lt中是否包含数字0 向lt新增数字0 返回数字0所在lt中的索引 lt的长度 lt中最大元素 清空lt


    错误

  • 第6题:

    已知lt=[1,2,3],下面表达式能够修改lt为[1,2,3,4]的是

    A.lt+=4

    B.lt.append(4)

    C.lt.insert(3,4)

    D.lt.insert(-1,4)


    s += "you";