Tuesday, October 12, 2010

C Programming Interview Questions Declarations and Initializations

1. 
Which of the following statements should be used to obtain a remainder after dividing 3.14 by 2.1 ?
A.rem = 3.14 % 2.1;
B.rem = modf(3.14, 2.1);
C.
rem = fmod(3.14, 2.1);
D.Remainder cannot be obtain in floating point division.
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 3.14/2.1 is %lf\n", fmod (3.14,2.1) );
  return 0;
}
Output:
fmod of 3.14/2.1 is 1.040000


2. 
What are the types of linkages?
A.Internal and ExternalB.
External, Internal and None
C.External and NoneD.Internal
Answer & Explanation
Answer: Option B
Explanation:
External Linkage-> means global, non-static variables and functions.
Internal Linkage-> means static variables and functions with file scope.
None Linkage-> means Local variables.


3. 
Which of the following special symbol allowed in a variable?
A.* (asterisk)B.| (pipeline)
C.- (hyphen)D.
_ (underscore)
Answer & Explanation
Answer: Option D
Explanation:
Variable names in C are made up of letters (upper and lower case) and digits. The underscore character ("_") is also permitted. Names must not begin with a digit.
Examples of valid (but not very descriptive) C variable names:
=> foo
=> Bar
=> BAZ
=> foo_bar
=> _foo42
=> _
=> QuUx 


4. 
Is there any difference between following declarations?
1 :extern int fun();
2 :int fun();
A.Both are identical
B.
No difference, except extern int fun(); is probably in another file
C.int fun(); is overrided with extern int fun();
D.None of these
Answer & Explanation
Answer: Option B
Explanation:
extern int fun(); declaration in C is to indicate the existence of a global function and it is defined externally to the current module or in another file.
int fun(); declaration in C is to indicate the existence of a function inside the current module or in the same file.


5. 
How would you round off a value from 1.66 to 2.0?
A.
ceil(1.66)
B.floor(1.66)
C.roundup(1.66)D.roundto(1.66)
Answer & Explanation
Answer: Option A
Explanation:
/* Example for ceil() and floor() functions: */

#include<stdio.h>
#include<math.h>

int main()
{
    printf("\n Result : %f" , ceil(1.66) );

    printf("\n Result : %f" , floor(1.66) );

    return 0;
}

// Output: Result : 2.000000
// Output: Result : 1.000000

No comments:

Post a Comment