Pages

NEWSLETTER

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

Showing posts with label C Programming. Show all posts
Showing posts with label C Programming. Show all posts

➨ C Programming Functions

1. The keyword used to transfer control from a function back to the calling function is
A.switch
B.goto
C.go back
D.return ✔
- Answer&Explanation
Answer:Option D
Explanation :

The keyword return is used to transfer control from a function back to the calling function.


Example:

#include
int add(int, int); /* Function prototype */

int main()
{
    int a = 4, b = 3, c;
    c = add(a, b);
    printf("c = %d\n", c);
    return 0;
}
int add(int a, int b)
{
/* returns the value and control back to main() function */
   return (a+b);
}
Output
c = 7

2. What is the notation for following functions?
1.  int f(int a, float b)
    {
        /* Some code */
    }

2.  int f(a, b)
    int a; float b;
    {
        /* Some code */
    }
A.1. KR Notation And 2. ANSI Notation
B.1. Pre ANSI C Notation And 2. KR Notation
C.1. ANSI Notation And 2. KR Notation ✔
D.1. ANSI Notation And 2. Pre ANSI Notation
- Answer&Explanation
Answer:Option C
Explanation :

KR Notation means Kernighan and Ritche Notation.

3. How many times the program will print "MCQBIX" ?
#include

int main()
{
    printf("MCQBIX");
    main();
    return 0;
}
A.Infinite times
B.32767 times
C.65535 times
D.Till stack overflows ✔
- Answer&Explanation
Answer:Option D
Explanation :

call stack or function stack is used for several related purposes, but the main reason for having one is to keep track of the point to which each active subroutine should return control when it finishes executing.

stack overflow occurs when too much memory is used on the call stack.

Here function main() is called repeatedly and its return address is stored in the stack. After stack memory is full. It shows stack overflow error.

➨ C Programming Control Instructions

1. How many times "MCQBIX" is get printed?
#include
int main()
{
    int x;
    for(x=-1; x<=10; x++)
    {
        if(x < 5)
            continue;
        else
            break;
        printf("MCQBIX");
    }
    return 0;
}
A.Infinite times
B.0 times ✔
C.10 times
D.11 times
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

2. How many times the while loop will get executed if a short int is 2 byte wide?
#include
int main()
{
    int j=1;
    while(j <= 255)
    {
        printf("%c %d\n", j, j);
        j++;
    }
    return 0;
}
A.Infinite times
B.255 times ✔
C.256 times
D.254 times
- Answer&Explanation
Answer:Option B
Explanation :

The while(j <= 255) loop will get executed 255 times. The size short int(2 byte wide) does not affect the while() loop.

3. Which of the following is not logical operator?
A.& ✔
B.||
C.&&
D.!
- Answer&Explanation
Answer:Option A
Explanation :

Bitwise operators:
& is a Bitwise AND operator.

Logical operators:
&& is a Logical AND operator.
|| is a Logical OR operator.
! is a NOT operator.

So, '&' is not a Logical operator.

4. In mathematics and computer programming, which is the correct order of mathematical operators ?
A.Addition, Subtraction, Multiplication, Division
B.Multiplication, Addition, Division, Subtraction
C.Division, Multiplication, Addition, Subtraction ✔
D.Addition, Division, Modulus, Subtraction
- Answer&Explanation
Answer:Option C
Explanation :

Simply called as BODMAS (Brackets, Order, Division, Multiplication, Addition and Subtraction).

Mnemonics are often used to help students remember the rules, but the rules taught by the use of acronyms can be misleading. In the United States the acronym PEMDAS is common. It stands for Parentheses, Exponents, Multiplication, Division, Addition, Subtraction. In other English speaking countries, Parentheses may be called Brackets, or symbols of inclusion and Exponentiation may be called either Indices, Powers or Orders, and since multiplication and division are of equal precedence, M and D are often interchanged, leading to such acronyms as BEDMAS, BIDMAS, BODMAS, BERDMAS, PERDMAS, and BPODMAS.

For more info: http://en.wikipedia.org/wiki/Order_of_operations

