阅读以下程序,采用逻辑覆盖进行测试,下列测试用例(a,b,c)的输入值,可以达到条件覆盖的是______。Int func(int a, b, c){Int k=1:If((a>O)|| (b<0)||(a+c>0))k=k+a;Else k=k+b:If(c>0)k=k+c:Return k'}A) (1,1,1),(-1,1,1)B) (1,1,1),(-1,-1,-1)C) (1,1,-1),(1,1,1)D) (1,1,-1),(-1,1,1)A.B.C.D.

题目

阅读以下程序,采用逻辑覆盖进行测试,下列测试用例(a,b,c)的输入值,可以达到条件覆盖的是______。

Int func(int a, b, c)

{

Int k=1:

If((a>O)|| (b<0)||(a+c>0))k=k+a;

Else k=k+b:

If(c>0)k=k+c:

Return k'

}

A) (1,1,1),(-1,1,1)

B) (1,1,1),(-1,-1,-1)

C) (1,1,-1),(1,1,1)

D) (1,1,-1),(-1,1,1)

A.

B.

C.

D.


相似考题
更多“阅读以下程序,采用逻辑覆盖进行测试,下列测试用例(a,b,c)的输入值,可以达到条件覆盖的是______。Int func(int a, b, c){Int k=1:If((a>O)|| (b<0)||(a+c>0))k=k+a;Else k=k+b:If(c>0)k=k+c:Return k'}A) (1,1,1),(-1,1,1)B) (1,1,1),(-1,-1,-1)C) (1,1,-1),(1,1,1)D) (1,1,-1),(-1,1,1)A.B.C.D.”相关问题
  • 第1题:

    下面语句中不能定义一个数组,元素值依次分别为1,1,1,0,0的是______。

    A.static int a[5]={1,1,1,0,0};

    B.static int a[5]={1,1,1};

    C.static int a[]={1,1,1,0,0};

    D.static int a[5]={1*2,0*3};


    正确答案:D
    解析:不可能用表达式的方式来给数组元素一一赋值。

  • 第2题:

    下列函数的运行结果是 main ( ) { int i=2,p; int j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b)c=1; else if(a==b)c=0; else c=-1; return(c);}

    A.-1

    B.1

    C.2

    D.编译出错,无法运行


    正确答案:A
    解析:函数调用相当于f(2,3),程序运算应得结果为“-1”。

  • 第3题:

    有以下程序段: int k=0,a=1,b=2,c=3; k=ac?c:k; 执行该程序段后,k的值是

    有以下程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a; k=k>c?c:k; 执行该程序段后,k的值是 ______。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:三目运算符的一般形式为(表达式1)?(表达式2):(表达式3),当(表达式1)值为真时,(表达式2)的值为整个表达式的值;当(表达式1)值为假时,(表达式3)的值为整个表达式的值。题中执行表达式“k=ab?b:a”后,k=2,将此值代入后一个表达式“k=k>c?c:k,由于“k>c”值为假,故k的值还等于原来k的值,即2。

  • 第4题:

    下列程序的输出结果是()。includeint f(int a,int b);main(){int i=2,p,j,k; j=i;k=++i

    下列程序的输出结果是( )。 #include <stdio.h> int f(int a,int b); main() { int i=2,p,j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b)c=1; else if(a= =b) c=0; else c=-1; return(c); }

    A.-1

    B.1

    C.2

    D.编译出错,无法运行


    正确答案:A
    解析:函数调用相当于f(2,3),程序运算结果为-1。

  • 第5题:

    以下程序的运行结果是【 】。

    include<iostream.h>

    func(int a,int b)

    {

    statlC int m=0,i=2;

    i+=m+1;

    m=i+a+b;

    return m;

    }

    void main()

    {int k=4,m=1,p;

    p=func(k,m);cout<<p<<”,”;

    p=func(k,m);cout<<p<<endl;

    }


    正确答案:817
    8,17

  • 第6题:

    有下列程序段: int k=0,a=1,b=2,c=3; k=aC?C:k; 执行该程序段后,k的值是()。A.3B.2C.1

    有下列程序段:

    int k=0,a=1,b=2,c=3;

    k=a<b?b:a;k=k>C?C:k;

    执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:因为ab成立,所以条件表达式ab?b:a的值等于b的值等于2,因此变量k的值等于2。又因为 k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

  • 第7题:

    有以下程序:includemain(){int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

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

    A.0,0

    B.0,1

    C.1,0

    D.1,1


    正确答案:C
    解析:本题考查逻辑或运算。因为b>a为真,即n=1,则m不需再计算,保持原值,因此k值为1,m值仍为0。

  • 第8题:

    设有如下函数定义

    int fun(int k)

    {if(k<1) return 0:

    else if(k==1) return 1:

    else return fun(k一1)+1:

    }

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:函数fun总共被调用了3次,即fun(3)、fun(2)和fun(13)

  • 第9题:

    有以下程序: main() { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a>b); printf("%d,%d\n"m,k,m); } 程序运行后的输出结果是( )。

    A.0,0

    B.O,1

    C.1,0

    D.1,1


    正确答案:C
    解析:在||运算中当其左边的表达式为真,右边的表达式将不再执行。主函数中,||左边的表达式k=(n=b>a),2>1为真,所以n被赋值为1,接着k被赋值1,即||运算符左边表达式为真,此时不再计算||右边的表达式,因此m的值没有被改变仍为0,最后的输出结果1,0。所以,4个选项中选项C符合题意。

  • 第10题:

    系统中一个程序结构如图5所示:

    该程序有4条不同路径,分别为L1:a→c→e;L2:a→b→d;L3:a→b→e;L4:a→c→d。小王设计了4组测试用例:

    ①【(1,0,3),(1,0,4)】覆盖abe;【(2,1,1),(2,1,2)】覆盖abe;

    ②【(2,1,1),(2,1,2)】覆盖abe;【(3,0,3),(3,0,1)】覆盖acd;

    ③【(2,0,4),(2,0,3)】覆盖ace;【(1,0,3),(1,0,4)】覆盖abe;

    【(2,1,1),(2,1,2)】覆盖abe;【(1,l,1),(1,1,1)】覆盖abd;

    ④【(2,0,4),(2,0,3)】覆盖ace;【(1,1,1),(1,1,1)】覆盖abd;

    【(1,1,2),(1,1,3)】覆盖abe;【(3,0,3),(3,0,1)】覆盖acd;

    这4组测试用例中 (5) 属于判定覆盖; (6) 属于条件覆盖; (7) 属于路径覆盖; (8) 属于条件组合覆盖(注:该题测试用例格式为【(A,B,X)输入,(A,B,X)输出】)。


    正确答案:(5)② (6)① (7)④ (8)③
    (5)② (6)① (7)④ (8)③ 解析:本题考查电子商务系统测试的概念、规划、实施和有关白盒测试覆盖标准。
    软件测试的一般过程是先进行各模块的单元测试,在此基础上将各单元结合起来进行集成测试,发现与接口有关的问题;然后,进行确认测试验证软件的功能和性能及其他特性是否与用户的要求一致。在集成测试和确认测试通过后进行系统测试,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。最后,在用户环境中对可交付的版本进行验收测试。
    单元测试中需要编写驱动模块和桩模块来驱动和支持测试。
    在白盒测试中,下列几种常用覆盖标准是必须要掌握的基本概念:
    语句覆盖是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。判定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。
    条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。
    条件组合覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的所有可能的条件取值组合至少执行一次。
    路径覆盖:设计足够多的测试用例,运行所测程序,使程序中每一条路径至少都执行一次。

  • 第11题:

    在第15题的程序测试中,若测试采用测试用例:(a,b,c)=(1,1,-1)、(1,1,1),(-1,1,1)、(0,1,1),那么,可以实现的逻辑覆盖是______。

    A.条件覆盖

    B.判定覆盖

    C.路径覆盖

    D.条件组合覆盖


    正确答案:B

  • 第12题:

    求向量组a1=(1,1,1,k),a2=(1,1,k,1),a3=(1,2,1,1)的秩和一个极大无关组


    答案:
    解析:

  • 第13题:

    系统中一个程序的结构如图14-7所示:

    该程序有4条不同路径,分别为L1:a→c→e;L2→a→b→d;L3:a→b→e;L4:a→c→d。小王设计了4组测试用例:

    ①【(1,0,3),(1,0,4)】覆盖abe;【(2,1,1),(2,1,2)】覆盖abe:

    ②【(2,1,1),(2,1,2)】覆盖abe;【(3,0,3),(3,0,1)】覆盖acd;

    ③【(2,0,4),(2,0,3)】覆盖ace;【(1,0,3),(1,0,4)】覆盖abe;

    【(2,1,1),(2,1,2)】覆盖abe;【(1,1,1),(1,1,1)】覆盖abd;

    ④【(2,0,4),(2,0,3)】覆盖ace;【(1,1,1),(1,1,1)】覆盖abd;

    【(1,1,2),(1,1,3)】覆盖abe;【(3,0,3),(3,0,1)】覆盖acd;

    这4组测试用例中(5)属于判定覆盖:(6)属于条件覆盖;(7)属于路径覆盖;(8)属于条件组合覆盖。(注:该题测试用例格式为【(A,B,X)输入,(A, B,X)输出】)。


    正确答案:(5)② (6)① (7)④ (8)③
    (5)② (6)① (7)④ (8)③ 解析:白盒测试是一种测试用例设计方法,“盒子”指的是被测试的软件,白盒指的是“盒子”是可视的,测试人员清楚“盒子”的内容及其运作方式。白盒测试作为测试人员常用的一种测试方法,越来越受到重视。白盒测试并不是简单地按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。在这些方法中,语句覆盖是最基本的结构覆盖要求,它要求设计足够多的测试用例,以使程序中每条语句至少被执行一次:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,以使程序中每个判定至少有一次为真值,有一次为假值,即程序中的每个分支至少执行一次;判定/条件覆盖要求设计足够多的测试用例,以使判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

  • 第14题:

    有以下程序段:int k=0, a=1, b=2, c=3;k=ac? c:k;执行该程序后,k的值是______。A.3B

    有以下程序段: int k=0, a=1, b=2, c=3; k=a<b? b:a; k=k>c? c:k; 执行该程序后,k的值是______。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:第一个表达式得到k=2,对于第二个表达式,因为k=23,k仍然赋值为k。因此最后k值为2。

  • 第15题:

    有以下程序 include int a=1; int f(int c) { stati

    有以下程序 #include <stdio.h> int a=1; int f(int c) { static int a=2; c=c+1; return (a++) + c; } main() { int i, k=0; for(i=0;i<2;i++) { int a=3; k += f(a); k +=a; printf("%d\n",k); }

    A.14

    B.15

    C.16

    D.17


    正确答案:A
    解析:静态局部变量的作用域跟一般局部变量相同,都是从声明处开始到声明所在函数或语句块结束为止。但静态局部变量的生存周期却是从第1次执行到该静态局部变量的声明语句时起,直到程序结束。而—般局部变量的生存周期到离开它的作用域时就结束了。本题的f()函数中static int a=2;语句就声明了一个静态局部变量a,并初始化为2。主函数中,通过一个for循环连着调用了2次f()函数。两次调用形参c都为3,f()函数中让c增1变为4,然后输出(a++) +c,第1次调用a为2,所以输出结果为3+4=6,而第2次调用a被上次调用时的++运算符增1,所以为3,输出结果为3+4=7。所以主函数for循环结束后,k的值是13,下面一条k+=a;语句中的a是全局变量a,值为1。故最终输出结果是14,应该选择 A。

  • 第16题:

    请阅读以下程序:includevoid fun(int s[]){static int j=0; dos[j]+=s[j+1]; while(++

    请阅读以下程序: #include<stdio.h> void fun(int s[]) { static int j=0; do s[j]+=s[j+1]; while(++j<2);} main() { int k,a[10]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)printf("%d",a[k]);} 上面程序的输出是

    A.34756

    B.23445

    C.35745

    D.12345


    正确答案:C
    解析:本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后,a[0]=3,a[1]=5。第二次执行fun(a)时,因为static变量j保存着上次执行时的值为2,所以a[2]=7,最后数组a={3,5,7,4,5},所以正确答案为C)。

  • 第17题:

    有下列程序段:int k=0,a=1,b=2,c=3;k=ac?C:k;执行该程序段后,k的值是()。A.3B.2C.1D.0

    有下列程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a;k=k>c?C:k; 执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析: 因为ab成立,所以条件表达式ab?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

  • 第18题:

    有以下程序:includevoid main(){ int x=5,y=2; cout<

    有以下程序: #include<iostream.h> void main() { int x=5,y=2; cout<<!(y==x/2)<<","; cout<<y!=x%3)<<","; cout<<(x>0&&y<0)<<","; cout<<(x!=y‖x>=y)<<endl: } 程序执行后的输出结果是( )

    A.0,0,0,1

    B.1,1,1 1

    C.0,0, 1,1

    D.1,1,0,0


    正确答案:A

  • 第19题:

    有以下程序段:int k=0,a=1,b=2,c=3;k=ac?c:K;执行该程序段后,k的值是()。A.3B.2C.1D.0

    有以下程序段: int k=0,a=1,b=2,c=3; k=a<b? b:a; k=k>c? c:K; 执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:由于ab成立,所以表达式ab?b:a取b的值2,得到k=2;由于k>c不成立,所以表达式k>c?c:k取k的值2,故k的值为2。

  • 第20题:

    下面的函数是完成1~n的累加,请填空。a(int k){ if(k <=0) printf("error\n"); if(k == 1) return 1; else;}


    正确答案:return(a(k-1)+k)
    在本题中,函数a的功能是完成1~n的累加。在本题的程序中,a函数带有一个形参k。然后执行第一条条件判断语句,结果为真,说明k的值小于1,不是题目所要求的,输出错误提示。否则,程序执行第二条条件判断语句,结果为真,则返回1,否则返回需要填空的部分。从题目要求我们可以知道,函数a的功能是求1~k的累加,而从程序中我们可以看出,填空的部分返回的是k的值大于1的情况,这时,我们可以通过递归调用的方式来求解,这样不仅可以将问题细化,即k的值逐步减少,而且还可以实现1~k的累加。因此,本空需要填写的内容是return(a(k-1)+k)。

  • 第21题:

    有以下程序段:int k=0,a=1,b=2,c=3;k=ac ? c:k;执行该程序段后,k的值是()。A.3B.2C

    有以下程序段: int k=0,a=1,b=2,c=3; k=a<b ? b:a; k=k>c ? c:k; 执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:本题中因为ab为“真”,所以第1个条件表达式的值为b的值2,所以k=2。然后又因为k>c为“假”,所以第2个表达式的值为k的值2。所以本题应该选择B。

  • 第22题:

    在第15题的程序测试中,若测试只采用这样测试用例:(a,b,c)=(1,1,-1)、(-1,1,1),那么,没有覆盖或考虑到的情况有______。

    A.不满足条件组合覆盖

    B.b<0的情况

    C.既执行语句k=k+a,又执行k=k+c

    D.以上全部


    正确答案:D

  • 第23题:

    阅读下列程序:

    采用逻辑覆盖进行测试,下列测试用例(a,b,c)的输入值,可以达到条件覆盖的是______。

    A.(a,b,c)=(1,1,1)、(-1,1,1)

    B.(a,b,c)=(1,1,1)、(-1,-1,-1)

    C.(a,b,c)=(1,1,-1)、(1,1,1)

    D.(a,b,c)=(1,1,-1)、(-1,1,1)


    正确答案:B