一般情況下這個是選邏輯表達式的。因為if是邏輯判斷,但如果放在c和C++語言中,所有非零運算結果均識為true,不須強制轉換,所以這里選d是正確的。但是在其他語言中是不正確的。
它主要考查的內容就是,C/CPP中并沒有真正的布爾值,只是將非零數認作false而已。所以你可以理解為if是判斷非零數即可,或者理解為其它。實際上,在C/CPP中的布爾值是用int表示的。也就是16位進制數表示,并不是單純的一個bit。
如inta=5;if(a)語句塊;該代碼在C/CPP中是合法的,但是C#中是不合法的,無法通過編譯器編譯。
所以若在C/CPP中選邏輯表達式時,很明顯算術達式是不能成立的。
而關系表達式的結果就是邏輯值(也可以將邏輯值認為是邏輯表達式)。
比如inta=5,b=6;a>b是關系表達式,結果是邏輯值false,但false可以看作是邏輯值,也可以看作是邏輯表達式。
而a-b則是算術表達式,三者均可以做為if的判斷條件。
所以即使在C#語言中,嚴格區分的情況下,關系表達式也是被認為可行的,而邏輯表達式也是可以得到邏輯結果的。所以這里應當是選擇了做任意表達式。