5. Which of the following cannot be checked in a switch-case statement?
A.Character
B.Integer
C.Float ✔
D.enum
- Answer&Explanation
Answer:Option C
Explanation :

The switch/case statement in the c language is defined by the language specification to use an int value, so you can not use a float value.


switch( expression )
{
    case constant-expression1:    statements 1;
    case constant-expression2:    statements 2;    
    case constant-expression3:    statements3 ;
    ...
    ...
    default : statements 4;
}
The value of the 'expression' in a switch-case statement must be an integer, char, short, long. Float and double are not allowed.

➨ C Programming Library Functions

1. What will the function rewind() do?
A.Reposition the file pointer to a character reverse.
B.Reposition the file pointer stream to end of file.
C.Reposition the file pointer to begining of that line.
D.Reposition the file pointer to begining of file. ✔
- Answer&Explanation
Answer:Option D
Explanation :

rewind() takes the file pointer to the beginning of the file. so that the next I/O operation will take place at the beginning of the file.
Example: rewind(FilePointer);

2. Input/output function prototypes and macros are defined in which header file?
A.conio.h
B.stdlib.h
C.stdio.h ✔
D.dos.h
- Answer&Explanation
Answer:Option C
Explanation :

stdio.h, which stands for "standard input/output header", is the header in the C standard library that contains macro definitions, constants, and declarations of functions and types used for various standard input and output operations.

3. Which standard library function will you use to find the last occurance of a character in a string in C?
A.strnchar()
B.strchar()
C.strrchar()
D.strrchr() ✔
- Answer&Explanation
Answer:Option D
Explanation :

strrchr() returns a pointer to the last occurrence of character in a string.

Example:


#include 
#include 

int main()
{
    char str[30] = "12345678910111213";
    printf("The last position of '2' is %d.\n",
            strrchr(str, '2') - str);
    return 0;
}
Output: The last position of '2' is 14.

4. What is stderr ?
A.standard error
B.standard error types
C.standard error streams ✔
D.standard error definitions
- Answer&Explanation
Answer:Option C
Explanation :

The standard error(stderr) stream is the default destination for error messages and other diagnostic warnings. Like stdout, it is usually also directed to the output device of the standard console (generally, the screen).

5. Does there any function exist to convert the int or float to a string?
A.Yes ✔
B.No
- Answer&Explanation
Answer:Option A
Explanation :

1. itoa() converts an integer to a string.
2. ltoa() converts a long to a string.
3. ultoa() converts an unsigned long to a string.
4. sprintf() sends formatted output to a string, so it can be used to convert any type of values to string type.


#include
#include

int main(void)
{
   int   num1 = 12345;
   float num2 = 5.12;
   char str1[20];
   char str2[20];

   itoa(num1, str1, 10); /* 10 radix value */
   printf("integer = %d string = %s \n", num1, str1);

   sprintf(str2, "%f", num2);
   printf("float = %f string = %s", num2, str2);

   return 0;
}

// Output:
// integer = 12345 string = 12345
// float = 5.120000 string = 5.120000

6. What is the purpose of fflush() function.
A.flushes all streams and specified streams. ✔
B.flushes only specified stream.
C.flushes input/output buffer.
D.flushes file buffer.
- Answer&Explanation
Answer:Option A
Explanation :

"fflush()" flush any buffered output associated with filename, which is either a file opened for writing or a shell command for redirecting output to a pipe or coprocess.

Example: 
fflush(FilePointer);
fflush(NULL); flushes all streams.

7. Can you use the fprintf() to display the output on the screen?
A.Yes ✔
B.No
- Answer&Explanation
Answer:Option A
Explanation :

Do like this fprintf(stdout, "%s %d %f", str, i, a);

8. What will the function randomize() do in Turbo C under DOS?
A.returns a random number.
B.returns a random number generator in the specified range.
C.returns a random number generator with a random value based on time. ✔
D.return a random number with a given seed value.
- Answer&Explanation
Answer:Option C
Explanation :

