Насколько я понимаю, этот код "переворачивает" трехзначное число (цифры в десятичном представлении идут наоборот, то есть на входе 123, на выходе будет 321).
Пишу по строчкам программы чему равны переменные и что происходит:
допустим a = 271 (это строка со знаком вопроса - 1)
2) с = 1, a = 271 (в 'с' взяли младшую цифру остатком от деления на 10)
3) c = 1, a = 27 (целочисленное деление 271/10 переменной 'а')
4) с = 17, a=27 ('с' умножили на 10 и добавили младшую цифру от 'a')
5) a = 172 ('c' умножили на 10 и добавили старшую цифру от прошлого значения 'a', которую получили делением на 27/10)