设为首页 收藏本站
查看: 1061|回复: 0

[经验分享] CIeNET、IBM实习笔试总结分析

[复制链接]

尚未签到

发表于 2017-5-25 11:34:09 | 显示全部楼层 |阅读模式
  最近三天笔试了两场,一场是CIeNET在南理工的笔试,一场是IBM在南大的笔试。总体而言,基础很重要,准备也很重要,英语的阅读理解能力更重要,因为题目都是用英文描述的。
  CIeNET
  笔试的时候可以选择技术方向,C、C++、Java。题目不多,十道题,全是主观题,60分钟完成,还好允许用中文回答,要不然说起来会比较费劲,毕竟习惯了使用中文术语。考察的都是基础知识,不难,不过我算裸考的,本以为答的很烂,结果还是收到了面试的通知。这里有个好玩的事情,宣讲会上演讲的是CIeNET负责长三角地区的万女士,她演讲的过程中,提到了“程式”这个词,我当时就猜,她会不会是台湾人,笔试结束后我跑上去一问,哈,果然是,主要是我看了不少侯捷先生翻译的C++经典,几乎每次他都会在序言中列出常用词语翻译对照表和一些不予翻译的词语。呵呵,投机取巧的行为。
  C++题目如下,凭记忆写下来的,原题为英文。。
  Q1:指针与引用的区别,为什么使用引用更安全?
  A:指针与引用都是间接引用其他对象的方法,指针使用操作符*,引用使用操作符&.,指针就是内存中的地址,而引用是对象或变量的别名(事实上引用在更底层也是用指针实现的),指针可以不用初始化,而引用必须初始化,而且一旦初始化就不能被改变另一个对象的引用。指针可以空指向,而并不存在空引用,所以引用更安全。
  Q2:给函数形参传递有几种方式?函数返回值又有几种呢?
  A:三种,值,引用,指针,返回值也是三种,值,引用,指针
  Q3:构造函数可以是虚函数吗?析构函数呢?能否是纯虚函数?
  A:在C++中,虚函数的作用是用于实现多态,子类根据相同的调用产生不同的行为,这是运行时多态,实现的核心是虚函数指针与虚函数表,而虚函数表与指针是在构造函数中由C++编译器完成的,所以在C++中构造函数不能是虚函数(虚构造函数这个行为是可以存在的,比如抽象工厂模式);析构函数可以是虚函数,这是为了子类能够正确调用析构函数,完成自身的资源释放操作;析构函数也可以是纯虚函数,这主要出现在抽象类当中,只用作继承。
  Q4:定义一下抽象类与虚函数,说明一下各自的主要用途
  A:虚函数是面向对象程序设计中的一个重要的概念。当从父类中继承的时候,虚函数和被继承的函数具有相同的签名。但是在运行过程中,运行系统将根据对象的类型,自动地选择适当的具体实现运行。虚函数是面向对象编程实现多态的基本手段。
  抽象类被定义为永远不会也不能被实例化为具体的对象。它往往用于定义一种抽象上的概念,在类的继承关系中它往往被定义在较上层的位置。在程序设计的实践活动中,抽象类与接口存在类似的地方,即它更偏重于对共通的方法和属性进行规约。但与接口存在一个非常大的差异则在于,抽象类往往可以规约一个共同的方法和属性时提供一个对他们的实现。
  Q5:阅读程序写出结果
      void *GetMemory(char *p,int n){p=(char *)malloc(sizeof(char)*n);}void main(){char *str=NULL;GetMemory(str,100);strcpy(str,”hello”);printf(str);}
  A:运行时错误,GetMemory传递的是指针的值,是普通的值传递,所以原来的str并没有改变,还是空指针,对空指针写入数据会发生运行时错误(这个题目很经典,解决方法是,使用指针的指针,使用指针的引用,或者是返回指针值)
  Q6:不利用库函数,实现strcpy()函数
  A:
  char * strcpy(char * dest,char * src){if((dest==NULL) || (src==NULL))return NULL;char *copy_str=dest;while((*dest++=*src++)!=’/0’);return copy_str;}
  Q7:编写一个将二进制转换为十进制的函数
  A:懒得写了。。。
  Q8:下面是String类的定义,请编写实现
  class String{public:String(char *str);String(const String& other);~String();String & operator=(String & rhs);private:char *m_data;};
  A:
  String::String(char *str){m_data=new char[strlen(str)+1];strcpy(m_data,str);}String::~String(){delete [] m_data;}String::String(const String & other){m_data=new char[strlen(other.m_data)+1];strcpy(m_data,other.m_data);}String & String::operator =(){const String& rhs}{if(*this==rhs)return *this;if(m_data!=NULL)delete [] m_data;m_data=new char[strlen(rhs.m_data)+1];strcpy(m_data,rhs.m_data);return *this;}
  Q8:请使用模板编写一个堆栈的实现
  A:
  template<typename T>struct stack_node_t{T data;struct stack_node* next;};typedef struct stack_node_t stack_nodetemplate<typename T>class stack{public:stack():top(NULL){}~stack(){while(!is_empty())pop();}void push(stack_node data){stack_node * new_node=new stack_node;new_node->data=data.data;new_node->next=top;top=new_node;}stack_node *pop(void){if(is_empty())return;stack_node * temp=top;top=top->next;return temp;}bool is_empty(){return (top==NULL);}private:stack_node * t
  

IBM
  IBM实习生即BluePathway项目,先得网上投简历,然后经过一轮筛选,再进行笔试。我一看我的编号都8000开外了,汗。。。笔试分为两大部分,第一部分是IPAT,第二部分是技术类,A+C是Java方向,B+C是C++方向。
  前一天白天我把《C/C++就业求职手册》突击了二百页,晚上把以前IBM的实习题目做了一遍(网友收集整理的),这样还是有点效果的,至少知道个大概情况。
  IPAT又分为三个小部分:13分钟的矩阵题,三道大题,15道小题;4分钟的数字找规律题,好像是20道;15分钟的数学应用题,好像是12道。这一部分考察的最主要就是英语阅读理解能力了,矩阵题我就做了一半,杯具的是我坐在第一排,结果时间一到卷子马上就被收走了,不过最后还是给了一个填答案的机会,囧!。数字找规律,做了剩下个5、6道吧,4分钟时间还是很紧张的。最后数学应用题也有3、4道没做,主要是分数的计算太烦了。时间紧也就算了,恶心的地方在于,第二第三部分答错是要倒扣分的。。
  IPAT的考试是考完一部分就收上去,最后的技术类题目时间相对充裕,全是选择题。不过IBM考的很杂:算法的时间复杂度,空间复杂度,C/C++的基础(阅读程序写结果,占了很大一部分比重),Unix的一些概念、命令,UML图与设计模式、浏览器知识,Javascript也考,还是和dom一起,还有xml,网络知识,等等。以至于我现在都想不起来考了什么题目。。
  现在只能等消息了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-380932-1-1.html 上篇帖子: 从IBM的最终面试学到的 下篇帖子: 通向架构师的道路(第十六天)IBM Websphere与IBM HttpServer的集成
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表