您的当前位置:首页正文

华为实习笔试题和面试要点

2024-01-20 来源:年旅网
华为面试题

华为数据库面试题 有2个表A,B

A表中字段id以数字编码显示字段unitid是字段id的单位不过它也是数字显示 形如: id unitid 100 1000

B表中有字段nid记录全是A表中id字段和unitid字段的值,B表还有一个字段name 是对B表的nid字段的描述

现在要求:查询A表中所有数据,但不在显示A表中的id了,而是显示相应B表的name 怎么样简单吧,来吧试试你的sql语句吧。哦。忘了说数据库是access 1:select c.name from

( select a.id id,b.name name from a,b

where a.id = b.id union

select a.unitid id,b.name name from a,b

where a.unitid = b.id ) c

可惜华为太苦,我不去。 2:呵呵,钱多

3:select a.name,tbl2.name from

(select tbl2.name,tbl1.unitid from tbl1,tbl2 where (tbl1.id = tbl2.nid)) a,tbl2 where a.unitid = tbl2.nid 4:这是你们的课堂作业吧!

5:“A表中字段id以数字编码显示字段unitid是字段id的单位不过它也是数字显示” 以上这句能不能加个逗号,读起来太费解。 6:[:D]真实的题目

7:都不对!!!看似简单,其实不然!!

最后查询结果 A表中的id和unitid都要用b表中的相应的name字段进行描述 8:應該是這樣的吧 create table a ( id varchar(10), unitid varchar(10)) go

create table b ( nid varchar(20), name varchar(20)) go

insert into a

values('10','1000')

insert into b(

values('10 1000','waterlemon') select a.unitid,b.name from a,b

where (a.id+' '+a.unitid)=b.nid

9:都把华为看的太弱智了吧,不过楼主的表述确实不大清楚,他的意思是显示的还是跟A表一摸一样的数据,只是相应的值是B表中的name

10:如果只是问这样的题目;看来华为自从做了外包之后,档次都下降了。 11:写的这么晦涩是语文不及格还是要考验人的理解和分析能力啊? //B表中有字段nid记录全是A表中id字段和unitid字段的值

这段我实在看不懂,b表有nid字段还是id和unitid字段呢?如果只有一个nid,那它是怎么表示id和unitid的 12:fenian理解对了

13:如果我理解对了,那么shine007的答案应该是可行的啊 14:access 支持子查询?

15:應該是我的對了吧﹐不信你去測試一下咯 16:楼主表诉不清

17:建议:描述问题应说清楚,这是做程序员的基本功,我们需要经常同客户沟通. 华为技术面试题

将一个单链表反序,只有一个链表头节点head,还有两个指向节点元素类型的指针p和q,不许申请新的节点及指针变量什么的.用c或c++实现算法. int MyList::Reverse() {

ListNode *ptr = _ptrFront; ListNode *ptrpre = 0; _ptrFront = _ptrEnd; _ptrEnd = ptr;

while(ptr!=_ptrFront) {

ListNode *temp = ptr->Next(); ptr->Next(ptrpre); ptrpre = ptr; ptr = temp; }

_ptrFront->Next(ptrpre); return 0; }

void InvertLinkedList( LinkList &L ) {

LinkList p,s;

// 逆置头指针L所指链表

p = L; L = NULL; // 设逆置后的链表的初态为空表 while ( p ) { // p 为待逆置链表的头指针

s = p; p = p->next; // 从 p 所指链表中删除第一个结点(s 结点)

s->next = L; L = s; // 将 s 结点插入到逆置表的表头 } }

p=head->next;q=p->next;head=q->next;p->next=NULL; do {

q->next=p; p=q; q=head;

head=head->next; }while(head);

令P指向节点1,Q指向节点2,Head指向节点3,由于P转换后为尾节点,所以P->Next指向NULL

循环移动,直到Head为NULL 哦,只有一个head,改一下: int MyList::Reverse() {

ListNode *ptr = _ptrFront; ListNode *ptrpre = 0; //_ptrFront = _ptrEnd; //_ptrEnd = ptr; while(ptr!=NULL) {

ListNode *temp = ptr->Next(); ptr->Next(ptrpre); ptrpre = ptr; ptr = temp; }

//_ptrFront->Next(ptrpre); _ptrFront = ptrpre; return 0; }

int MyList::Reverse() {

ListNode *ptr = _ptrFront; ListNode *ptrpre = 0; //_ptrFront = _ptrEnd; //_ptrEnd = ptr; while(ptr!=NULL) {

_ptrFront = ptr->Next(); ptr->Next(ptrpre); ptrpre = ptr; ptr = _ptrFront;

}

_ptrFront = ptrpre; return 0; }

#include struct A {

int m_value; A *next; };

