c面試題分類
【2011.10.17百度面試題 】輸入乙個公升序陣列,然後在陣列中快速尋找兩個數字,其和等於乙個給定的值。
答案:用兩個指標乙個指向陣列前面,乙個指向陣列的後面,遍歷一遍就可以了。
【2011google校園招聘筆試題 】 乙個字串,壓縮其中的連續空格為1個後,對其中的每個字串逆序列印出來。比如"abc efg hij"列印為"cba gfe jih"。
答案:1. #include
2. #include
3. #include
4. #include
5. using namespace std;
6. 7. string reverse(string str)
8.20. p = q;
21. }
22. else
23.28. while(!stk.empty())
29.33. p = q;
34. }
35. }
36. return ret;
37. }
38. int main(void)
39.【2012百度實習生招聘面試題一面】任意給乙個數,試證明這個數的某個倍數的十進位制表示是01串,比如3的倍數111是二進位制表示,5的倍數10是二進位制表示,等等。
答案: 假設序列1,11,111,1111…用a1~an標識,下腳標n即為1的個數,如:a1=1,a2=11,a3=111…
其中沒有乙個是n的倍數,即ak mod n不等於0(k屬於1~n),並且ak mod n的餘數各不相同,設它們為a1,a2,a3,…,an,但ak mod n的餘數最多只有n-1個不同,則由鴿巢原理可知,a1,a2,a3,…,an中必有兩個相同,即ai=aj(j>i),則aj-ai=0(mod n),aj-ai即為所求的0和1組成的十進位制數m,得證。
【2012百度實習生招聘面試題一面】給乙個很大的陣列,裡面有兩個數隻出現過一次,其他數都出現過兩次,把這兩個數找出來。
答案:根據所有數的異或結果,將數字分為兩組,然後找出這兩個數
int find(int* array, int size)
int main(void)
; printf("%d", find(array, sizeof array / sizeof *array));
return 0;
}【2012屆華為校園招聘機試題】選秀節目打分,分為專家評委和大眾評委,score 陣列裡面儲存每個評委打的分數,judge_type 裡儲存與 score 陣列對應的評委類別,judge_type[i] == 1,表示專家評委,judge_type[i] == 2,表示大眾評委,n表示評委總數。打分規則如下:專家評委和大眾評委的分數先分別取乙個平均分(平均分取整),然後,總分 = 專家評委平均分 * 0.
6 + 大眾評委 * 0.4,總分取整。如果沒有大眾評委,則總分 = 專家評委平均分,總分取整。
函式最終返回選手得分。
函式介面 int cal_score(int score, int judge_type, int n)
答案:1. int cal_score(int score, int judge_type, int n)
2.14. else //大眾評委
15.19. }
20. if(0 == publicnum) //沒有大眾評委
21.24. else
25.29. }
【2012屆華為校園招聘機試題】給定乙個陣列input ,如果陣列長度n為奇數,則將陣列中最大的元素放到 output 陣列最中間的位置,如果陣列長度n為偶數,則將陣列中最大的元素放到 output 陣列中間兩個位置偏右的那個位置上,然後再按從大到小的順序,依次在第乙個位置的兩邊,按照一左一右的順序,依次存放剩下的數。
例如:input = output = ; input = output =
函式介面 void sort(int input[[, int n, int output)
答案:1. void sort(int input , int n , int output)
2.14. }
15. }//for
16. mid = n>>1;
17. j = mid - 1;
18. k = mid + 1;
19. output[mid] = input[0];
20. for(i = 1 ; i < n ; ) //按照一左一右的順序
21.27. }
【2012搜狗校園招聘筆試題】下面**中for迴圈共執行了多少次?
1. unsigned short i,j;
2. for(i=0, j=2; i!=j; i+=5, j+=7)
3. {}
答案:unsigned short占用2個位元組,當資料範圍到頭了(2^16-1),就又從0開始計數了,這個其實就是兩輛汽車行駛在乙個圓圈裡的汽車追及問題。乙個速度為5,乙個速度為7,當速度為7的超越速度為5的時候,兩個汽車就相遇了,2 + 7n - 5n = 2^16 所以共迴圈了32767次。
【2012搜狗校園招聘筆試題】下面程式應該輸出多少?
1. char *c = ;
2. char **cp = ;
3. char ***cpp = cp;
4. 5. int main(void)
6.答案:輸出結果:
【2012搜狗校園招聘筆試題】下列**的輸出為多少?
[cpp] view plaincopyprint?
1. int main(void)
2. ;
4. enum ;
5. return 0;
6. }
a、c、e、h、x、y、z、w、s、t的值分別是多少?
答案:在列舉型別中宣告的第乙個列舉成員它的默值為零。沒有顯示賦值的列舉成員的值,總是前乙個列舉成員的值+1。
a:0 c:6 e:5 h:0 x:1 y:2
z:3 w:121 s:100 t:101
【2012搜狗校園招聘筆試題】
union test
;test test;
test.a[0]=256;
test.a[1]=255;
test.a[2]=254;
test.a[3]=253;
printf("%d\n",test.b);
問題:在80x86架構下,輸出什麼值
答案:輸出:-256
short型別佔2個位元組,如果右邊是低位址,左邊是高位址,那麼儲存如下:
1111 1111 0000 0000
test.a[1] test.a[0]
顯然b占用上面的2個位元組,最高位為1,則是乙個負數,取反+1後,得到-256(1000 0001 0000 0000)
【2012搜狗校園招聘筆試題】下面**輸出什麼?
1. #pragma pack(4)
2. 3. int main(void)
4. *pstpimdata;
14.15. pstpimdata = (struct tampim*)puc;
16. memset(puc, 0 , 4);
C面試題及答案
ssion變數 3 使用server.transfer 3.一列數的規則如下 1 1 2 3 5 8 13 21 34.求第30位數是多少,用遞迴演算法實現。答 public class mainclass public static int foo int i 4.c 中的委託是什麼?事件是不是一...
C 面試題及答案
1.求下面函式的返回值?int func x return countx 假定x 9999。答案 8 思路 將x轉化為2進製,看含有的1的個數。2.什麼是 引用 申明和使用 引用 要注意哪些問題?答 引用就是某個目標變數的 別名 alias 對應用的操作與對變數直接操作效果完全相同。申明乙個引用的時...
c 面試題及答案
一 填空 每空2分,共20分 1 c 目標程式經後生成擴充套件名為exe的可執行程式檔案。2 16位計算機中整型占個位元組儲存空間。3 要在螢幕上顯示 hello,world 應執行語句cout 4 表示式8 3的結果是 5 作為語句的函式呼叫是通過來體現的。6 執行if x 0 x 0 cout ...