Can someone explain the following questions from a mock java exam.

1.To what value must result be set for the loop to execute 2 times:

int num = 23;

int result = ?;

while((num>1)&& (result<32)) {

num = num/2;

result= result + 1

}

The answer that is on the answer sheet is 29, can someone explain

how?

2.The following code produces which sequence of numbers?

boolean t;

int a = 0;

int b = 1;

int c = 1;

for(int n = 0; a < 25; n++) {

t = false;

for (int j = a ; j < a + 4; j++) {

if (a%2==0) t = true;

if (t) system.out.println(j);

}

c = a;

a = b;

b = c+b;

}

can some explain how they got the sequence of numbers : 0,1,2,3,2,3,4,5,8,9,10,11

?

3.In the following problem what is printed?

int c = 0;

int d = 23,

do {

c+=3;

d-=1;

}while(c<10 && d!=20);

system.out.println(c+d);

The answer on the sheet is 29, but I get 25?, can someone explain

how they

get 29?

4.Nothing to do with java but this is part of the mock paper.

For the Backus-Naur Form (BNF) grammar which of the following is

an INVALID

string?

<string> ::=a<A>

<A> ::=b<A>|a<B>|<C>

<B> ::=a<B>|<C>

<C> ::=b

The answer that they give is aaba, can anyone explain how they got

that answer?.

Thanks