1. 程式人生 > 其它 >C語言面試題分享(4)

C語言面試題分享(4)

技術標籤:C語言面試題分享c語言

一、下列程式的輸出結果是________。

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/