Exercise: Floating Point Issues

Questions for: Floating Point Issues

We want to round off x, a float, to an int value, The correct way to do is
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)
Answer: A

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.

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;
}
A:
#include<conio.h>
B:
#include<math.h>
C:
#include<stdlib.h>
D:
#include<dos.h>
Answer: B

math.h is a header file in the standard library of C programming language designed for basic mathematical operations.

Declaration syntax: double log(double);

Which of the following range is a valid long double (Turbo C in 16 bit DOS OS) ?
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
Answer: A

The range of long double is 3.4E-4932 to 1.1E+4932

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;
}
A:
40 AC 00 00
B:
04 CA 00 00
C:
00 00 AC 40
D:
00 00 CA 04
Answer: C
No answer description is available. Let's discuss.
What will you do to treat the constant 3.14 as a long double?
A:
use 3.14LD
B:
use 3.14L
C:
use 3.14DL
D:
use 3.14LF
Answer: B

Given 3.14 is a double constant.

To specify 3.14 as long double, we have to add L to the 3.14. (i.e 3.14L)

Ad Slot (Above Pagination)
Quiz