Q:

If we declare an array of four elements, can these elements store values?

In C++ if we declare an array of four elements, can these elements store values? I mean, if we declare the following array:
#include <iostream>
int main()
{
    int a[4];
    double res;
    double avg;
    avg = res = 0.0; 
    for(int i=0; i<4; i++)
    {
        cout<<"Please enter age ";
        cin>> a[i];
    }

    for(int i=0; i<4; i++)
    {
        cout<< "You have entered these ages " <<a[i];
        cout<<endl;
        res += a[i];
    }

    avg = res/4;
    cout<< "Total is "<<res <<endl;
    cout<< "Avg is "<<avg;
}

this above program is a program with an integer (numeric) array, while in character array can we assign any value of the character array's elements?

A:

Yes.
Array is a placeholder for the values of same type and no. of places are reserved during array declarion.
int a[3];

means it can store 3 ints. to be accessed as a[0], a[1] and a[2].
Now, you can see the problem you have in your loop:
for(int i=1; i<=4; i++)
{
    cout<<"Please enter age ";
    cin>> a[i];
}

a[0] remains empty
loop runs 4 times: a[1], a[2], a[3], a[4] and, last 2 indices are not reserved. 

You can correct it as following:
for(int i=0; i<3; i++)
{
    cout<<"Please enter age ";
    cin>> a[i];
}

your other question:

while in character array can we assign any value of the character array's elements 

Nope, Each index will store exactly one char.
char c[3];

will store exactly 3 chars. if you tried to use other indices it may result into undefined behaviour, segmentation fault. as you are trying to access memory that was not allocated to your process. 

