© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu

C and C++ Interview Questions

4. Is it necessary if block always nested with else block?

Ans:

An if block need not always be associated with an else block. However, an else block is always associated with an if statement.

Ex - 1:  What is the output?
int i,j;
            for(i=0;i<=10;i++)
            {
            j+=5;
            assert(i<5);
            }

Ans:
Runtime error: Abnormal program termination.
                                    assert failed (i<5),

Explanation:

asserts are used during debugging to make sure that certain conditions are satisfied. If assertion fails, the program will terminate reporting the same. After debugging use,
            #undef NDEBUG
and this will disable all the assertions from the source code. Assertion
is a good debugging tool to make use of. 

Ex - 2:  What is the output?
int i=10;
            main()
            {
             extern int i;
              {
                 int i=20;
                        {
                         const volatile unsigned i=30;
                         printf("%d",i);
                        }
                  printf("%d",i);
               }
            printf("%d",i);
            }

Ans:
30,20,10

Explanation:

'{' introduces new block and thus new scope. In the innermost block i is declared as,  const volatile unsigned which is a valid declaration. i is assumed of type int. So printf prints 30. In the next block, i has value 20 and so printf prints 20. In the outermost block, i is declared as extern, so no storage space is allocated for it. After compilation is over the linker resolves it to global variable i (since it is the only variable visible there). So it prints i's value as 10.


SLogix Student Projects
bottom