1. 合并分E-R图
各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。
子系统E-R图之间的冲突主要有三类:
①属性冲突
②命名冲突
③结构冲突
①属性冲突
属性域冲突,即属性值的类型、取值范围或取值集合不同。
例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。
年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄。
属性取值单位冲突。
例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。
②命名冲突
同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。
异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
命名冲突
可能发生在实体、联系一级上
也可能发生在属性一级上
通过讨论、协商等行政手段加以解决
③结构冲突
同一对象在不同应用中具有不同的抽象。
例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
解决方法:把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。
同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。
解决方法:使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的E-R图中为不同的类型。
实体E1与E2在一个E-R图中是多对多联系,在另一个E-R图中是一对多联系
解决方法是根据应用的语义对实体联系的类型进行综合或调整。
2. 网络安全内容包括:
- 运行系统的安全
- 信息系统的安全
- 网络的安全
- 信息内容的安全
- 信息传播的安全
3. 如何判断一个数字序列是不是堆?
将这个序列看成是二叉树,如果根节点是i,左子树就是2*i,右子树就是2*i+1,如果是最大堆,则子节点的值永远小于根节点;如果是最小堆,则子节点的值永远大于根节点
4.操作系统中, 在一段时间内,只允许一个进程访问的资源被称为临界资源,每个进程中访问临界资源的那段程序称为临界区。可以被多个进程访问的资源被称为共享资源,同理那段程序被称为共享区。
5. 数据库的设计过程:需求分析、概念结构设计、逻辑结构分析、数据库物理设计、数据库实施、数据库运行和维护阶段。
6. n个结点的无向图,若不允许结点到自身的边,也不允许结点到结点的多重边,且边的总数为n(n-1)/2,则该无向图一定是连通图。
7. ARP协议将IP地址转换为MAC地址,用于寻找某一个IP地址的物理机,而RARP将MAC地址转换为IP地址,用于应答ARP。
8. http协议中的状态码:
1xx(临时响应)
2xx(成功)
3xx(已重定向)
301 永久重定向
302 临时重定向
4xx(请求错误)
404 找不到网页
403 已禁止
401 未授权
400 请求失败;服务器不理解请求语法
9.
#include
void test(void *data) {
unsigned int value = (此处应填入)
printf("%u", value);
}
using namespace std;
int main() {
unsigned int value = 10;
test(&value);
return 0;
}
填入部分:*((unsigned int *)data)
传入数据为*data类型,机器就知道是指针,知道指针所指向的地址位置,但是指针的类型是void,所以程序无法知道应该读取几个字节,所以需要使用指针类型(unsigned int *)墙之转换成知道读几个字节的int型指针。
10. 当 B属性函数依赖于A属性时,属性A与B 的联系是多对1,因为A→B,表示对于A中的每一个属性在B中只有唯一的一个值与之对应,而B中的一个值可与A中的多个值对应,所以A、B之间的联系是从A到B的多对一联系。所以答案应为B。
11. 有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?
C=(int32)(A+B),D=(int32)(A-B)
C=(int32)(A+B),D=(int32)((A-B)>>1)
C=(int32)(A+B),D=B
C=(int32)(A+B),D=(int32)(A+2*B)
C=(int32)(A+B),D=(int32)(A/B)
方法为:C=(int32)(A+B),D=B
A,B都是32位的int类型的数,可表示的数的范围为:-2147483648~2147483647。
(1) A选项中: C=(int32)(A+B),D=(int32)(A-B) ,如果能表示,则表示成A=(C+D)/2,B=(C-D)/2,考虑到C+D=(A+B)+(A-B)=2B,虽然B在这个范围内,但是2B有可能超出了32位Int类型的表示范围了。
(2) B,D,E选项同理都有可能超出32位int类型的表示范围。
(3)C选项中,C=A+B,D=B,得到A=C-D,B=D,根据原式C-D=A+B-B=A,D=B,肯定不会超出范围。
12. 在C语言中,函数的隐含存储类别为extern,由于在C语言中函数为static或者为extern,如果函数不指定是static的,那么就是extern的。