Sonata Software Ltd Technical-C Contributed by admin updated on May 2020
  • Apply to Premium Jobs from Top MNCs
  • Priority Shortlisting & Call-letters for drives
PREMIUM MEMBERSHIP
PREMIUM MEMBERSHIP
Apply to Premium Jobs from Top MNCs
Priority Shortlisting & Call-letters for drives
Access of Complete Question and Solution of the Test Series
Take Test Now

Sample Technical Paper        

  • Point out error, if any, in the following program
    main()
     {
      int i=1;
      switch(i)
      {
        case 1:
               printf("\nRadioactive cats have 18 half-lives");
               break;
       case 1*2+4:
              printf("\nBottle for rent -inquire within");
              break;
    }
    }
        Ans. No error. Constant expression like 1*2+4 are acceptable in cases of a switch. 

  • Point out the error, if any, in the following program                                                         
    main()
    {
        int a=10,b;
        a>= 5 ? b=100 : b=200; 
        printf("\n%d",b);
    }
    Ans. lvalue required in function main(). The second assignment should be written in parenthesis as follows:
     a>= 5 ? b=100 : (b=200);

  • In the following code, in which order the functions would be called?
        a= f1(23,14)*f2(12/4)+f3();
         a) f1, f2, f3 b) f3, f2, f1
        c) The order may vary from compiler to compiler d) None of the above

  • What would be the output of the following program?
    main()
    {
       int i=4;
       switch(i)
       {
        default:
              printf("\n A mouse is an elephant built by the Japanese");                                         
        case 1:
                 printf(" Breeding rabbits is a hair raising experience");
                 break;
    case 2:
               printf("\n Friction is a drag");
               break;
    case 3:
              printf("\n If practice make perfect, then nobody's perfect");
    }
    }
    a) A mouse is an elephant built by the Japanese b) Breeding rabbits is a hare raising experience
    c) All of the above d) None of the above

  • What is the output of the following program?
    #define SQR(x) (x*x)
    main()
       {
         int a,b=3;
         a= SQR(b+2);
         printf("%d",a);
       }
       a) 25    b) 11 c) error d) garbage value

  • In which line of the following, an error would be reported?                                      
    1. #define CIRCUM(R) (3.14*R*R);
    2. main()
    3. {
    4. float r=1.0,c;
    5. c= CIRCUM(r);
    6. printf("\n%f",c);
    7. if(CIRCUM(r))==6.28)
    8. printf("\nGobbledygook");
    9. }
    a) line 1 b) line 5 c) line 6    d) line 7

  • What is the type of the variable b in the following declaration?
    #define FLOATPTR float*
    FLOATPTR a,b;
        a) float b) float pointer c) int d) int pointer

  • In the following code;
    #include<stdio.h>
    main()
    {
      FILE *fp;
      fp= fopen("trial","r");
     }     
    fp points to:
    a) The first character in the file. 
        b) A structure which contains a "char" pointer which points to the first character in the file.
    c) The name of the file. d) None of the above.                                                     

  • We should not read after a write to a file without an intervening call to fflush(), fseek() or rewind() < TRUE/FALSE>
    Ans. True

  •  If the program (myprog) is run from the command line as myprog 1 2 3 , What would be the output?
    main(int argc, char *argv[])
    {
       int i;
       for(i=0;i<argc;i++)
       printf("%s",argv[i]);
      }
      a) 1 2 3    b) C:\MYPROG.EXE 1 2 3
    c) MYP d) None of the above

  • If the following program (myprog) is run from the command line as myprog 1 2 3, What would be the output?
    main(int argc, char *argv[])
       {
       int i,j=0;
       for(i=0;i<argc;i++)
       j=j+ atoi(argv[i]);
       printf("%d",j);
      } 
    a) 1 2 3     b) 6 c) error d) "123"

  • If the following program (myprog) is run from the command line as myprog monday tuesday wednesday thursday,
    What would be the output?
    main(int argc, char *argv[])
       { 
       while(--argc >0)
       printf("%s",*++argv);
      }
      a) myprog monday tuesday wednesday thursday     b) monday tuesday wednesday thursday
    c) myprog tuesday thursday d) None of the above                                                   

  • In the following code, is p2 an integer or an integer pointer?
     typedef int* ptr
     ptr p1,p2;
     Ans. Integer pointer

  • Point out the error in the following program
    main()
       {
       const int x;
       x=128;
       printf("%d",x);
      }
        Ans. x should have been initialized where it is declared.

  • What would be the output of the following program?
     main()
      {
       int y=128;
       const int x=y;
       printf("%d",x);
     }
        a) 128 b) Garbage value c) Error d) 0

  •  What is the difference between the following declarations?                                          
       const char *s;
       char const *s;
      Ans. No difference

  • What would be the output of the following program?
      main()
        {
        char near * near *ptr1;
        char near * far *ptr2;
        char near * huge *ptr3;
        printf("%d %d %d",sizeof(ptr1),sizeof(ptr2),sizeof(ptr3));
       }
         a) 1 1 1         b) 1 2 4       c) 2 4 4    d) 4 4 4

  • If the following program (myprog) is run from the command line as myprog friday tuesday sunday,
    What would be the output?
    main(int argc, char*argv[])
      {
       printf("%c",**++argv);
      }
      a) m     b) f c) myprog d) friday

  • If the following program (myprog) is run from the command line as myprog friday tuesday sunday,
    What would be the output?                                                                                      
     main(int argc, char *argv[])
       {
        printf("%c",*++argv[1]);
         }
        a) r b) f c) m d) y

  •  If the following program (myprog) is run from the command line as myprog friday tuesday sunday,
    What would be the output?
    main(int argc, char *argv[])
       {
      while(sizeofargv)
      printf("%s",argv[--sizeofargv]);
      }
    a) myprog friday tuesday sunday b) myprog friday tuesday
    c) sunday tuesday friday myprog d) sunday tuesday friday                               

  •  Point out the error in the following program
    main()
      {
       int a=10;
       void f();
       a=f();
       printf("\n%d",a);
       }
       void f()
        {
        printf("\nHi");
        }
        Ans. The program is trying to collect the value of a "void" function into an integer variable.

  •  In the following program how would you print 50 using p?
    main()
       {
        int a[]={10, 20, 30, 40, 50};
        char *p;
        p= (char*) a;
       }
        Ans. printf("\n%d",*((int*)p+4));

  •  Would the following program compile?
    main()
      {
       int a=10,*j;
       void *k;
       j=k=&a;
       j++;
       k++;
       printf("\n%u%u",j,k);
    }
     a) Yes b) No, the format is incorrect
     c) No, the arithmetic operation is not permitted on void pointers                       
    d) No, the arithmetic operation is not permitted on pointers

  • According to ANSI specifications which is the correct way of declaring main() when it receives command line arguments?
    a) main(int argc, char *argv[]) b) main(argc,argv) int argc; char *argv[];
    c) main() {int argc; char *argv[]; } d) None of the above

  • What error would the following function give on compilation? 
      f(int a, int b)
          {
         int a;
         a=20;
         return a;
          }
    a) missing parenthesis in the return statement b) The function should be declared as int f(int a, int b)
        c) redeclaration of a    d) None of the above                                            

  • Point out the error in the following program
    main()
        {
         const char *fun();
         *fun()='A';
        }
       const char *fun()
        {
         return "Hello";
       }
        Ans. fun() returns to a "const char" pointer which cannot be modified

  • What would be the output of the following program?
    main()
       {
        const int x=5;
        int *ptrx;
        ptrx=&x;
        *ptrx=10;
        printf("%d",x);
     }
       a) 5      b) 10 c) Error d) Garbage value

  • A switch statement cannot include
        a) constants as arguments b) constant expression as arguments                                
        c) string as an argument d) None of the above

  • How long the following program will run?
    main()
    {
    printf("\nSonata Software");
    main();
    }
    a) infinite loop     b) until the stack overflows
    c) All of the above d) None of the above

  • On combining the following statements, you will get char*p; p=malloc(100);
        a) char *p= malloc(100) b) p= (char*)malloc(100)
    c) All of the above d) None of the above

  • What is the output of the following program?
    main()
      {
       int n=5;
       printf("\nn=%*d",n,n);
      }
    a) n=5   b) n=5   c) n= 5 d) error

feedback