Mockup Midterm Solutions 2
Question 1
Output:
k: 21
b: 0
k: 21
a: 1
k: 21
b: 0
k: 21
a: 0
k: 21
b: 0
z: 23
Question 2
void reverseArray(int arr[], int size) {
int left = 0;
int right = size - 1;
while (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
Question 3
int isAnagram(char str1[], int size1, char str2[], int size2) {
if (size1 != size2) {
return 0;
}
int freq[26] = {0};
for (int i = 0; i < size1; i++) {
char ch1 = str1[i];
if (ch1 >= 'A' && ch1 <= 'Z') ch1 += 32;
if (ch1 >= 'a' && ch1 <= 'z') freq[ch1 - 'a']++;
char ch2 = str2[i];
if (ch2 >= 'A' && ch2 <= 'Z') ch2 += 32;
if (ch2 >= 'a' && ch2 <= 'z') freq[ch2 - 'a']--;
}
for (int i = 0; i < 26; i++) {
if (freq[i] != 0) {
return 0;
}
}
return 1;
}
bool isAnagram(char str1[], int size1, char str2[], int size2) {
if (size1 != size2) {
return false;
}
int freq[26] = {0};
for (int i = 0; i < size1; i++) {
char ch1 = str1[i];
if (ch1 >= 'A' && ch1 <= 'Z') ch1 += 32;
if (ch1 >= 'a' && ch1 <= 'z') freq[ch1 - 'a']++;
char ch2 = str2[i];
if (ch2 >= 'A' && ch2 <= 'Z') ch2 += 32;
if (ch2 >= 'a' && ch2 <= 'z') freq[ch2 - 'a']--;
}
for (int i = 0; i < 26; i++) {
if (freq[i] != 0) {
return false;
}
}
return true;
}
Question 4
char firstUniqueChar(char str[], int size) {
int freq[256] = {0};
for (int i = 0; i < size; i++) {
freq[(unsigned char)str[i]]++;
}
for (int i = 0; i < size; i++) {
if (freq[(unsigned char)str[i]] == 1) {
return str[i];
}
}
return '\0';
}
Question 5
int main() {
int arr[100];
int size;
// Assume arr and size are already initialized with input data.
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
// Calculate average using floating point to be precise
double avg = (double)sum / size;
int aboveAvg[100], belowAvg[100];
int sizeAbove = 0, sizeBelow = 0;
for (int i = 0; i < size; i++) {
if (arr[i] > avg) {
aboveAvg[sizeAbove++] = arr[i];
} else {
belowAvg[sizeBelow++] = arr[i];
}
}
return 0;
}
Question 6
Part A
switch (choice) {
case 1:
printf("Check Balance\n");
break;
case 2:
printf("Withdraw\n");
break;
case 3:
printf("Deposit\n");
break;
case 4:
printf("Exit\n");
break;
default:
printf("Invalid Choice\n");
}
switch (choice) {
case 1:
cout << "Check Balance\n";
break;
case 2:
cout << "Withdraw\n";
break;
case 3:
cout << "Deposit\n";
break;
case 4:
cout << "Exit\n";
break;
default:
cout << "Invalid Choice\n";
}
Part B
if (light == 'R' || light == 'r') {
printf("Stop\n");
} else if (light == 'Y' || light == 'y') {
printf("Wait\n");
} else if (light == 'G' || light == 'g') {
printf("Go\n");
} else {
printf("Invalid Color\n");
}
if (light == 'R' || light == 'r') {
cout << "Stop\n";
} else if (light == 'Y' || light == 'y') {
cout << "Wait\n";
} else if (light == 'G' || light == 'g') {
cout << "Go\n";
} else {
cout << "Invalid Color\n";
}