本试卷分三部分,公共部分、C++部分和JAVA 部分,其中公共部分为必考部分,
C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:作业调度程序从处于___ D ____状态的队列中选择适当的作业投入运行。(3分)
A. 运行 B.提交 C.完成 D.后备
2. SQL语言中,删除一个表的命令是 ( B )(3分)
A.CLEAR TABLE B.DROP TABLE C.DELETE TABLE D.REMOVE TABLE
3:ATM 采用的线路复用方式为 C 。 (3分)
A. 频分多路复用
B. 同步时分多路复用
C. 异步时分多路复用
D. 独占信道
4:数据库中只存放视图的 ( C )(3分)
A .操作 B.对应的数据
C .定义 D.限制
5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(10分)
虚拟设备是通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。(5分)
在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率的缺点,从而提高设备的利用率。(5分)
6:TCP 为何采用三次握手来建立连接,若采用二次握手可以吗, 请说明原因?(16分)
三次握手是为了防止已失效的连接请求再次传送到服务器端。 (6分)
二次握手不可行,(2分) 因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手,服务方收到重传的请求连接后,会以为是新的请求,就会发送同意连接报文,并新开进程提供服务,这样会造成服务方资源的无谓浪费(8分) 。
7:什么是分布式数据库?(12分, 每点4分)
数据库分布在计算机网络的不同计算机上,
网络中的每个节点具有独立处理的能力(场地自治),可以执行局部应用, 同时,每个节点也能通过网络通信子系统执行全局应用。
C++部分(50分)
1. 设有“int w[3][4];”,pw 是与数组名w 等价的数组指针,则pw 的初始化语句为____________________ int (* pw)[4]=w;(3分)
1. 要使引用pr 代表变量“char * p;”,则pr 的初始化语句为
_______________ 。
char * &pr=p;(3分)
3.“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:if ( n == 0 ) ,则BOOL flag 与“零值”比较的 if 语句为:____________________________;float x 与“零值”比较的 if 语句为:____________________________。(6分)
if ( flag )
const float EPSINON = 0.00001;if ((x >= – EPSINON) && (x
4. 设有如下语句:(3分)
int x;
( )
*px=0;
则选择以下哪条语句可将x 值置为0。C
A int * px; B int const * px=&x;
C int * const px=&x; D const int * px=&x;
5. 设void f1(int * m ,long & n) ;int a ;long b ;则以下调用合法的是( B(3分)
A f1(a,b) ; B f1(&a,b) ;
C f1(a,&b); D f1(&a,&b);
6. 请写出如下代码的运行结果(6分)
int main()
{
int a,b,c,d;
a=0; )。
b=1;
c=2;
d=3;
printf(“%d”,a+++b+c+++d++);
}
6
7. 写出下面函数的功能(12分)
template
void WE(Type a[],Type b[],int n) {
for (int i=0; i
b[n-i-1]=a[i];
}
模板函数,把数组a 的每个元素按逆序放入数组b 中。
8. 写一段代码判断一个单向链表中是否有环。(14分) 给出如下结构:
struct node
{
struct *next;
};
typedef stuct node Node;
bool getCycle(){
Node* temp1 = head;//(假设head 就是这个链表的头) Node* temp2 = head;
while(head->next!=NULL)
{
temp1 = temp1->next;//步长为1
temp2 = temp2->next->next;//步长为2
if(temp1 == temp2)
return ture;
head=head->next;
}
return false;
}
JAVA 部分(50分)
1. 判断下列对的是哪个()b(3分)
A 、short s1 = 1; s1 = s1 + 1;
B 、short s1 = 1; s1 += 1;
C 、short s1 = 1; s1 = s1 – 1;
D 、short s1 = 1; s1 = s1 * 1;
本试卷分三部分,公共部分、C++部分和JAVA 部分,其中公共部分为必考部分,
C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:作业调度程序从处于___ D ____状态的队列中选择适当的作业投入运行。(3分)
A. 运行 B.提交 C.完成 D.后备
2. SQL语言中,删除一个表的命令是 ( B )(3分)
A.CLEAR TABLE B.DROP TABLE C.DELETE TABLE D.REMOVE TABLE
3:ATM 采用的线路复用方式为 C 。 (3分)
A. 频分多路复用
B. 同步时分多路复用
C. 异步时分多路复用
D. 独占信道
4:数据库中只存放视图的 ( C )(3分)
A .操作 B.对应的数据
C .定义 D.限制
5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(10分)
虚拟设备是通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。(5分)
在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率的缺点,从而提高设备的利用率。(5分)
6:TCP 为何采用三次握手来建立连接,若采用二次握手可以吗, 请说明原因?(16分)
三次握手是为了防止已失效的连接请求再次传送到服务器端。 (6分)
二次握手不可行,(2分) 因为:如果由于网络不稳定,虽然客户端以前发送的连接请求以到达服务方,但服务方的同意连接的应答未能到达客户端。则客户方要重新发送连接请求,若采用二次握手,服务方收到重传的请求连接后,会以为是新的请求,就会发送同意连接报文,并新开进程提供服务,这样会造成服务方资源的无谓浪费(8分) 。
7:什么是分布式数据库?(12分, 每点4分)
数据库分布在计算机网络的不同计算机上,
网络中的每个节点具有独立处理的能力(场地自治),可以执行局部应用, 同时,每个节点也能通过网络通信子系统执行全局应用。
C++部分(50分)
1. 设有“int w[3][4];”,pw 是与数组名w 等价的数组指针,则pw 的初始化语句为____________________ int (* pw)[4]=w;(3分)
1. 要使引用pr 代表变量“char * p;”,则pr 的初始化语句为
_______________ 。
char * &pr=p;(3分)
3.“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为:if ( n == 0 ) ,则BOOL flag 与“零值”比较的 if 语句为:____________________________;float x 与“零值”比较的 if 语句为:____________________________。(6分)
if ( flag )
const float EPSINON = 0.00001;if ((x >= – EPSINON) && (x
4. 设有如下语句:(3分)
int x;
( )
*px=0;
则选择以下哪条语句可将x 值置为0。C
A int * px; B int const * px=&x;
C int * const px=&x; D const int * px=&x;
5. 设void f1(int * m ,long & n) ;int a ;long b ;则以下调用合法的是( B(3分)
A f1(a,b) ; B f1(&a,b) ;
C f1(a,&b); D f1(&a,&b);
6. 请写出如下代码的运行结果(6分)
int main()
{
int a,b,c,d;
a=0; )。
b=1;
c=2;
d=3;
printf(“%d”,a+++b+c+++d++);
}
6
7. 写出下面函数的功能(12分)
template
void WE(Type a[],Type b[],int n) {
for (int i=0; i
b[n-i-1]=a[i];
}
模板函数,把数组a 的每个元素按逆序放入数组b 中。
8. 写一段代码判断一个单向链表中是否有环。(14分) 给出如下结构:
struct node
{
struct *next;
};
typedef stuct node Node;
bool getCycle(){
Node* temp1 = head;//(假设head 就是这个链表的头) Node* temp2 = head;
while(head->next!=NULL)
{
temp1 = temp1->next;//步长为1
temp2 = temp2->next->next;//步长为2
if(temp1 == temp2)
return ture;
head=head->next;
}
return false;
}
JAVA 部分(50分)
1. 判断下列对的是哪个()b(3分)
A 、short s1 = 1; s1 = s1 + 1;
B 、short s1 = 1; s1 += 1;
C 、short s1 = 1; s1 = s1 – 1;
D 、short s1 = 1; s1 = s1 * 1;