*电商and*公司面试
2016-03-16 09:40
267 查看
概述
题目
总结
一.概述
概述:总结一下近几日面试题目(与以前公司面试非重复题目),不断反思,才能稳中求进
二.题目
c/c++部分:
1.虚函数性质
①虚函数可以被重载也可以不被重载
②Child new_child;
Parent *p=&new_child;
p->eat();
当重载时:会覆盖父类的虚函数,调用子类的eat函数;非重载时:调用父类的函数
③C++的虚基类 在派生类继承基类时,加上一个virtual关键词则为虚拟基类继承,如:
作用:虚基类主要解决多重继承问题
④当Parent虚函数有多个时,其大小也只为4个字节
⑤类的虚继承多了一个4个字节指针的偏移量,目的是:虚继承利用一个“虚基类偏移量表指针”来使得虚基类即使被重复继承也只会出现一次
参考链接:
http://blog.chinaunix.net/uid-26851094-id-3327323.html
http://www.jizhuomi.com/software/374.html
2.字符串拷贝、赋值
给定字符串的头:
拷贝构造函数:
析构函数:
Mystring:~Mystring()
{
delete []data;
}
赋值运算符:
初级:
高级:
参考:《剑指offer》
算法部分:
3.有两个数组,将其数组放到指定位置,使其差值最小
提供两种思路:[标准答案未找到,欢迎大家讨论提供!]
①先进性排序(9,8,8,7,6,6,5,4,3,1);设置两个指针first,second(指向两个数组的首地址),sum1=first+num[i],sum2=second+nums[i];判断条件:
if(sum1>sum2)sum1=first+num[i];else sum2=second+num[i];将数值填入数组的顺序为依次相加
②求出平均值,进行数值修正
平均值为:28.5。分别找两个数组当中的数值进行修正,令其接近均值
shell部分:
4.写一段代码,找出文件夹中含有某个关键字的文件
参考链接:
http://wukui127.blog.51cto.com/2866802/1092364/
代码如下:
操作系统:
5.进程与线程,写一段相关调用代码片
三.总结
I.题目考察的范围包含了语言基础,算法,操作系统,shell等还是很广泛的,要注意从这几个角度系统的复习.II.让我们一同努力,明天会更好!
题目
总结
一.概述
概述:总结一下近几日面试题目(与以前公司面试非重复题目),不断反思,才能稳中求进
二.题目
c/c++部分:
1.虚函数性质
class Parent{ public: virtual void eat(){...} } class Child:public Parent{ public: virtual void eat(){...} }
①虚函数可以被重载也可以不被重载
②Child new_child;
Parent *p=&new_child;
p->eat();
当重载时:会覆盖父类的虚函数,调用子类的eat函数;非重载时:调用父类的函数
③C++的虚基类 在派生类继承基类时,加上一个virtual关键词则为虚拟基类继承,如:
class derive:virtual public base { };
作用:虚基类主要解决多重继承问题
classB { }; class D1:virtual public B { }; class D2:virtual publicB { }; class C:public D1,public D2
④当Parent虚函数有多个时,其大小也只为4个字节
⑤类的虚继承多了一个4个字节指针的偏移量,目的是:虚继承利用一个“虚基类偏移量表指针”来使得虚基类即使被重复继承也只会出现一次
参考链接:
http://blog.chinaunix.net/uid-26851094-id-3327323.html
http://www.jizhuomi.com/software/374.html
2.字符串拷贝、赋值
给定字符串的头:
class MyString{ public: MyString(char*p=NULL); MyString(const char&str); ~Mystring(); private: char*data; }
拷贝构造函数:
Mystring::Mystring(const char*p) { if(!p) { data=new char[1]; data='\0'; } else { data=new char[strlen(p)+1]; strcpy(data,p); } }
析构函数:
Mystring:~Mystring()
{
delete []data;
}
赋值运算符:
初级:
Mystring::Mystring &operator=(const char&p) { if(this==&p) return this; delete [] data; data=NULL: data=new char[strlen(p)+1]; strcpy(data,p); return this; }
高级:
Mystring::Mystring &operator=(const char&p) { if(this==&p) return this; Mystring temp(p); char*q=p.data; p.data=temp.data; temp.data=q; return this; }
参考:《剑指offer》
算法部分:
3.有两个数组,将其数组放到指定位置,使其差值最小
提供两种思路:[标准答案未找到,欢迎大家讨论提供!]
①先进性排序(9,8,8,7,6,6,5,4,3,1);设置两个指针first,second(指向两个数组的首地址),sum1=first+num[i],sum2=second+nums[i];判断条件:
if(sum1>sum2)sum1=first+num[i];else sum2=second+num[i];将数值填入数组的顺序为依次相加
②求出平均值,进行数值修正
平均值为:28.5。分别找两个数组当中的数值进行修正,令其接近均值
shell部分:
4.写一段代码,找出文件夹中含有某个关键字的文件
参考链接:
http://wukui127.blog.51cto.com/2866802/1092364/
代码如下:
#!/bin/bash #find files contains a keyword #write by xiaojing.zhao #2012.12.14 echo -e "\nThis is a script to find all the files in a specified path contains a keyword!" echo -e "\nPlease input a keyword:" read key if [ "$key" == "" ]; then echo -e "keyword can not be null!\n" exit 0 fi keyword=$key echo -e "\nPlease input your specified path:" read dir #判断该路径是否存在,并且是目录,不存在输出提示 test ! -d $dir && echo -e "The $dir is not exist in your system.\n\n" && exit 0 echo -e "\n---------------You find files are:---------------\n" #keyword=JAVA_OPTS #dir=/jboss/jboss-eap-4.3/jboss-as/ #统计文件个数 file_count=0 #递归查看所有目录,即最深路径,不显示空行 file_list=`ls -R $dir 2> /dev/null | grep -v '^$'` for file_name in $file_list do #临时文件变量temp,将ls -R即file_list中的文件名中所有匹配:后接一个或多个任意字符(.代表任意字符,*代表0个或多个$代表行尾结束符)全局替换为无 #简单的说,就是把file_name变量中的匹配:的行,将:后内容替换为空 temp=`echo $file_name | sed 's/:.*$//g'` #如果临时文件变量temp是一个目录,而非文件,就将该目录赋值给cur_dir变量 if [ "$file_name" != "$temp" ]; then cur_dir=$temp #echo "-"$cur_dir #临时显示,调试用 else #用file命令查看文件真身是否为ASCII text类型 file_type=`file $cur_dir/$file_name | grep "text"` if [ "$file_type" != "" ]; then temp=`grep $keyword $cur_dir/$file_name 2> /dev/null` #echo "--"$cur_dir/$file_name #临时显示,调试用 if [ "$temp" != "" ]; then echo $cur_dir/$file_name #文件个数加1 let file_count++ fi fi fi done echo -e "\n-------------------------------------------------" echo -e "\n\nFiles Total: $file_count" echo -e "\nFind Finished!\n"
操作系统:
5.进程与线程,写一段相关调用代码片
三.总结
I.题目考察的范围包含了语言基础,算法,操作系统,shell等还是很广泛的,要注意从这几个角度系统的复习.II.让我们一同努力,明天会更好!
相关文章推荐
- 2016年阿里实习生面试经历及问题总结(2016-03-15)
- 二叉树系列——二叉树的宽度(百度面试题)
- .NET面试题解析(11)-SQL语言基础及数据库基本原理
- FICO面试
- 月薪3万的程序员都避开了哪些坑
- 面试题-和为 n 连续正数序列
- 程序员上班路上案例解说-工厂模式
- 传统的程序员将会被淘汰
- 谈谈JAVA工程狮面试中经常遇到的面试题目------什么是MVC设计模式
- JAVA常见面试题之Forward和Redirect的区别
- 第三课_课后习题解答
- ios面试题2(未整理)
- ios面试试题总结(未整理)
- 送给未来程序员的15个顶级职业建议
- 女程序员职业发展的特别之处
- 如何伪装成一个年薪20万刀以上的码农?
- 工作中最让程序员疯狂的5件事
- 经过无数经验教训后我给独立程序员的建议
- 程序员学习之路
- 04+罗潇潇+罗潇第三次作业