A programming language not supporting either recursion or pointer type does not need the support of dynamic memory allocation
Lets make use of logic here
p : A programming language not supporting either recursion or pointer type
q: does not need the support of dynamic memory allocation
Your statement 1 violates p -> q (which is the case here and hence it is False.)
Your second statement says q ->p
Is p ->q == q ->p ? No
Your second inference is not correct.
Analogy :
If john is sick, he will be at home.
That doesn't mean if he is at home then John is sick