Explore topic-wise MCQs in C Programming.

This section includes 45 Mcqs, each offering curated multiple-choice questions to sharpen your C Programming knowledge and support exam preparation. Choose a topic below to get started.

1.

In the following code snippet can we declare a new named even though has not been completely declared while using ?

A. Yes
B. No
Answer» B. No
2.

Point out the error in the following code?

A. Error: in *NODEPTR
B. Error:
C. cannot be used until it is defined
D. No error
E. None of above
Answer» C. cannot be used until it is defined
3.

Is the following declaration acceptable?

A. Yes
B. NO
Answer» B. NO
4.

Is there any difference in the and in the following code?

A. Yes
B. No
Answer» B. No
5.

Are the properties of and in the following program same?

A. Yes
B. No
Answer» B. No
6.

's have the advantage that they obey scope rules, that is they can be declared local to a function or a block whereas 's always have a global effect.

A. Yes
B. No
Answer» B. No
7.

In the following code, the is Integer Pointer or Integer?

A. Integer
B. Integer pointer
C. Error in declaration
D. None of above
Answer» C. Error in declaration
8.

In the following code what is 'P'?

A. P is a constant
B. P is a character constant
C. P is character type
D. None of above
Answer» B. P is a character constant
9.

What is x in the following program?

A. x is a pointer
B. x is an array of three pointer
C. x is an array of three function pointers
D. Error in x declaration
Answer» D. Error in x declaration
10.

What will be the output of the following C code?
#include <stdio.h>
typedef struct MM
{
int n1, n2;
}mm;
int main()
{
struct MM m = {22, 44};
mm k = m;
printf("%d n", k.n1);
}

A. Compilation Error
B. 44
C. 22
D. Garbage value
E. None of these
Answer» D. Garbage value
11.

Which option should be selected to work the following C expression?
string s = "WELCOME";

A. Such expression cannot be generated in C
B. typedef char [] string;
C. typedef char *string;
D. typedef char [] string; and typedef char *string;
E. None of these
Answer» D. typedef char [] string; and typedef char *string;
12.

What will be the output of the following C code?
#include <stdio.h>
typedef struct NN
{
int n, m;
}s = {11, 22};
int main()
{
NN nn = s;
printf("%d n", nn.n);
}

A. Depends on the standard
B. 11
C. 22
D. Garbage value
E. Compilation Error
Answer» F.
13.

Which of the following will be the correct output for the program given below ?
#include<stdio.h>
int main ( )
{
typedef int arr[ 5 ];
arr new_arr = {1, 2, 3, 4, 5 };
int k ;
for (k = 0; k < 4 ; k++)
printf("%d", new_arr[k] );
printf(" n");
return 0;
}

A. 1 2 3 4
B. 1 2 3 4 5
C. No output
D. Error: Cannot use typedef with an array
Answer» B. 1 2 3 4 5
14.

What will be the output of the following C code?
#include <stdio.h>
typedef struct B
{
int n1, n2;
};
int main()
{
B k = {10, 20};
printf("%d n", k.n1);
}

A. 10
B. 20
C. Compilation Error
D. Undefined behaviour
E. None of these
Answer» D. Undefined behaviour
15.

What will be the output of the following C code?
#include <stdio.h>
int (*(a()))[2];
typedef int (*(*p)())[2] ptrfun;
int main()
{
ptrfun p1;
p1 = a;
p1();
return 0;
}
int (*(a()))[2]
{
int (*array)[2] = malloc(sizeof*array);
return &array;
}

A. Nothing
B. Undefined behaviour
C. Compilation Error
D. Garbage value
E. None of these
Answer» D. Garbage value
16.

What will be the output of the following C code?
#include <stdio.h>
typedef int integer;
int main()
{
int n1 = 120, *p;
float n2 = 250;
integer k = n1;
p = &k;
printf("%d n", *p);
return 0;
}

A. 250
B. Compilation Error
C. Garbage value
D. 120
E. None of these
Answer» E. None of these
17.

