面试题的汇总
2010-07-03 21:19
127 查看
今年10月份往后就要开始找工作了,虽然感觉自己的能力还很差,但不能灰心丧气,每天逛逛论坛,看看一些面试题,总结一下面试的知识,可以着急,但万万不可浮躁。
按照日期,红色的是我还不完全懂的东西。有人会的可以留言。
7月2日
有一间屋子的墙上装有100盏灯,分别编号为1到100,现在都灭着。屋外有100人,编号也分别从1到100,按顺序进屋。每个人都必须把自己编号的倍数按一下所对应灯的开关,例如1号人进去会把所有是1的倍数的灯的开关按一下,2号人进去会把所有是2的倍数的开关按一下。以此类推,请问最后有几盏灯还亮着?
首先这道题的本质是求1到100这些数有哪些的约数包括1和它本身)是奇数个。而之前小学的公式有一个数的约数比如12=22
*3,约数为(2+1)*(1+1)=6个,所以如果约数个数为奇数,则它的约数都是某个数的偶次幂,所以一定是完全平方数,结果为:1,4,9...81,100。
好吧,我承认这道题是行测里的,以后会有编程方面的问题。
7月3日
http://topic.csdn.net/u/20090211/16/773219a4-bb84-4702-8669-28fef466af62.html?9958
1.编程领域里经常使用的缩写:OS(open source,operating system);VS(visual studio);MS(microsoft);CS(Client/Server,Control System);RTOS(Real Time Operator System);SDK(Software Development Kits);IDE(Integrated Development Environment)。
2.下列几个C语言表达式是否正确?如果正确,写出它们表达的意思:
(1) a&b 正确,表示a和b按位与
(2) a&(&b) 正确,a和b的地址按位与
(3) a&&b 正确,表示逻辑与
(4) a**b 正确,第一个*表示乘,第二个*表示指针
3.在编程风格中,一般都要强调使用匈牙利命名法,下面是匈牙利命名法中一些公认的前缀,并给出变量名的例子,请写出它们所代表的变量类型:
前缀 变量名 描述前缀的意义
g_ g_Lock 全局变量
m_ m_Num 类成员
p pTrack 指针
h hModule 句柄
sz szText 字符串
dw dwMsg DWORD类型
4、头文件中ifndef / define / endif 是做什么用的?
避免重复引入
5、代码里有时可以看到extern “C”, 这语句是做什么用的?
在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?
C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。
更详细的解释:http://tech.163.com/06/0118/09/27O66HCC0009159Q.html
6、软件开发中说的check out, check in是什么意思?
源代码管理系统的签入,签出
7、C语言函数前面加static,和C++类的成员函数前面加static,两者的意义有何区别?
C的static是限制函数的为编译单元内部使用
C++类的static使函数成为类成员,而不是实例成员。
8、简单描述一下WIN32上 .c / .cpp / .rc / .obj / .res / .lib / .dll / .exe这几个后缀所表示的文件类型,以及他们之间的相互生成关系。如果你是LINUX程序员,前面这个问题答不上,那么请描述一下GCC编译的几个步骤和中间生成文件。
.c: C代码
.cpp: C++代码
.obj:目标代码(由.c或.cpp编译后产生) 对应gcc编译的.o文件
.rc:资源文件
.res:编译后的十进制资源(由.rc编译后产生)
上面这两个文件在gcc下好像没有,请高人解答
.exe:可执行程序 一般为程序名,gcc对可执行程序的后缀没有要求
.dll:动态链接库 c动态链接库文件“lib*.so*”
对于静态链接库win32里应该是.lib文件,gcc下应该是.a文件。此外.a文件可以使用ar命令将.o文件包含进来作为静态库文件。
7月4日
1、下列程序运行结果
int
main()
{
unsigned
char
a
=
0xA5
;
unsigned
char
b
=~
a
>>
4
;
printf(
"
b=%d/n
"
,b);
return
0
;
}
1
: 整值提升后:000000a5;
2
: 取反后 :ffffff5a;
3
: 右移4位 :若是算术右移fffffff5; 若是逻辑右移:0ffffff5
4
: 但是不论是算术右移和逻辑右移,截断后都为:f5即245
2、基础知识
一个字节1B=8bit,计算机以字节进行编址;一种类型的变量往往占多个字节;计算机一次存取、处理和传输的数据长度称为字,现在大多数计算机都是32位或64位的,也就是字长为32或64.而字长是由什么决定的呢?
计算机的字长取决于数据总线的宽度
.字长是指计算机内部参与运算的数的位数。它决定着计算机
内部寄存器、ALU和数据总线的位数,直接影响着机器的硬件规模和造价。字长直接反映了一台计算机的计算精度,为适应不同的要求及协调运算精度和硬件造价
间的关系,大多数计算机均支持变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。
8月10日
今天看了一下关于sizeof的内容,因为指针的大小是4个字节,所以当求*p的sizeof(p)的时候,不管p指向什么值都是4。
int *p;double *q;
按照日期,红色的是我还不完全懂的东西。有人会的可以留言。
7月2日
有一间屋子的墙上装有100盏灯,分别编号为1到100,现在都灭着。屋外有100人,编号也分别从1到100,按顺序进屋。每个人都必须把自己编号的倍数按一下所对应灯的开关,例如1号人进去会把所有是1的倍数的灯的开关按一下,2号人进去会把所有是2的倍数的开关按一下。以此类推,请问最后有几盏灯还亮着?
首先这道题的本质是求1到100这些数有哪些的约数包括1和它本身)是奇数个。而之前小学的公式有一个数的约数比如12=22
*3,约数为(2+1)*(1+1)=6个,所以如果约数个数为奇数,则它的约数都是某个数的偶次幂,所以一定是完全平方数,结果为:1,4,9...81,100。
好吧,我承认这道题是行测里的,以后会有编程方面的问题。
7月3日
http://topic.csdn.net/u/20090211/16/773219a4-bb84-4702-8669-28fef466af62.html?9958
1.编程领域里经常使用的缩写:OS(open source,operating system);VS(visual studio);MS(microsoft);CS(Client/Server,Control System);RTOS(Real Time Operator System);SDK(Software Development Kits);IDE(Integrated Development Environment)。
2.下列几个C语言表达式是否正确?如果正确,写出它们表达的意思:
(1) a&b 正确,表示a和b按位与
(2) a&(&b) 正确,a和b的地址按位与
(3) a&&b 正确,表示逻辑与
(4) a**b 正确,第一个*表示乘,第二个*表示指针
3.在编程风格中,一般都要强调使用匈牙利命名法,下面是匈牙利命名法中一些公认的前缀,并给出变量名的例子,请写出它们所代表的变量类型:
前缀 变量名 描述前缀的意义
g_ g_Lock 全局变量
m_ m_Num 类成员
p pTrack 指针
h hModule 句柄
sz szText 字符串
dw dwMsg DWORD类型
4、头文件中ifndef / define / endif 是做什么用的?
避免重复引入
5、代码里有时可以看到extern “C”, 这语句是做什么用的?
在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?
C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。
更详细的解释:http://tech.163.com/06/0118/09/27O66HCC0009159Q.html
6、软件开发中说的check out, check in是什么意思?
源代码管理系统的签入,签出
7、C语言函数前面加static,和C++类的成员函数前面加static,两者的意义有何区别?
C的static是限制函数的为编译单元内部使用
C++类的static使函数成为类成员,而不是实例成员。
8、简单描述一下WIN32上 .c / .cpp / .rc / .obj / .res / .lib / .dll / .exe这几个后缀所表示的文件类型,以及他们之间的相互生成关系。如果你是LINUX程序员,前面这个问题答不上,那么请描述一下GCC编译的几个步骤和中间生成文件。
.c: C代码
.cpp: C++代码
.obj:目标代码(由.c或.cpp编译后产生) 对应gcc编译的.o文件
.rc:资源文件
.res:编译后的十进制资源(由.rc编译后产生)
上面这两个文件在gcc下好像没有,请高人解答
.exe:可执行程序 一般为程序名,gcc对可执行程序的后缀没有要求
.dll:动态链接库 c动态链接库文件“lib*.so*”
对于静态链接库win32里应该是.lib文件,gcc下应该是.a文件。此外.a文件可以使用ar命令将.o文件包含进来作为静态库文件。
7月4日
1、下列程序运行结果
int
main()
{
unsigned
char
a
=
0xA5
;
unsigned
char
b
=~
a
>>
4
;
printf(
"
b=%d/n
"
,b);
return
0
;
}
1
: 整值提升后:000000a5;
2
: 取反后 :ffffff5a;
3
: 右移4位 :若是算术右移fffffff5; 若是逻辑右移:0ffffff5
4
: 但是不论是算术右移和逻辑右移,截断后都为:f5即245
2、基础知识
一个字节1B=8bit,计算机以字节进行编址;一种类型的变量往往占多个字节;计算机一次存取、处理和传输的数据长度称为字,现在大多数计算机都是32位或64位的,也就是字长为32或64.而字长是由什么决定的呢?
计算机的字长取决于数据总线的宽度
.字长是指计算机内部参与运算的数的位数。它决定着计算机
内部寄存器、ALU和数据总线的位数,直接影响着机器的硬件规模和造价。字长直接反映了一台计算机的计算精度,为适应不同的要求及协调运算精度和硬件造价
间的关系,大多数计算机均支持变字长运算,即机内可实现半字长、全字长(或单字长)和双倍字长运算。
8月10日
今天看了一下关于sizeof的内容,因为指针的大小是4个字节,所以当求*p的sizeof(p)的时候,不管p指向什么值都是4。
int *p;double *q;
sizeof(p)==4;sizeof(q)==4;//指针都是四位 sizeof(*p)==sizeof(int)==4;//int类型占4位,当然,大小还和平台相关 sizeof(*q)==sizeof(double)==8;//double类型占8位
相关文章推荐
- C语言面试题大汇总
- java面试题汇总(一)
- java面试题汇总(四)
- Java开发岗位面试题归类汇总五:开源框架
- 前端面试题汇总
- 【汇总】java常见面试题汇总
- IOS面试题汇总
- 【iOS知识学习】_iOS面试题汇总
- C/C++面试题大汇总2【转】
- 2017下半年,一二线互联网公司Android面试题汇总
- C语言面试题大汇总
- 前端面试题之汇总
- 2017年前端面试题整理汇总100题
- php面试题汇总一(基础篇附答案)
- 转 C语言面试题大汇总,个人觉得还是比较全地!!!
- C++面试题汇总
- 应聘C语言类工作职位面试题大汇总4
- →『C/C++面试题大汇总』
- C语言面试题大汇总之华为面试题
- 【windows多线程】多线程笔试面试题汇总