Pages

Friday

C Aptitude Questions with Answers Part 15

1)
#include<stdio.h> 
main() {
   const int i=4; 
   float j; 
   j = ++i; 
   printf("%d  %f", i,++j); 
 } 

Answer:
Compiler error
Explanation:
i is a constant. you cannot change the value of constant

2)
 #include<stdio.h> 
main() {
  int a[2][2][2] = { {10,2,3,4}, {5,6,7,8}  }; 
  int *p,*q; 
  p=&a[2][2][2]; 
  *q=***a; 
  printf("%d..%d",*p,*q); 
} 

Answer:
garbagevalue..1
Explanation:
p=&a[2][2][2] you declare only two 2D arrays. but you are trying to access the third 2D(which you are not declared) it will print garbage values. *q=***a starting address of a is assigned integer pointer. now q is pointing to starting address of a.if you print *q meAnswer:it will print first element of 3D array.

3)
#include<stdio.h> 
main() {
    register i=5; 
    char j[]= "hello";                      
     printf("%s  %d",j,i); 
} 

Answer:
hello 5
Explanation:
if you declare i as register compiler will treat it as ordinary integer and it will take integer value. i value may be stored either in register or in memory.

4)
main() {
    int i=5,j=6,z; 
    printf("%d",i+++j); 
} 

Answer:
11
Explanation:
the expression i+++j is treated as (i++ + j)

5)
struct aaa{
   struct aaa *prev; 
   int i; 
   struct aaa *next; 
}; 
main(){ 
 struct aaa abc,def,ghi,jkl; 
 int x=100; 
 abc.i=0;abc.prev=&jkl; 
 abc.next=&def; 
 def.i=1;def.prev=&abc;def.next=&ghi; 
 ghi.i=2;ghi.prev=&def; 
 ghi.next=&jkl; 
 jkl.i=3;jkl.prev=&ghi;jkl.next=&abc; 
 x=abc.next->next->prev->next->i; 
 printf("%d",x); 
} 

Answer:
2
Explanation:
  above all statements form a double circular linked list;
abc.next->next->prev->next->i  
this one points to "ghi" node the value of at particular node is 2.

No comments:

Post a Comment