联发科技c语言面试题,联发科技笔试题
筆試題一 ? 網址http://wenku.baidu.com/link?url=VPyN_si6yRdIzlTOA4l0zJJ6imuthhEGw17A2W3R33W9J0vvbz6tn38am9vXi3PDxxGrJDs6pSS2WUacyrb9zSAuAZPr-Mq6JYRk8i3eQge
筆試題二
http://www.wohenniu.com/thread-1778-1-1.html
17號川大筆試,基本都是C的題目。我選的是手機軟件部門:
選擇題我有印象的:
1.int p = (short)0x8000,問打印p是多少?-32678
2.##的使用(連接):
define call(x,y) x##y
3.char* str = "hello"
str = "pri"
prinf("%s",str);有什么問題?直接崩潰,char *s = "hello",hello存在了常量存儲區,只能讀不能修改
4.大端小端的概念
char c = 'abc'
在大段和小段下,打印c的結果是什么?
簡答題:
(1)動態內存分配
(2)extern c的用法
(3)sizeof對指針,數組的用法
(4)求1的個數(x&(x-1))
程序設計:
(1)堆排序
(2)求有環鏈表第一個入環節點
(3)atol的寫法
程序設計題注意把自己的思路展示出來。
一面:
(1)c語言static,const用法
(2)const char *p,char *const p的意義和用法
(3)遇到過哪些警告:答曰:類型不匹配,精度丟失
(4)C語言中的默認全局作用域,為什么會成立?編譯器角度來分析?其實與extern c的用法一樣。
要求區分編譯錯誤和鏈接錯誤。
(5)我沒有答對:
void foo(int *p){
//dosomething
}
現在主函數是
int main(){
char c = 1;
foo(&c);
}
有啥問題?我說的還是類型不匹配,恩,面試官認為太泛了。
我說類型對于指針式非常重要的,只有編譯器知道了指針的類型,才知道一次處理,如自增操作,走幾步?(其實,這里,如果我相當此時如果打印指針內容,指針的類型同樣要決定函數要讀入地址的內容的幾個字節,這就是面試官要得答案。如char p,那么只會讀取p所指地址的1個字節,但是int p會讀取p所指向地址的4分字節)
正解為:foo中調用的時候,希望傳入的是1,但是實際上想foo函數傳遞參數的時候,會把&c后面的3個字節的內容也傳入,這是垃圾信息,這樣就會出現隱晦的bug。當然,編譯器肯定會警告。
測試用例:
# include
void foo(int *p){
printf("%d",*p);
}
int main(){
char c = 1;
foo(&c);
return 0;
}
輸出結果:-42991615
而且這個還是隨時變化的。
第一面收獲:
就是最后一個題目了,以前覺得C的基礎還不錯,還是有沒有考慮到的地方。
另外我看見自己的編程大題目得分很低,看來需要把自己的思路展示出來。其實最后2道題目都比較容易解決
轉自:http://blog..net/randyjiawenjie/article/details/6789354
總結
以上是生活随笔為你收集整理的联发科技c语言面试题,联发科技笔试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Xilinx】如何根据芯片封装尺寸绘制
- 下一篇: Android开发概述