Answer:
Step-by-step explanation:
#include <iostream> 
using namespace std; 
int* append(int*,int,int*,int); 
int* merge(int*,int,int*,int); 
void print(int*,int); 
 
int main() 
{ int a[] = {11,33,55,77,99}; 
int b[] = {22,44,66,88}; 
print(a,5); 
print(b,4); 
int* c = append(a,5,b,4); // c points to the appended array= 
print(c,9); 
int* d = merge(a,5,b,4); 
print(d,9); 
} 
 
 
void print(int* a, int n) 
{ cout << "{" << a[0]; 
for (int i=1; i<n; i++) 
cout << "," << a[i]; 
cout << "}\\"; 
} 
 
int* append(int* a, int m, int* b, int n) 
{ 
int * p= (int *)malloc(sizeof(int)*(m+n)); 
int i,index=0; 
for(i=0;i<m;i++) 
p[index++]=a[i]; 
for(i=0;i<n;i++) 
p[index++]=b[i]; 
return p; 
} 
 
int* merge(int* a, int m, int* b, int n) 
{ 
int i, j, k; 
 
j = k = 0; 
int *mergeRes = (int *)malloc(sizeof(int)*(m+n)); 
 
for (i = 0; i < m + n;) { 
if (j < m && k < n) { 
if (a[j] < b[k]) { 
mergeRes[i] = a[j]; 
j++; 
} 
else { 
mergeRes[i] = b[k]; 
k++; 
} 
i++; 
} 
// copying remaining elements from the b 
else if (j == m) { 
for (; i < m + n;) { 
mergeRes[i] = b[k]; 
k++; 
i++; 
} 
} 
// copying remaining elements from the a 
else { 
for (; i < m + n;) { 
mergeRes[i] = a[j]; 
j++; 
i++; 
} 
} 
} 
return mergeRes; 
}