logo

CuriousTab

CuriousTab

Discussion


Home C Programming C Preprocessor See What Others Are Saying!
  • Question
  • What will be the output of the program?
    #include<stdio.h>
    #define SQUARE(x) x*x
    
    int main()
    {
        float s=10, u=30, t=2, a;
        a = 2*(s-u*t)/SQUARE(t);
        printf("Result = %f", a);
        return 0;
    }
    


  • Options
  • A. Result = -100.000000
  • B. Result = -25.000000
  • C. Result = 0.000000
  • D. Result = 100.000000

  • Correct Answer
  • Result = -100.000000 

    Explanation
    The macro function SQUARE(x) x*x calculate the square of the given number 'x'. (Eg: 102)

    Step 1: float s=10, u=30, t=2, a; Here the variable s, u, t, a are declared as an floating point type and the variable s, u, t are initialized to 10, 30, 2.

    Step 2: a = 2*(s-u*t)/SQUARE(t); becomes,

    => a = 2 * (10 - 30 * 2) / t * t; Here SQUARE(t) is replaced by macro to t*t .

    => a = 2 * (10 - 30 * 2) / 2 * 2;

    => a = 2 * (10 - 60) / 2 * 2;

    => a = 2 * (-50) / 2 * 2 ;

    => a = 2 * (-25) * 2 ;

    => a = (-50) * 2 ;

    => a = -100;

    Step 3: printf("Result=%f", a); It prints the value of variable 'a'.

    Hence the output of the program is -100


    More questions

    • 1. Bitwise & can be used to check if a bit in number is set or not.

    • Options
    • A. True
    • B. False
    • Discuss
    • 2. A pointer union CANNOT be created

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
          union test
          {
              int i;
              float f;
              char c;
          };
          union test *t;
          t = (union test *)malloc(sizeof(union test));
          t->f = 10.10f;
          printf("%f", t->f);
          return 0;
      }
      

    • Options
    • A. 10
    • B. Garbage value
    • C. 10.100000
    • D. Error
    • Discuss
    • 4. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int x=4, y, z;
          y = --x;
          z = x--;
          printf("%d, %d, %d\n", x, y, z);
          return 0;
      }
      

    • Options
    • A. 4, 3, 3
    • B. 4, 3, 2
    • C. 3, 3, 2
    • D. 2, 3, 3
    • Discuss
    • 5. Functions cannot return a floating point number

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 6. 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
    • 7. 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
    • 8. 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
    • 9. Which of the following statements correct about k used in the below statement?
      char ****k;

    • Options
    • A. k is a pointer to a pointer to a pointer to a char
    • B. k is a pointer to a pointer to a pointer to a pointer to a char
    • C. k is a pointer to a char pointer
    • D. k is a pointer to a pointer to a char
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      
      void fun(void *p);
      int i;
      
      int main()
      {
          void *vptr;
          vptr = &i;
          fun(vptr);
          return 0;
      }
      void fun(void *p)
      {
          int **q;
          q = (int**)&p;
          printf("%d\n", **q);
      }
      

    • Options
    • A. Error: cannot convert from void** to int**
    • B. Garbage value
    • C. 0
    • D. No output
    • Discuss


    Comments

    There are no comments.

Enter a new Comment