本试卷分三部分,公共部分、C++部分和JAVA部分,其中公共部分为必考部分,C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:分页式存贮管理中,页表是用来指出作业的 与 的对应关系。逻辑页号,主存块号 (顺序可交换) (4分)
2:影响局域网络的三种主要技术是____ 、 和 。传输介质、拓扑结构,访问控制方式 (顺序可交换) (6分)
3:若给定有n个元素的向量,则建立一个有序单向链表的时间复杂性的量级是( C )(3分)
4:设单链表的结点结构为(data,next),已知指针q所指结点是指针p所指结点的直接前驱,如在*q与*p之间插入结点*s,则应执行的操作为( B )(3分)
5:在一个具有n个结点的单链表中查找值为m的某结点,若查找成功,则平均比较( D )个结点。(3分)
6:面向连接和非连接的服务的特点是什么。(8分)
面向连接的服务,通信双方在进行通信之前,要事先在双方之间建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。(4分)
而非连接的服务,不需要预先建立起一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往“网络”上送出信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。(4分)
7:什么是分布式数据库?(5分)
数据库分布在计算机网络的不同计算机上, 网络中的每个节点具有独立处理的能力(场地自治),可以执行局部应用, 同时,每个节点也能通过网络通信子系统执行全局应用。
8:设工程—零件数据库中有四个基本表:(18分)
供应商(供应商代码,姓名,所在城市,联系电话);
工程(工程代码,工程名,负责人,预算);
零件(零件代码,零件名,规格,产地,颜色);
供应零件(供应商代码,工程代码,零件代码,数量)
试用SQL语句完成下列操作:
1) 查找预算在50000~100000元之间的工程的信息,并将结果按预算降序排列。
2 ) 找出使用上海产的零件的工程名称。
3) 将由供应商S5供给工程代码为J4的零件P6改为由S3供应,并将零件P6的产地改为S3供货商的所在城市。
4)从供应商关系中删除S2的记录,并从供应零件关系中删除相应的记录。
1.SELECT*
FROM 工程
WHERE 预算 BETWEEN 50000 AND 100000 (或者 WHERE 预算>= 50000 AND 预算<= 1000000)
ORDER BY 预算 DESC;
2.SELECT 工程名
FROM 供应商,供应零件,工程
WHERE 供应商.供应商代码=供应零件.供应商代码AND
供应零件.工程代码=工程.工程代码 AND
供应商.所在城市=’上海’;
3.UPDATE 供应零件
SET 供应商代码=’S3′
WHERE 供应商代码=’S5′ AND 工程代码=’J4′ AND 零件代码=’P6′;
UPDATE零件
SET产地 = B. 所在城市
FROM 零件 A, 供应商 B
WHERE A. 零件代码 = ‘P6′
AND B. 供应商代码 = ‘S3′;
4.DELETE
FROM 供应零件
WHERE 供应商代码=’S2′;
DELETE
FROM 供应商
WHERE 供应商代码=’S2′;
C++部分(50分)
1.有如下程序(4分)
main0
{ int x=23;
do
{ printf(“%d”,x–);}
while(!x);
}
该程序的执行结果是 B
A) 321 B)23 C) 不输出任何内容 D) 陷入死循环
2. “零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:if ( n == 0 ),则BOOL flag 与“零值”比较的 if 语句为:____________________________;float x 与“零值”比较的 if 语句为:____________________________。
if ( flag ) (2分)
const float EPSINON = 0.00001;if ((x >= – EPSINON) && (x <= EPSINON)) (2分)
3.以下程序运行后,输出结果是 C(4分)
main()
{ char *s=”abcde”;
s+=2;
printf(“%ld\n”,s);
}
A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错
4. 假定DD为一个类,则执行“DD a[10],*P”语句时,系统自动调用该类构造函数的次数为( )B(4分)
A、11 B、10 C、1 D、0
5. 说明类中的public、 protected和 private成员函数分别在public、protected和private继承方式下在派生类中的可访问性。(12分)
重点是基类中的任何Private在派生类中都是不可访问的。
6. 写出此函数的功能(12分)
struct StrNode {
char name[15]; // 字符串域
StrNode * next; // 指针域
};
void QB(StrNode * & f ,int n) {
if (n==0) { f=NULL; return; }
f=new StrNode;
cin >>f->name;
StrNode * p=f;
while (–n) {
p=p->next=new StrNode;
cin >>p->name;
}
p->next=NULL;
}
建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。
7. 写出下面函数的功能(10分)
template
void WE(Type a[],Type b[],int n) {
for (int i=0; i
b[n-i-1]=a[i];
}
模板函数,把数组a的每个元素按逆序放入数组b中。
JAVA部分(共50分)
1. 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 方法是不能被当前类的子类重新定义的方法。
抽象(abstract)方法、最终(final)方法(4分)
2. 请判断下面的代码片段的执行结果:()C(4分)
void func(int a, String b, String c) {
a = a + 1;
b.trim();
c = b;
}
public static void main(String[] args) {
int a = 0;
String b = “Hello World”;
String c = “OK”;
func(a, b, c);
System.out.println(“” + a + “, ” + b + “, ” + c);
}
3. 下面哪个类可以被继承 C(4分)
A、java.lang.Double
B、java.lang.Math
C、java.lang.Thread
D、java.lang.Class
4、MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量()D(4分)
A、public int MAX_LENGTH=100;
B、final int MAX_LENGTH=100;
C、final public int MAX_LENGTH=100;
D、public final int MAX_LENGTH=100.
5. 假设x= 10, y= 20,