系统中有4个进程P1,P2,P3和P4,在某一时刻系统状态如下:系统剩余资源量:1 如果在该状态下,进程P3申请1个资源分配后,系统的状态是
A.安全状态
B.不安全状态
C.死锁状态
D.临界状态
A.安全状态
B.不安全状态
C.死锁状态
D.临界状态
进程
处理器时间
优先数
P1
P2
P3
P4
P5
10
1
2
1
5
3
1
3
5
4
采用"不可剥夺优先数"调度算法,进程执行的次序是
A.P2、P1、P5、P3、P4
B.P2、P3、P1、P5、P4
C.P4、P1、P3、P5、P2
D.P4、P3、P1、P5、P2
A.P1;P2;P3
B.P1;P2;RP1
C.P1;P3;BP1
D.P1;P4;RP1
A.-2
B.-1
C.0
D.1
A.I0/2
B.I0/4
C.I0/8
D.3I0/4
A.将p1所指字符串复制到p2所指内存空间
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有’\0’
下面程序用来输出两个字符串中较短的长度。
main()
{char pl[20],p2[20];
int i1,i2,num;
gets(p1);
gets(p2);
i1=______;/*第一空*/
i2=______;/*第二空*/
num=(______)?i1:i2;/*第三空*/
printf("%d\n",nurn);
}
A.q<0,ω>0,△u<0
B.q>0,ω<0,Δu>0
C.q<0,ω>0,△u>0
D.q>0,ω>0,△u<0
用指针作函数参数,编程序求一维数组中的最大和最小的元素值。
#define N 10
main()
{ void maxmin(int arr[],int *pt1,int *pt2,int n);
int array[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;
p1=&a; p2=&b;
maxmin(array,p1,p2,N);
printf("max=%d,min=%d",a,b);
}
void maxmin(int arr[],int *pt1,int *pt2,int n)
{ int i;
*pt1=*pt2=arr[0];
for(i=1;i<N;I++)
{ if(arr[i]>*pt1) (9) ;
if(arr[i]<*pt2) (10) ;
}
}
●在下列程序中:
Program test(input,output);
var i,j:integer;
procedure calc(p1,p2:integer);
begin p2:=p2*p2 p1:=p1-p2;p2:=p2-p1;end{caic}
begin{main}i:=2;j:=3;
calc(i,j); write(j);
end{main}
当参数传递采用引用方式(Call by reference)时,所得结果j= (33) ;
当参数传递采用换名方式(Call by name)时,所得结果j= (34) ;
当参数传递采用赋值方式(Call by value)时,所得结果j= (35) ;
递归是程序设计中很重要的一种控制结构,通常实现递归时,采用的数据结构是 (36) 。
对那些既可以用递归方式,也可以用循环方式求解的问题,就执行效率而言 (37) 。
(33) ,(34) A.10
B.16
C.20
D.28
(35) A.0
B.3
C.5
D.6
(36) A.数组
B.栈
C.队列
D.循环链表
(37) A.数组
B.两者相同
C.循环优于递归
D.递归优于循环