【问题3】(8分)假设输入的取值范围是1000 < year < 2001,请使用基本路径测试法为变量year设
【问题3】(8分) 假设输入的取值范围是1000 < year < 2001,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。
【问题3】(8分) 假设输入的取值范围是1000 < year < 2001,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。
阅读下列说明,回答问题1至问题3。
【说明】
以下代码由C语言书写,能根据指定的年、月计算当月所含天数。
int GetMaxDay(int year, int month )
{
int maxday = 0;
if (month >= 1 && month <= 12 )
{
if (month == 2 )
{
if (year % 4 == 0 )
{
if (year % 100 == 0 )
{
if (year % 400 == 0 )
maxday = 29;
else
maxday = 28;
}
else
maxday = 29;
}
else
maxday = 28;
}
else
{
if (month == 4 || month == 6 || month == 9 || month == || )
maxday = 30;
else
maxday = 31;
}
}
return maxday; }
请画出以上代码的控制流图。
请计算上述控制流图的环路复杂度V(G)。
假设year的取值范围是1000<year<2001,请使用基本路径测试法为变量year、 month设计测试用例(写出year取值、month取值、maxday预期结果),使之满足基本路径覆盖要求。
请帮忙给出每个问题的正确答案和分析,谢谢!
阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。
[说明]
逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之。以下代码由C浯言书写,请按要求回答问题。
void cal (int n)
{
int g, s, b, q;
if((n>1000) && (n<2000) )
{
g=n % 10;
s=n % 100 / 10;
b=n / 100 % 10;
q= n / 1000;
if((q+g) =={ s + b ) )
{
printf("%-5d",n);
}
}
printf("\n");
return;
}
请找出程序中所有的逻辑判断语句。
请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。
假设n的取值范围是0<n<3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。
请帮忙给出每个问题的正确答案和分析,谢谢!
阅读下列说明,回答问题1至问题3。
【说明】
使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。
int IsLeap(int year)
{
if(year% 4==0)
{
if((year % 100==0)
{
if(year % 400==0'
leap=1;
eIse
leap=0;
}
else
leap=1;
else
leap=0;
return leap;
}
请画出以上代码的控制流图。
请计算上述控制流图的V(G)。
假设的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使之满足基本路径覆盖的要求。
请帮忙给出每个问题的正确答案和分析,谢谢!
A.-1~n-1 B.-3~3 C.-(n-3)~3 D.-(n-1)~1
A.-1~n-1
B.-3~3
C.- (n-3)~3
D.- (n-1)~1
试题二(共15分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在某嵌入式系统设计中,使用8片RAM进行64KRAM的外部存储器扩展,如图2-1所示。该CPU共有16根地址线,8根数据线,在设计中,利用CPU的作为访问控制信号,该访问控制信号低电平有效。另外,作为读写命令信号(高电平为读,低电平为写)。8片8Kx8位的RAM芯片与CPU相连,RAM芯片的片选内部为上拉电阻到电源,各个RAM芯片的片选信号和74138译码器的输出相连,译码器的地址选择端连接到CPU的A13,A14,A15地址线上。
【问题1】(8分)
根据上图所示,写出RAM0,RAM1和RAM7的地址范围(请用16进制进行表示)。
RAM0: (1)
RAM1: (2)
RAM7: (3)
若CPU操作的地址总线为A800H,结合图2-1所示的示意图,CPU访问的是哪个RAM存储器(4)。
【问题2】(4分)
如果运行时发现不论往哪片RAM写入数据后,以C000H为起始地址的存储芯片都有与其相同的数据,假设芯片与译码器可靠工作,则说明:
(1) RAM0~RAM7中(1) 的片选输入端总是处于低电平。
(2)如果有问题的存储芯片的片选输入端总是处于低电平,以下可能原因中描述不正确的是(2) 。
A.该存储芯片的CS端与存储芯片的端错连或短路
B.该存储芯片的CS端与CPU的端错连或短路
C.该存储芯片的CS端与地线错连或短路
D.该存储芯片的CS端悬空
【问题3】(3分)
根据连接图,若出现地址线A15与CPU断线,并搭接到高电平上,下面描述中正确的是()。(该题为多选题)
A.此时存储器只能寻址A15=1的地址空间
B.此时存储器只能寻址总共64K字节空间的高32K字节地址空间
C.此时访问64K字节空间的高32K字节地址空间时会错误地访问到低32K字节地址空间
D.此时访问64K字节空间的低32K字节地址空间时会错误地访问到高32K字节地址空间
A.0,-1,…,- (n-1) B.3,2,1,0,-1,…,- (n-3) C.1,0,-1,…,- (n-1) D.2,1,0,-1,…,- (n-2) A.0 B.1 C.2 D.3
试题四(共15 分)
阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答题纸的对应栏内。
【说明】
某应用中需要对100000 个整数元素进行排序,每个元素的取值在 0~5 之间。排序算法的基本思想是:对每一个元素 x,确定小于等于 x的元素个数(记为m),将 x放在输出元素序列的第m 个位置。对于元素值重复的情况,依次放入第 m-l、m-2、…个位置。例如,如果元素值小于等于4 的元素个数有 10 个,其中元素值等于 4 的元素个数有3个,则 4 应该在输出元素序列的第10 个位置、第 9 个位置和第8 个位置上。
算法具体的步骤为:
步骤1:统计每个元素值的个数。
步骤2:统计小于等于每个元素值的个数。
步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。
【C代码】
下面是该排序算法的C语言实现。
(1)常量和变量说明
R:常量,定义元素取值范围中的取值个数,如上述应用中 R值应取6i:循环变量
n:待排序元素个数
a:输入数组,长度为n
b:输出数组,长度为n
c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。
(2)函数sort
1 void sort(int n,int a[ ],intb[ ]){
2 int c[R],i;
3 for (i=0;i< (1) ;i++){
4 c[i]=0;
5 }
6 for(i=0;i<n;i++){
7 c[a[i]] = (2) ;
8 }
9 for(i=1;i<R;i++){
10 c[i]= (3) ;
11 }
12 for(i=0;i<n;i++){
13 b[c[a[i]]-1]= (4) ;
14 c[a[i]]=c[a[i] ]-1;
15 }
16 }
【问题1】(8 分)
根据说明和C代码,填充 C代码中的空缺(1)~(4)。
【问题2】(4 分)
根据C代码,函数的时间复杂度和空间复杂度分别为 (5) 和 (6) (用 O符号
表示)。
【问题3】(3 分)
根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过 100 字);
若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。
从下列的2 道试题(试题五和试题六)中任选 1 道解答。
如果解答的试题数超过 道,则题号小的 道解答有效。
已知单位反馈系统的开环传递函数
(1)绘制当K0=0→∞变化时系统根轨迹图(求出渐近线,分离点与虚轴交点);
(2)确定开环增益K的取值范围,使系统满足以下条件:
(3)确定在单位斜坡输入下系统稳态误差的最小值。
以下关于等价类划分法的叙述中,不正确的是 () 。
A.如果规定输入值a的范围为1~99,那么得到两个等价类,即有效等价类 {a|1<=a<=99|,无效等价类{a|a<1或者a>99}B.如果规定输入值s的第一个字符必须为数字,那么得到两个等价类,即 有效等价类{s|s的第一个字符是数字},无效等价类{s|s的第一个字符不是数字}C.如果规定输入值x取值为1,2,3三个数之一,那么得到4个等价类, 即有效等价类{x|x=1)、{x|x=2}、{x|x=3},无效等价类(x|x≠1,2,3}D.如果规定输入值i为奇数,那么得到两个等价类,即有效等价类{i|i是奇数}无效等价类{i|i不是奇数}