关于下列两个并发进程运行结果,正确的是:int x,y,z,t,uP1(){while(1){x=1;y=0;if(x>;=1)y=y+1;z=y;}}P2(){while(1){x=0;t=0;if(x<;=1)t=t+2;u=t;}}
A: 程序能正确运行,结果唯一
B: 程序不能正确运行,可能有两种结果
C: 程序不能正确运行,结果不确定
D: 程序不能正确运行,可能会死锁
A: 程序能正确运行,结果唯一
B: 程序不能正确运行,可能有两种结果
C: 程序不能正确运行,结果不确定
D: 程序不能正确运行,可能会死锁
举一反三
- 下列程序段的运行结果是()。 int x=2,y=1,z=2,t; while(x 正确答案: D
- 运行下列程序段后,x的值是() int x=1,y=2,t=3; if(x>y) t=x; x=y; y=t;
- 如下程序的运行结果是( ) int x = 1, y=1; if(x==1) y= x+1; else if(y==2) x= y+1; else y= 0;
- 以下程序段的运行结果为()。int x=2,y=-1,z=2; if(x A: 2 B: 0 C: 3 D: 1
- 以下程序的运行结果是voidswap1(intx[],inty[]){intt;t=x[0];x[0]=y[0];y[0]=t;}voidswap2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}