下面是我在北京質數科技有限公司面試時遇到的一些linuxC面試題,這些面試題我總結出一個問題就是平時大家要多寫代碼,把每天的作業做完,筆試應該沒什么問題;切記勤于練習最重要,希望這些面試題可以幫到你,而且這些也是在企業面試中最常見的,一起來看看吧
1. 求結構體的長度 32bit平臺
a) struct A{
int a;
char b;
short c;
int d;
};
b) struct B{
int a;
char b;
int c;
short d;
};
c) struct C{
char a;
int b;
int c;
short d;
};
A a;
B b;
C c;
Sizeof(a) = ?;
Sizeof(b) = ?;
Sizeof(c) = ?;
注:考察結構體字節對齊。
2. signal函數的定義?列舉常用的信號及處理方式。
3.
注:考察對信號的掌握和使用;面試會問到是否使用過信號,在什么情況下使用信號。
4. GDB的用法
a) GCC編譯時,加______參數,用于生成可GDB調試的可執行文件;
b) 添加斷點______;
c) 從一個函數中返回______;
……
注:考察GDB用法,平時多用,面試的時候稍微回憶一下就可以了。
5. for循環的結果
6.
注:這個很easy, 就不寫了。
7. 實現兩個int變量的值的交換,要求不使用臨時變量。
int swap (int *a, int *b)
{
*a = (*a) ^ (*b);
*b = (*a) ^ (*b);
*a = (*a) ^ (*b);
}
注:考察位操作 — 異或,如果以前沒見過類似的題,估計筆試的時候很難想出來。
8. POSIX線程基本概念的三個知識點
a) 對線程的操作
pthread_create();
pthread_exit();
pthread_cancel();
pthread_join();
b) 對互斥量的操作
pthread_mutex_init();
pthread_mutex_destroy();
pthread_mutex_lock();
pthread_mutex_trylock();
pthread_mutex_unlock();
c) 對條件變量的操作
pthread_cond_init();
pthread_cond_destroy();
pthread_cond_wait();
pthread_cond_single();
pthread_cond_broadcast();
注:考察對POSIX線程的掌握,技術面試的時候會問到很多關于這方面的問題。
9. 用偽代碼實現一個基于TCP協議的Client/Server模型
a) Client
int sfd;
//get socket descriptor;
sfd = socket(...);
//bind address for socket descriptor;
bind(sfd,…);
//sned or receive data;
sendto(sfd,…);
recvfrom(sfd,…);
//close socket descriptor;
close(sfd);
b) Server
int sfd;
//get socket descriptor;
sfd = socket();
//bind address for socket descriptor;
bind(sfd,…);
//send or receive data;
recvfrom();
sendto(sfd,…);
//close socket descriptor;
close(sfd);
注:考察對SOCKET編程的掌握,如果簡歷上面寫了類似的項目經驗,技術面試會詳細的問你這方面的知識(甚至具體到很多細節)。
10. 下面一條語句的意思:
int(*s[10])(int);
定義了一個指針數組,元素的類型為函數指針,指向的函數是這樣的:函數返回值為int,函數只有一個參數為int。
注:這個就看你平時寫程序的多少了。如果以前沒見過或沒用過,你就慘了。