How to calculate the address fields for a cache?
Assuming that the memory is byte addressable, and words are 32 bits, then each cache line is 8 bytes wide, thus requiring a 3 bit byte address. 

The next fields cannot be determined without assuming a cache organization, and so the homework problem is indeterminate. 

The cache has 2048 lines, but how are they used?

If the cache is direct-mapped, then of the next 29 bits, 11 bits are an index into the cache, and the remaining 18 bits are address tag.

If the cache is fully associative, then all 29 bits are tag.

And everything in between: four-way set associative means there are 11 - 2 = 9 set index bits, and the tag is 18 + 2 = 20 bits. Each set associativity choice divides the 29 bits between tag and index.