C Programming Multiple Choice Question - Memory Alloction

This section focuses on the "Memory Alloction" of the C programming. These Multiple Choice Questions (mcq) should be practiced to improve the C programming skills required for various interviews (campus interview, walk-in interview, company interview), placement, entrance exam and other competitive examinations.

1. What is the return type of malloc() or calloc()?

A. int *
B. int **
C. void *
D. void **

View Answer


2. Which function is used to delete the allocated memory space?

A. Dealloc()
B. free()
C. Both A and B
D. None of the above

View Answer


3. Among 4 header files, which should be included to use the memory allocation functions like malloc(), calloc(), realloc() and free()?

A. #include<string.h>
B. #include<stdlib.h>
C. #include<memory.h>
D. Both b and c

View Answer


4. Which of the following is/are true

A. calloc() allocates the memory and also initializes the allocates memory to zero, while memory allocated using malloc() has random data.
B. malloc() and memset() can be used to get the same effect as calloc()
C. Both malloc() and calloc() return 'void *' pointer
D. All of the above

View Answer


5. Which of the following is true?

A. "ptr = calloc(m, n)" is equivalent to following
B. r = malloc(m * n);
C. "ptr = calloc(m, n)" is equivalent to following
D. r = malloc(m * n); memset(ptr, 0, m * n);

View Answer


6. Which languages necessarily need heap allocation in the run time environment?

A. Those that support recursion
B. Those that use dynamic scoping
C. Those that use global variables
D. Those that allow dynamic data structures

View Answer


7. Which of the following statement is correct prototype of the malloc() function in c ?

A. int* malloc(int);
B. Char* malloc(char);
C. unsigned int* malloc(unsigned int);
D. void* malloc(size_t);

View Answer


8. 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()

View Answer


9. malloc() returns a float pointer if memory is allocated for storing float's and a double pointer if memory is allocated for storing double's. A.

A. TRUE
B. FALSE
C. May Be
D. Can't Say

View Answer


10. malloc() allocates memory from the heap and not from the stack.

A. TRUE
B. FALSE
C. May Be
D. Can't Say

View Answer


11. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
  int i, numbers[1];
  numbers[0] = 15;
  free(numbers);
  printf("Stored integers are ");
  printf("numbers[%d] = %d ", 0, numbers[0]);
  return 0;
}

A. 15
B. Compilation error
C. 0
D. garbage value

View Answer


12. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
   int *j = (int*)malloc(4 * sizeof(int));
   *j = 15;
   free(j);
   printf("%d", *j);
   return 0;
}

A. Compilation error
B. Some Garbage value
C. 0
D. Nothing prints

View Answer


13. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
   int *numbers = (int*)calloc(4, sizeof(int));
   numbers[0] = 2;
   free(numbers);
   printf("Stored integers are ");
   printf("numbers[%d] = %d ", 0, numbers[0]);
   return 0;
}

A. Garbage value
B. 2
C. 0
D. Compilation error

View Answer


14. What is the output of this program?

#include <stdio.h>
void main()
{
   int *ptr = (int *)malloc(sizeof(int));
   *ptr = 10;
   free(ptr);
   p = 5;
   printf("%d", ptr);
}

A. Compilation error
B. 5
C. 0
D. Garbage value

View Answer


15. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
  int i;
  char *ptr;
  char *fun();
  ptr = fun();
  printf(" %s", ptr);
  return 0;
}

char *fun()
{
  char disk[30];
  strcpy(disk, "letsfindcourse");
  printf("%s ",disk);
  return disk;
}

A. letsfindcourse
B. Compilation error
C. letsfindcourse letsfindcourse
D. garbage value

View Answer


16. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
  int *p;
  p = (int *)malloc(40);
  printf("%d", sizeof(p));
  free(p);
  return 0;
}

A. 40
B. 50
C. 30
D. 20

View Answer


17. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
  struct test
  {
    int i;
    float f;
    char c;
  };
  struct test *ptr;
  ptr = (struct test *)malloc(sizeof(struct test));
  ptr ->f = 2.5f;
  printf("%f", ptr->f);
  return 0;
}

A. Compilation error
B. 2.5
C. Garbage value
D. 0

View Answer


18. Which statment is true about the given code ?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
    int *a[5];
    a = (int*) malloc(sizeof(int)*5);
    free(a);
    return 0;
}

A. Error: unable to allocate memory
B. Error: We cannot store address of allocated memory in a
C. Error: unable to free memory
D. No error

View Answer


19. What is the Error of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()

{
     char *ptr;
     *ptr = (char)malloc(30);
     strcpy(ptr, "RAM");
     printf("%s", ptr);
     free(ptr);
     return 0;
}

A. Error: in strcpy() statement.
B. Error: in *ptr = (char)malloc(30);
C. Error: in free(ptr);
D. No error

View Answer


20. How will you free the memory allocated by the following program?

#include <stdio.h>
#include  <stdlib.h>
#define MAXROW 2
#define MAXCOL 3
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);

View Answer


21. Consider the following program, where are i, j and k are stored in memory?

#include <stdio.h>
#include  <stdlib.h>
int i;
int main()
{
     int j;
    int *k = (int *) malloc (sizeof(int));
}

A. i, j and *k are stored in stack segment
B. i and j are stored in stack segment. *k is stored on heap.
C. i is stored in BSS part of data segment, j is stored in stack segment. *k is stored on heap.
D. j is stored in BSS part of data segment, i is stored in stack segment. *k is stored on heap.

View Answer


22. 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)

View Answer


23. Point out the error in the following program.

#include <stdio.h>
#include  <stdlib.h>
int main()
{
    char *ptr;
    *ptr = (char)malloc(30);
    strcpy(ptr, "RAM");
    printf("%s", ptr);
    free(ptr);
    return 0;
}

A. Error: in strcpy() statement
B. Error: in *ptr = (char)malloc(30);
C. Error: in free(ptr);
D. No Error

View Answer


24. Where does the uninitialized data gets stored in memory?

A. Code segment
B. Data segment
C. BSS- Block started by symbol
D. Heap

View Answer


25. malloc() returns a NULL if it fails to allocate the requested memory.

A. TRUE
B. FALSE
C. May Be
D. Can't Say

View Answer


26. If malloc() successfully allocates memory it returns the number of bytes it has allocated.

A. TRUE
B. FALSE
C. May Be
D. Can't Say

View Answer


27. Can I increase the size of dynamically allocated array?

A. Yes
B. No
C. May Be
D. Can't Say

View Answer


28. Can we increase the size of statically allocated array?

A. Yes
B. No
C. May Be
D. Can't Say

View Answer


29. When we dynamically allocate memory is there any way to free memory during run time?

A. Yes
B. No
C. May Be
D. Can't Say

View Answer


30. What is the output of this program?

#include <stdio.h>
#include  <stdlib.h>
int main()
{
 struct test
 {
   int i;
   float f;
   char c;
 };
 struct test *ptr;
 ptr = (struct test *)malloc(sizeof(struct test));
 ptr ->f = 5.5f;
 printf("%f", ptr->f);
 return 0;
}

A. 5.5
B. 5
C. 5.5
D. 0

View Answer


31. Local variables are stored in an area called ___________

A. Heap
B. Permanent storage area
C. Free memory
D. Stack

View Answer


32. Choose the statement which is incorrect with respect to dynamic memory allocation.

A. Memory is allocated in a less structured area of memory, known as heap
B. Used for unpredictable memory requirements
C. Execution of the program is faster than that of static memory allocation
D. Allocated memory can be changed during the run time of the program based on the requirement of the program

View Answer


33. The type of linked list in which the node does not contain any pointer or reference to the previous node:

A. Circularly singly linked list
B. Singly linked list
C. Circular doubly linked list
D. Doubly linked list

View Answer


34. The advantage of using linked lists over arrays is that ________

A. Linked list is an example of linear data structure
B. Insertion and deletion of an element can be done at any position in a linked list
C. Linked list can be used to store a collection of homogenous and heterogeneous data types
D. The size of a linked list is fixed

View Answer


35. Which of the following is an example for non linear data type?

A. Tree
B. Array
C. Linked list
D. Queue

View Answer


36. If malloc() successfully allocates memory it returns the number of bytes it has allocated.

# include<stdio.h>
#include<stdlib.h>
void fun(int *a)
{
    a = (int*)malloc(sizeof(int));
}
int main()
{
    int *p;
    fun(p);
    *p = 6;
    printf("%dn",*p);
    return(0);
}

A. May not work
B. Works and prints 6
C. Compiler Error
D. Runtime error

View Answer


37. During preprocessing, the code #include gets replaced by the contents of the file stdio.h. Which is true?

A. During linking the code #include replaces by stdio.h
B. Yes
C. During execution the code #include replaces by stdio.h
D. During editing the code #include replaces by stdio.h

View Answer


38. Why to use fflush() library function?

A. To flush all streams and specified streams
B. To flush only specified stream
C. To flush input/output buffer
D. Invalid library function

View Answer


39. Why is calloc() function used for?

A. allocates the specified number of bytes
B. allocates the specified number of bytes and initializes them to zero
C. increases or decreases the size of the specified block of memory and reallocates it if needed
D. calls the specified block of memory for execution.

View Answer


40. Which is the correct sequence of compilation process?

A. Assembler -> Compiler -> Preprocessor -> Linking
B. Compiler -> Assenbler -> Preprocessor -> Linking
C. Preprocessor -> Compiler -> Assembler -> Linking
D. Assembler -> Compiler -> Linking -> Preprocessor

View Answer






Also check :


Discussion



* You must be logged in to add comment.