今年華爲暑假招聘已經開始,在華爲官網填寫簡歷後,帶簡歷去聽其宣講會,宣講後馬上進行面試。說一說我面試的幾道題目吧。面試官給我2道程序選擇題和一道程序改錯題。
(1)關於指針數據交換內容
void Swap(*p1,*p2)
{
int temp;
temp=*p1;
*p1=*p2;
p2=temp;
}
以上可以實現指針所指內容的交換。
(2) 指針與多維數組
int a[][3]={{1,2,3},{10,11,12},{33,34,35}};
int *p=a[1]+5;
問*p的值
a[1]爲第二行第一列元素的地址,a[1[+5爲偏移5個單位,則爲元素35的地址,*p則爲35.
(3)
int * fun(int m)
{
float f=1/2;
int d=0;
switch(f)
{
case 0:
d=0;
break;
case 1-2:
if(0.5==f)
{
continue;
}
d=1;
break;
default:
break;
}
return &d;
}
float f=1/2的值實際爲0,則可以改爲float f=1.0/2;
switch()裏數據類型只能是int,char,枚舉,以及引用字符串;
case 1-2: 是錯誤的;
0.5==f也是錯的,浮點數比較應該用範圍;
continue用的不合理。
c語言基礎是非常重要的...自己還需繼續鞏固。