edited by
2,391 views
1 votes
1 votes

What is the output of the following program: (Assume that the appropriate preprocessor directives are included and there is not syntax error)

main( )
    {   char S[]="ABCDEFGH";
        printf("%C", *(&S[3]));
        printf("%s", S+4);
        printf("%u", S);
    /*Base address of S is 1000 */
    }
  1. $\text{ABCDEFGH}1000$
  2. $\text{CDEFGH}1000$
  3. $\text{DDEFGHH}1000$
  4. $\text{DEFGH}1000$
edited by

3 Answers

Best answer
1 votes
1 votes

Ans is D

printf("%C", *(&S[3])); = D
        printf("%s", S+4); = EFGH
        printf("%u", S); = 1000
selected by
1 votes
1 votes
Ans is DEFGH1000 none of the option matches...
1 votes
1 votes

printf (“%C”, *(&S[3])); will print character at *(&S[3]) i.e. D.
printf (“%s”, S + 4); will print string starting from S + 4 i.e. EFGH.
printf (“%u”, S); will print address of S i.e. 1000.
Since there is no new line instruction, So DEFGH1000 will be the output.
So, option (D) is correct.

Answer:

Related questions

1 votes
1 votes
2 answers
1
go_editor asked Jul 30, 2016
2,922 views
Given that $x=7.5, j=-1.0, n=1.0, m=2.0$ the value of $ x+j==x>n>=m$ is:$0$$1$$2$$3$
2 votes
2 votes
1 answer
2
go_editor asked Jul 30, 2016
2,057 views
Level order Traversal of a rooted Tree can be done by starting from root and performing:Breadth First SearchDepth First SearchRoot SearchDeep Search