A. Number of keys does'nt matter as B+ tree can be used to store less keys also.
B. If indexing is done on primary key, then it will take less time for B+ tree because of less no. of levels. But it is not necessary that indexing will always be done on primary key.
so not sufficient to answer question.
C. For same no. of keys, Binary tree will have more no. of pointers(block & record pointers) in contrast to B+tree. So Binary tree will take more space.
Also in every node, only one key record pair & 2 block pointers are there, it waste most of the block space & will have more levels which will increase I/O cost.
D. Since secondary memory is organised in blocks, B+tree will a good compatable data structure as it keeps more keys in one block which strongly supports locality of reference hence reduces I/O cost.
Option C & D both are correct but D is comparatively strong.