等价类划分法是一种黑盒测试方法,它将输入域划分为等价类,每个等价类代表一组相似的输入,以便测试用例能够覆盖每个等价类至少一次。在这个程序中,我们可以将输入域划分为以下等价类:
等价类1:X<=3,这个等价类代表不满足条件的情况,即X小于等于3。
等价类2:3
=10,这个等价类代表不满足条件的情况,即X大于等于10。
因此,我们需要至少设计一个测试用例来覆盖每个等价类。例如:
测试用例1:X=2,属于等价类1。
测试用例2:X=5,属于等价类2。
测试用例3:X=12,属于等价类3。
当我们使用这些测试用例进行测试时,可以覆盖输入域中的每个等价类,以确保程序的正确性。
gets(a) 输入字符串;
a[i] 代表第i个字符;
word_num 代表单词个数;
in_word 为控制变量与a[i]=' '(空格)联系;
第一步:输入字符串;
第二步:初始化 word_num=0;in_word==0;
第三步:进入字符循环 for(i=0;a[i];i++)
第四步:进入判断条件 if(a[i]==' ') (37);
else if(in_word==0)
当i=0时,单词首字母不为空格字符,不满足if的判断条件,此时in_word=0;满足else if语句的判断条件,执行语句(38),这时word_num=1;in_word=1;接着执行第二次循环,即i=1,如果a[1]不等于空格,则接着执行第三次循环,直到第i次循环时,第i个字符a[i]=' '(空格)时,则执行语句(37),即in_word=0,接着执行else if语句,此时word_num=2;in_word=1;然后周而复始的判断执行执行;
简单的说就是遇见单词的首字母时,word_num加1
建议楼主最好列表观察,这也是分析代码算法的方法,尤其是循环过程可以更清晰的看出word_num和in_word的变化过程。
如果对你有所帮助,请记得采纳最佳答案,谢谢!
while(t=0)实际上是t=0,然后while(t)。对于有些编程语言,while()里面本来应该是返回bool型的表达式,而有些编程语言中把0当成false,非0当成true,比如你可以用while(true),也可以用while(1)。while(t=0)实际上就是while(false)。
10、阅读下面的程序,指出程序能实现的功能是什么?对每条指令加注释,程序执行后,R0、R7、A、30H单元的内容是什么?
CLR A
MOV R0,#30H
MOV R7,#16
LP: XCH A,@R0
INC R0
DJNZ R7,LP
RET
功能是把从30H开始的15个RAM单元的内容向高字节移动一个字节,30H清零。
执行后R0=40H;R7=0H;A=原3FH单元中的内容;30H=0H。
9、下述程序执行后SP=?、A=?、B=?,解释每一条指令的作用。
ORG 1000H ;
MOV SP,#60H
MOV A,#30H
LCALL 1200H;SP=62H
ADD A,#10H ;A=40H
MOV B, A;B=40H
SWAP A;对A进行半字节交换,A=04H
HERE: SJMP HERE
ORG 1200H
MOV DPTR,#100AH
PUSH DPL
PUSH DPH
RET
执行后:SP=62H;A=04H;B=40H
1 #include <stdioh>
2 main()
3 { float s[5];
4 int I,sz=0;
5 for(I=0;I<5;I++)
6 scanf("%d",s+I);
7 for(I=0;I<5;I++)
8 sz+=s[I];
9 printf("\n%f",(float)sz);
10 }
A) 没有错误
B) 第4行错误
C) 第6行错误
D) 第9行错误
C s数组是实型,不能用整型输入
下列合法的数组定义是( )。
A) int a[]="string";
B) int a[5]={0,1,2,3,4,5};
C) char a="string";
D) char a[]={0,1,2,3,4,5};
D Aa[]是整形不对 B有6个元素 C若是char a[]="string"; 就对了
以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。
#include <stdioh>
main()
{
int a[10],i=0;
while(i<10)
scanf("%d",______);
}
A) a+(i++)
B) &a[i+1]
C) a+i
D) &a[i++]
D AC显然不对 B没有输入a[0]的值
设有:
static char str[]="Beijing";
则执行:
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为( )。
A) 5
B) 7
C) 12
D) 14
A strcpy为字符串拷贝函数 strlen为字符串统计函数
阅读下面的程序
main()
{
inn[2],I,j,k;
for(I=0;I<2;I++)
n[I]=0;
k=2;
for(I=0;I<k;I++)
for(j=0;j<k;j++)
n[j]=n[I]+1;
printf("%d\n",n[k]);
}
上面程序的输出结果是( )。
A) 不确定的值
B) 3
C) 2
D) 1
题有问题
for(I=0;I<2;I++)
n[I]=0;
初始化n[0],n[1]为0
4次循环
for(I=0;I<k;I++)
for(j=0;j<k;j++)
n[j]=n[I]+1;
得n[0]=3,n[1]=4执行
printf("%d\n",n[2]); n[2]本身就不对,越界了
定义如下变量和数组:
int I;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是( )。For(I=0;I<3;I++)
printf("%d ",x[I][2-I]);
A) 1 5 9
B) 1 4 7
C) 3 5 7
D) 3 6 9
A I=0输出(0)(2)=3,I=1输出X(1)(1)=5,I=2输出X(2)(0)=7
若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
则数值为4的表达式是( )。
A) a[g-c]
B) a[4]
C) a['d'-'c']
D) a['d'-c]
D A是不确定的值,B得5,C得2
Printf("%d\n",strlen("\t\"\065\xff\n));
A) 5
B) 14
C) 8
D) 输出项不合法,无正常输出
A 有5个逃逸字元
\t 水平制表符Tab
\" 双引号
\065 以8进制表示的5
\xff 以16进制表示的无名字符。打印出来显示为占两个字符位的空格
\n 换行符
若有以下定义和语句:
char s[10];
s="abcd";
printf("%s\n",s);
则输出的结果是( )。
A) 输出abcd
B) 输出a
C) 输出abcd
D) 编译不通过
D 字符串不能负值给地址应为s[]="abcd";
下述程序输出的结果是( )。
#include <stdioh>
main()
{
char ch[7]={"65ab21"};
int I,s=0;
for(I=0;ch[I]>='0'&&ch[I]<='9';I+=2)
s=10s+ch[I]-'0';
printf("%d\n",s);
}
A) 12ba56
B) 6521
C) 6
D) 62
C 第一次ch[0]=6第二次ch[2]=a跳出 s=6
下述函数引用中,( )是含有错误的。其中s的定义如下:
char s[10];
A) scanf("%10s",s);
B) printf("%5s",s);
C) puts(s+3);
D) gets(s);
C 若字符串s[10]只有一个字符 如a \0,s+3指向的s[3]未分配内存
定义如下数组s:
char s[40];
若准备将字符串“This is a string”记录下来,( )是错误的输入语句。
A) gets(s+2);
B) scanf("%20s",s);
C) for(I=0;I<17;I++)
S[I]=getchar();
D) while((c=getchar())!='\n')
s[I++]=c;
C 只是输入This is a string没有输入\n
这是一个乘法表,也是一个矩阵。
外层循环,i 从 1 开始到 9
内层循环,对于每个 i,有一个 j 从 1 到 9,分别输出 i 1, i 2, i 9
内层循环结束后,输出一个换行,继续对下一个 i 进行同样的 *** 作
最后输出一个九行九列的表格,第 i 行 第 j 列的值就是 i j:
以上就是关于使用等价类划分法对下面程序代码进行测试if(X>3&&X<10){语句}请写出划分的几个等价类全部的内容,包括:使用等价类划分法对下面程序代码进行测试if(X>3&&X<10){语句}请写出划分的几个等价类、C语言程序题补充题、对于下面的程序段, t=1 while(t=0) {;}中的循环控制表达式的值是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)