What will be the output of the following C code?
#include <stdio.h>
typedef struct Employee
{
char *ch;
}Employ;
void main()
{
struct Employee emp;
emp.ch = "Welcome";
printf("%s", emp.ch);
}

A. Welcome
B. Compilation Error
C. Garbage value
D. Undefined behaviour
E. None of these
Answer» B. Compilation Error
18.

Which of the given option is the correct method for initialization?
typedef char *string;

A. Not more than one space should be given when using typedef
B. *string *q = Welcome ;
C. string p = Welcome ;
D. *string p = B ;
E. None of these
Answer» D. *string p = B ;
19.

What will be the output of the following C code?
#include <stdio.h>
typedef struct Employee
{
char *ch;
}Employ;
void main()
{
struct Employ emp;
emp.ch = "hello";
printf("%s", emp.ch);
}

A. Compilation Error
B. Garbage value
C. hello
D. Undefined behaviour
E. None of these
Answer» B. Garbage value
20.

What will be the output of the following C code?
#include <stdio.h>
typedef struct Employee
{
char *ch;
}Employ;
void main()
{
Employ emp;
emp.ch = "Hello";
printf("%s", emp.ch);
}emp

A. Hello
B. Garbage value
C. Compilation Error
D. All of above
E. None of these
Answer» D. All of above
21.

In the following code, the P2 is Integer Pointer or Integer?_x000D_ typedef int *ptr;_x000D_ ptr p1, p2;

A. Integer
B. Integer pointer
C. Error in declaration
D. None of above
Answer» C. Error in declaration
22.

What will be the output of the program?_x000D_ #include_x000D_ _x000D_ typedef struct error {int warning, err, exception;} ERROR;_x000D_ int main()_x000D_ {_x000D_ ERROR e;_x000D_ e.err=1;_x000D_ printf("%d\n", e.err);_x000D_ return 0;_x000D_ }

A. 0
B. 1
C. 2
D. Error
Answer» C. 2
23.

What will be the output of the program?_x000D_ #include_x000D_ _x000D_ int main()_x000D_ {_x000D_ typedef int arr[5];_x000D_ arr iarr = {1, 2, 3, 4, 5};_x000D_ int i;_x000D_ for(i=0; i<4; i++)_x000D_ printf("%d,", iarr[i]);_x000D_ return 0;_x000D_ }

A. 1, 2, 3, 4
B. 1, 2, 3, 4, 5
C. No output
D. Error: Cannot use typedef with an array
Answer» B. 1, 2, 3, 4, 5
24.

What will be the output of the program?_x000D_ #include_x000D_ _x000D_ int main()_x000D_ {_x000D_ typedef int LONG;_x000D_ LONG a=4;_x000D_ LONG b=68;_x000D_ float c=0;_x000D_ c=b;_x000D_ b+=a;_x000D_ printf("%d,", b);_x000D_ printf("%f\n", c);_x000D_ return 0;_x000D_ }

A. 72, 68.000000
B. 72.000000, 68
C. 68.000000, 72.000000
D. 68, 72.000000
Answer» B. 72.000000, 68
25.

Are the properties of i, j and x, y in the following program same?_x000D_ typedef unsigned long int uli;_x000D_ uli i, j;_x000D_ unsigned long int x, y;

A. Yes
B. No
Answer» B. No
26.

One of the major difference between typedef and #define is that typedef interpretation is performed by the _________________ whereas #define interpretation is performed by the _____________

A. pre-processor, compiler
B. user, pre-processor
C. compiler, pre-processor
D. compiler, user
Answer» D. compiler, user
27.

Consider this statement: typedef enum good {a, b, c} hello; Which of the following statements is incorrect about hello?

A. hello is a typedef of enum good
B. hello is a structure
C. hello is a variable of type enum good
D. the statement shown above is erroneous
Answer» B. hello is a structure
28.

What is the size of myArray in the code shown below? (Assume that 1 character occupies 1 byte)

A. 5 bytes
B. 10 bytes
C. 40 bytes
D. 50 bytesView Answer
E. a) 5 bytesb) 10 bytesc) 40 bytesd) 50 bytesView Answer
Answer» E. a) 5 bytesb) 10 bytesc) 40 bytesd) 50 bytesView Answer
29.

