The correct answer is A. 16 bits.
A 4K memory can store 4096 (2^12) different values. Each value is stored in a memory location, which is identified by an address. The number of bits needed for an address is equal to the number of possible values that can be stored in memory. Therefore, the number of bits needed for an address in a 4K memory is 16.
Option B is incorrect because 8 bits can only store 256 (2^8) different values. Option C is incorrect because 12 bits can only store 4096 (2^12) different values. Option D is incorrect because 4 bits can only store 16 (2^4) different values. Option E is incorrect because it is not one of the possible answers.