A *Reverse(A *head) {

A *p, *q;

if (head->next == NULL || head->next->next == NULL) return head; p = head->next; q = p->next; p->next = head;

head->next = NULL; while (q != NULL) {

head = p; p = q;

q = q->next; p->next = head; }

return p; }

int main(){ A array[5];

for(int i=0; i<5; i++) {

array[i].m_value = i; if (i == 4)

array[i].next = NULL; else

array[i].next = &array[i+1]; }

A *head = array;

head = Reverse(head); while (head != NULL) {

cout<m_value<next;

}

return 0; }

yiyo2025(EricKong)

你写的这个函数有个很明显的BUG哦

if (head->next == NULL || head->next->next == NULL) return head; ???

这样当链表只有两个接结点的时候,第三个结点为空,直接返回头指针,根本没改变两个结点的顺序!

我帮你改了一下,呵呵 A *Reverse(A *head) {

A *p1,*p2; p1=head;

if(head->next==NULL) return head; p2=p1->next; p1->next=NULL;

while(p2->next!=NULL) {

head=p2->next; p2->next=p1; p1=p2; p2=head; }

p2->next=p1; return p2;

华为java基础面试题 JAVA方面

1 面向对象的特征有哪些方面 2 String是最基本的数据类型吗? 3 int 和 Integer 有什么区别 4 String 和StringBuffer的区别

5 运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6 说出一些常用的类,包,接口,请各举5个

7 说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayList 和Vector都是使用数组方式存 储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快 而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList 差,而LinkedList使用双向链 表实现存储,按序号索引数据需要进

行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j;

public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){

Thread t=new Thread(inc); t.start();

t=new Thread(dec); t.start(); } }

