1. O(1) 2. O(n) 3. O(n2) 4. O(nlog2n)
4:设单链表的结点结构为(data,next),已知指针q所指结点是指针p所指结点的直接前驱,如在*q与*p之间插入结点*s,则应执行的操作为( B )(3分)
1. s->next=p->next; p->next=s; 2. q->next=s; s->next=p; 3. p->next=s-next; s->next=p; 4. p->next=s; s-next=q;
5:在一个具有n个结点的单链表中查找值为m的某结点,若查找成功,则平均比较( D )个结点。(3分)
1. n 2. n/2 3. (n-1)/2 4. (n+1)/2
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;