Answer:
E) II and III only
<h2>
Explanation of II</h2>
The chunk of code given in II uses an array a and a variable t which is called temporary variable and it holds the value of some other variable or an array element temporarily.
So the first line of the code int t=a[0] the temporary variable t holds the current value of the array a i.e the array element at first index of the array a[0] is copied to variable t. This variable t is used to hold the original value of a[0] so that if the value of a[0] is overwritten later, it wont lose its original value.
a[0]=a[1] This line of code stores the value of a[1] in a[0]. This means that a[0] holds the array element at next index a[1] . This means the original value of a[0] is no longer the same because now it contains the value of a[1].
The next line a[1]=t. This means that now a[1] holds the value which was stored in variable t. As the variable t was used to store the original value of a[0]. So that value is now stored in a[1].
Lets take an example: array a contains the two elements 1 at a[0] and 2 at a[1] position.
So according to the first statement
t=a[0] means that t holds value of array a at 0 index. We have 1 at 0th index of array so t=1
Next statement a[0]=a[1] means the value at a[1] is copied to a[0]
So at a[1] the value is 2. So this value 2 is stored in a[0] position in the array.
The last statement a[1]=t means now the value stored in t is copied to a[1]
As t stored the value of a[0] which was array element 1 so now this array element is copied to a[1]th position of the array. So a[1] holds 1 now.
This is how the elements 1 and 2 are swapped as now a[0] holds 2 and a[1] holds 1.
<h2>
Explanation for III</h2>
Suppose that a[0]=1 and a[1]=2
The first statement a[ 0 ] = a[ 0 ] - a[ 1 ]; means that the value at a[0] is subtracted by the value at a[1]. That means 1-2 as 1 is the array element at a[0] and 2 is the array element at a[1] so 1-2=-1 This value is now stored at a[0] th position of array. Now a[0]=-1 and a[1]=2
Next statement a[ 1 ] = a[ 0 ] + a[ 1 ]; means adding array element at a[0] and a[1] and the result of this addition is stored in a[1]. As a[0] is -1 and a[1] is 2 So a[0]+a[1]= -1+2=1 So a[1]=1 This means 1 will be placed at a[1] th position of array a. Now a[0]=-1 and a[1]=1
Note that a[1] now holds the value 1 which was the original value of a[0] in start. This is because the first statement of code subtracts value a[1] from value of a[0] and then adds back value of a[1] to value of a[0] to keep the original value of a[0] safe for swapping just like in II the original value of a[0] is kept by temporary variable t.
The last line a[ 0 ] = a[ 1 ] - a[ 0 ]; means subtracting value at a[0] from value in a[1]. As we know that a[0]=-1 and a[1]=1 So a[0]=a[1]-a[0]=1+1=2 So a[0]=2.
Note that a[0] now holds the value 2 which was the original value of a[1] in start. In the statement a[ 1 ] = a[ 0 ] + a[ 1 ] the value of a[0] is added to a[1] to get new value of a[1] and in statement a[ 0 ] = a[ 1 ] - a[ 0 ]; the value of a[0] is subtracted from that of a[1] in order to get previous original value of a[1]. So in the end a[0]=2 and a[1]=1 This is how the two value are swapped.
Explanation of I being false:
The line of code a[0] = a[1]; copies the value of a[1] to a[0]
This means the original value at a[0] is changed. This is called to overwrite the value. It is required to exchange values of elements in a[0] and a[1]. In order to swap two elements their original values should be retained but in this statement overwrites the original value in a[0]. So I is wrong.