The randomize() function initializes the random number generator with a random value based on time. You can try the sample program given below in Turbo-C, it may not work as expected in other compilers.


/* Prints a random number in the range 0 to 99 */

#include 
#include 
#include 

int main(void)
{
    randomize();
    printf("Random number in the 0-99 range: %d\n", random (100));
    return 0;
}

➨ C Programming Memory Allocation

1. Which header file should be included to use functions like malloc() and calloc()?
A.memory.h
B.stdlib.h ✔
C.string.h
D.dos.h
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

2. What function should be used to free the memory allocated by calloc() ?
A.dealloc();
B.malloc(variable_name, 0)
C.free(); ✔
D.memalloc(variable_name, 0)
- Answer&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

3. How will you free the memory allocated by the following program?
#include
#include
#define MAXROW 3
#define MAXCOL 4

int main()
{
    int **p, i, j;
    p = (int **) malloc(MAXROW * sizeof(int*));
    return 0;
}
A.memfree(int p);
B.dealloc(p);
C.malloc(p, 0);
D.free(p); ✔
- Answer&Explanation
Answer:Option D
Explanation :

No answer description available for this question.

4. Specify the 2 library functions to dynamically allocate memory?
A.malloc() and memalloc()
B.alloc() and memalloc()
C.malloc() and calloc() ✔
D.memalloc() and faralloc()
- Answer&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

➨ C Programming Bitwise Operators

1. In which numbering system can the binary number 1011011111000101 be easily converted to?
A.Decimal system
B.Octal system
C.Hexadecimal system ✔
D.No need to convert
- Answer&Explanation
Answer:Option C
Explanation :

Hexadecimal system is better, because each 4-digit binary represents one Hexadecimal digit.

2. Which bitwise operator is suitable for turning off a particular bit in a number?
A.&& operator
B.& operator ✔
C.|| operator
D.! operator
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

3. Which bitwise operator is suitable for turning on a particular bit in a number?
A.&& operator
B.|| operator
C.| operator ✔
D.& operator
- Answer&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

4. Which bitwise operator is suitable for checking whether a particular bit is on or off?
A.&& operator
B.|| operator
C.| operator
D.& operator ✔
- Answer&Explanation
Answer:Option D
Explanation :

No answer description available for this question.

➨ C Programming Structures, Unions, Enums

1. How will you free the allocated memory ?
A.remove(var-name);
B.free(var-name); ✔
C.delete(var-name);
D.dalloc(var-name);
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

2. What is the similarity between a structure, union and enumeration?
A.All of them let you define new values
B.All of them let you define new pointers
C.All of them let you define new data types ✔
D.All of them let you define new structures
- Answer&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

➨ C Programming Pointers

1. What is (void*)0?
A.Representation of NULL pointer ✔
B.Representation of void pointer
C.Error
D.None of above
- Answer&Explanation
Answer:Option A
Explanation :

No answer description available for this question.

2. Can you combine the following two statements into one?
char *p;
p = (char*) malloc(100);
A.char p = *malloc(100);
B.char *p = (char) malloc(100);
C.char *p = (char*)malloc(100); ✔
D.char *p = (char *)(malloc*)(100);
- Answer&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

3. In which header file is the NULL macro defined?
A.stdio.h
B.stddef.h
C.stdio.h & stddef.h ✔
D.math.h
- Answer&Explanation
Answer:Option C
Explanation :

The macro "NULL" is defined in locale.h, stddef.h, stdio.h, stdlib.h, string.h, time.h, and wchar.h.

4. How many bytes are occupied by near, far and huge pointers (DOS)?
A.near=2 far=4 huge=4 ✔
B.near=4 far=8 huge=8
C.near=2 far=4 huge=8
D.near=4 far=4 huge=8
- Answer&Explanation
Answer:Option A
Explanation :

near=2far=4 and huge=4 pointers exist only under DOS. Under windows and Linux every pointers is 4 bytes long.

5. If a variable is a pointer to a structure, then which of the following operator is used to access data members of the structure through the pointer variable?
A..
B.*
C.&
D.-> ✔
- Answer&Explanation
Answer:Option D
Explanation :

