Subex Azure  Placement Paper   Aptitude - General   CUSAT-26 Aug 2009

Subex Azure  Placement Paper   Aptitude - General   CUSAT-26 Aug 2009


  • Posted by  FreshersWorld 
    7 Jan, 2012

      Hi this is Rajeev Ranjan,
      these are the questions asked in preliminary round(college level)
      in cod2 (20 question in 30 min)

    1) fun(char *s,int n)
     {
      if(n==0)
      return ;
      fun(s,--n);
      printf("%c",s[n]);
      }
      main()
      {
      char a[]="HELLO WORLD";
      fun(a,11);
       return 0;
      }
      ANS=HELLO WORLD

    2) #define TRUE 1;
      #define FALSE -1;
      #define NULL 0;
      main()
      {
      if(NULL)
      printf("NULL");
      else if(FALSE)
      printf("TRUE");
      else
      printf("FALSE");
      }
      ANS=TRUE
    3)main()
      {
      char str[10];
      str=strcat("HELLO",'!');
      printf("%s",str);
      }
      ANS=

    4)  main()
      {
       int a[]={5,15,34,10};
      int *ptr;
      ptr=a;
      int **ptr_ptr;
      ptr_ptr=&ptr;
      printf("%d",**ptr_ptr++);
      }
    ANS=5
    5) struct e
      {
      char *a;
      int flags;
      int var;
      union u
      {
      int b;
      float *c;
      }u1;
      }tab[10];
      main()
      {
      printf("%d",sizeof(tab));
      return 0;
      }
      ANS=160 or 200(i dont know)
    6) main()
      {
      float b=3.28;
      printf("%d",(int)b)
      return 0;
      }
    ANS=3
    7)  #define __line__ 10;
      foo()
      {
      return __line__;
      }
      what will foo return?
      ANS=10(may be wrong answer)
    8)  #ifdef something
      int some=0;
      #endif
      main()
      {
      int thing = 0;
      printf("%d %d\n", some ,thing);
      }
      Answer: Compiler error : undefined symbol some
      Explanation: This is a very simple example for conditional compilation. The name something is not already known to the compiler  making   the declaration
      int some = 0; effectively removed from the source code.
    9) #include
      main()
      {
      char s[]={'a','b','c','\n','c','\0'};
      char *p,*str,*str1;
      p=&s[3];
      str=p;
      str1=s;
      printf("%d",++*p + ++*str1-32);
      }
      Answer: 77    
      Explanation: p is pointing to character '\n'. str1 is pointing to character 'a' ++*p. "p is pointing to '\n' and that is incremented  by one." the ASCII value of '\n' is 10, which is then incremented to 11. The value of ++*p is 11.++*str1, str1 is pointing to 'a' that is incremented by 1 and it becomes 'b'. ASCII value of 'b' is 98. Now performing (11 + 98 ? 32), we get 77("M"); So we get the output 77 :: "M" (Ascii is 77).
    10) #define square(x) x*x
      main()
      {
      int i;
      i = 64/square(4);
      printf("%d",i);
      }
      Answer: 64
      Explanation: the macro call square(4) will substituted by 4*4 so the expression
      becomes i  = 64/4*4 . Since / and *
      has equal priority   the expression will be evaluated as (64/4)*4 i.e. 16*4 =   64
    11) main()
       {
       show();
       }
       void show()
       {
        printf("I'm the greatest");
       }
       Answer: Compier error: Type mismatch in redeclaration of show.
       Explanation: When the compiler sees the function show it doesn't know anything about it. So the default return type
       (ie, int)    is   assumed. But when compiler sees the actual definition of show mismatch occurs
        since it is    declared    as void. Hence the error.
       The solutions are as follows:
       1. declare void show() in main() .
       2. define show() before main().
       3. declare extern void show() before the use of show().
    12) #define f(g,g2) g##g2
       main()
       {
       int var12=100;
        printf("%d",f(var,12));
        }
        Answer: 100

2009-2016 downloadmela.com. All rights reserved.