GATE | GATE-CS-2015 (Set 1) | Question 65
Consider the following C program segment.
while (first <= last)
{
if (array [middle] < search)
first = middle +1;
else if (array [middle] == search)
found = True;
else last = middle – 1;
middle = (first + last)/2;
}
if (first < last) not Present = True;
|
The cyclomatic complexity of the program segment is __________.
(A) 3
(B) 4
(C) 5
(D) 6
Answer: (C)
Explanation: the cyclomatic complexity of a structured program[a] is defined with reference to the control flow graph of the program, a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second. The complexity M is then defined as
M = E − N + 2P,
where
E = the number of edges of the graph.
N = the number of nodes of the graph.
P = the number of connected components.
Source: http://en.wikipedia.org/wiki/Cyclomatic_complexity
For a single program (or subroutine or method), P is always equal to 1. So a simpler formula for a single subroutine is
M = E − N + 2
For the given program, the control flow graph is:
E = 13, N = 10.
Therefore, E - N + 2 = 5.
Quiz of this Question
Last Updated :
14 Feb, 2018
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...