The keyword typedef cannot be used to give alias names to pointers.

A. True
B. False
Answer» C.
30.

We want to create an alias name for an identifier of the type unsigned long. The alias name is: ul. The correct way to do this using the keyword typedef is ____________

A. typedef unsigned long ul;
B. unsigned long typedef ul;
C. typedef ul unsigned long;
D. ul typedef unsigned long;
Answer» B. unsigned long typedef ul;
31.

Which of the following keywords is used to define an alternate name for an already existing data type?

A. default
B. volatile
C. typedef
D. static
Answer» D. static
32.

What will be the output of the program? #include int main() { typedef float f; static f *fptr; float fval = 90; fptr = &fval; printf("%f\n", *fptr); return 0; }

A. 9
B. 0
C. 90
D. 90
Answer» D. 90
33.

What will be the output of the program? #include int main() { typedef int LONG; LONG a=4; LONG b=68; float c=0; c=b; b+=a; printf("%d,", b); printf("%f\n", c); return 0; }

A. 72, 68.000000
B. 72.000000, 68
C. 68.000000, 72.000000
D. 68, 72.000000
Answer» B. 72.000000, 68
34.

What will be the output of the program? #include int main() { typedef int arr[5]; arr iarr = {1, 2, 3, 4, 5}; int i; for(i=0; i<4; i++) printf("%d,", iarr[i]); return 0; }

A. 1, 2, 3, 4
B. 1, 2, 3, 4, 5
C. No output
D. Error: Cannot use typedef with an array
Answer» B. 1, 2, 3, 4, 5
35.

Is there any difference in the #define and typedef in the following code? typedef char * string_t; #define string_d char *; string_t s1, s2; string_d s3, s4;

A. Yes
B. No
Answer» B. No
36.

Point out the error in the following code? typedef struct { int data; NODEPTR link; }*NODEPTR;

A. Error: in *NODEPTR
B. Error: typedef cannot be used until it is defined
C. No error
D. None of above
Answer» C. No error
37.

What will be the output of the program? #include typedef struct error {int warning, err, exception;} ERROR; int main() { ERROR e; e.err=1; printf("%d\n", e.err); return 0; }

A. 0
B. 1
C. 2
D. Error
Answer» C. 2
38.

Are the properties of i, j and x, y in the following program same? typedef unsigned long int uli; uli i, j; unsigned long int x, y;

A. Yes
B. No
Answer» B. No
39.

typedef's have the advantage that they obey scope rules, that is they can be declared local to a function or a block whereas #define's always have a global effect.

A. Yes
B. No
Answer» B. No
40.

What is x in the following program? #include int main() { typedef char (*(*arrfptr[3])())[10]; arrfptr x; return 0; }

A. x is a pointer
B. x is an array of three pointer
C. x is an array of three function pointers
D. Error in x declaration
Answer» D. Error in x declaration
41.

In the following code what is 'P'? typedef char *charp; const charp P;

A. P is a constant
B. P is a character constant
C. P is character type
D. None of above
Answer» B. P is a character constant
42.

What will be the output of the program? #include int main() { enum color{red, green, blue}; typedef enum color mycolor; mycolor m = red; printf("%d", m); return 0; }

A. 1
B. 0
C. 2
D. red
Answer» C. 2
43.

Is the following declaration acceptable? typedef long no, *ptrtono; no n; ptrtono p;

A. Yes
B. NO
C. Yes
D. No
Answer» B. NO
44.

In the following code snippet can we declare a new typedef named ptr even though struct employee has not been completely declared while using typedef? typedef struct employee *ptr; struct employee { char name[20]; int age; ptr next; }

A. Yes
B. No
C. Error: in *NODEPTR
D. Error: typedef cannot be used until it is defined
Answer» B. No
45.

In the following code, the P2 is Integer Pointer or Integer? typedef int *ptr; ptr p1, p2;

A. Integer
B. Integer pointer
C. Error in declaration
D. None of above
Answer» C. Error in declaration