Sonata Placement-Paper

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

Leave a Reply0