Pages

NEWSLETTER

Join Over 1500 People Who get Latest MCQ in their Inbox. Its Delivered Automatically each time when We Publish in Mcq Bix.

➨ C Programming Floating Point Issues

1. What are the different types of real data type in C ?
A.float, double
B.short int, double, long int
C.float, double, long double ✔
D.double, long int, float
- Answer&Explanation
Answer:Option C
Explanation :

The floating point data types are called real data types. Hence float, double, and long double are real data types.

2. 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&Explanation
Answer:Option B
Explanation :

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)

3. 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&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

4. 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.None of these
- Answer&Explanation
Answer:Option A
Explanation :

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

5. 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&Explanation
Answer:Option B
Explanation :

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

Declaration syntax: double log(double);

6. 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&Explanation
Answer:Option A
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.

7. The binary equivalent of 5.375 is
A.101.101110111
B.101.011 ✔
C.101011
D.None of above
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

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?
A.ABCD
B.DCBA
C.0xABCD
D.Depends on big endian or little endian architecture ✔
- Answer&Explanation
Answer:Option D
Explanation :

No answer description available for this question

9. 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&Explanation
Answer:Option B
Explanation :

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)

10. 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&Explanation
Answer:Option C
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