private synchronized void inc(){ j++;

System.out.println(Thread.currentThread().getName()+\"-inc:\"+j); }

private synchronized void dec(){ j–;

System.out.println(Thread.currentThread().getName()+\"-dec:\"+j); }

class Inc implements Runnable{ public void run(){

for(int i=0;i<100;i++){ inc(); } } }

class Dec implements Runnable{ public void run(){

for(int i=0;i<100;i++){ dec(); } } } }

9.JSP的内置对象及方法。

request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

response response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响

应的方法(如cookies,头信息等)

out out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。 session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page page表示从该页面产生的一个servlet实例 10.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。 参见课程中socket通讯例子。

11说出Servlet的生命周期,并说出Servlet和CGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

12.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。

13.EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? 14.说出数据连接池的工作机制是什么?

15.同步和异步有和异同,在什么情况下分别使用他们?举例说明。 16.应用服务器有那些?

17你所知道的集合类都有哪些?主要方法?

18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T,请用JDBC检索出表T的所有数据。

19.说出在JSP页面里是怎么分页的? 页面需要保存以下参数:

总行数:根据sql语句得到总行数 每页显示行数:设定值 当前页数:请求参数

页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。 数据库方面:

1.存储过程和函数的区别

存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 2.事务是什么?

事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID

(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。 隔离性

由 并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之 后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相 同。 持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 3.游标的作用?如何知道游标已经到了最后?

游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。 4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。

语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次

华为注重以下几点:

找到一份理想的工作是大学毕业生们最大的心愿,而进入那些知名的大企业更是广大毕业生的梦想。如何应付这些企业的面试成为了毕业生们最为关注的话题。

这些名企的面试往往有一定的程序,绝非草草而就。因此,一定要有所准备才能“百战 不殆”。而要在面试前得到有关信息,常常采用的有这样几个方法:1.充分利用人际关系,与近年进入该企业工作的师兄师姐沟通,以预测面试题目的方向;2.查询该企业的资料,深入了解该企业的企业文化特点,联系当前情况,自己预测考题;3.利用网络资源,登录该企 业网站,查询相关信息及面试题目。从目前的情况来看,最普遍也最为有效的方式,仍然是 向往届毕业生咨询相关信息。

面试题往往与各公司的企业文化和重点关注的东西有密切的关系,我们可以做出如下总结:

·忠诚度

面临跳槽,企业往往会看重应聘学生对忠诚度的看法。尤其是一些国有大型企业,更为重视 员工的忠诚度。在近日康佳集团的招聘中,面试官就提出了“请分析职业技能和忠诚度哪个 对企业更重要”的问题。

·实践能力

在注重学生学习成绩的同时,相当多的企业非常重视应聘者的实践经历。例如通用电气 (中国)有限公司(GE)就表示他们要招聘的绝不是简单的“学习机器”,在校期间实习、兼职、 家教的经验都是积累社会经验的好机会,这都应该受到企业的重视。

·团队协作精神

经营规模宏大的名企往往非常重视员工的团队协作精神。例如联想集团人力资源部的有 关负责人就表示,该公司尤其欢迎具有团队协作精神的应聘者。

·创新精神

对于大型企业来说,离开了不断的创新,就等于失去了生命力,因此应聘者是否具有创 新精神也是重点要考查的。如联想集团在面试中就十分重视应聘者的创新精神和能力。 对企业文化的认可程度

企业在招聘过程中常常会考虑到员工是否能够认可和适应该企业的价值观和企业文化, 这将决定员工是否能够很好地为企业服务。例如SONY公司在招聘过程中把员工能否适应日本文化尤其是索尼的企业文化作为重点考核内容。通用电气有限公司在招聘中也要看学生是否喜欢、是否认同GE的价值观,即“坚持诚信、注重业绩、渴望变革”。

·人际交往能力和良好的沟通能力

如SONY把人际沟通能力作为重点考核内容,而毕博管理咨询有限公司人力资源部的经理则透露,毕博在招聘过程中非常重视学生的沟通技巧,因为作为未来的咨询师,应聘者一定要具有与客户沟通、协调的能力。

·对新知识新能力的求知态度和学习能力

一位企业负责人表示,应届毕业生往往不具备直接进行业务操作的能力,基本上都要经 过系统的培训,所以学习能力和求知欲应该是重点考查的内容。很多企业都坚持这一原则。 通用电气的公关总监表示,公司不是很在乎应届生与公司要求之间的差距,因为他们对于自 己的培训体系非常自信,只要有强烈的求知欲和学习能力一定可以通过系统的培训脱颖而 出,因此在面试中这两项考核十分关键。此外,UT斯达康、欧莱雅、安永„„都表示是否 具备良好的学习能力和强烈的求知欲是企业十分重视的。

随着职场上竞争的日趋激烈,面试已经成为一门学问,而新的面试题目和面试方式也层 出不穷,上海通用在面试时,就推出了情景模拟面试的新思路,即根据应聘者可能担任的职务,编制一套与该职务实际情况相仿的测试项目,将被测试者安排在模拟的、逼真的工作环境中,要求被试者处理可能出现的各种问题,以此测试其心理素质,观察应聘者的领导能力、 领导欲望、组织能力、主动性、口头表达能力、自信程度、沟通能力、人际交往能力。上海通用还把情景模拟推广到对技术工人的选拔上,如通过齿轮的装配练习,评估应聘者的动作灵巧性、质量意识、操作的条理性及行为习惯。孰优孰劣,泾渭分明。

想进入名企工作,以实现自己的人生价值,面试是必须通过的一关,知己知彼才能百战 不殆,相信只要一方面对自己有清醒的认识和准确的定位,一方面对企业的情况有深入了解,一定可以在面试中脱颖而出。

因篇幅问题不能全部显示,请点此查看更多更全内容