logo

CuriousTab

CuriousTab

Discussion


Home C Programming Floating Point Issues Comments

  • Question
  • 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)

  • Correct Answer
  • y = (int)(x + 0.5) 

    Explanation
    Rounding off a value means replacing it by a nearest value that is approximately equal or smaller or greater to the given number.

    y = (int)(x + 0.5); here x is any float value. To roundoff, we have to typecast the value of x by using (int)

    Example:

    
    #include <stdio.h>
    
    int main ()
    {
      float x = 3.6;
      int y = (int)(x + 0.5);
      printf ("Result = %d\n", y );
      return 0;
    }
    

    Output:
    Result = 4.


    Floating Point Issues problems


    Search Results


    • 1. The binary equivalent of 5.375 is

    • Options
    • A. 101.101110111
    • B. 101.011
    • C. 101011
    • D. None of above
    • Discuss
    • 2. 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
    • 3. 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
    • 4. 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
    • 5. Does there any function exist to convert the int or float to a string?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 6. 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
    • Discuss
    • 7. 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
    • 8. 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
    • 9. 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
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment