The BCI Paper Solution 2026 by Suraku Academy provides detailed and verified answers for all questions of the Basic Computer Instructor exam. While preparing the solution, Suraku Academy put hard work into delivering clear and thorough explanations for students. This resource helps candidates understand concepts deeply and prepares them confidently for the exam. Check out the verified solutions first, then begin your focused learning journey.
Q: An initially empty stack receives the elements 1, 2, 3, 4, 5 in that order, with each element pushed exactly once. No POP operation is permitted until at least three elements have been pushed onto the stack. Thereafter, PUSH and POP operations may be interleaved arbitrarily, subject to the LIFO property of stack.
Which one of the following output sequence cannot be generated?
Option C
A Stack follows the LIFO principle, which means Last In, First Out. The elements are pushed in the order 1, 2, 3, 4, 5. Also, no element can be popped until at least three elements have been pushed. After that, PUSH and POP operations can be performed in any order, but the LIFO rule must always be followed.
For option (A) 5, 4, 3, 2, 1, we simply push all five elements first, giving stack order 1, 2, 3, 4, 5 from bottom to top, then pop everything one after another, which naturally produces 5, 4, 3, 2, 1 in exact reverse order.
For option (B) 3, 2, 1, 5, 4, we push 1, 2, 3, then pop to get 3, then pop to get 2, then pop to get 1, emptying the stack completely. Then we push 4, push 5, pop to get 5, and pop to get 4. This produces exactly 3, 2, 1, 5, 4.
For option (C): 3, 4, 5, 1, 2. To output 3 first, we must push 1, 2, 3 and then pop 3. Now 1 and 2 are still in the stack, with 2 on top. To output 4, we can push 4 and pop it. However, to output 5, we must push 5 and pop it. After that, the remaining stack has 2 on top of 1, so 2 must be popped before 1. Therefore, the sequence cannot end with 1, 2. Hence, this sequence is impossible.
For option (D) 4, 3, 5, 2, 1, we push 1, 2, 3, 4, then pop to get 4, then pop to get 3, leaving 1, 2 in the stack. Then we push 5, pop to get 5, then pop to get 2, then pop to get 1. This produces exactly 4, 3, 5, 2, 1.
Q: Consider a complete binary tree in which the root node is at height 0 and the tree has an overall height of 4. What are the minimum and maximum possible numbers of nodes in the tree?
Option A
A Complete Binary Tree is a binary tree in which every level is completely filled except possibly the last level, and the last level is filled from left to right.
Here, the root is at height 0 and the overall height is 4. Therefore, the tree has 5 levels, from level 0 to level 4.
| Height / Level | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| Maximum Nodes | 1 | 2 | 4 | 8 | 16 |
For the maximum number of nodes, all levels are completely filled: 1+2+4+8+16 = 31
Maximum nodes = 2(h+1) - 1
Maximum nodes = 25 - 1 = 31
For the minimum number of nodes, because the tree has an overall height of 4, there must be at least one node at height 4. All previous levels must be completely filled.
Therefore, 1+2+4+8+1 = 16
Hence:
Important Binary Tree Concepts:
Binary Tree:
A binary tree is a tree in which each node can have at most two children. In binary tree a node can have 0, 1, or 2 children. The two children are called, Left Child and Right Child.

Full Binary Tree:
A Full Binary Tree is a binary tree in which every node has either 0 children or exactly 2 children. A node cannot have exactly 1 child.

Complete Binary Tree:
A Complete Binary Tree is a binary tree in which:

Perfect Binary Tree:
A Perfect Binary Tree is a binary tree in which:
This means a Perfect Binary Tree is automatically both Full and Complete at the same time. A perfect tree of height h always has exactly 2(h+1) -1 nodes.

Skewed Binary Tree:
A Skewed Binary Tree is a binary tree in which nodes are arranged mostly or completely on one side. There are two common types.
| Left-Skewed Binary Tree | Right-Skewed Binary Tree |
|---|---|
![]() | ![]() |
A completely skewed binary tree behaves much like a linked list. If there are n nodes in a completely skewed tree then height = n-1. Therefore, the height can become O(n).
Q: Consider a singly linked list containing n nodes in which only the head pointer is maintained. What is the worst-case time complexity of inserting a new node at the end of the list?
Option A
A singly linked list is a linear data structure in which each node contains two parts, Data or Info that stores the actual value and Next pointer that stores the address of the next node.
In this question, the linked list contains n nodes, but only the head pointer is maintained. This means we have direct access only to the first node of the list. We do not have a separate pointer to the last node (tail pointer).
To insert a new node at the end of the list, we first need to reach the current last node. Starting from the head, we must follow the next pointer from one node to the next until we reach the node whose next pointer is NULL.
If the list contains n nodes, in the worst case we may need to traverse all n nodes before reaching the end. Hence, the worst-case time complexity is O(n).
Q: Which one of the following is a reserved keyword in the C programming language?
Option A
In the C programming language, a reserved keyword (keyword) is a word that has a predefined meaning to the compiler. The keywords cannot be used as identifiers, such as variable names, function names, or other user-defined names.
The keyword return is a reserved keyword in C. It is used to terminate the execution of a function and, when required, send a value back to the calling function.
Q: In Java, which keyword is used to call parent class constructor from a subclass constructor?
Option D
In Java, inheritance allows a subclass to acquire the properties and methods of its parent class. When a subclass object is created, the constructor of the parent class must be executed before the constructor of the subclass. Java provides the super keyword to refer to the immediate parent class.
The super() statement is specifically used inside a subclass constructor to call the constructor of its immediate parent class.
E.g.:
class Parent {
Parent() {
System.out.println("Parent Class Constructor Called.");
}
}
class Child extends Parent {
Child() {
super();
System.out.println("Child Class Constructor Called.");
}
}
public class Driver {
public static void main(String[] args) {
Child cobj = new Child();
}
}
Note:
Q: Which component of an Integrated Development Environment (IDE) helps programmers identify and correct errors by executing a program step by step?
Option C
An Integrated Development Environment (IDE) is a software application that provides programmers with a set of tools for writing, editing, compiling, running, and debugging programs in a single environment.
When a program contains an error, a programmer often needs to execute the program step by step to understand exactly where the problem occurs. The Debugger is the IDE component designed for this purpose. A debugger allows the programmer to:
Q: Consider a doubly linked list consisting of 4 nodes, where each node contains two pointer fields : prev and next. Assuming that the list is linear, how many pointer fields contain NULL values in total?
Option D
In a Doubly Linked List, each node contains two pointer fields, prev and next. Since the list is linear, the first node does not have a previous node, so its prev pointer contains NULL. Similarly, the last node does not have a next node, so its next pointer contains NULL.

Thus, the first node has one NULL pointer in its prev field, and the last node has one NULL pointer in its next field. Therefore, the total number of NULL pointer fields is 2.
Q: Which of the following is NOT a feature of object-oriented programming?
Option A
Object-Oriented Programming (OOP) is a programming paradigm in which programs are designed around objects and classes. An object combines data (attributes) and functions (methods) that operate on that data.
The major features of OOP include Encapsulation, Inheritance, Polymorphism, and Abstraction. These features help programmers organize programs into reusable, modular, and maintainable components.
Pointer Arithmetic is not a fundamental feature of OOP. It refers to performing arithmetic operations such as incrementing, decrementing, addition, or subtraction on pointer values.
Q: A circular queue is implemented using an array of size 6. Initially, the values of front and rear are 2 and 5 respectively. Assuming that the queue is not full, two ENQUEUE operations are performed consecutively without any DEQUEUE operation. What will be the values of front and rear after these operations?
Option B
A Circular Queue is a queue implemented using a fixed size array, where the last position of the array is connected back to the first position, forming a circle. This allows empty spaces created after dequeue operations to be reused efficiently.
During an ENQUEUE operation, the Front remains unchanged and the Rear moves forward. Since the array size is 6, the indices are 0, 1, 2, 3, 4, 5. When rear reaches index 5, the next position wraps around to index 0.
Initially, the front is 2 and rear is 5.
After the first ENQUEUE:
rear = (rear+1)%6 = (5+1)%6 = 0
After the second ENQUEUE:
rear = (rear+1)%6 = (0+1)%6 = 1
The front remains 2 because no DEQUEUE operation is performed.
| Stage | Front | Rear |
|---|---|---|
| Initially | 2 | 5 |
| After 1st ENQUEUE | 2 | 0 |
| After 2nd ENQUEUE | 2 | 1 |
Q: Which of the following statements about polymorphism is correct?
Option B
The word polymorphism means “many forms.” It allows the same method name to behave differently depending on the situation. Polymorphism is commonly divided into two types:
Compile-Time Polymorphism: The method to be executed is determined during compilation. It is commonly achieved through Method Overloading.
Runtime Polymorphism: The method to be executed is determined during program execution. It is commonly achieved through Inheritance and Method Overriding.
Q: Which of the following is NOT a basic operation performed on a Binary Search Tree?
Option C
A Binary Search Tree, commonly called a BST, is a tree data structure where every node follows one simple rule.
This ordered structure is what makes searching, inserting, and removing values efficient compared to many other data structures.
Encryption is not a basic operation of a Binary Search Tree. Encryption refers to the process of converting readable data into a coded or scrambled form, so that unauthorized people cannot understand it without a special key to reverse the process.
Q: Consider a graph with V vertices and E edges. The graph is represented using an adjacency matrix, where a matrix entry is maintained for every pair of vertices regardless of whether an edge exists between them.
What is the asymptotic space complexity of this representation?
Option A
A Graph is a non-linear data structure made up of vertices, which are the individual points or nodes, and edges, which are the connections between pairs of vertices.
An Adjacency Matrix represents a graph using a two-dimensional matrix. If a graph has V vertices, the matrix contains V×V entries, because an entry is maintained for every pair of vertices, whether an edge exists between them or not. Therefore, the total space required is: V×V = V2.
Consider the following given undirected graph.

Adjacency Matrix Representation:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | 0 | 1 | 1 | 0 | 0 |
| B | 1 | 0 | 1 | 1 | 1 |
| C | 1 | 1 | 0 | 0 | 1 |
| D | 0 | 1 | 0 | 0 | 1 |
| E | 0 | 1 | 1 | 1 | 0 |
Hence, the asymptotic space complexity is O(V2). Notice that the value of E does not affect the space required by an adjacency matrix.
Q: What is the value obtained by evaluating the following postfix expression?
6 2 3 + * 4 -
Option B
Postfix notation, also called Reverse Polish Notation (RPN), is a way of writing mathematical expressions where the operator comes after its operands.
Postfix expressions remove the need for brackets and remove any confusion about operator precedence, since the order of operations is already baked into the arrangement of the expression itself. This makes postfix expressions very easy for a computer to evaluate directly using a Stack.
Given, Postfix expression: 6 2 3 + * 4 -
| Step | Scanned Symbol | Stack Status (Bottom to Top) |
|---|---|---|
| 1 | 6 : Push 6 | 6 |
| 2 | 2 : Push 2 | 6, 2 |
| 3 | 3 : Push 3 | 6, 2, 3 |
| 4 | + : Pop (3,2) : 2+3 = 5 | 6, 5 |
| 5 | * : Pop (5,6) : 6*5 = 30 | 30 |
| 6 | 4 : Push 4 | 30, 4 |
| 7 | - : Pop(4,30) : 30-4 = 26 | 26 |
Q: Which of the following data types in Python is immutable?
Option A
In Python, an immutable data type is a data type whose contents cannot be changed after the object has been created. If we try to modify an immutable object, Python creates a new object rather than changing the existing object.
Among the given options, Tuple is immutable. Once a tuple is created, its elements cannot be added, removed, or modified.
| Data Type | Description | Mutable or Immutable |
|---|---|---|
| List | An ordered collection of elements. Elements can be added, removed, or modified after creation. | Mutable |
| Dictionary | A collection of key-value pairs. Entries can be added, removed, or modified. | Mutable |
| Set | An unordered collection of unique elements. Elements can be added or removed. | Mutable |
| Bytearray | A mutable sequence of bytes used to store and manipulate binary data. | Mutable |
| Integer | Represents whole numbers, including positive, negative, and zero values. | Immutable |
| Float | Represents numbers containing a decimal or fractional part. | Immutable |
| Complex | Represents complex numbers with real and imaginary parts. | Immutable |
| Boolean | Represents one of two logical values: True or False. | Immutable |
| Strings | Represents a sequence of Unicode characters or text. | Immutable |
| Tuple | An ordered collection of elements whose contents cannot be changed after creation. | Immutable |
| Range | Represents an immutable sequence of numbers, commonly used in loops. | Immutable |
| Bytes | Represents an immutable sequence of bytes, commonly used for binary data. | Immutable |
Thank you so much for taking the time to read my Computer Science MCQs section carefully. Your support and interest mean a lot, and I truly appreciate you being part of this journey. Stay connected for more insights and updates! If you'd like to explore more tutorials and insights, check out my YouTube channel.
Don’t forget to subscribe and stay connected for future updates.