logo

CuriousTab

CuriousTab

Discussion


Home C Programming Functions Comments

  • Question
  • If int is 2 bytes wide.What will be the output of the program?
    #include <stdio.h>
    void fun(char**);
    
    int main()
    {
        char *argv[] = {"ab", "cd", "ef", "gh"};
        fun(argv);
        return 0;
    }
    void fun(char **p)
    {
        char *t;
        t = (p+= sizeof(int))[-1];
        printf("%s\n", t);
    }
    


  • Options
  • A. ab
  • B. cd
  • C. ef
  • D. gh

  • Correct Answer
  • cd 

    Explanation
    Since C is a machine dependent language sizeof(int) may return different values.

    The output for the above program will be cd in Windows (Turbo C) and gh in Linux (GCC).

    To understand it better, compile and execute the above program in Windows (with Turbo C compiler) and in Linux (GCC compiler).


    Functions problems


    Search Results


    • 1. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int i=2;
          printf("%d, %d\n", ++i, ++i);
          return 0;
      }
      

    • Options
    • A. 3, 4
    • B. 4, 3
    • C. 4, 4
    • D. Output may vary from compiler to compiler
    • Discuss
    • 2. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int i=-3, j=2, k=0, m;
          m = ++i && ++j && ++k;
          printf("%d, %d, %d, %d\n", i, j, k, m);
          return 0;
      }
      

    • Options
    • A. -2, 3, 1, 1
    • B. 2, 3, 1, 2
    • C. 1, 2, 3, 1
    • D. 3, 3, 1, 2
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int a=100, b=200, c;
          c = (a == 100 || b > 200);
          printf("c=%d\n", c);
          return 0;
      }
      

    • Options
    • A. c=100
    • B. c=200
    • C. c=1
    • D. c=300
    • Discuss
    • 4. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int x=55;
          printf("%d, %d, %d\n", x<=55, x=40, x>=10);
          return 0;
      }
      

    • Options
    • A. 1, 40, 1
    • B. 1, 55, 1
    • C. 1, 55, 0
    • D. 1, 1, 1
    • Discuss
    • 5. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int i=3;
          i = i++;
          printf("%d\n", i);
          return 0;
      }
      

    • Options
    • A. 3
    • B. 4
    • C. 5
    • D. 6
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      
      int addmult(int ii, int jj)
      {
          int kk, ll;
          kk = ii + jj;
          ll = ii * jj;
          return (kk, ll);
      }
      
      int main()
      {
          int i=3, j=4, k, l;
          k = addmult(i, j);
          l = addmult(i, j);
          printf("%d, %d\n", k, l);
          return 0;
      }

    • Options
    • A. 12, 12
    • B. 7, 7
    • C. 7, 12
    • D. 12, 7
    • Discuss
    • 7. What will be the output of the program?
      #include<stdio.h>
      int i;
      int fun1(int);
      int fun2(int);
      
      int main()
      {
          extern int j;
          int i=3;
          fun1(i);
          printf("%d,", i);
          fun2(i);
          printf("%d", i);
          return 0;
      }
      int fun1(int j)
      {
          printf("%d,", ++j);
          return 0;
      }
      int fun2(int i)
      {
          printf("%d,", ++i);
          return 0;
      }
      int j=1;
      

    • Options
    • A. 3, 4, 4, 3
    • B. 4, 3, 4, 3
    • C. 3, 3, 4, 4
    • D. 3, 4, 3, 4
    • Discuss
    • 8. What will be the output of the program?
      #include<stdio.h>
      int sumdig(int);
      int main()
      {
          int a, b;
          a = sumdig(123);
          b = sumdig(123);
          printf("%d, %d\n", a, b);
          return 0;
      }
      int sumdig(int n)
      {
          int s, d;
          if(n!=0)
          {
              d = n%10;
              n = n/10;
              s = d+sumdig(n);
          }
          else
              return 0;
          return s;
      }
      

    • Options
    • A. 4, 4
    • B. 3, 3
    • C. 6, 6
    • D. 12, 12
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      
      int addmult(int ii, int jj)
      {
          int kk, ll;
          kk = ii + jj;
          ll = ii * jj;
          return (kk, ll);
      }
      
      int main()
      {
          int i=3, j=4, k, l;
          k = addmult(i, j);
          l = addmult(i, j);
          printf("%d %d\n", k, l);
          return 0;
      }

    • Options
    • A. 12 12
    • B. No error, No output
    • C. Error: Compile error
    • D. None of above
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          void fun(char*);
          char a[100];
          a[0] = 'A'; a[1] = 'B';
          a[2] = 'C'; a[3] = 'D';
          fun(&a[0]);
          return 0;
      }
      void fun(char *a)
      {
          a++;
          printf("%c", *a);
          a++;
          printf("%c", *a);
      }
      

    • Options
    • A. AB
    • B. BC
    • C. CD
    • D. No output
    • Discuss


    Comments

    There are no comments.

Enter a new Comment