No answer description available for this question.

6. What would be the equivalent pointer expression for referring the array element a[i][j][k][l]
A.((((a+i)+j)+k)+l)
B.*(*(*(*(a+i)+j)+k)+l) ✔
C.(((a+i)+j)+k+l)
D.((a+i)+j+k+l)
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

7. A pointer is _____?
A.A keyword used to create variables
B.A variable that stores address of an instruction
C.A variable that stores address of other variable ✔
D.All of the above
- Answer&Explanation
Answer:Option C
Explanation :

No answer description available for this question.

8. The operator used to get value at address stored in a pointer variable is
A.*
B.& ✔
C.&&
D.||
- Answer&Explanation
Answer:Option B
Explanation :

No answer description available for this question.

➨ 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

➨ C Programming Declarations And Initialization

1. What is the output of the program given below ?
#include
int main()
{
    enum status { pass, fail, atkt};
    enum status stud1, stud2, stud3;
    stud1 = pass;
    stud2 = atkt;
    stud3 = fail;
    printf("%d, %d, %d\n", stud1, stud2, stud3);
    return 0;
}
A.0, 1, 2
B.1, 2, 3
C.0, 2, 1 ✔
D.1, 3, 2
- Answer&Explanation
Answer:Option C
Explanation :

enum takes the format like {0,1,2..) so pass=0, fail=1, atkt=2
stud1 = pass (value is 0)
stud2 = atkt (value is 2)
stud3 = fail (value is 1)
Hence it prints 0, 2, 1
2. What will be the output of the program in 16 bit platform (Turbo C under DOS)?
#include
int main()
{
    extern int i;
    i = 20;
    printf("%d\n", sizeof(i));
    return 0;
}
A.2
B.4
C.vary from compiler
D.Linker Error : Undefined symbol 'i' ✔
- Answer&Explanation
Answer:Option D
Explanation :
Linker Error : Undefined symbol 'i'
The statement extern int i specifies to the compiler that the memory for 'i' is allocated in some other program and that address will be given to the current program at the time of linking. But linker finds that no other variable of name 'i' is available in any other program with memory space allocated for it. Hence a linker error has occurred.
3. 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 
#include 

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
4. What are the types of linkages?
A.Internal and External
B.External and None
C.External, Internal and None ✔
D.Internal
- Answer&Explanation
Answer:Option C
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.
5. Which of the following special symbol allowed in a variable name?
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 
6. 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.
7. 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
#include

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

    return 0;
}
// Output:
// Result : 2.000000
// Result : 2.000000
// Result : 1.000000
// Result : 1.000000
8. By default a real number is treated as a
A.float
B.double ✔
C.long double
D.far double
- Answer&Explanation
Answer:Option B
Explanation :

In computing, 'real number' often refers to non-complex floating-point numbers. It include both rational numbers, such as 42 and 3/4, and irrational numbers such as pi = 3.14159265...
When the accuracy of the floating point number is insufficient, we can use the double to define the number. The double is same as float but with longer precision and takes double space (8 bytes) than float.
To extend the precision further we can use long double which occupies 10 bytes of memory space.
9. Which of the following is not user defined data type?
1 :
struct book
{
    char name[10];
    float price;
    int pages;
};
2 :
long int l = 2.35;
3 :
enum day {Sun, Mon, Tue, Wed};
A.1
B.2 ✔
C.3
D.1 & 2
- Answer&Explanation
Answer:Option B
Explanation :

C data types classification are
  1. Primary data types
    1. int
    2. char
    3. float
    4. double
    5. void
  2. Secondary data types (or) User-defined data type
    1. Array
    2. Pointer
    3. Structure
    4. Union
    5. Enum
So, clearly long int l = 2.35; is not User-defined data type.
(i.e.long int l = 2.35; is the answer.)
10. Is the following statement a declaration or definition?
extern int i;
A.Declaration ✔
B.Definition
C.Error
D.Function
- Answer&Explanation
Answer:Option A
Explanation :

