面試題記2

只記錄一些比較有借鑑性的,答案以後慢慢完善,希望各位看客能給出精彩的答案,現行謝過了!

1:什麼是大小端模式,請用宏實現大小端模式的讀寫

可以參考:http://blog.csdn.net/ce123/article/details/6971544

2:比較以下兩個模式的的for循環的優缺點,如何優化

for (i=0; i<N; i++)

{

if (condition)

DoSomething();

else

DoOtherthing();

}

優點:寫法簡潔易懂

缺點:每次循環都要進行一次if判斷,這樣相較於下面的方法至少多出N-1次if判斷,並且if判斷打斷了for循環流水線作業,效率低

if (condition)
{
for (i=0; i<N; i++)
    DoSomething();
}
else
{
    for (i=0; i<N; i++)
    DoOtherthing();
}

缺點:寫法複雜,較難閱讀

優點:效率比上面那個高

3:以下代碼有什麼錯誤或者有什麼效果

#define MAX 255
unsign char a[MAX],i;
for(i=0; i < MAX; i++)
    a[i] = i;

4:sizeof的使用,具體是啥不記得了,但是主要考的是sizeof對指針和數組的求值

5:自己實現strcmp庫函數

面試時我自己寫的一個,感覺還可以(如果用於比較的兩個字符串結尾沒有‘\0’,程序就有問題):

int strcmp(const char * str1,const char *str2)
{
    while(str1 && str2 && (*str1++ == *str2++))
    ;
    return (*str1)-(*str2);
}
看了window中的這個函數的定義,感覺有點複雜,不知道上面的還有什麼bug沒有,請各位看客指正

6:用winsock實現一個簡單的客戶端服務器程序

對於我這個從來不高window C的人來說這個真不會,只知道用socket就可以了,相信對搞windows的人來說這個應該很簡單吧

7:寫出BOOL,float和指針與“零值”比較的if語句

參考:http://blog.csdn.net/jhg1204/article/details/8980186


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章