C語言面試題分享(4)
阿新 • • 發佈:2020-12-27
一、下列程式的輸出結果是________。
int main(void)
{
int a=0,b=0,c=0;
if(++a>0||++b>0)++c;
printf("\na=%d,b=%d,c=%d",a,b,c),
}
A)a=0,b=0,c=0 B)a=1,b=1,c=1
C)a=1,b=0, c=1 D)a=0, b=1,c=1
答案:C
評析:
“||”是或運算,它有個特點需特別注意,當“||”運算子左邊的表示式的值為真時,則程式就不再對“||”右邊的表示式的值進行運算,而是使得整個表示式的值直接為真。
題中的++b>0沒有執行
二、下列程式的輸出結果是_________。
int main(void)
{
int i;
for(i=1;i+1;i++)
{
if(i>4){printlf("%d",i++);break;}
}
printf(“%d”,i++);
}
A)55 B)56
C)程式錯誤,沒有輸出 D)迴圈條件永遠為真,死迴圈
答案:B
評析:本程式中有個for迴圈,但注意到for迴圈的條件是“i+1”,也就是隻要i+1的值為真(非零值均為真),就執行迴圈。當i=1的時,i+1的值為真,判斷if條件不成立,執行i++,迴圈體一共執行5次,迴圈體輸出的值為5。退出for迴圈後外部的printf列印i的值為6,而最終main函式執行完i的值為7。
參考:https://www.jobui.com/mianshiti/it/cyuyan/4639/