Searching for "%"

Q:

What would be the output of the following program?

main()

{

    int i = -3, j =2, k =0, m ;

    m = ++j && ++i || ++k ;

    Printf ( "\n%d%d%d%d", i , j , k , m );

}

Answer

-2  3  0  1

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

In the following code in which order the functions would be called?

a = ( f1 ( 23,14 ) * f2 ( 12/4) ) + f3() ;

Answer

The order may vary from compiler to compiler.


Here the multiplication will happen before the addition , but in which order the functions would be called is undefined. In an arithmetic expression the parentheses tell the compiler which operands go with which operators but do not force the compiler to evaluate everything within the parentheses first.

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

Can you suggest any other way of writing the following expression such that 30 is used only once?

a <= 20 ? b = 30 : c = 30 ;

Answer

*( ( a <= 20 ) ? &b : &c ) = 30;

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

What would be the output of the following program?

main()

{

  int i=2 ;

  printf ("\n%d%d", ++i, ++i );

}

Answer

Output may vary from compiler to compiler.


The order of evaluation of the arguments to a function call is unspecified.

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

What would be the output of the following program?

main()

{

    static int a[20];

    int i = 0;

    a[i] = i++;

    printf ("\n%d%d%d", a[0],  a[1], i);

}

Answer

0  0  1


That's what some of the compilers would give. But some other compiler may give a different answer. The reason is, when a single expression causes the same object to be modified and then inspected the behaviour is undefined.

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

Rewrite the following set of statements using conditional operators.

int a =1, b ;

if ( a > 10 )

b = 20; 

Answer

int a = 1, b , dummy;


a > 10 ? b = 20 : dummy =1;


 


Note that the following would not have worked:


a > 10 ? b = 20 : ;;


 

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

Point out the error, if any, in the following program.

main()

{

    int i = 4, j = 2;

    switch(i)

    {

     case 1 :

       printf (''\n To err is human, to forgive is against company policy.");

        break;

      case j :

       printf (''\n if you have nothing to do, don't do it here.");

       break;

    }

}

Answer

Constant expression required in the second case, we cannot use j.

Report Error

View answer Workspace Report Error Discuss

Subject: Programming

Q:

Point out the error, if any, in the while loop.

main()

{

  int i = 1;

  while ()

  {

     printf ( "%d", i++);

     if (i >10) 

     break ;

   }

}

Answer

The condition in the while loop is a must.

Report Error

View answer Workspace Report Error Discuss

Subject: Programming