Вам надо повторять/изучать дискретную математику судя по всему.
что до
Когда лучше применять do while.
ну, если вы знаете разницу между do while и while то думаю ответ вам понятен.
Когда и что лучше применять return, break, continue, if ele else if , select и тому подобное.
опять же, вы должны понимать алгоритмы ветвления. И да, разве select это не из другой оперы? Вы про select который для сокетов/стримов?
Де лучше выделять память в динамике или статике.
Опять же из знания различий рождается истина
Какие переменные использовать.
А какие есть?
Максимальная оптимизация и тому подобное.
преждевременная оптимизация зло. Алгоритмизация - другое дело.
Если случаи в которых возможно применять goto.
Описание конечных автоматов. Опять же дискретка.
Словом, дискретка и алгоритмизация. Вопросы на эту тему тут проскакивали и не раз, поищите.