Answer:
Here is the C++ program:
#include <iostream>  //to use input output functions  
#include <cstring>  // used to manipulate c strings  
using namespace std;  //to identify objects cin cout
const int SIZE = 20;  //fixes constant size for firstName, middleName and lastName arrays  
const int FULL_SIZE = 60;  //constant size for fullName array  
int main() {  //start of main method  
  char firstName[SIZE]; //declares a char type array to hold first name  
  char middleName[SIZE];//declares a char type array to hold middle name  
  char lastName[SIZE]; //declares a char type array to hold last name  
  char fullName[FULL_SIZE]; //declares a char type array to hold full name
  cout << "Enter first, middle, and last name:  ";  //prompts user to enter first name
  cin>>firstName>>middleName>>lastName;  //reads last name from user, stores it in lastName array
  strcpy(fullName, lastName);  //copies last name from lastName to fullName array using strcpy method which copies a character string from source to destination
  strcat(fullName, ", ");  //appends comma "," and empty space " " after last name in fullName using strcat method which appends a string at the end of another string
  strcat(fullName, firstName);  //appends first name stored in firstName to the last of fullName
  strcat(fullName, " ");  //appends an empty space to fullName
   char temp[2];  //creates a temporary array to hold first initial of middle name
 temp[0] = middleName[0];  //holds the first initial of middle name
 strcat(fullName, temp);  //appends first initial of middle name stored in temp to the last of fullName
 strcat(fullName, ".");   //appends period 
     cout<<fullName;  } //displays full name 
Explanation:
I will explain the program with an example 
Lets say user enters Neil as first name, Patrick as middle and Harris as last name. So firstName char array contains Neil, middleName char array contains Patrick and lastName char array contains Harris.  
Next the fullName array is declared to store Neil Patrick Harris in a specific format:
strcpy(fullName, lastName);
This copies lastName to fullName which means fullName now contains Harris.
  strcat(fullName, ", ");
This appends comma and an empty space to fullName which means fullName now contains Harris with a comma and empty space i.e. Harris,
strcat(fullName, firstName);
This appends firstName to fullName which means Neil is appended to fullName which now contains Harris, Neil
  strcat(fullName, " ");  
This appends an empty space to fullName which means fullName now contains Harris, Neil with an empty space i.e. Harris, Neil
char temp[2];
 temp[0] = middleName[0];
This creates an array to hold the first initial of middle name i.e. P of Patrick
strcat(fullName, temp);
This appends an the first initial of middleName to fullName which means fullName now contains Harris, Neil P 
 strcat(fullName, ".");
This appends a period to fullName which means fullName now contains Harris, Neil P.
Now    cout <<"Full name is:\n"<<fullName<< endl; prints the fullName so the output of this entire program is:
Full name is:                                                                                                                                  Harris, Neil P.
The screenshot of the program along with its output is attached.