Declaring is the way a programmer tells the compiler to expect a particular type, be it a variable, class/struct/union type, a function type (prototype) or a particular object instance. (ie. extern int i)
Declaration never reserves any space for the variable or instance in the program's memory; it simply a "hint" to the compiler that a use of the variable or instance is expected in the program. This hinting is technically called "forward reference".
11. Identify which of the following are declarations
1 :extern int x;
2 :float square ( float x ) { ... }
3 :double pow(double, double);
A.1
B.2
C.1 & 3 ✔
D.3
- Answer&Explanation
Answer:Option C
Explanation :
extern int x; - is an external variable declaration.

double pow(double, double); - is a function prototype declaration.

Therefore, 1 and 3 are declarations. 2 is definition.
12. In the following program where is the variable a getting defined and where it is getting declared?
#include
int main()
{
    extern int a;
    printf("%d\n", a);
    return 0;
}
int a=20;
A.extern int a is declaration, int a = 20 is the definition ✔
B.int a = 20 is declaration, extern int a is the definition
C.int a = 20 is definition, a is not defined
D.a is declared, a is not defined
- Answer&Explanation
Answer:Option A
Explanation :

- During declaration we tell the datatype of the Variable.
- During definition the value is initialized.
13. When we mention the prototype of a function?
A.Defining
B.Declaring ✔
C.Prototyping
D.Calling
- Answer&Explanation
Answer:Option B
Explanation :

A function prototype in C or C++ is a declaration of a function that omits the function body but does specify the function's name, argument types and return type.
While a function definition specifies what a function does, a function prototype can be thought of as specifying its interface.
14. What is the output of the program?
#include
int main()
{
    extern int a;
    printf("%d\n", a);
    return 0;
}
int a=20;
A.20 ✔
B.0
C.Garbage Value
D.Error
- Answer&Explanation
Answer:Option A
Explanation :

extern int a; indicates that the variable a is defined elsewhere, usually in a separate source code module.
printf("%d\n", a); it prints the value of local variable int a = 20. Because, whenever there is a conflict between local variable and global variable, local variable gets the highest priority. So it prints 20.
15. What is the output of the program in Turbo C (in DOS 16-bit OS)?
#include
int main()
{
    char *s1;
    char far *s2;
    char huge *s3;
    printf("%d, %d, %d\n", sizeof(s1), sizeof(s2), sizeof(s3));
    return 0;
}
A.2, 4, 6
B.4, 4, 2
C.2, 4, 4 ✔
D.2, 2, 2
- Answer&Explanation
Answer:Option C
Explanation :

Any pointer size is 2 bytes. (only 16-bit offset)
So, char *s1 = 2 bytes.
So, char far *s2; = 4 bytes.
So, char huge *s3; = 4 bytes.
A far, huge pointer has two parts: a 16-bit segment value and a 16-bit offset value.
Since C is a compiler dependent language, it may give different output in other platforms. The above program works fine in Windows (TurboC), but error in Linux (GCC Compiler).
16. What is the output of the program?
#include
int main()
{
    struct emp
    {
        char name[20];
        int age;
        float sal;
    };
    struct emp e = {"Tiger"};
    printf("%d, %f\n", e.age, e.sal);
    return 0;
}
A.0, 0.000000 ✔
B.Garbage values
C.Error
D.None of these
- Answer&Explanation
Answer:Option A
Explanation :
When an automatic structure is partially initialized remaining elements are initialized to 0(zero).
17. What will be the output of the program?
#include
int X=40;
int main()
{
    int X=20;
    printf("%d\n", X);
    return 0;
}
A.20 ✔
B.40
C.Error
D.No Output
- Answer&Explanation
Answer:Option A
Explanation :
Whenever there is conflict between a local variable and global variable, the local variable gets priority.
18. What is the output of the program?
#include
int main()
{
    int x = 10, y = 20, z = 5, i;
    i = x < y < z;
    printf("%d\n", i);
    return 0;
}
A.0
B.1 ✔
C.Error
D.None of these
- Answer&Explanation
Answer:Option B
Explanation :
Since x < y turns to be TRUE it is replaced by 1. Then 1 < z is compared and to be TRUE. The 1 is assigned to i.
19. What is the output of the program?
#include
int main()
{
    extern int fun(float);
    int a;
    a = fun(3.14);
    printf("%d\n", a);
    return 0;
}
int fun(int aa)
{
    return (int)++aa;
}
A.0
B.3
C.4
D.Compile Error ✔
- Answer&Explanation
Answer:Option D
Explanation :
2 Errors
1. Type mismatch in redeclaration of fun
2. Type mismatch in parameter aa
20. What is the output of the program?
#include
int main()
{
    int a[5] = {2, 3};
    printf("%d, %d, %d\n", a[2], a[3], a[4]);
    return 0;
}
A.Garbage Values
B.2, 3, 3
C.3, 2, 2
D.0, 0, 0 ✔
- Answer&Explanation
Answer:Option D
Explanation :
When an automatic array is partially initialized, the remaining elements are initialized to 0.
21. What is the output of the program?
#include
int main()
{
    union a
    {
        int i;
        char ch[2];
    };
    union a u;
    u.ch[0] = 3;
    u.ch[1] = 2;
    printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i);
    return 0;
}
A.3, 2, 515 ✔
B.515, 2, 3
C.3, 2, 5
D.None of these
- Answer&Explanation
Answer:Option A
Explanation :

printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i); It prints the value ofu.ch[0] = 3, u.ch[1] = 2 and it prints the value of u.i means the value of entire union size.
So the output is 3, 2, 515.
22. In the following program how long will the for loop get executed?
#include
int main()
{
    int i=5;
    for(;scanf("%s", &i); printf("%d\n", i));
    return 0;
}
A.The for loop would not get executed at all
B.The for loop would get executed only once
C.The for loop would get executed 5 times
D.The for loop would get executed infinite times ✔
- Answer&Explanation
Answer:Option D
Explanation :

During the for loop execution scanf() ask input and then printf() prints that given input. This process will be continued repeatedly because, scanf() returns the number of input given, the condition is always true(user gives a input means it reurns '1').
Hence this for loop would get executed infinite times.
23. What will be the output of the program?
#include
int main()
{
    int X=40;
    {
        int X=20;
        printf("%d ", X);
    }
    printf("%d\n", X);
    return 0;
}
A.40 40
B.20 40 ✔
C.20
D.Error
- Answer&Explanation
Answer:Option B
Explanation :
In case of a conflict between a local variable and global variable, the local variable gets priority.
24. Point out the error in the following program (if it is compiled with Turbo C compiler).
#include
int main()
{
    display();
    return 0;
}
void display()
{
    printf("MCQBIX.com");
}
A.No Error
B.display() doesn't get invoked
C.display() is called before it is defined ✔
D.None of these
- Answer&Explanation
Answer:Option C
Explanation :

In this program the compiler will not know that the function display() exists. So, the compiler will generate "Type mismatch in redeclaration of function display()".
To over come this error, we have to add function prototype of function display().
Another way to overcome this error is to define the function display() before the int main(); function.

#include
void display(); /* function prototype */

int main()
{
    display();
    return 0;
}
void display()
{
    printf("MCQBIX");
}
Output: MCQBIX
Note: This problem will not occur in modern compilers (this problem occurs in TurboC but not in GCC).
25. Point out the error in the following program.
#include
int main()
{
    void v = 0;

    printf("%d", v);

    return 0;
}
A.Error: Declaration syntax error 'v' (or) Size of v is unknown or zero. ✔
B.Program terminates abnormally.
C.No error
D.None of these.
- Answer&Explanation
Answer:Option A
Explanation :
No answer description available for this question. 
26. Point out the error in the following program.
#include
struct emp
{
    char name[20];
    int age;
};
int main()
{
    emp int xx;
    int a;
    printf("%d\n", &a);
    return 0;
}
A.Error: in printf
B.Error: in emp int xx; ✔
C.No error
D.None of these
- Answer&Explanation
Answer:Option B
Explanation :

