Miscellaneous On Data Structures - Study Mode
[#1076] What is the output of the following code? #include<iostream>
using namespace std
void printArray(int p[], int n)
{
for (int i = 0
i <= n-1
i++)
cout << p[i] << " "
cout << endl
}
void func1(int n)
{
int p[n]
int k = 0
p[k] = n
while (true)
{
printArray(p, k+1)
int rem_val = 0
while (k >= 0 && p[k] == 1)
{
rem_val += p[k]
k--
}
if (k < 0) return
p[k]--
rem_val++
while (rem_val > p[k])
{
p[k+1] = p[k]
rem_val = rem_val - p[k]
k++
}
p[k+1] = rem_val
k++
}
}
int main()
{
int n=3
func1(n)
return 0
}
Correct Answer
(D) 3
2 1
1 1 1
[#1077] What is the output of the following code? #include<stdio.h>
int recursive_binary_search(int *arr, int num, int lo, int hi)
{
if(lo > hi)
return -1
int mid = (lo + hi)/2
if(arr[mid] == num)
return mid
else if(arr[mid] < num)
lo = mid + 1
else
hi = mid - 1
return recursive_binary_search(arr, num, lo, hi)
}
int main()
{
int arr[8] = {0,0,0,0,3,5,6,7},num = 0,len = 8
int indx = recursive_binary_search(arr,num,0,len-1)
printf("Index of %d is %d",num,indx)
return 0
}
Correct Answer
(D) Index of 0 is 3
[#1078] What is the output of the following code? int fact(int n)
{
if(n == 0)
return 1
return n * fact(n - 1)
}
int main()
{
int n = 5
int ans = fact(n)
printf("%d",ans)
return 0
}
Correct Answer
(B) 120
[#1079] Find the output of the following code. #include <bits/stdc++.h>
using namespace std
void crossP(int A[], int B[], int cross[])
{
cross[0] = A[1] * B[2] - A[2] * B[1]
cross[1] = A[0] * B[2] - A[2] * B[0]
cross[2] = A[0] * B[1] - A[1] * B[0]
}
int main()
{
int A[] = { 1, 2, 4 }
int B[] = { 2, 3, 2 }
int cross[3]
crossP(A, B, cross)
for (int i = 0
i < 3
i++)
cout << cross[i] << " "
return 0
}
Correct Answer
(D) -8 -6 -1
[#1080] What will be the output for the following code? #include <stdio.h>
bool func(int arr[], int n, int sum)
{
bool subarr[n+1][sum+1]
for (int i = 0
i <= n
i++)
subarr[i][0] = true
for (int i = 1
i <= sum
i++)
subarr[0][i] = false
for (int i = 1
i <= n
i++)
{
for (int j = 1
j <= sum
j++)
{
if(j<arr[i-1])
subarr[i][j] = subarr[i-1][j]
if (j >= arr[i-1])
subarr[i][j] = subarr[i-1][j] ||
subarr[i - 1][j-arr[i-1]]
}
}
return subarr[n][sum]
}
int main()
{
int arr[] = {3, 3, 4, 4, 7}
int sum = 5
int n = sizeof(arr)/sizeof(arr[0])
if (func(arr, n, sum) == true)
printf("true")
else
printf("false")
return 0
}
Correct Answer
(B) false