Exercise: Floating Point Issues

Questions for: Floating Point Issues

What will be the output of the program?
#include<stdio.h>
int main()
{
    float a=0.7;
    if(a < 0.7)
        printf("C\n");
    else
        printf("C++\n");
    return 0;
}
A:
C
B:
C++
C:
Compiler error
D:
Non of above
Answer: A

if(a < 0.7) here a is a float variable and 0.7 is a double constant. The float variable a is less than double constant 0.7. Hence the if condition is satisfied and it prints 'C'
Example:

#include<stdio.h>
int main()
{
    float a=0.7;
    printf("%.10f %.10f\n",0.7, a);
    return 0;
}

Output:
0.7000000000 0.6999999881

Which of the following statement obtains the remainder on dividing 5.5 by 1.3 ?
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
Answer: C

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

What will you do to treat the constant 3.14 as a float?
A:
use float(3.14f)
B:
use 3.14f
C:
use f(3.14)
D:
use (f)(3.14)
Answer: B

Given 3.14 is a double constant.
To specify 3.14 as float, we have to add f to the 3.14. (i.e 3.14f)

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?
A:
ABCD
B:
DCBA
C:
0xABCD
D:
Depends on big endian or little endian architecture
Answer: D
No answer description is available. Let's discuss.
The binary equivalent of 5.375 is
A:
101.101110111
B:
101.011
C:
101011
D:
None of above
Answer: B
No answer description is available. Let's discuss.
Ad Slot (Above Pagination)
Quiz