Практика на создание списков ul на JavaScript

Задание 1

Дан ul:

html<ul id="elem"></ul>

Дан массив. Вставьте элементы этого массива в конец ul так, чтобы каждый элемент стоял в своем li.

Задание 2

Модифицируйте предыдущую задачу так, чтобы по клику на любой из вставленных элементов на экран выводился текст этого элемента.

Задание 3

Модифицируйте предыдущую задачу так, чтобы по клику на li ей в конец добавлялся '!'.

Задание 4

Модифицируйте предыдущую задачу так, чтобы по повторное нажатие на li не приводило к добавлению второго '!'.