文档介绍:
计算机软件基础(二)
1.设有一个要被测试的源程序如下:
float ex ample (A,B,X)
float A,B,X;
{
if(A>1&&B==0)
X=X/A;
if(A==2||X>1)
X=X+1;
return X;
}
试设计测试用例,满足条件覆盖准则。
2. 为一个医院的医务管理系统设计一个实体模型,这一系统涉及三个实体集:DOCTOR(医生)、PATIENT(病人)和TREATMENT(处方)。
DOCTOR具有属性:DOC#(医生编号),DNAME(医生姓名)等。
PATIENT具有属性:PAT#(病人号),PNAME(病人名)等。
TREATMENT具有属性:TRE#(处方号),TDATE(处方日期)等。
一个医生负责诊断若干病人,并为病人开处方,病人在住院期间应由一个医生作为其主治医生,并由该医生开处方。一个处方只针对一个病人开出,但一个病人可以有多个处方。要求在实体模型中画出实体、实体间的联系,实体的属性及联系的类型。
3.顺序存储的线性表为v是长度为M的一维数组,线性表的表长保存在变量n之中,函数deletelist是删除第i个数据元素,有关定义用C语言表示如下:
#define M 1000
int v[M];
int n;
int deletelist(int i)
请给出完成删除第i个数据元素的函数的完整代码。
4.设数据元素的类型是整型的,循环队列的出队算法的部分描述如下:
#define M 100
int q[M],front,rear;
int delq(int x)
{if (front ==rear)
{printf(“empty queuer!\n”);
return(-1);
}
}
请完成循环队列出队的完整算法。
5.利用以下代码完成顺序栈的进栈算法。
#define M 100
int v[M],top;
int push( int x)
{if (top>=M-1)
{printf(“stack is full!\n”);
return(-1);
}
}
6.利用以下代码完成完成冒泡排序的算法。
#define M 500
typedef struct {int key;char info;} NODE;
NODE r[M];
Bubblersort(NODE r[],int n)
{int i,j,k;
j=n-1
k=1;
while((j>0)&&(k>0))
{k=0;
for(i=1;i<=j;i++)
if (r[i+1].key
k=1;
j--;
}
}
7.已知关系R如下表:
A
B
C
1
1
2
1
1
2
1
2
1
S如下表:
A
B
C
1
2
2
1
2
1
2
1
2
计算笛卡尔积R×S。
8.已知P操作P(S)如下:
(1)将S值减去1;
(2)若S≥0,当前进程继续运行;
(3)若S<0,把当前进程置于等待态,并将它插入到该信号量的等待队列之中。
请写出对应的V操作V(S)。
9.设数据元素的类型是整型的,循环队列的进队算法的部分描述如下:
#define M 100
int q[M],front,rear;
int addq(int x)
{if ((rear+1)%M==front)
{printf(“full queuer!\n”);
return(-1);
}
}
请完成循环队列的完整算法。
10.利用以下代码完成顺序栈的退栈算法。
#define M 100
int v[M],top;
int pop( )
{int y;
if (top==0)
{printf(“stack is empty!\n”);
return(-1);
}
}
11.利用以下代码完成二分查找算法。
#define M 500
typedef struct {int key;char info;} NODE;
NODE r[M];
int binsrch(int k,int n)
{int low,high,mid;
low=1;high=n;
while (low<=high)
{mid=(low+high)/2;
}
}
12.利用以下代码完成冒泡排序的算法。
#define M 500
typedef struct {int key;char info;} NODE;
NODE r[M];
Bubblersort(NODE r[
内容来自淘豆网www.taodocs.com转载请标明出处.