logo

CuriousTab

CuriousTab

Discussion


Home C Programming Floating Point Issues Comments

  • Question
  • Which of the following statement obtains the remainder on dividing 5.5 by 1.3?


  • Options
  • A. rem = (5.5 % 1.3)
  • B. rem = modf(5.5, 1.3)
  • C. rem = fmod(5.5, 1.3)
  • D. Error: we can't divide

  • Correct Answer
  • rem = fmod(5.5, 1.3) 

    Explanation
    fmod(x,y) - Calculates x modulo y, the remainder of x/y.
    This function is the same as the modulus operator. But fmod() performs floating point divisions.

    Example:

    
    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
      printf ("fmod of 5.5 by 1.3 is %lf\n", fmod (5.5, 1.3) );
      return 0;
    }
    

    Output:
    fmod of 5.5 by 1.3 is 0.300000


    Floating Point Issues problems


    Search Results


    • 1. We want to round off x, a float, to an int value, The correct way to do is

    • Options
    • A. y = (int)(x + 0.5)
    • B. y = int(x + 0.5)
    • C. y = (int)x + 0.5
    • D. y = (int)((int)x + 0.5)
    • Discuss
    • 2. The binary equivalent of 5.375 is

    • Options
    • A. 101.101110111
    • B. 101.011
    • C. 101011
    • D. None of above
    • Discuss
    • 3. What will you do to treat the constant 3.14 as a float?

    • Options
    • A. use float(3.14f)
    • B. use 3.14f
    • C. use f(3.14)
    • D. use (f)(3.14)
    • Discuss
    • 4. What will you do to treat the constant 3.14 as a long double?

    • Options
    • A. use 3.14LD
    • B. use 3.14L
    • C. use 3.14DL
    • D. use 3.14LF
    • Discuss
    • 5. If the binary eauivalent of 5.375 in normalised form is 0100 0000 1010 1100 0000 0000 0000 0000, what will be the output of the program (on intel machine)?
      #include<stdio.h>
      #include<math.h>
      int main()
      {
          float a=5.375;
          char *p;
          int i;
          p = (char*)&a;
          for(i=0; i<=3; i++)
              printf("%02x\n", (unsigned char)p[i]);
          return 0;
      }
      

    • Options
    • A. 40 AC 00 00
    • B. 04 CA 00 00
    • C. 00 00 AC 40
    • D. 00 00 CA 04
    • Discuss
    • 6. Which of the following range is a valid long double (Turbo C in 16 bit DOS OS)?

    • Options
    • A. 3.4E-4932 to 1.1E+4932
    • B. 3.4E-4932 to 3.4E+4932
    • C. 1.1E-4932 to 1.1E+4932
    • D. 1.7E-4932 to 1.7E+4932
    • Discuss
    • 7. A float occupies 4 bytes. If the hexadecimal equivalent of these 4 bytes are A, B, C and D, then when this float is stored in memory in which of the following order do these bytes gets stored?

    • Options
    • A. ABCD
    • B. DCBA
    • C. 0xABCD
    • D. Depends on big endian or little endian architecture
    • Discuss
    • 8. Which statement will you add in the following program to work it correctly?
      #include<stdio.h>
      int main()
      {
          printf("%f\n", log(36.0));
          return 0;
      }
      

    • Options
    • A. #include<conio.h>
    • B. #include<math.h>
    • C. #include<stdlib.h>
    • D. #include<dos.h>
    • Discuss
    • 9. What are the different types of real data type in C?

    • Options
    • A. float, double
    • B. short int, double, long int
    • C. float, double, long double
    • D. double, long int, float
    • Discuss
    • 10. What do the following declaration signify?
      char *arr[10];

    • Options
    • A. arr is a array of 10 character pointers.
    • B. arr is a array of function pointer.
    • C. arr is a array of characters.
    • D. arr is a pointer to array of characters.
    • Discuss


    Comments

    There are no comments.

Enter a new Comment