According to the question, a block can have 2 elements. And each element has size of 4 words.
Now, the looping is given as follows ==>
for(i=0;i<100;i++)
A[i]=A[i]+10
This means that for each value of i, we have to read the element first,and +10 shows that after reading , we have to add this constant value to the array element .
Hence, we will consider read and write cases now. Also, of the question was about just reading and no updating , then would have considered only read cases .
Now, first iteration will read first A[0] value, which is not there in the cache ( we have assumed cache to be initially empty), it will be a cache miss .
Now, A[0] and A[1] cache block will be brought to the cache , and now write reference for A[0] is a hit, whereas, for A[1] ,both read and write access will be hits .
Hence, for a particular cache block , we have 1 miss and 3 hits .
Hence, hit ratio = 75% ..