下面是我在北京质数科技有限公司面试时遇到的一些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。
注:这个就看你平时写程序的多少了。如果以前没见过或没用过,你就惨了。
Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5,京公海网安备11010802025203号