【C程序】
【问题1】(6分)
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】(9分)
请画出上述程序的控制流图,并计算其环路复杂度V(G)。
【问题3】(5分)
请给出问题2中控制流图的线性无关路径。
第1题
【C程序】
【问题1】(6分)
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】(9分)
请画出上述程序的控制流图,并计算其环路复杂度V(G)。
【问题3】(5分)
请给出问题2中控制流图的线性无关路径。
第2题
【问题1】(3分) 请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。 【问题2】(7分) 请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。 【问题3】(5分) 请给出问题2中控制流图的线性无关路径。
第3题
【说明】
某学生信息管理系统的网站后台管理主页如图4-1所示。
【问题1】(7分) 以下是该管理系统后台管理主页部分的html代码,请根据图4-1,从以下备选答案内为程序中(1)~(7)处空缺部分选择正确答案 <html> <head> <title> (1) <title> </head> <% if (2) ("admin")="" then (3) .Redirect ("login.asp") (4) %> <frameset (5) ="71,*" framespacing="0" border="O" frameborder="O"> <frame (6) ="heaD.asp" scrolling="no" name="head" noresize> <frameset (7) ="152,*"> <frame src="menu.asp"> <frame src="main.asp" name="main" scrolling="yes" noresize> </frameset> </frameset> …… </html> (1)~(7)的备选答案: A.cols B.else C.Rows n D.response E. Src F. session G. 设为首页 H. 后台管理 【问题2】(8分) 以下是该管理系统学生信息录入页面部分的html代码,请根据图4-1,从以下备选答案内为程序中(8)~(15)处空缺部分选择正确答案。 <html> …… <script language="JavaScript"> (8) check() { if(formA. (9) .value=="") { alert("请输入学生姓名!"); formA.name_xs.focus(); retum (10) ; } …… retum (11) ; } </script> …… <form action=" " method="post" (12) ="return check();"> <table"> <tr> <td heigh=21" colspan="2">[<strong>添加学生信息</strong>] <font color="OOOOFF"></font></td> </tr> <tr> <td width="19%" height="20">学生姓名:</td> <td width="81%"><input name="name_xs" type=" (13) "id="name_cnxdb" onkeydown="next()"></td> </tr> …… <tr align="center"> <td><input type=" (14) " value="增加"> <input type=" (15) "value="重写"></td> …… <html> (8)~(15)的备选答案: A.false B.Function C.name_xs D.onsubmit E. true F. reset G. submit H. text
第4题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。各售票网点使用相同的售票程序。假设售票程序中用到的伪指令如下表5-1所示:
假设某售票网点一次售出a张航班A 的机票,则售票程序的伪指令序列为: R (A, x); W (A, x – a)。根据上述业务及规则,完成下列问题:
【问题1】(5 分)
若两个售票网点同时销售航班A的机票,在数据库服务器端可能出现如下的调度:
A:R1(A, x),R2(A, x),W1(A, x – 1),W2(A, x – 2);
B:R1(A, x),R2(A, x),W2(A, x – 2),W1(A, x – 1);
C:R1(A, x),W1(A, x – 1),R2(A, x),W2(A, x – 2);
其中Ri(A, x),Wi(A, x)分别表示第i个销售网点的读写操作,其余类同。
假设当前航班 A 剩余 10 张机票,分析上述三个调度各自执行完后的剩余票数,并指出错误的调度及产生错误的原因。
【问题2】(6 分)
(1)判定事务并发执行正确性的准则是什么?如何保证并发事务正确地执行?
(2) 引入相应的加解锁指令,重写售票程序的伪指令序列,以保证正确的并发调度。
【问题3】(4 分)
下面是用E-SQL实现的机票销售程序的一部分,请补全空缺处的代码。
EXEC SQL SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
EXEC SQL SELECT balance INTO :x FROM tickets WHERE flight = ‘A’ ;
printf("航班A 当前剩余机票数为:%d\n请输入购票数:", x );
scanf("%d", &a);
x = x – a ;
if (x<0)
EXEC SQL ROLLBACK WORK;
printf("票数不够,购票失败!");
else{
EXEC SQL UPDATE tickets SET (a) ;
if (SQLCA.sqlcode <> SUCCESS)
EXEC SQL ROLLBACK WORK;
else
(b) ;
}
第5题
【问题1】(5分) 基于 ASP.NET 开发 B/S 系统肘,考虑系统的灵活性、可伸缩性,可扩展性等,一般都采用层次体系结构。常见的为三层结构,分别是页面表示层、( 1 ),( 2 )。如果要实现商品信息的展示,该功能属于( 3 )层:数据的增、删、改、查等与数据库直接交互的操作属于( 4 )的功能。基于层次结构的WEB系统( 5 )软件耦合度。 (5) 备选答案: A. 增加 B. 降低 【问题 2】(5分) 在 ASP.NET 应用程序连接 SQL Server 数据库时,一般是要将连接字符串写到项目的 Web.config 文件中。 Web.config 文件是一个 XML 文本文件,它用来储存 ASP.NETWeb 应用程序的配置信息。假设要连接的 SQL Server 数据库服务器 F 地址为“ 192.168.1.4”, 服务器名为 “DataServer",服务器的身份认证采用SQL Server 与 Windows 混合验证模式, 数据库名为 "Business ",数据库的登录用户名为"sa ",密码为 "alb2c3",在Web.config 文件的 appSettings 标记中设置数据库连接如下: <add ( 6 ) ="ConnectionString" value="server=(7);database=( 8 );uid=( 9);pwd=( 10 );"/> 【问题 3】(5分) 假设某客户已经确认下单并需要结算,此时应该将该客户的订单信息展示,并统计客户购买商品的种类数、合计总金额,可使用 GridView 控件实现该功能。假定 GridView控件 ID 为 “ gridView ”,绑定的订单数据中"金额"是GrdiView 控件的第 6 列(列从 0 开始),现要在 GridView 控件的 Footer 位置显示统计合计的信息,其中第 0 列显示文字 "合计:"、第 1 列显示商品的种类数、在"金额"列显示金额合计数,根据以上描述,完成以下程序。 Decimal sum = 0; protected void gridView_RowDataBound (object sender ,GridViewRowEventArgs e) { if (e. Row. RowType == DataControlRowType .(11) ) { if (e.Row.Cells[6].Text != "" && e.Row.Cells[6].Text != null && e.Row.Cells[6] .Text != " ") sum+= Convert.ToDecimal(e.Row.Cells[6] .Text); } else if (e.Row.RowType == DataControlRowType. ( 12 ) ) { e .Row. Cells [0] .Text = "( 13 )"; e.Row.Cells[l] .Text = this.gridView.Rows.( 14 ).ToString (); e.Row.Cells[( 15 )] .Text = sum.ToString(); } }
第6题
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现
程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
【问题1] (6分)
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2] (10分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3](4分)
请给出问题2中控制流图的线性无关路径。
第7题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char * filename, unsigned long key){
FILE* input = NULL,*output = NULL; //1
char *outfilename = NULL;
int len = strlen(filename);
unsigned charbuffer;
if( (filename[len-2] == ‘.’) && (filename[len-l]== ‘c’)){ //2,3
outfilename = new char[len+l]; //4
strcpy(outfilename,filename); outfilename[len-2] = ‘\0’;
}
else{ //5
outfilename = new char[len+5];
strcpy(outfilename , filename);
strncat(outfilename,”.c”,2);
}
input = fopen(filename,”rb”);
if( input = NULL){ //6
cout<<"Error opening file " << filename<<endl ; //7
delete [] outfilename;
outfilename = NULL;
return 1;
}
output = fopen(outfilename,”&39;wbf”);
if( utput =NULL) { //8
cout<<"Error creating output file ”<< outfilename <<endl; //9
delete []outfilename;
outfilename =NULL;
return 1;
}
while(! feof(input) ){ //10
if( fread(&buffer,sizeof(unsigned char), 1,input) != 1 ){ //11
if( ! feof(input)){ //12
delete [] outfilename; //13
outfllename = NULL;
fclose(input);
fclose(output);
return 1;
}
}
else{ //14
buffer A= key;
fwrite(&buffer,sizeof(unsigned char), 1,output);
}
}
fclose(input);
fclose(output);
delete []outfllename;
return 0;
}
【问题1】(6分)
请给出满足100%DC (判定覆盖)所需的逻辑条件。
【问题2】(10分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】(4分)
请给出问题2中控制流图的线性无关路径。
第8题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
struct _ProtobufCIntRange{
int start_value;
unsigned orig_index;
};
typedef struct _ProtobufCIntRange ProtobufCIntRange;
int int_range_lookup (unsigned n_ranges, const ProtobufCIntRange *ranges, int value){
unsigned start,n; ∥1
start=0;
n=n_ranges;
while(n>1){ //2
unsigned mid= start+ n/2;
if(value< ranges[mid].start_value){ //3
n=mid-start; //4
}
else if(value>=ranges[mid].start value+
(int)(ranges[mid+1].orig_index-ranges[mid].orig_index){ //5
unsigned new_start= mid+1; //6
n=start+n-new_start,
start = new_start;
}
else //7
return (value - ranges[mid].start_value)+ ranges[mid],orig_index;
}
if(n>0){ //8
unsigned start_orig_index= ranges[start].orig_index;
unsigned range_size=ranges[start+1].orig_index - start_orig_index;
if (ranges[start].start_value<=value
&& value< (int)(ranges[start].start_value+ range_size》 //9, 10
return (value - ranges[start].start_value)+start_orig_index; //11
}
retum -1, //12
} //13
【问题1】(5分)
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】 (7分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】(3分)
请给出【问题2】中控制流图的线性无关路径。
第9题
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
操作系统主要功能之一是处理机管理,处理机管理主要是实现处理机扩充,以支持多个进程的并行运行,提高计算机的计算效率。
进程是动态的概念,通常称进程为程序的一次执行。进程的主体部分是程序,包括程序和数据。进程在执行期间具备确定的状态。
线程是进程中某个单独执行的控制流,也称为轻量进程。
【问题1】(3分)
简述抢占(剥夺)式调度算法和非抢占式调度算法的特点。
【问题2】(3分)
请从下列叙述中选择出正确的叙述并将其序号填写在答题纸上。(该题为多选题)
A.在多进程多线程系统中,处理机调度的最小单位是进程
B.线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度的实体
C.一个线程可以属于多个进程
D.进程处于可执行状态时,它的线程可以被调度执行,处于阻塞状态时,其所有线程均不能执行
E.进程的多个线程共享进程的地址空间
【问题3】(9分)
进程状态之间切换关系如图3-1所示,具体说明进程三种状态的特点,并将三种状态之间的切换条件(a)至(d)填写在答题纸对应栏目中。
第10题
阅读下列说明,回答问题1 至问题3,将解答填入答题纸的对应栏内。
[说明]
基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执
行一次。以下代码由C++语言书写,请按要求回答问题。
void ReadPara( CString temp )
{
if ( temp == ">=" )
m_oper.SetCurSel( 0 );
else
{
if ( temp == ">" )
m_oper.SetCurSel( 1 );
else
{
if ( temp == "==" )
m_oper.SetCurSel( 2 );
else
{
if ( temp == "<=" )
m_oper.SetCurSel( 3 );
else
{
if ( temp == "<" )
m_oper.SetCurSel( 4 );
else
m_oper.SetCurSel( 5 );
}
}
}
}
return;
}
[问题1](6 分)
请画出以上代码的控制流图。
[问题2](3 分)
请计算上述控制流图的环路复杂度 V(G)。
[问题3](6 分)
请使用基本路径测试法为变量 temp 设计测试用例,使之满足基本路径覆盖要求。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!