2013-03-26 131 views
-6

我有下面的代码。但是,我认为4是答案。我对吗?这个逻辑的输出是什么?

int a, i; 

if (execute) 
{ 
    int count = 0; 
    for (i=0; i<5; i++) 
    { 
    if(pcnt[i]) count ++; 
    } 
    a = (count > 0) 
} 
else 
{ 
    a= 0; 
} 

对于IF情况,a a = 1或a = 4?

+8

运行代码并找出... – 2013-03-26 12:54:27

+1

在这之后,a是多少? – 2013-03-26 12:54:54

+3

定义了'pcnt []'的位置? – Mike 2013-03-26 12:54:55

回答

1

a10

1:如果execute != 0count >0

0:否则

注:

count >0当且仅当pcnt[0]!=0pcnt[1]!=0pcnt[2]!=0pcnt[3]!=0pcnt[4]!=0

+0

我想你的意思是“if'execute!= 0'”。 – 2013-03-26 12:57:08

+0

@JoachimPileborg这是正确的我抨击它 – MOHAMED 2013-03-26 12:58:48

0

首先,由于缺少分号,因此无法编译。如果变量没有被正确地声明,它也可能会有困难,但为了回答,我会假定它们已经被使用了。

现在,看看a分配给什么。我看到a = (count > 0)a = 0。那么(count > 0)将只会是一个0或1(在C布尔表达式将解析为1为真和0为假)。所以基本上,你有a = 0 or 1a = 0。这简化为a是0或1.