新致软件2003年应届生试题
一. 数据库概论(15分)
1. 请说明关系模型三类完整性的具体含义:(3分)
2. 请说出视图的三个优点。(4分)
3. 设有学生关系表S,有字段SNO(学号,主键),SNAME(学生名),SDIV(所属系名);另有课程关系表C,有字段CNO(课程号,主键),CNAME(课程名);和学生选课关系表SC,有字段SNO(学号),CNO(课程号),GRADE(学习成绩),SNO和CNO 为主键;
表S,有字段SNO(学号,主键),SNAME(学生名),SDIV(所属系名);
表C,有字段CNO(课程号,主键),CNAME(课程名);
表SC,有字段SNO(学号),CNO(课程号),GRADE(学习成绩),SNO和CNO为主键。
(1) 请用一条SQL语句完成:选出所有数据结构这门课的成绩超过80分的计算机系的学生姓名。(4分)
(2) 请用一条SQL语句求选修课程超过3门的学生学号。(4分)
二. 计算机网络(15分)
1. 请简述TCP协议和UDP 协议的区别。(3分)
2. 设二维数组F的行下标为1至5,列下标为0至8,F的每个数据元素均占4个字节,在按行存贮的情况下,已知数据元素F[2,2]的第一个字节是1044。则F[3,4]和F[4,3]的第一个字节的地址分别为 和 。数组第一个元素的第一个字节和数组最后一个元素的最后一个字节的地址分别为 和 。
3.请说出遍历二叉树有几种方法并分别描述它的基本思想。(8分)
三.操作系统(15分)
1.操作系统是一种系统软件,它有许多种类。PC-DOS是一种A操作系统,WINDOWS是具有图形界面的B运行方式的操作系统。WINDOWS应用程序之间可以方便地通过C交换数据。将正在运行的应用程序窗口最小化后,该应用程序处于D状态。E是在体系结构采用了客户机/服务器模式的网络操作系统。(6分)
供选择的答案
A:(1)分时 (2)多用户 (3)单用户 (4)分布式
B:(1)单任务 (2)多任务 (3)单用户 (4)多用户
C:(1)邮箱 (2)文本区 (3)对话框 (4)剪贴板
D:(1)运行 (2)挂起 (3)停止 (4)推出
E:(1)WINDOWS95 (2)WINDOWSNT (3)WINDOWS98 (4)WIINDOWS3.2
2.什么是线程?线程和进程的主要区别是什么?(2分)
3. 名词解释:逻辑地址、物理地址、地址映射。(3分)
4. 什么是进程的同步和互斥?同步和互斥这两个概念有什么区别和联系?(4分)
四.C语言程序设计和数据结构(40分)
1. 举例说明左加(++i)及右加(i++)的区别。(4分)
2. 举例说明Struct和Union的区别(4分)
3. 说明unsigned char和char 的区别,在什么情况下用unsigned char,什么情况下用char (4分)
4. 写一个函数,输入参数是一个排序二叉树的头指针和关键值,在排序二叉树中检索和输入关键值相同的iKey,如果检索到,返回相应的pData,否则返回NULL.(8分)
5. 在有序表(升序排列)ST中折半查找关键字等于Key的数据元素,若找到则函数值为该元素在ST表中的位置,否则返回0.假定ST表的定义如下:
typedef struct tagKeyType{
KeyType key;
} KeyType;
typedef struct tagSStable{
ElemType * elem;
int length;
}Sstable;
试写出下列函数。(10分)
int Search(SStable ST,KeyType key)
{
}
6. 阅读以下程序说明和C程序,将答案写在后面的空白处。
本程序所列函数replace(char *s1,char *s2,char *str1,char *str2)实现当已知字符串s1中有与字符串str1相同的字符列时,就把该字符拷贝到字符数组s2;当从某字符开始能够成一个与字符串str2相同的字符列时,就将字符串str2的个字符拷贝到字符数组s2,并继续访问字符串s1中那个字符列之后的字符,直至字符串s1被访问完,字符复制即告结束。
如程序中所列数据abcdefg ababcd abab,
程序运行输出为:ABCXYZdefg abABCXYZDd abab
程序:
replace(char *s1,char *s2,char str1,char *str2)
{
char *t0,*t1,*t2;
while ((1))
{
for (t0=s1,t1=str1;*t1!=’\0’ && (2), t0++,t1++)
if(*t1!=’\0’) *s2++=(3);
else
{
for(t1=str2;*t1!=’\0’)
*s2++=(4)
(5)
}
*s2=’\0’;
}
main()
{
char s1[]=”abcdefg ababcd abab”;
char s2[80];
replace(s1,s2,”abc”,”ABCXYZ”);
printf(“%s\n”,s2);
}
五、请翻译下列文章的大意(15分)
An interface is the way in which an object exposes its functionality to the outside world. In COM, an interface is a table of pointers (like a C++ vtable) to functions implemented by the object. The table represents the interface, and the functions to which it points are the methods of that interface. An object can expose as many interfaces as it choose.
Each interface is based on the fundamental COM interface, IUnknows The methods of IUnknows allow navigation to other interfaces exposed by the object.
Also each interface is given a unique interface ID (IID).This uniqueness makes it is easy to support interface versioning. A new version of an interface is simply a new interface, with a new IID.
六、当项目很紧时,是写完一个功能模块就进行测试(UT),还是写好多个功能模块在进行测试?或者项目全部完成后再测试?为什么?