转贴 C/C++程序员常见面试题深入剖析
1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见-。
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程
度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。读者可从本文看到strcpy
函数从2分到10分解答的例子,看看自己属于什么样的层次。此外,还有一些面试题考查面试者敏捷的思维能力。
分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。
2.找错题
试题1:
void test1()
{
char string[10];
char* str1 = "0123456789";
strcpy( string, str1 ); }
试题2:
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
{ str1 = 'a';
}
strcpy( string, str1 ); }
试题3:
void test3(char* str1)
{
char string[10];
if( strlen( str1 ) <= 10 )
{
strcpy( string, str1 );
}
}
解答:
试题1字符串str1需要11个字节才能存放下(包括末尾的'\0'),而string只有10个字节的空间,strcpy会导致数组越界; 对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string,
str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10
分;
对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) <
10),因为strlen的结果未统计'\0'所占用的1个字节。
剖析:
考查对基本功的掌握:
(1)字符串以'\0'结尾;
(2)对数组越界把握的敏感度;
(3)库函数strcpy的工作方式,如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案:
2分
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != '\0' );
相关文档:
Chapter 1: Thread
① thread functions
1. pthread_self();
2. thread existing
you can get the value of rval_ptr just by pthread_join(pthread_t tht, void ** rval_ptr)
cancel a thread as the thread exits with PTHREAD_CANCELED in pthread_exit, this functio ......
发贴前请先读:c/c++ 版“经典”问题解答
C/C++一直都是地球上使用最广泛的编程语言,而我们的C/C++版自然人气也不差,但是一直都有一些狠初级的问题提了又提,并不是说这些问题如何如何的不好,还是如何如何的弱智,这些问题一直都是新手学习的基础,是必须要经过的门槛,所以也有存在的必要,但是提的多了, ......
嵌入式系统由于受功耗、成本和体积等因素的制约,嵌入式微处理器的处理能力与桌面系统处理器相比也存在较大差距,故嵌入式系统对程序运行的空间和时间要求更为苛刻。
通常,需要对嵌入式应用程序进行性能优化,以满足嵌入式应用的性能需求。
1 嵌入式程序优化的类型
&nbs ......
This is Edition 2.2.10 of `The `indent' Manual', for Indent Version
2.2.10, last updated 23 July 2008.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996 Free Software
Foundation, Inc. Copyright (C) 1995, 1996 Joseph Arceneaux. Copyright
(C) 1999 Carlo Wood. Copyright (C) 2001 David Ingamell ......
今天比较懒惰,没做题,只是看了一点那本c陷阱与缺陷,说实话读了不多但明显能感觉出这是一本好书,感觉对我来说刚好,不是基础书,但也基本能看懂,而且能学到好多东西,但今天只看了三章,主要是下军旗了,囧,我也只能把我学到的总结下来,学了总比一点都没学要好,我也只能这样安慰自己了。 ......