1
GATE CSE 2024 Set 2
+2
-0.66

Consider an array X that contains n positive integers. A subarray of X is defined to be a sequence of array locations with consecutive indices.

The C code snippet given below has been written to compute the length of the longest subarray of X that contains at most two distinct integers. The code has two missing expressions labelled (P) and (Q).

int first=0, second=0, len1=0, len2=0, maxlen=0;
for (int i=0; i < n; i++) {
if (X[i] == first) {
len2++;
len1++;
} else if (X[i] == second) {
len2++;
len1 = (P);
second = first;
} else {
len2 = (Q);
len1 = 1;
second = first;
}
if (len2 > maxlen) {
maxlen = len2;
}
first = X[i];
}

Which one of the following options gives the CORRECT missing expressions?

(Hint: At the end of the i-th iteration, the value of len1 is the length of the longest subarray ending with X[i] that contains all equal values, and len2 is the length of the longest subarray ending with X[i] that contains at most two distinct values.)

A

(P) len1+1 (Q) len2+1

B

(P) 1 (Q) len1+1

C

(P) 1 (Q) len2+1

D

(P) len2+1 (Q) len1+1

2
GATE CSE 2015 Set 1
+2
-0.6
Consider the following pseudo code, where x and y are positive integers.
begin
q := 0
r := x
while r ≥ y do
begin
r := r - y
q := q + 1
end
end
The post condition that needs to be satisfied after the program terminates is
A
$$\{ r = qx + y \wedge r < y\}$$
B
$$\{ x = qy + r \wedge r < y\}$$
C
$$\{ y = qx + r \wedge 0 < r < y\}$$
D
$$\{ q + 1 < r - y \wedge y > 0\}$$
3
GATE CSE 2014 Set 2
+2
-0.6
Consider the C function given below.
int f(int j)
{
static int i = 50;
int k;
if (i == j)
{
printf("something");
k = f(i);
return 0;
}
else return 0;
}
Which one of the following is TRUE?
A
The function returns 0 for all values of j.
B
The function prints the string something for all values of j.
C
The function returns 0 when j = 50.
D
The function will exhaust the runtime stack or run into an infinite loop when j = 50.
4
GATE CSE 2014 Set 2
Numerical
+2
-0
Consider the following function
double f (double x) {
if ( abs (x * x – 3) < 0. 01) return x;
else return f (x / 2 + 1.5/x);
}
Give a value q (to 2 decimals) such that f(q) will return q:______.