2019最新成为HR专家的100门必修课全套课程
限时抢购仅需19元(原价3600元)

思创集团深圳市思创科达技术有限公司 认领

  深圳市     

  1. 首页
  2. 公司
  3. 思创集团深圳市思创科达技术有限公司
  4. 思创集团深圳市思创科达技术有限公司软件工程师面试经验&面试问题

思创集团深圳市思创科达技术有限公司面试经验

面试失败 深圳市 难度一般

思创集团深圳市思创科达技术有限公司软件工程师面试经验&面试问题

应聘公司
思创集团深圳市思创科达技术有限公司
面试职位
面试时间
2011-04-28 — 2011-04-28

面试问题

介绍公司信息及岗位的工作内容

面试过程

先做题:<br><br>试题1:<br><br>void test1()<br><br>{<br><br> char string[10];<br><br> char* str1 = "0123456789";<br><br> strcpy( string, str1 );<br><br>}<br><br>  试题2:<br><br>void test2()<br><br>{<br><br> char string[10], str1[10];<br><br> int i;<br><br> for(i=0; i&lt;10; i++)<br><br> {<br><br>  str1[i] = 'a';<br><br> }<br><br> strcpy( string, str1 );<br><br>}<br><br>  试题3:<br><br>void test3(char* str1)<br><br>{<br><br> char string[10];<br><br> if( strlen( str1 ) &lt;= 10 )<br><br> {<br><br>  strcpy( string, str1 );<br><br> }<br><br>}<br><br>  解答:<br><br>  试题1字符串str1需要11个字节才能存放下(包括末尾的’’),而string只有10个字节的空间,strcpy会导致数组越界;<br><br>  对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10 分;<br><br>  对试题3,if(strlen(str1) &lt;= 10)应改为if(strlen(str1) &lt; 10),因为strlen的结果未统计’’所占用的1个字节。<br><br>试题4:分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)<br><br>  解答:<br><br>   BOOL型变量:if(!var)<br><br>   int型变量: if(var==0)<br><br>   float型变量:<br><br>   const float EPSINON = 0.00001;<br><br>   if ((x &gt;= - EPSINON) &amp;&amp; (x &lt;= EPSINON)<br><br>   指针变量:  if(var==NULL)<br><br>试题5:编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是“abcdefghi”如果n=2,移位后应该是“hiabcdefgh” <br><br>  函数头是这样的:<br><br>//pStr是指向以''结尾的字符串的指针<br><br>//steps是要求移动的n<br><br>void LoopMove ( char * pStr, int steps )<br><br>{<br><br> //请填充...<br><br>}<br><br>  解答:<br><br>  正确解答1:<br><br>void LoopMove ( char *pStr, int steps )<br><br>{<br><br> int n = strlen( pStr ) - steps;<br><br> char tmp[MAX_LEN]; <br><br> strcpy ( tmp, pStr + n ); <br><br> strcpy ( tmp + steps, pStr); <br><br> *( tmp + strlen ( pStr ) ) = '';<br><br> strcpy( pStr, tmp );<br><br>}<br><br>  正确解答2:<br><br>void LoopMove ( char *pStr, int steps )<br><br>{<br><br> int n = strlen( pStr ) - steps;<br><br> char tmp[MAX_LEN]; <br><br> memcpy( tmp, pStr + n, steps ); <br><br> memcpy(pStr + steps, pStr, n ); <br><br> memcpy(pStr, tmp, steps ); <br><br>}<br><br>试题6:编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:<br><br>class String<br><br>{ <br><br> public: <br><br>  String(const char *str = NULL); // 普通构造函数 <br><br>  String(const String &amp;other); // 拷贝构造函数 <br><br>  ~ String(void); // 析构函数 <br><br>  String &amp; operate =(const String &amp;other); // 赋值函数 <br><br> private: <br><br>  char *m_data; // 用于保存字符串 <br><br>};<br><br>  解答:<br><br>//普通构造函数<br><br>String::String(const char *str) <br><br>{<br><br> if(str==NULL) <br><br> {<br><br>  m_data = new char[1]; // 得分点:对空字符串自动申请存放结束标志''的空<br><br>  //加分点:对m_data加NULL 判断<br><br>  *m_data = ''; <br><br> } <br><br> else<br><br> {<br><br>  int length = strlen(str); <br><br>  m_data = new char[length+1]; // 若能加 NULL 判断则更好 <br><br>  strcpy(m_data, str); <br><br> }<br><br>}<br><br>// String的析构函数<br><br>String::~String(void) <br><br>{<br><br> delete [] m_data; // 或delete m_data;<br><br>}<br><br>//拷贝构造函数<br><br>String::String(const String &amp;other)    // 得分点:输入参数为const型<br><br>{ <br><br> int length = strlen(other.m_data); <br><br> m_data = new char[length+1];     //加分点:对m_data加NULL 判断<br><br> strcpy(m_data, other.m_data); <br><br>}<br><br>//赋值函数<br><br>String &amp; String::operate =(const String &amp;other) // 得分点:输入参数为const型<br><br>{ <br><br> if(this == &amp;other)   //得分点:检查自赋值<br><br>  return *this; <br><br> delete [] m_data;     //得分点:释放原有的内存资源<br><br> int length = strlen( other.m_data ); <br><br> m_data = new char[length+1];  //加分点:对m_data加NULL 判断<br><br> strcpy( m_data, other.m_data ); <br><br> return *this;         //得分点:返回本对象的引用<br><br>}<br><br>等等。。

我要分享面试经验

正在加载验证码...

其它公司面试经验
思创集团深圳市思创科达技术有限公司其它面试经验