第1题
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
第2题
class S:public R{…};
class T:private S{…};
在关于类S的描述中正确的是(18),在关于类T的描述中正确的是(19)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
第3题
class S: public R {…};
class T: private S {…};
在关于类S的描述中正确的是(45);在关于类T的描述中正确的是(46)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
第4题
A.分片透明性
B.位置透明性
C.全局数据模型透明性
D.局部数据模型透明性
第5题
[说明]
借助一个栈结构,可实现二叉树的非递归遍历算法。InOrderTraverse数实现中序非递归遍历,遍历
过程如下:
若不是空树,根节点入栈,进入左子树;若已经是空树,则栈顶元素出栈,访问该元素(根节点),进入该节点的右子树,继续直到遍历完成。
函数中使用的预定义符号如下:
typedef struct BiTNode{
int data;
struct BiTNode *iChiid,*rChiid;
} BiTNode,*BiTree;
typedef struct SNode{/*链栈的节点类型*/
BiTree elem;
struct SNode *next;
}SNode;
[函数]
int InOrderTraverse(BiTree root)
{
BiTree P;
SNode *q,*stop=NULL;/*不带头节点的单链表作为栈的存储结构*/
P=root;
while(p !=NULL || stop !=NULL){
if( (1) ){ /*不是空树*/
q=(SNode*)malloc(sizeof q);
if(q==NULL)return-1;
/*根节点指针入栈*/
(2);
q->elem=P;
stop=q;
P=(3); /*进入根的左子树*/
}else{
q=stop;
(4); /*栈顶元素出栈*/
printf("%d|,q->elem->data); /*防问根节点*/
P=(5); /*进入根的右子树*/
free(q); /*释放原栈顶元素*/
}/*if*/
}/*while*/
return 0;
}/*InOrderTraverse*/
(1)
第6题
对于给定的信号量S,等待操作Wait(S)(又称P操作)定义为:
if s>0 then (39) else挂起调用的进程
唤醒操作Signal(S)(又称V操作)定义为:
if 存在等待的进程 then 唤醒这个进程else (40)
给定信号量S,可以定义一个临界区来确保其互斥,即保证在同一时刻这个临界区只能够被一个进程执行。当S被初始化为1时,代码段
(41):
{临界区}
(42):
定义了一个临界区。
这样的临界区实际上是将共享数据和对这些数据的操作一起封装起来,通过其互斥机制一次只允许一个进程进入,这种临界区通常称为(43)。
A.S:=0
B.S:=S+1
C.S:=S-1
D.S:=1
E.Signal(S+1)
第8题
A.0.005
B.100.5
C.0.5
D.0.9
E.0.98
第10题
class CStudent {
private:
char myname[15];
float myheight;
public:
intmyid;
public:
CStudent (); // 默认构造函数
CStudent (char *name,int height); // 用户自定义构造函数 void SetInfo(char *name,float
height);
void GetInfo();
~ CStudent (); // 析构函数
}
用语句CStudent s1; 创建一个对象,则下列对象访问语句正确的是()。
A.s1.myname=" jane ";
B.s1.myid= 20090323;
C.s1.myheigt= 167;
D.s1.SetInfo(" jane ",167);
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!