关于下列两个并发进程运行结果,正确的是: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: 程序不能正确运行,可能会死锁
C
举一反三
- 下列程序段的运行结果是()。 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]);}
内容
- 0
下列程序段运行的结果为() x=2; if(x>0)y=1; printf("%d",y);
- 1
下列程序段运行的结果为( )x=0;if(x>0) y=1;else if(x=0) y=0;else y=-1;printf("%d",y);
- 2
设x,y,z均为整型变量,有如下程序段 x=y=z=0; ++x&&++y||++z; 则该程序运行后,x,y,z的值分别是: A: x=1,y=0,z=0 B: x=1,y=1,z=1 C: x=1,y=1,z=0 D: x=1,y=0,z=1
- 3
如下程序的运行结果是( ) intx=1,y=1;if(x==1) y=x+1;elseif(y==2) x=y+1;else y=0; A: x=1, y=2 B: x=3, y=2 C: x=3, y=0 D: x=1, y=0
- 4
请写出以下程序的运行结果()。void main(){int x=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf("%d,%d",x,y);}