There is an error in the line emp int xx;
To overcome this error, remove the int and add the struct at the begining of emp int xx;
#include
struct emp
{
    char name[20];
    int age;
};
int main()
{
    struct emp xx;
    int a;
    printf("%d\n", &a);
    return 0;
}
27. Which of the following is correct about err used in the declaration given below?
 typedef enum error { warning, test, exception } err;
A.It is a typedef for enum error. ✔
B.It is a variable of type enum error.
C.The statement is erroneous.
D.It is a structure.
- Answer&Explanation
Answer:Option A
Explanation :
typedef gives a new name to an existing data type. 
So err is a new name for enum error.
28. Point out the error in the following program.
#include
int main()
{
    int (*p)() = fun;
    (*p)();
    return 0;
}
int fun()
{
    printf("IndiaBix.com\n");
    return 0;
}
A.Error: in int(*p)() = fun;
B.Error: fun() prototype not defined ✔
C.No error
D.None of these
- Answer&Explanation
Answer:Option B
Explanation :
The compiler will not know that the function int fun() exists. So we have to define the function prototype of int fun();
To overcome this error, see the below program

#include
int fun(); /* function prototype */

int main()
{
    int (*p)() = fun;
    (*p)();
    return 0;
}
int fun()
{
    printf("IndiaBix.com\n");
    return 0;
}
29. Which of the declaration is correct?
A.int length; ✔
B.char int;
C.int long;
D.float double;
- Answer&Explanation
Answer:Option A
Explanation :

int length; denotes that variable length is int(integer) data type.
char int; here int is a keyword cannot be used a variable name.
int long; here long is a keyword cannot be used a variable name.
float double; here double is a keyword cannot be used a variable name.
So, the answer is int length;
30. Which of the following operations are INCORRECT?
A.
int i = 35; i = i%5;
B.
short int j = 255; j = j;
C.
long int k = 365L; k = k;
D.
float a = 3.14; a = a%3;
✔
- Answer&Explanation
Answer:Option D
Explanation :

float a = 3.14; a = a%3; gives "Illegal use of floating point" error.
The modulus (%) operator can only be used on integer types. We have to use fmod()function in math.h for float values.
31. Which of the following correctly represents a long double constant?
A.6.68
B.6.68L ✔
C.6.68f
D.6.68LF
- Answer&Explanation
Answer:Option B
Explanation :
6.68 is double
6.68L is long double constant. 
6.68f is float constant. 
6.68LF is not allowed in c. 
32. Which of the structure is incorrcet?
1 :
struct aa
{
    int a;
    float b;
};
2 :
struct aa
{
    int a;
    float b;
    struct aa var;
};
3 :
struct aa
{
    int a;
    float b;
    struct aa *var;
};
A.1
B.2 ✔
C.3
D.1, 2, 3
- Answer&Explanation
Answer:Option B
Explanation :
Option B gives "Undefined structure in 'aa'" error.
33. Which of the structure is correct?
1 :
struct book
{
    char name[10];
    float price;
    int pages;
};
2 :
struct aa
{
    char name[10];
    float price;
    int pages;
}
3 :
struct aa
{
    char name[10];
    float price;
    int pages;
}
A.1 ✔
B.2
C.3
D.All of these
- Answer&Explanation
Answer:Option A
Explanation :
In 2 and 3 semicolon are missing in structure element.
34. Which of the structure is correct?
1 : typedef long a;
extern int a c;
2 : typedef long a;
extern a int c;
3 : typedef long a;
extern a c;
A.1 correct
B.2 correct
C.3 correct ✔
D.1, 2, 3 are correct
- Answer&Explanation
Answer:Option C
Explanation :

typedef long a;
extern int a c;
 while compiling this statement becomes extern int long c;. This will result in to "Declaration syntax error".
typedef long a;
extern a int c;
 while compiling this statement becomes extern long int c;. This will result in to "Too many types in declaration error".
typedef long a;
extern a c;
 while compiling this statement becomes extern long c;. This is a valid c declaration statement. It says variable c is long data type and defined in some other file or module.