См. Таблицу ASCII: http://web.cs.mun.ca/~michael/c/ascii-table.html
А зачем это печатать 5: -
На самом деле это '5', а не 5. Ваш код печатает символ 5, а не десятичный 5. Когда вы используете% c для вывода значения целочисленной переменной, printf преобразует целочисленное значение в символьный эквивалент (как вы видели в таблице ASCII) .
Вы можете попробовать этот код (или написать свой)
void main()
{
int num;
printf("Printing ASCII values Table...\n\n");
num = 1;
while(num<=255)
{
// here you can see how %c and %d works for same variable
printf("\nValue:%d = ASCII Character:%c", num, num);
num++;
}
printf("\n\nEND\n");
}
Удачного кодирования.