华为面试题

范文1:华为试题[下载]【以文搜文】

面试 官术范技+文艺。

范接直话说题

gcc-g 释 解 gdb 调试用过

吗 //列b举rak,乱e 。序 是就但是没有说 stpei n ste, opu 。 t有说到没件条点。断

g懂c生c的成编汇 嘛 //没回答windo有w下s看,li过uxn没有下

cppc,文的件用ccg 还是+g+ /exte/nr c

gc常用的c 译优编化功能有解:释 /。/ergistter

常等用的dei优的化选项有么,比什如window,比s如cg ,gccc默优化认到那级种 //o1别 o2linu

x下面的oce rump现场d什么有?,// c ips,s , sspe re,igtersg

cc编程序默译认堆栈大小? //我的想到iwdnow是s默认m,就说了44m

liux内存申n请方的式 哪,会些睡 //眠没有说 m到amp关于睡,眠根本没有答。对其除了km实alocl都,睡是眠的。

wi

nows编程d的认识关 于fc 关m于pa i//回答我消了息制机 息消递,传 继他续我让解 消息机释运行。制

iluxn进 切程的时换机 //我简回答的是答中 返回断时候的 ,答案不整完。

l

iunx内 锁有哪些核。psi-nolck睡眠嘛?会

于可重关入(:)

个函一数何设如计为 可重入:他的问

:题一函数被多个模个块调用或,被多个线程者调,如用设何。计

接着他扩,展开:为对于 述情形上,有个线程调用同多个一数函,可出能后现动的函启先执数行完嘛 其?中两这个程线没有都睡。眠

l

niux死 是锁什么回,如何防事止//?度百笔后再次试到,遇次这没有软手。下一子说了,。

于设备驱块。动

//我原想个转弯,我只用过字说符动,驱马他上 说这个符驱动太字单简了大家,都经笔备差不多了。还准说块设是备

/然/后我就 根据我的识 认说行串设备说有,哪种几 储存设,说备css协议i控制数、等据但等都浅肤。。/

现在/想起,来细往详操作统系个那层面说这个,是jo h告n诉的我。。呀哎任。问题何都面想两。

给还说,我iwdnwo底层so的i数是函什,么还说存是。。不储懂。。建

议充补

后面最试官了说对于,个在一大校生学,于我对的liunx平水,他是可打以格的及但,离是一个司公的使用还,很大有的离。距

h别w,别在第了一参次的群加。不过面术技面上如 还是收,很获大。

范文2:华为试题[下载]【以文搜文】

华为面试题--暴强!

1、华为公司的全称为()

  A、深圳市华为技术有限公司 B、华为技术有限公司

  C、华为公司 D、我司

  

  (答案:B,答A、C者酌情给分,答D者立即辞退,我司三令五申禁止使用该华为内部

  土语,屡禁不止,老员工不可教也,只好从新员工抓起,格杀勿论)

  

  2、华为公司的企业性质是()

  A、民营 B、私营 C、国营 D、上市公司

  

  (答案:A,本题主要让考生了解公司的性质)

  

  3、华为公司的商标象征()

  A、红太阳 B、菊花 C、扇贝

  

  (答案:B,答A者酌情给分,答C者立即辞退,天天就想着吃)

  

  4、从下列选项中选择出公司的常务副总裁()

  A、任正非 B、孙亚芳 C、李一男 D、郑宝用 E、张燕燕

  

  (答案:BD,答C者立即辞退,让他到李一男的公司去报到吧)

  

  5、华为公司的年终奖一般是在每年的什么时候发()

  A、元旦后 B、春节前 C、7月下旬或8月上旬 D、劳动节前 E、国庆节前

  

  (答案:C,切记,因为是年中奖,而不是年终奖)

  

  6、华为公司的配给你的股票是()

  A、**发的 B、用自己的奖金去买

  

  (答案:B)

  

  7、老板常说的土八路,是指()

  A、老板自己的革命年代的光辉历史

  B、本地化的用服兄弟

  C、季度考核为D的兄弟

  

  (答案:B)

【第二部分 部门篇】

    

  1、你所在的一级部门为()

  A、技术支援部

  B、国际技术支援部

  C、国际技术支援部国内分部

  D、用服

  

  (答案:B,答A、C者酌情给分,答D者作不合格处理,为了提高技术支援部形象,公司

  早就取消用服这个字眼,而且于2001年春节后悄悄地将技术支援部前加“国际”二字)

  

  2、你所在的二级部门为()

  A、传输产品技术支援管理部

  B、传输工程部

  C、传输用服工程中心

  D、光网络产品技术支援管理部

  

  (答案:A,首先得把自己的部门搞清楚,答D者,有远见,有潜力,可以酌情给分,很可能

  在2001年未就改成这个名字,因为市场中研已经改了,就差技术支援部了)

  

  3、传输的商标为()

  A、SBS

  B、SDH

  C、OptiX

  D、Metro

  

  (答案:C,答A者酌情给分,最起码还知道老商标)

  

  4、技术支援部与国际技术支援部的关系()

  A、国际技术支援部是技术支援部下面的一个部门,负责海外

  B、技术支援部是国际技术支援部下面的一个部门

,负责国内

  C、技术支援部是国际技术支援部的前身

  D、国际技术支援部是技术支援部的前身

  

  (答案:C)

【第三部分 业务篇】

    

  1、SBS是()

  A、传输产品的老商标

  B、同步骨干系统

  C、傻不傻的拼音缩写

  D、帅不帅的拼音缩写

  

  (答案:AB,答CD者立即辞退)

  

  2、SDH是()

  A、传输产品商标

  B、同步数字序列

  C、傻得很的拼音缩写

  D、傻得好的拼音缩写

  

  (答案:B,答CD者立即辞退)

  

  3、由于你是新员工,没有公配手机时,当你在现场遇到紧急事故时,你会()向公司求助

  A、打用户机房内的电话

  B、借用户手机

  C、拔110

  D、拔200或300

  E、立即打车回办事处

  

  (答案:D,答CE者立即辞退,按照公司规定,不能随便使用用户的电话,以提高公司形象)

  

  4、在开局时,用户问你在华为干几年了,你会回答()

  A、我是新员工

  B、1年多了

  C、2年多了

  D、3年多了

  

  (答案:B,答A者按不合格处理,按照公司规定,不能说自己是新员工,几千万的设备,

  怎能让一个新员工用来练兵,用户知道鼻子不气歪才怪,答CD者,用户会哼之以鼻,在华为

  做了2、3年,还在下面撅个腚开局,鬼才相信你的话呢!)

  

  5、接上题,假如你回答说在华为干1年多了,用户会说()

;

  A、那你一定是新员工了

  B、那你一定是老员工了

  

  (答案:B,用户对华为很了解,都知道你如果在华为做一年,就已经是老员工了)

  

  6、接上题及上上题,用户会继续问,“那你咋连手机、便携机,一个都没有呢?”,你会回答()

  A、啊,我还没有转正咧,等俺转正时,误码仪、手机、便携机,一个都不能少

  B、啊,没有关系,正是由于我是老员工,所以开局用不着

  C、啊,真倒霉,在来的路上,被土匪打劫了

  D、啊,被我的两个徒弟拿走了,因为他们是新员工,没有工具胆小,有了工具好壮胆

  

  (答案:BCD,答A者,立即辞退,这么点事都搞不定)

  

  7、当你发现用户的机房中没有拖鞋时,你会()

  A、入乡随俗,直接进机房

  B、光脚丫

  C、马上出去自己花钱买几双拖鞋送给用户

  D、马上出去买几双拖鞋送给用户,之后开票回来贴票报销

  E、马上出去买几双拖鞋送给用户,之后开票找局长报销

  

  (答案:C,答A者,立即辞退,答B者,酌情给分,答D者,不合格处理,答E者,简直是

在找

  死,立即辞退)

  

  8、技术支援工程师工作的特点()

  A、白天睡觉,晚上干活

  B、用户随叫随到

  C、用户就是上帝,用户怎么说,我们就怎么做

  D、我是上帝,我想咋干就咋干

  

  (答案:ABC,答D者,立即辞退)

  

  9、在与客户开会及纸面件交流时,你会使用()来称呼对方

  A、局方 B、用户 C、客户 D、贵公司

  

  (答案:BCD,答A者,立即辞退,我司三令五申禁止使用该华为内部土语,屡禁不止,

  老员工不可教也,只好从新员工抓起,格杀勿论)

  

  10、工程师甲对乙说:“晚上不去泡吧吗”,乙说:“哦,真不巧,我晚上要去市局割接,下次吧”。

  请问乙指的“割接”是什么意思()

  A、发货电缆不够长,从别的地方割一段,然后接上

  B、一个工程师替换另一个工程师守局,交接的时候要写一个报告,然后从中割开,一人拿一半。

  C、局里晚上有一个庆祝活动,请他剪彩。

  D、业务从旧系统上倒到新系统上

  

  (答案:D,答错者,按不合格处理)

  

  11、工程师A某周日晚正在家里看电视,突然手机响了,电信局运维员工突然

  打电话过来,小A接起电话,用户声音很急迫,说:“不好了,瘫了,你快来处理”。

  请问这里“瘫了”最有可能是什么意思()

  A、设备漏电将维护人员电瘫了

  B、设备支架不够结实,被压瘫了

  C、设备坏了,将维护人员吓瘫了

  D、设备坏了,大面积业务中断了

  

  (答案:D,答错者,按不合格处理)

  

  12、案例分析:某位局长到传输机房视察工作时,被某物砸伤了脑袋瓜,请问,它最有可能是()

  A、SS02PBS电源盒盖板

  B、SS03PBS电源盒盖板

  C、子架盖板

  D、防雷盒

  

  (答案:A)

  

  ---doom2

  

  回复[3]:13、下雨了,打雷了,你会()

  A、收衣服

  B、担心网上运行的设备遭到雷公袭击

  C、担心强盗偷袭机房内的设备

  D、担心食堂开饭会晚点

  

  (答案:B)

  

  14、夜深人静,辗转反侧的你正在考虑小布什与科尔谁当选总统会对中国更有利时,

  突然手机响了,最有可能发生的是()

  A、主管也睡不觉,想找你喝酒

  B、狐朋狗友找你去蹦的

  C、用户找你,因为业务断了

  D、打错了,是骚扰电话

  

  (答案:D)

  

  15、请你选择出最常用的排除故障的方法()

  A、复位 B、拔插 C、掉电 D、祷告 C、烧香拜神

  

  (答案:ABC)

  

  16、了为有效降低成本,除了()的电话,其它的电话一律不接,然后用固定电话回拔过去

  A、陌生的号码

  B、很熟悉的用户

  C、不很熟悉的用户

  D、主管与同事

  E、狐朋狗友

  F、老婆

  

  (答案:C)

  

  17、论文题目:惊心动魄的一夜

  本题的目的是考新员工的文笔,为技术案例及技术论文作准备。

  写作要求:

  1)、故事情节必须包括:

  ①业务割接;

  ②重大事故;

  ③事故上报;

  ④局长亲自督阵;

  ⑤业务中断时间不小于5小时;

  ⑥未造成特别恶劣的影响;

  ⑦描述电话内容个数不少于30个;

  ⑧事件发生有准确的时间点,精确到秒;

  ⑨复位,拔插,换板;

  ⑩涉及人物不少于20个。

  2)、要体现一个工程师如何排除万难,在巨大的精神压力下冷静沉着,终于解决问题,

  表现了一个华为工程师优良的单兵作战能力。

  3)、字数不少于3000字,不超过3500字。

  

  18、如果A站和B站之间出现B2误码,问题可能在()板

  A、A站T16

  B、A站R16

  C、A站ASP

  D、A站X16

  E、B站T16

  F、B站R16

  G、B站ASP

  H、B站X16

  I、以上答案均不正确

  

  (答案:ABCDEFGH)

  

  19、接上题,上述故障现象最有可发生的地点是()

  A、江西九江

  B、佳木斯本地网

  C、河南信阳

  D、沈阳城域

  

  (答案:A)

  

  20、接上上题,如果让你去维护A站与B站之间的B2问题,你会携带哪些必带物品()

  A、便携机

  B、T16、R16、X16、ASP各一块

  C、工具箱

  D、私人行李

  E、2M误码表

  F、光功率计

  G、老婆

  

  (答案:ABCDEF,有句名言,华为工程师出差,除了老婆,什么都得带)

  

  21、接上题,对于上述出差必备物品,你会最佳的携带方法是()

  A、左肩便携机、右肩工具箱、左手仪表、右手备板、身后行李

  B、右肩便携机、左肩工具箱、右手仪表、左手备板、身后行李

  C、让老子拿这么多东西出差,早知道这样,老子就不来华为用服了

  

  (答案:AB,重复那句名言,华为工程师出差,除了老婆,什么都得带)

  

  22、接上题,对于上述情况,你如何打车?()

  A、向过路司机挤眉弄眼,眉来眼去,注意,尽量使用媚眼

  B、将手中的物品放下,向司机打手势

  C、啥都不用,将一只脚抬起向司机示意即可

  D、放开嗓子喊,出租车!

  

  (答案:C,经实践证明,这招很管用)

  

  23、接18题,如果A与B点相距40KM,在A站已经定位出B站有问题,则从A站下午

  13点钟开车前去换板,车子时速80KM,需求多长时间才能回到A站?()

  A、2小时左右

  B、8小时左右

  C、12小时左右

  D、24小时左右

  E、48小时左右

  

  (答案:D,答A者开除。因为现场后,白天不能换板,然后等到午夜12点以后才可以换板,

  次日继续留守观察一上午后,次日下午才能返回)

【第四部分 生活篇】

  

  1、以下手段可以蒙混入关的是()

  A、外地身份证 B、良民证 C、边防证 D、深圳特区暂住证 E、华为工卡

  F、婚育证明 G、结婚证 H、乘华为班车

  

  (答案:CDH)

  

  2、如下哪些证件可以应付当地居委会的计划生育检查()

  A、婚育证明 B、不育证明 C、结婚证 D、边防证

  

  (答案:A)

  

  3、华为公司员工在业余时间不允许做的事情()

  A、打麻将 B、玩扑克 C、出入不健康场所 D、将工卡带在胸前炫耀 E、按摩洗头

  

  (答案:ACD)

  

  4、你可以通过以下途径出租或求租住房及买卖二手商品()

  A、生协Notes B、Notes Mail C、华为电子公告牌

  D、一位辞职员工办的个人主页〖华为专用物业公告栏〗,地址http://202.105.55.110/hw/

  

  (答案:D)

  

  5、华为工卡可以用来()

  A、在深银联ATM机上取款

  B、在华为小卖部买东西

  C、在华为食堂**吃早餐

  D、只要蹭到晚9点,就可以到食堂领**的宵夜

  

  (答案:BD)

  

  6、在购买机票时,正常人可以打7折,如果你凭华为工卡,可以打()

  A、5折

  B、7折

  C、8折

  D、97折

  

  (答案:D)

  

  7、如下线路中,票价最便宜的是()

  A、113

  B、204

  C、226

  D、331

BR>  

  (答案:C)

  

  8、如下线路中,小偷最多的是()

  A、113

  B、204

  C、226

  D、331

  

  (答案:BC)

  

  9、如下线路中,不能到新时代广场的是()

  A、113

  B、204

  C、226

  D、331

  E、437

  F、22

  

  (答案:E)

  

  10、如下线路中,哪一个线路能到新时代广场但不能坐的是()

  A、113

  B、204

  C、226

  D、217

  E、437

  F、22

  

  (答案:F,因为它绕很远,上班会迟到)

  

  11、在新时代广场,如果你既想拿宵夜,又想坐班车,你会()

  A、晚8:50去一楼刷卡,再马上跑到三楼,准排第一,再叫大师傅将宵夜包好,

  卡机时间比快那么几分钟,到点刷卡后,马上顺楼梯飞奔到停车场即可,注

  意千万不是坐电梯。

  B、蹭到晚9点钟以后,领完宵夜,再混一会儿,坐晚9点以后的班车

  C、算了,本来鱼和熊掌就不能兼得,老子不领了,下班就回家

  

  (答案:AB)

  

  12、到办事处出差,当地安排你住公司的集体宿舍,真倒霉,同屋的哥们雷声隆隆,你会()

  A、推醒他,给他一个红牌警告

  B、找办事处主任理论

  C、忍了,到客厅凳子上将就一下

  D、不受那份气,搬家,到宾馆开房间

  E、武力解决,找本厚书,如华为文摘、走出混饨、培训手册等,很很的砸那位哥们一下

  F、戴上耳机,听走扁美国

  G、头上蒙上厚被,装听不见

  H、故意打出更响的呼噜,吓一吓那位哥们

  

  (答案:该无标准答案,只要不选BD,答D者,按不合格处理)

  

  13、出差回来,发现出差前还在宿舍中的自己的拖鞋不翼而飞,你会()

  A、死活要将属于自己的东西找回来,毫不在乎地接着穿

  B、死活要将属于自己的东西找回来,用开水烫烫或用消毒水处理一下,然后接着穿

  C、死活要将属于自己的东西找回来,然后丢到垃圾桶里

  D、不要了,再买一双新的,以免得脚气

  E、随便找一双穿,管它是谁的

  F、发誓下次出差前一定要将自己的拖鞋藏起来

  

  (答案:该无标准答案,因为每个人的个性不同)

  

  14、请从如下四个句子中选择一个正确的描述()

  A、人最宝贵的是生命

  B、人,最宝贵的是生命

  C、生命对于人是最宝贵的

  D、对于人,没有比生命更宝贵的

  

  (答案:D)

  

  回复[5]:15、请问马路边的“风炮补胎”是()

  A、是汽车修理店的一种招牌,“补胎”是一种维修业务,“风炮”是一位很有名气

  的修车大师,收了很多徒弟,所以,徒第们往往打着师傅的名气开店,于是,街

  道就是了N多的风炮补胎执招牌。这与“狗不理包子”类似。

  B、是汽车修理店的一种招牌,“风炮”是一种高效的补胎工具。

  C、是汽车修理店的一种招牌,“风炮”是一该店的修车师傅的名字,与“王麻子”

  剪刀类似。

  D、是自行车修理店的一种招牌,“风炮”是一种快速粘胶,该胶补自行车胎即快又好。

  

  (答案:B)

  

  16、请问,距离新时代广场最近的“风炮补胎”招牌在()

  A、从黄贝岭至蛇口113大巴线的新时代广场下车点的马路对面

  B、从蛇口至黄贝岭113大巴线的

新时代广场上车点的马路边上

  C、别骗人了,新时代广场附近压根就没有

  

  (答案:AB)

  

  17、如下广告词正确的是()

  A、用一天的电,花两天的钱

  B、用两天的电,花一天的钱

  C、新飞冰箱好,不如新飞广告做的好

  D、新飞广告做的好,不如新飞冰箱好

  

  (答案:BD)

  

  18、请问,你最讨厌如下哪些就餐行为()

  A、早餐不刷卡,用10块钱买

  B、早餐买N样

  C、米饭打N下

  D、餐纸扯N长

  E、夜宵领N样

  F、就餐完毕不做5S,鸡蛋皮、筷子皮乱扔在餐桌上

  G、走路时不照顾自己的餐盘,将餐液溅洒在他人身上

  H、吃饭咂咂响,喝汤吃面条呼噜呼噜叫

  J、在一个拥挤的电梯里,某人手持一盒疯牛牛奶,使出吃奶的劲狂吸

  K、领9点钟的夜宵,坐9点钟的班车

范文3:华为试题[下载]【以文搜文】

1 面向对象的特征有哪些方面

2 String是最基本的数据类型吗?

3 int 和 Integer 有什么区别

4 String 和StringBuffer的区别

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

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

6 说出一些常用的类,包,接口,请各举5个

类:ArrayList PreparedStatement Connection String HttpServlet………

包:java,sql java.util, java.lang, java.io, javax.httpServlet,java.math,java.text,java.awt

接口:HttpSessionAttributeListener, ActionListener InputStream Collection

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表示HttpServletRequ

est对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取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你所知道的集合类都有哪些?主要方法?

ArrayList HashMap LinkedList HashTable

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

19.说出在JSP页面里是怎么分页的?

页面需要保存以下参数:

总行数:根据sql语句得到总行数

每页显示行数:设定值

当前页数:请求参数

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

范文4:华为C++试题[下载]【以文搜文】

(一) 初级题

1. 什么是预编译,何时需要预编译:

答:

(1) 总是使用不经常改动的大型代码体

(2) 程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头

2. char * const p

char const * p

const char *p

上述三个有什么区别?

答:

char * const p; //常量指针,p的值不可以修改

char const * p;//指向常量的指针,指向的常量值不可以改

const char *p; //和char const *p

3.

char str1[] =

char str2[] =

const char str3[] =

const char str4[] =

const char *str5 =

const char *str6 =

char *str7 =

char *str8 =

cout << ( str1 == str2 ) << endl;

cout << ( str3 == str4 ) << endl;

cout << ( str5 == str6 ) << endl;

cout << ( str7 == str8 ) << endl;

结果是:0 0 1 1

str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。

4. 以下代码中的两个sizeof用法有问题吗?

void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母

{

for( size_t i=0; i

if( 'a'<=str[i] && str[i]<='z' )

str[i] -= ('a'-'A' );

}

char str[] =

cout <<

UpperCase( str );

cout << str << endl;

答:函数内的sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str 是一个静态定义的数组,因此其大小为6,因为还有'\0',函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此 sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。

5. 一个32位的机器,该机器的指针是多少位

答:指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。

6.

main()

{

int a[5]={1,2,3,4,5};

int *ptr=(int *)(&a+1);

printf(

}

答:2,5

*(a+1)就是a[1],*(ptr-1)就是a[4], 执行结果是2, 5。&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)。int *ptr=(int *)(&a+1); 则ptr实际是&(a[5]),也就是a+5

原因如下:

&a是数组指针,其类型为 int (*)[5]; 而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同; a是长度为5的int数组指针,所以要加 5*sizeof(int)。所以ptr实际是a[5]。但是prt与(&a+1)类型是不一样的(这点很重要),所以prt-1只会减去 sizeof(int*)。a,&a的地址是一样的,但意思不一样,a是数组首地址,也就是a[0]的地址,

&a是对象(数组)首地 址,a+1是数组下一元素的地址,即a[1],&a+1是下一个对象的地址,即a[5]。

7. 请问以下代码有什么问题:

int main()

{

char a;

char *str=&a;

strcpy(str,

printf(str);

return 0;

}

答:没有为str分配内存空间,将会发生异常。问题出在将一个字符串复制进一个字符变量指针所指地址。虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃。

8.

char* s=

printf(

s[0]='B';

printf(

有什么错?

答:

9. 写一个“标准”宏,这个宏输入两个参数并返回较小的一个。

答:#define Min(X, Y) ((X)>(Y)?(Y):(X)) //结尾没有';'

10. 嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。

答:while(1){}或者for(;;)

11. 关键字static的作用是什么?

答:定义静态变量

12. 关键字const有什么含意?

答:表示常量不可以修改的变量。

13. 关键字volatile有什么含意?并举出三个不同的例子?

答:提示编译器对象的值可能在编译器未监测到的情况下改变。

14. int (*s[10])(int) 表示的是什么啊?

答:int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。

15. 有以下表达式:

int a=248; b=4; int const c=21; const int *d=&a;

int *const e=&b; int const *f const =&a;

请问下列表达式哪些会被编译器禁止?为什么?

答:*c=32; d=&b; *d=43; e=34; e=&a; f=0x321f;

16. 交换两个变量的值,不使用第三个变量。即a=3,b=5,交换之后a=5,b=3;

答:有两种解法, 一种用算术算法, 一种用^(异或)

a = a + b;

b = a - b;

a = a - b;

or

a = a^b;// 只能对int,char..

b = a^b;

a = a^b;

or

a ^= b ^= a;

17.

#include

#include

void getmemory(char *p)

{

p=(char *) malloc(100);

strcpy(p,

}

int main( )

{

char *str=NULL;

getmemory(str);

printf(

free(str);

return 0;

}

答:程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险

18. 列举几种进程的同步机制,并比较其优缺点。

答:原子操作、信号量机制、自旋锁、管程、会合、分布式系统

20. 进程之间通信的途径

答:共享存储系统、消息传递系统、管道:以文件系统为基础

21. 进程死锁的原因和4个必要条件

答:资源竞争及进程推进顺序非法;互斥、请求保持、不可剥夺、环路

22. 死锁的处理

答:鸵鸟策略、预防策略、避免策略、检测与解除死锁

23. 操作系统中进程调度策略有哪几种?

答:FCFS(先来先服务),优先级,时间片轮转,多级反馈

24. 类的静态成员和非静态成员有何区别?

答:类的静态成员每个类只有一个,非静态成员每个对象一个

25. 纯虚函数如何定义?使用时应注意什么?

答:virtual void f()=0; 是接口,子类必须要实现

26. 数组和链表的区别

答:

数组:数据顺序存储,固定大小

链表:数据可以随机存储,大小可动态改变

27. ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?

答:应用层、表示层、会话层、运输层、网络层、物理链路层、物理层

tcp/udp属于运输层

TCP服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。 与TCP 不同, UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。由于UDP比较简单,UDP头包含很少的字节,比TCP负载消耗少

tcp: 提供稳定的传输服务,有流量控制,缺点是包头大,冗余性不好

udp: 不提供稳定的服务,包头小,开销小

28. (void *)ptr 和 (*(void**))ptr的结果是否相同?其中ptr为同一个指针

答:(void *)ptr 和 (*(void**))ptr值是相同的

29.

int main()

{

int x=3;

printf(

return 1;

}

问函数既然不会被其它函数调用,为什么要返回1?

答:main中,c标准认为0表示成功,非0表示错误。具体的值是某中具体出错信息

30. 要对绝对地址0x100000赋值,我们可以用(unsigned int*)0x100000 = 1234; 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?

答:*((void (*)( ))0x100000 ) ( );

首先要将0x100000强制转换成函数指针,即: (void (*)())0x100000。然后再调用它: *((void (*)())0x100000)(); 用typedef可以看得更直观些:

typedef void(*)() voidFuncPtr;

*((voidFuncPtr)0x100000)();

31. 已知一个数组table,用一个宏定义,求出数据的元素个数

答:

#define NTBL

#define NTBL (sizeof(table)/sizeof(table[0]))

32. 线程与进程的区别和联系? 线程是否具有相同的堆栈? dll是否有独立的堆栈?

答:进程是死的,只是一些资源的集合,真正的程序执行都是线程来完成的,程序启动的时候操作系统就帮你创建了一个主线程。每个线程有自己的堆栈。DLL中 有没有独立的堆栈,这个问题不好回答,或者说这个问题本身是否有问题。因为DLL中的代码是被某些线程所执行,只有线程拥有堆栈,如果DLL中的代码是 EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的代码是由DLL自己创建的线程所执行,那么是不是说DLL有独 立的堆栈?

以上讲的是堆栈,如果对于堆来说,每个DLL有自己的堆,所以如果是从DLL中动态分配的内存,最好是从DLL中删除,如果你从DLL中分配内存,然后在EXE中,或者另外一个DLL中删除,很有可能导致程序崩溃

33.

unsigned short A = 10;

printf(

char c=128;

printf(

输出多少?并分析过程

答:

第一题,~A =0xfffffff5, int值为-11,但输出的是uint。所以输出4294967285。

第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128。

这两道题都是在考察二进制向int或uint转换时的最高位处理。

(二) 中级题

1. -1,2,7,28,,126请问28和126中间那个数是什么?为什么?

答:

第一题应该是4^3-1=63

规律是n^3-1(当n为偶数0,2,4)

n^3+1(当n为奇数1,3,5)

2. 用两个栈实现一个队列的功能?要求给出算法和思路!

答:设2个栈为A,B, 一开始均为空.

入队:

将新元素push入栈A;

出队:

(1)判断栈B是否为空;

(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;

(3)将栈B的栈顶元素pop出;

这样实现的队列入队和出队的平摊复杂度都还是O(1), 比上面的几种方法要好。

3. 在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 答:

函数名: atol

功 能: 把字符串转换成长整型数

用 法: long atol(const char *nptr);

程序例:

#include

#include

int main(void)

{

long l;

char *str =

l = atol(lstr);

printf(

return(0);

}

4. 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? 答:c用宏定义,c++用inline

5. 直接链接两个信令点的一组链路称作什么?

答:PPP点到点连接

7. 软件测试都有那些种类?

答:黑盒:针对系统功能的测试 白合:测试函数功能,各函数接口

8. 确定模块的功能和模块的接口是在软件设计的那个队段完成的?

答:概要设计阶段

9.

unsigned char *p1;

unsigned long *p2;

p1=(unsigned char *)0x801000;

p2=(unsigned long *)0x810000;

请问

p1+5=______;

p2+5=______;

答案:801005;810014。不要忘记了这个是16进制的数字,p2要加20变为16进制就是14

选择题:

1. Ethternet链接到Internet用到以下那个协议?

A.HDLC; B.ARP; C.UDP; D.TCP; E.ID

2. 属于网络层协议的是:

A.TCP; B.IP; C.ICMP; D.X.25

3.Windows消息调度机制是:

A.指令队列; B.指令堆栈; C.消息队列; D.消息堆栈;

答:b,a,c

找错题:

1. 请问下面程序有什么错误?

int a[60][250][1000],i,j,k;

for(k=0;k<=1000;k++)

for(j=0;j<250;j++)

for(i=0;i<60;i++)

a[i][j][k]=0;

答:把循环语句内外换一下

2. 以下是求一个数的平方的程序,请找出错误:

#define SQUARE(a) ((a)*(a))

int a=5;

int b;

b=SQUARE(a++);

答案:这个没有问题,s(a++),就是((a++)×(a++))唯一要注意的就是计算后a=7了

3. 找错误

typedef unsigned char BYTE

int examply_fun(BYTE gt_len; BYTE *gt_code)

{

BYTE *gt_buf;

gt_buf=(BYTE *)MALLOC(Max_GT_Length);

if(gt_len>Max_GT_Length)

{

return GT_Length_ERROR;

}

}

答:要释放内存 .

问答题:

1.IP Phone的原理是什么?

答:IPV6

2.TCP/IP通信建立的过程怎样,端口有什么作用?

答:三次握手,确定是哪个应用程序使用该协议

(三) 高级题

1、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

答:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。

而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。

static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;

static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;

static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

2、程序的局部变量存在于( )中,全局变量存在于( )中,动态申请数据存在于( )中。 答:栈;静态区;堆

3、设有以下说明和定义:

typedef union {long i; int k[5]; char c;} DATE;

struct data { int cat; DATE cow; double dog;} too;

DATE max;

则语句 printf(

答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20

data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52.

当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

4、队列和栈有什么区别?

答:队列先进先出,栈后进先出÷

5、已知一个单向链表的头,请写出删除其某一个结点的算法,要求,先找到此结点,然后删除。

答:

slnodetype *Delete(slnodetype *Head,int key)

{

if(Head->number==key)

{

Head=Pointer->next;

free(Pointer);

break;

}

Back = Pointer;

Pointer=Pointer->next;

if(Pointer->number==key)

{

Back->next=Pointer->next;

free(Pointer);

break;

}

void delete(Node* p)

{

if(Head = Node)

while(p)

}

}

7、请找出下面代码中的所以错误

说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” #include

main()

{

char*src=

char* dest=NULL;

int len=strlen(src);

dest=(char*)malloc(len);

char* d=dest;

char* s=src[len];

while(len--!=0)

d++=s--;

printf(

return 0;

}

答:还要加上#include

int main()

{

char* src =

int len = strlen(src);

char* dest = (char*)malloc((len+1)*sizeof(char)); //要为\0分配一个空间 char* d = dest;

char* s = &src[len-1]; //指向最后一个字符

while( len-- != 0 )

*d++=*s--;

*d = 0; //尾部要加\0

printf(

free(dest);// 使用完,应当释放空间,以免造成内存汇泄露

return 0; }

范文5:2013华为试题[下载]【以文搜文】

华为C语言经典面试题。每道题都附有详细解答和讲解,很有参考价值的C语言面试题。 怎么判断链表中是否有环?

bool CircleInList(Link* pHead)

{

if(pHead = = NULL || pHead->next = = NULL)//无节点或只有一个节点并且无自环 return (false);

if(pHead->next = = pHead)//自环

return (true);

Link *pTemp1 = pHead;//step 1

Link *pTemp = pHead->next;//step 2

while(pTemp != pTemp1 && pTemp != NULL && pTemp->next != NULL)

{

pTemp1 = pTemp1->next;

pTemp = pTemp->next->next;

}

if(pTemp = = pTemp1)

return (true);

return (false);

}

两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串

void insert(char *s, char *t, int i)

{

memcpy(&s[strlen(t)+i],&s[i],strlen(s)-i);

memcpy(&s[i],t,strlen(t));

s[strlen(s)+strlen(t)]='\0';

}

1。编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。

char * search(char *cpSource, char ch)

{

char *cpTemp=NULL, *cpDest=NULL;

int iTemp, iCount=0;

while(*cpSource)

{

if(*cpSource == ch)

{

iTemp = 0;

cpTemp = cpSource;

while(*cpSource == ch)

++iTemp, ++cpSource;

if(iTemp > iCount)

iCount = iTemp, cpDest = cpTemp;

if(!*cpSource)

break;

}

++cpSource;

}

return cpDest;

}

2。请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。

int search(char *cpSource, int n, char ch)

{

int i;

for(i=0; ireturn i;

}

一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?

将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指向的节点。

#include

void foo(int m, int n)

{

printf(

}

int main()

{

int b = 3;

foo(b+=3, ++b);

printf(

return 0;

}

输出:m=7,n=4,b=7(VC6.0)

这种方式和编译器中得函数调用关系相关即先后入栈顺序。不过不同编译器得处理不同。也是因为C标准中对这种方式说明为未定义,所以各个编译器厂商都有自己得理解,所以最后产生得结果完全不同。因为这样,所以遇见这种函数,我们首先要考虑我们得编译器会如何处理这样得函数,其次看函数得调用方式,不同得调用方式,可能产生不同得结果。最后是看编译器优化。

2.写一函数,实现删除字符串str1中含有的字符串str2.

第二个就是利用一个KMP匹配算法找到str2然后删除(用链表实现的话,便捷于数组) //Author: azhen

#include

#include

#include

char *commanstring(char shortstring[], char longstring[])

{

int i, j;

char *substring=malloc(256);

if(strstr(longstring, shortstring)!=NULL) //如果……,那么返回shortstring

return shortstring;

for(i=strlen(shortstring)-1;i>0; i--) //否则,开始循环计算

{

for(j=0; j<=strlen(shortstring)-i; j++)

{

memcpy(substring, &shortstring[j], i);

substring[i]='\0';

if(strstr(longstring, substring)!=NULL)

return substring;

}

}

return NULL;

}

main()

{

char *str1=malloc(256);

char *str2=malloc(256);

char *comman=NULL;

gets(str1);

gets(str2);

if(strlen(str1)>strlen(str2)) //将短的字符串放前面

comman=commanstring(str2, str1);

else

comman=commanstring(str1, str2);

printf(

}

11.写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1

int strcmp ( const char * src,const char * dst)

{

int ret = 0 ;

while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)

{

++src;

++dst;

}

if ( ret < 0 )

ret = -1 ;

else if ( ret > 0 )

ret = 1 ;

return( ret );

}

3,求1000!的未尾有几个0(用素数相乘的方法来做,如72=2*2*2*3*3);求出1->1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数的个数n4.1000!末尾的零的个数=n1+n2+n3+n4;

#include

#define NUM 1000

int find5(int num)

{

int ret=0;

while(num%5==0)

{

num/=5;

ret++;

}

return ret;

}

int main()

{

int result=0;

int i;

for(i=5;i<=NUM;i+=5)

{

result+=find5(i);

}

printf(

return 0;

}

1. 有双向循环链表结点定义为:

struct node

{

int data;

struct node *front,*next;

};

有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除

BOOL DeteleNode(Node *pHeader, DataType Value)

{

if (pHeader == NULL) return;

BOOL bRet = FALSE;

Node *pNode = pHead;

while (pNode != NULL)

{

if (pNode->data == Value)

{

if (pNode->front == NULL)

{

pHeader = pNode->next;

pHeader->front = NULL;

}

else

{

if (pNode->next != NULL)

{

pNode->next->front = pNode->front;

}

pNode->front->next = pNode->next;

}

Node *pNextNode = pNode->next;

delete pNode;

pNode = pNextNode;

bRet = TRUE;//不要break或return, 删除所有

}

else

{

pNode = pNode->next;

}

}

return bRet;

void DE(Node *pHeadA, Node *pHeadB)

{

if (pHeadA == NULL || pHeadB == NULL)

{

return;

}

Node *pNode = pHeadA;

while (pNode != NULL)

{

if (DeteleNode(pHeadB, pNode->data))

{

if (pNode->front == NULL)

{

pHeadA = pNode->next;

pHeadA->front = NULL;

}

else

{

pNode->front->next = pNode->next;

if (pNode->next != NULL)

{

pNode->next->front = pNode->front;

}

}

Node *pNextNode = pNode->next;

delete pNode;

pNode = pNextNode;

}

else

{

pNode = pNode->next;

}

}

}

2. 编程实现:找出两个字符串中最大公共子字符串,如

int GetCommon(char *s1, char *s2, char **r1, char **r2)

{

int len1 = strlen(s1);

int len2 = strlen(s2);

int maxlen = 0;

for(int i = 0; i < len1; i++)

{

for(int j = 0; j < len2; j++)

{

if(s1[i] == s2[j])

{

int as = i, bs = j, count = 1;

while(as + 1 < len1 && bs + 1 < len2 && s1[++as] == s2[++bs])

count++;

if(count > maxlen)

{

maxlen = count;

*r1 = s1 + i;

*r2 = s2 + j;

}

}

}

}

3. 编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数

char* test3(long num)

{

char* buffer = (char*)malloc(11);

buffer[0] = '0';

buffer[1] = 'x';

buffer[10] = '\0';

char* temp = buffer + 2;

for (int i=0; i < 8; i++)

{

temp[i] = (char)(num<<4*i>>28);

temp[i] = temp[i] >= 0 ? temp[i] : temp[i] + 16;

temp[i] = temp[i] < 10 ? temp[i] + 48 : temp[i] + 55;

}

return buffer;

}

输入N, 打印 N*N 矩阵

比如 N = 3,打印:

1 2 3

8 9 4

7 6 5

N = 4,打印:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

解答:

1 #define N 15

int s[N][N];

void main()

{

int k = 0, i = 0, j = 0;

int a = 1;

for( ; k < (N+1)/2; k++ )

{

while( j < N-k )

s[i][j++] = a++;

i++; j--;

while( i < N-k )

s[i++][j] = a++;

i--; j--;

while( j > k-1 )

s[i][j--] = a++;

i--; j++;

while( i > k )

s[i--][j] = a++;

i++; j++;

}

for( i = 0; i < N; i++ )

{

for( j = 0; j < N; j++ )

cout << s[i][j] << '\t';

cout << endl;

}

}

2 define MAX_N 100

int matrix[MAX_N][MAX_N];

void SetMatrix(int x, int y, int start, int n) {

int i, j;

if (n <= 0) //递归结束条件

return;

if (n == 1) { //矩阵大小为1时 matrix[x][y] = start;

return;

}

for (i = x; i < x + n-1; i++) //矩阵上部 matrix[y][i] = start++;

for (j = y; j < y + n-1; j++) //右部 matrix[j][x+n-1] = start++;

for (i = x+n-1; i > x; i--) //底部 matrix[y+n-1][i] = start++;

for (j = y+n-1; j > y; j--) //左部 matrix[j][x] = start++;

SetMatrix(x+1, y+1, start, n-2); //递归

}

void main()

{

int i, j;

int n;

scanf(

SetMatrix(0, 0, 1, n)

//打印螺旋矩阵

for(i = 0; i < n; i++)

{

for (j = 0; j < n; j++)

printf(

printf(

}

}

斐波拉契数列递归实现的方法如下:

int Funct( int n )

{

if(n==0) return 1;

if(n==1) return 1;

retrurn Funct(n-1) + Funct(n-2);

}

请问,如何不使用递归,来实现上述函数?请教各位高手!

解答:

int Funct( int n ) // n 为非负整数

{

int a=0;

int b=1;

int c;

if(n==0)

c=1;

else if(n==1)

c=1;

else for(int i=2;i<=n;i++) //应该n从2开始算起

{

c=a+b;

a=b;

b=c;

}

return c;

}

解答:

现在大多数系统都是将低字位放在前面,而结构体中位域的申明一般是先声明高位。 100 的二进制是 001 100 100

低位在前 高位在后

001----s3

100----s2

100----s1

所以结果应该是 1

如果先申明的在低位则:

001----s1

100----s2

100----s3

结果是 4

1、原题跟little-endian,big-endian没有关系

2、原题跟位域的存储空间分配有关,到底是从低字节分配还是从高字节分配,从Dev C++和VC7.1上看,都是从低字节开始分配,并且连续分配,中间不空,不像谭的书那样会留空位

3、原题跟编译器有关,编译器在未用堆栈空间的默认值分配上有所不同,Dev C++未用空间分配为01110111b,VC7.1下为11001100b,所以在Dev C++下的结果为5,在VC7.1下为1。 注:PC一般采用little-endian,即高高低低,但在网络传输上,一般采用big-endian,即高低低高,华为是做网络的,所以可能考虑big-endian模式,这样输出结果可能为4

判断一个字符串是不是回文

int IsReverseStr(char *aStr)

{

int i,j;

int found=1;

if(aStr==NULL)

return -1;

j=strlen(aStr);

for(i=0;iif(*(aStr+i)!=*(aStr+j-i-1))

{

found=0;

break;

}

return found;

}

Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。

数组实现:

#include

#include

int Josephu(int n, int m)

{

int flag, i, j = 0;

int *arr = (int *)malloc(n * sizeof(int));

for (i = 0; i < n; ++i)

arr[i] = 1;

for (i = 1; i < n; ++i)

{

flag = 0;

while (flag < m)

{

if (j == n)

j = 0;

if (arr[j])

++flag;

++j;

}

arr[j - 1] = 0;

printf(

}

free(arr);

return j;

}

int main()

{

int n, m;

scanf(

printf(

system(

return 0;

}

链表实现:

#include

#include

typedef struct Node

{

int index;

struct Node *next;

}JosephuNode;

int Josephu(int n, int m)

{

int i, j;

JosephuNode *head, *tail;

head = tail = (JosephuNode *)malloc(sizeof(JosephuNode));

for (i = 1; i < n; ++i)

{

tail->index = i;

tail->next = (JosephuNode *)malloc(sizeof(JosephuNode));

tail = tail->next;

}

tail->index = i;

tail->next = head;

for (i = 1; tail != head; ++i)

{

for (j = 1; j < m; ++j)

{

tail = head;

head = head->next;

}

tail->next = head->next;

printf(

free(head);

head = tail->next;

}

i = head->index;

free(head);

return i;

}

int main()

{

int n, m;

scanf(

printf(

system(

return 0;

}

已知strcpy函数的原型是:

char * strcpy(char * strDest,const char * strSrc);

1.不调用库函数,实现strcpy函数。

2.解释为什么要返回char *。

解说:

1.strcpy的实现代码

char * strcpy(char * strDest,const char * strSrc)

{

if ((strDest==NULL)||(strSrc==NULL)) file://[/1]

throw

char * strDestCopy=strDest; file://[/3]

while ((*strDest++=*strSrc++)!='\0'); file://[/4]

return strDestCopy;

}

错误的做法:

[1]

(A)不检查指针的有效性,说明答题者不注重代码的健壮性。

(B) 检查指针的有效性时使用((!strDest)||(!strSrc))或(!(strDest&&strSrc)),说明答题者对C语言中类型的隐式转换没有深刻认识。在本例中char *转换为bool即是类型隐式转换,这种功能虽然灵活,但更多的是导致出错概率增大和维护成本升高。所以C++专门增加了bool、true、false 三个关键字以提供更安全的条件表达式。

(C)检查指针的有效性时使用((strDest==0)||(strSrc==0)),说明答题者不知道使用常量的好处。直接使用字面常量(如本例中的0)会减少程序的可维护性。0虽然简单,但程序中可能出现很多处对指针的检查,万一出现笔误,编译器不能发现,生成的程序内含逻辑错误,很难排除。而使用NULL代替0,如果出现拼写错误,编译器就会检查出来。

[2]

(A)return new string(

(B)return 0;,说明答题者没有掌握异常机制。调用者有可能忘记检查返回值,调用者还可能无法检查返回值(见后面的链式表达式)。妄想让返回值肩负返回正确值和异常值的双重功能,其结果往往是两种功能都失效。应该以抛出异常来代替返回值,这样可以减轻调用者的负担、使错误不会被忽略、增强程序的可维护性。

[3]

(A)忘记保存原始的strDest值,说明答题者逻辑思维不严密。

[4]

(A)循环写成while (*strDest++=*strSrc++);,同[1](B)。

(B)循环写成while (*strSrc!='\0') *strDest++=*strSrc++;,说明答题者对边界条件的检查不力。循环体结束后,strDest字符串的末尾没有正确地加上'\0'。

范文6:java华为试题[下载]【以文搜文】

华为的JAVA面试题

(后记:没有想到华为的面试题就是非同一般,很多题不是一眼就能够看得出来,至少对我这种鸟来说是这样。对我个人来说,看看这样的题,可能比看 《Think In Java》都还要好,因为这里面有很多的东西,都是我们平时没有太在意,或者是只是懂一点皮毛而已,通过做一下这样的练习,把自己不知道、不熟悉的知识 点,利用这个机会好好的巩固一下。这些答案是我自己做的,有一些是从网上来的,有一部是自己做的,并且还有一部份没有做完,我不敢保证都对,所以请你在引 用的时候,务必通过自己核对一下。当然,我既然能够把这些答案放在这里,那说明我肯定是自己检验了一遍的,也不是那么恐怖的)

QUESTION NO: 1

public class Test1 {

public static void changeStr(String str){

str=

}

public static void main(String[] args) {

String str=

changeStr(str);

System.out.println(str);

}

}

//输出结果:1234

//java是值传递,这样传参不会改变参数的值

QUESTION NO:2

public class Test2 {

static boolean foo(char c) {

System.out.print(c);

return true;

}

public static void main(String[] argv) {

int i = 0;

//for(65;88&&(i<2);67)

for (foo('A'); foo('B') && (i < 2); foo('C')) {

i++;

foo('D');

}

}

}

/*

What is the result?

A. ABDCBDCB

B. ABCDABCD

C. Compilation fails.

D. An exception is thrown at runtime.

//输出结果是:ABDCBDCB

分析:FOR循环里面讲究的条件要为真,与你的判断式是什么没有关系

就像这里,虽然是打印的字母,但是却不是false,所以可以执行

第一次进行循环:

foo('A')打印字母A,(注:这里不是false条件就默认为true条件)

foo('B')打印字母B,i=0,比较(i < 2),条件为true,进行循环体,foo('D')打印D

foo('C')打印字母C

第二次循环:

foo('B')打印B,i=1,比较(i < 2)为true,进行循环体,foo('D')打印D

foo('C')打印字母C

第三次循环:

foo('B')打印字母B,i=2,比较(i < 2)为false,退出循环,得结果

*/

QUESTION NO: 3

1. class A {

2. protected int method1(int a, int b) { return 0; }

3. }

Which two are valid in a class that extends class A? (Choose two)

A. public int method1(int a, int b) { return 0; }

B. private int method1(int a, int b) { return 0; }

C. private int method1(int a, long b) { return 0; }

D. public short method1(int a, int b) { return 0; }

E. static protected int method1(int a, int b) { return 0; }

public class B extends A{

/**

*@paramargs

*/

//can not reduce the visibility of the inherited method from A

//即不能够使从类A中继续来的方法的可见性降低

//private int method1(int a, int b) { return 0; }

//This static method cannot hide the instance method from A

//静态方法不能够隐藏继承于A的实例

//static protected int method1(int a, int b) { return 0; }

//返回类型与A中的该方法不一致

//public short method1(int a, int b) { return 0; }

/**

*总结:类的继承中,如果要想重载父类的方法,必须要和父类中的返回类型、可见性等等都要操作一致

*否则,程序就会报错。一定遵守子类要遵从于父类的原则

*而我选择的答案居然是privateintmethod1和staticprotectedint

*我选择第一个的错误理由是:因为原来为保护的,如果我这里设为public,那么就扩展了其原来的可见性

*本来原来就是对包外不可见的,现在变成对包外可见的了,所以就选择的是private *选择第二个的错误理由是:都是保护的,这里只是变成了静态的而已

*/

//这里是写了一个重载方法,因为参数类型不一致,不会报错

private int method1(int a, long b) { return 0; }

//可见性可以增大,但是不能够缩小,正确

public int method1(int a, int b) { return 0; }

public static void main(String[] args) {

// TODO Auto-generated method stub

}

}

QUESTION NO: 4

1. public class Outer{

2. public void someOuterMethod() {

3. // Line 3

4. }

5. public class Inner{}

6. public static void main( String[]argv ) {

7. Outer o = new Outer();

8. // Line 8

9. }

10. }

Which instantiates an instance of Inner?

A. new Inner(); // At line 3

B. new Inner(); // At line 8

C. new o.Inner(); // At line 8

D. new Outer.Inner(); // At line 8//new Outer().new Inner()

答案如下:

public class Outer {

public void someOuterMethod() {

// Line 3

new Inner();//放在这里不出错

}

public class Inner {

}

public static void main(String[] argv) {

Outer o= new Outer();

// Line 8

//o不能够被解释成为一种类型,出错

//new o.Inner();

/**

*下面两种用法,都报下面的错误:

*NoenclosinginstanceoftypeOuterisaccessible.

*Mustqualifytheallocationwithanenclosinginstance

*oftypeOuter(e.g.x.newA()wherexisaninstanceofOuter)

*/

//new Outer.Inner();

//new Inner();

}

}

QUESTION NO: 5

Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?

(译:那个方法是servlet用于将其session ID入在一个URL中,该URL写入servlet的响应输出流)

A. The encodeURL method of the HttpServletRequest interface.

B. The encodeURL method of the HttpServletResponse interface.

C. The rewriteURL method of the HttpServletRequest interface.

D. The rewriteURL method of the HttpServletResponse interface.

QUESTION NO: 6

Which two are equivalent? (Choose two)

A. <%= YoshiBean.size%>

B. <%= YoshiBean.getSize()%>

C. <%= YoshiBean.getProperty(

D.

E.

F.

G.

QUESTION NO: 7

Which of the following statements regarding the lifecycle of a session bean are correct?

1. java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated.

2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated.

3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions.

4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation.

5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception.

第二部分:概念题

1. 描述Struts体系结构?对应各个部分的开发工作主要包括哪些?

Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的体系结构与工作原理如下图2所示:

1)模型(Model)

在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组Actinform Bean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。

2)视图(View)

视图主要由JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及Template Tags等。

3)控制器(Controller)

在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。struts-config.xml 文件配置控制器。

2. XML包括哪些解释技术,区别是什么?

包括:DOM(Document Object Modal)文档对象模型,SAX(Simple API for XML)。DOM是一次性将整个文档读入内存操作,如果是文档比较小,读入内存,可以极大提高操作的速度,但如果文档比较大,那么这个就吃力了。所以此时 SAX应用而生,它不是一次性的将整个文档读入内存,这对于处理大型文档就比较就力了

3. JSP有哪些内置对象和动作?它们的作用分别是什么?

JSP共有以下9种基本内置组件:

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config servlet的构架部件

page JSP网页本身

exception 针对错误网页,未捕捉的例外

常用的组件:request、response、out、session、application、exception

4、SQL问答题

SELECT * FROM TABLE

SELECT * FROM TABLE

WHERE NAME LIKE '%%' AND ADDR LIKE '%%'

AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'

OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )

的检索结果为何不同?

答:

我做了一下测试,在ACCESS里面,用它的查询,这样会和在MYSQL得到不同的结果,各位不妨试试,我昨天就是在ACCESS里用SQL查询,得到的结果为空,就是没有记录;而在MYSQL里面,条件为空的记录不显示,其它的都显示。

5、SQL问答题

表结构:

1、 表名:g_cardapply

字段(字段名/类型/长度):

g_applyno varchar 8;//申请单号(关键字)

g_applydate bigint 8;//申请日期

g_state varchar 2;//申请状态

2、 表名:g_cardapplydetail

字段(字段名/类型/长度):

g_applyno varchar 8;//申请单号(关键字)

g_name varchar 30;//申请人姓名

g_idcard varchar 18;//申请人身份证号

g_state varchar 2;//申请状态

其中,两个表的关联字段为申请单号。

题目:

1、 查询身份证号码为440401430103082的申请日期

Select g_cardapply.g_ applydate from g_cardapply, g_cardapplydetail g_cardapplydetail.g_idcard=’’ and g_cardapply.g_applyno=g_cardapplydetail.g_applyno

2、 查询同一个身份证号码有两条以上记录的身份证号码及记录个数

3、 将身份证号码为440401430103082的记录在两个表中的申请状态均改为07 where

Update g_cardapply. g_state=’07’, g_cardapplydetail .g_state

4、 删除g_cardapplydetail表中所有姓李的记录

------------------------******测试******-----------------

create database mianshi

use mianshi;

create table g_cardapply(

g_applyno varchar(8),

g_applydate bigint,

g_state varchar(20)

)

go

create table g_cardapplydetail(

g_applyno varchar(8),

g_name varchar(30),

g_idcard varchar(18),

g_state varchar(20)

)

1、select a1.g_applydate from g_cardapply as a1 inner join g_cardapplydetail a2 on

a1.g_applyno=a2.g_applyno where a2.g_idcard=

2、select g_idcard,count(g_idcard) from g_cardapplydetail

group by g_idcard having count(g_idcard)>=2;

3、update g_cardapply set g_state=603 from g_cardapply as g_d inner join g_cardapplydetail as g_c on

g_d.g_applyno=g_c.g_applyno and g_idcard='123';更新第一个表的g_state

update g_cardapplydetail set g_state=603 where g_idcard='123';

范文7:14华为试题[下载]【以文搜文】

华为公司校园招聘软件类上机考试样题

南京苏州 2013-08-29 18:40:45

需进行上机考试的岗位:

底层软件开发工程师、软件开发工程师、微码软件开发工程师、云计算开发工程师、DSP工程师

产品数据工程师、解决方案测试工程师、软件测试工程师、信息技术工程师、信息系统工程师(对机考要求较低)

在线考试:机考系统的内核为VS2005及JDK1.7,使用Java答题时,类名必须为“Main”;使用C/C++答题时,使用VS2005支持的数据类型和函数。

题目类型:涉及数组、链表、指针、字符串、循环、枚举、排序等等。

考试时长:2小时

考试题目:3道题(共计320分),初级题(60分)、中级题(100分)、高级题(160分)、难度递增。

各难度上机考试样题

初级题:从考试成绩中划出及格线

中级题:亮着电灯的盏数

高级题:地铁换乘

范文8:华为经典试题[下载]【以文搜文】

1X和EVDO互操作原则

1、双网互操作由终端自主完成;2、双模手机不论是在1X网络还是在DO网络,应该具有相同的标识IMSI,以保证与PDSN的PPP链路在系统切换时仍保持连续;3、不论EVDO还是1X系统都支持时隙模式,这样双模手机在空闲时刻可以同时监听两个系统的寻呼消息;4、混合终端,数据业务优先在EV-DO网络开展,语音业务优先在1X网络开展;5、1X和EVDO休眠态是双向,可以互相切换;激活态是单向EVDO向1X切换; CDMA系统都使用了那几种码,其各自的作用是什么?

长码:前向扰码加密,反向区分用户。短码:前向区分扇区,在反向其相位都为0。Walsh码:前向扩频,区分用户,反向正交调制。 简述移动台起呼的语音呼叫流程

移动台发起呼叫—>基站证实—>基站向MSC 发送CM 业务请求消息—>同时基站开始建立业务信道—>Msc向基站发送指配请求消息—>基站向移动台发送扩展信道指配消息—>基站捕获移动台—>基站证实—>移动台证实—>业务协商过程—>基站向MSC 发送指配完成消息—>MSC 通过业务信道向MS 发送回铃音—>被叫方摘机,MS 进入话音通话状态

简述CDMA软切换的流程?

1、MS检测到某个导频强度超过T_ADD,发送导频强度测量消息PSMM给BS,并且将该导频移到候选集中—>BS发送切换指示消息;—>MS将该导频转移到有效导引集中,并发送切换完成消息;—>有效集中的某个导频强度低于T_DROP,MS启动切换去定时器(T_TDROP);—>切换去定时器超时,导频强度仍然低于T_DROP,MS发送PSMM;—>BS发送切换指示消息—>MS将该导频从有效导引集移到相邻集中,并发送切换完成消息。

位置区划分有什么原则?

容量原则、LAC与ZONE一致原则、同一扇区不同载频归属同一LAC、郊县和城区REG_ZONE不一致、后期扩容需求、位置区边界选取原则 寻呼信道下发哪些消息?

1、 开销消息包括:系统参数消息、接入参数消息,邻区列表消息,信道列表消息,扩展系统参数消息。

2、 寻呼消息,即通用寻呼消息GeneralPageMsg, 3、短消息消息DataBustMsg

其它消息,包括:SSD更新消息,认证口令消息,特征通告消息,状态请求消息,全球服务重定向消息、服务重定向消息等

EVDO在什么情况下考虑扩容载波?

业务信道占空比大于0.7,且呼叫话务量大于5Erl、用户过载呼叫阻塞率大于0%、出现CE资源不足或MACIndex分配失败

EVDO前反向的信道各有哪些?

反向:接入信道、业务信道

其中,接入信道由导频信道和数据信道组成。反向业务信道由导频信道,反向速率指示信道(RRI)信道,数据源信道(DSC),数据速率控制(DRC)信道,回应信道(ACK),和数据信道组成。反向业务信道也可能包含辅助导频信道。

前向:导频信道、MAC信道、控制信道、业务信道

MAC信道由4个子信道组成:反向功控信道(RPC),DRCLock信道,反向激活信道(RA)和ARQ信道。

数据业务的三种状态和三种状态之间是如何迁移的?

三种状态:空闲态、激活态,休眠态。空闲态到激活态:建立Um口,A1接口,A8接口,A10接口。

激活态到空闲态:释放Um口,A1接口,A8接口,A10接口。激活态到休眠态:释放Um口,A1接口,A8接口,保留A10接口。

休眠态到激活态:建立Um口,A1接口,A8接口。休眠态到空闲态:释放A10接口。

CDMA的关键技术有哪些?

功率控制:前向功率控制,反向功率控制、软切换技术、分集技术

测试中发现有呼叫失败现象,可能的原因有哪些?

1、设备故障;2、覆盖不足;3、无线信道衰落;4、前反向链路不平衡;5、接入/切换冲突;6、资源不足;7、移动台激活集搜索窗设置过小;8、寻呼信道增益设置过小;9、接入参数设置不当;10、被叫方问题。

请描述一下呼叫过程中的5个重要里程碑

M1:当基站收到移动台的起呼消息时,必须给予响应,基站可以用基站应答消息来实现。在得到基站给予的应答消息之前,移动台多次发送起呼消息;M2:基站必须为移动台分配资源。BS 建立一个前向业务信道,开始发送空帧,并发送一个信道指配消息给移动台;M3:成功获得前向业务信道。当移动台收到基站发来的信道指配消息时,移动台就开始尝试获得前向业务信道;M4:当前向业务信道被成功解调时,移动台就开始在反向业务信道上发送空帧。当反向业务信道被基站成功捕获时,基站会在前向业务信道上发送一个证实给移动台;M5:基站发送连接消息给移动台。 天线性能的主要参数有哪些?什么叫天线的极化,通常天线有几种极化方式?

天线性能的主要参数有方向图,增益,输入阻抗,驻波比,极化方式等,所谓天线的极化,就是指天线辐射时形成的电场强度方向。目前天线有垂直与水平极化和±45°极化。

请描述UATI的分配流程。

A.AT通过接入信道,向AN发送UATIRequest消息申请UATI;

B.AN回应一个ACAck消息;C.AN指配UATI,并通过UATIAssignment

D.AT通过UATIComplete消息响应AN,UATI指配完成;

E.AN回应一个ACAck消息。(在会话持续期间,AT和AN都可以发起UATI

硬指配:

(1) 业务类型优先硬指配:根据需要把不同类型的呼叫(语音/数据业务)指配到不同的频点上,避免数据业务突发对语音的影响

(2) 手机版本优先硬指配:根据需要把不同版本手机发起的呼叫(95/2000手机)指配到不同的频点上。

(3) 接入载频优先硬指配:可以把呼叫指配到接入的频点上。例如,手机空闲态停留在201 载频上,发起呼叫时,将被优先指配到201 载频上。

(4) 基本硬指配:当没有配置以上3 种优先指配方式,呼叫将会被优先指配到负荷较轻的载频上去,以实现各载频间的负荷均衡。

(5) 反向RSSI硬指配:当某个扇区下的一些载频存在反向干扰时,启动本功能,能够把呼叫优先指配到没有干扰,或者干扰较小的载频上去,以实现躲避干扰的目的

最近的中秋国庆通信保障:

统计多少个扇区的“PCH信道平均占用率[%]”超过50%,一个扇区内如有多个频点的配置,只要一个频点超过50%,就记为超过50%的扇区。

1、修改核心网短信寻呼策略(节假日前执行):核心网:将“修改寻呼策略,由4次修改为2次”作为应急预案,若中秋当晚寻呼负荷较高,

2、修改短信中心下发策略(节假日前执行):短信中心:将“修改短信重发机制,取消重发”作为应急预案,

无线侧预案:对于高话务站点或载波数比周边其他站点少的站点,考虑临时增加寻呼信道;(由于负荷高站点是大面积成片的,建议成片载频都增加一条寻呼信道,负荷能下降近一半;负面影响:可能因业务信道功率下降导致网络覆盖收缩、容量减少等情况,导致1X掉话率恶化,功率拥塞等等),对于高话务站点,考虑扩容载波/负荷分担等方式来降低寻呼负荷

节假日日常准备:

1、节前参数及配置核查:主要核查GPM参数核查、LAC和RegZone参数一致性核查;SPU子系统配置、PCH信道负荷、ACH信道负荷、SPU子系统CPU负荷等;

2、对高话务站点及时扩容载波,尽量做到多载波连片,采用HASH算法达到话务均衡;

3、目前东莞各BSC话务负荷较高,根据话务和用户增长趋势,建议后期扩容到18个BSC及LAC;

4、合理调整网络结构,根据华为工程规划指导要求,建议单SPUO规划的载扇数小于150,规划140个为最优原则。

DO优化KPI指标:

基于AN子网(色码)裂分解决DO_CCH同步包丢弃的问题。

DO to 1X互操作、DO切换问题、EVDO HRPD会话建立成功率、EVDO 掉话率、EVDO 连接成功率、高铁专项优化苏州段、UATI分配成功率(1、没有发出UATIAssignment,这种失败主要存在于AN边界。AN间会话迁移时,等待A13-Session InformationResponse/Reject消息超时,原因涉及到的数据配置包括:A13链路、相邻AN的AN IP或色码、色码与B侧的SectorID的对应关系、外部载频和外部邻区等/2、没有收到UATIComplete”主要与反向链路质量相关,包括空口、Abis链路)、DO:时隙占用率、RLP层吞吐量等

1X优化KPI指标:

呼叫建立成功率(第一、根据话务统计,分析是否和某硬件故障有关. 第二、分析是否是干扰以及底噪过高造成的.第三、确定是否是由于拥塞造成.最后分析是否是TCCF或者CP failure 造成;还有就是导频污染等)、业务信道掉话率、业务信道拥塞率、软切换成功率、软切换比例、寻呼等 DO参数方面:

ColorCode:色码在局部区域内标识一个子网,是局部唯一,不同的子网ColorCode不同。ColorCode可以复用。一般一个AN配置一个ColorCode 会话关闭定时器:TSMPCLOSE,

TNSMPKeepAlive :在TSMPClose内发送Keep Alive消息的最大次数

DRC信道增益/反向业务信道偏置,接入探测周期/接入探测前缀帧长(接入前缀长度)/接入信道最大包长度

反向目标PER/反向功控步长,PCT初始值/PCT最大值/PCT最小值,切换参数:T_ADD/T_DROP/T_CMP/T_TIMER,QOS参数:T2P,不同的业务类型,T2P的最大或最小值也不尽相同

1X参数方面:

201(伪导频)不发送CCLM消息和ECCLM消息、201(伪导频)的CDMA信道号和扩展CDMA信道号需要同步到283上

软参、定时器参数,小区基本参(频点、PN、本地小区标识、本地扇区标识、PN码增量PILOT_INC)

前向功率分配参数(导频信道参数,寻呼信道增益、同步信道增益,快速寻呼信道参数)

接入参数、功率控制参数(前向快速功控中语音业务FCH1-3条腿最大、最小增益,反向闭环功控参数、前向信道最大、最小、初始发射功率等)、切换参数、搜索参数(切换算法开关参数、小区半径、搜索窗)、信道分配参数(信道信息、SCH分配参数、业务重定向参数)

位置区:

LAC过大或过小影响:过大寻呼负荷过大,过小会造成频繁位置更新

1、 LAC不允许跨越MSC,2、避免沿主要干道和铁路划分LAC,3、划分位置区边界时,要考虑话务量的增长,4、兼顾寻呼量和位置更新的平衡 CDMA移动台初始化:先搜索频点,捕导频信道,后捕同步信道,获取系统时间、寻呼速率等信息,到寻呼信道,接收系统参数消息,接入参数,邻区列表消息,扩展系统参数消息等,然后守在寻呼信道,做登记、主叫或响应寻呼。

登记类型:开机、关机登记,周期登记,基于距离、regZone的登记,参数改变登记,应BSS要求的登记,业务信道登记。

掉话处理步骤:告警检查、GPS锁星检查、RSSI检查、驻波、看周围是否有新建站、邻区漏配检查、覆盖是否为特殊场景、进行过什么操作、看看话统指标,根据一些话统指标看出什么异常、最后进行CDR话单提取详细分析。

范文9:华为GSM试题[下载]【以文搜文】

LAC规划原则;

位置区的划分不能过大或过小

如果LAC 覆盖范围过小则移动台发生位置更新的过程将增多从而增加了系统中的信令流量反之位置区覆盖范围过大则网络寻呼移动台的同一寻呼消息会在许多小区中发送会导致PCH 信道负荷过重同时增加Abis接口上的信令流量。一般建议每个位置区内的TRX 数目在300 左右。

尽量利用移动用户的地理分布和行为进行LAC 区域划分达到在位置区边缘位置更新较少的目的

如城市和郊县用不同的LAC,避免位置区边界设置在用户密集区域。

如果M1800 与M900 共用一个MSC,只要系统容量允许建议使用相同的位置区。如果由于寻呼容量的限制必须划分为两个以上的位置区这时候就有两种设计思路按地理位置划分和按频段划分。

频点规划原则

同基站内不允许存在同频频点;同一小区内BCCH和TCH的频率间隔最好在400K以上;没有采用跳频时,同一小区的TCH间的频率间隔最好在400K以上;

非1*3复用方式下,直接相邻的基站避免同频;(即使其天线主瓣方向不同,旁瓣及背瓣的影响也会因天线及环境的原因而难以预测)

考虑到天线挂高和传播环境的复杂性,距离较近的基站应尽量避免同频相对(含斜对); 通常情况下,1*3复用应保证跳频频点是参与跳频载频数的二倍以上;

重点关注同频复用,避免邻近区域存在同BCCH同BSIC;

掉话率如何优化

无线系统掉话分为SDCCH掉话和TCH掉话:

无线链路断掉话

调整无线链路失效计数器,SACCH复桢数,T3109定时器,MS最小接收信号等级,RACH最小接入电平进行优化。

错误指示掉话

调整T200定时器相关参数进行优化

干扰掉话

下行干扰可以通过更换合理的频点和BSIC,打开下行DTX,跳频进行优化。

上行干扰可以打开上行功控进行优化。

切换掉话

通过完善小区相邻关系,优化切换门限,切换时间,切换定时器,调整越区覆盖的小区工程参数等参数来优化。

上下行不平衡掉话

检查两副的天线下仰角是否不同,方位角是否合理;通过调整下倾角控制过远覆盖掉话;检查天馈是否进水,合路器是否存在问题。

A口或Abis口掉话

通过检查MSC和传输是否存在问题来优化。

信道问题掉话

对载频板硬件进行版本升级或更换。

寻呼成功率如何优化

需要MSC侧的寻呼方式、寻呼次数、寻呼时间间隔设置合理。

需要MSC侧和BSC侧与寻呼相关的参数设置合理。

例如:MSC和BSC位置更新周期时间、MSC和BSC寻呼定时器设置、MSC和BSC对于CGI数据配置正确。

信令拥塞会影响寻呼成功率。

例如:A口信令链路拥塞、PCH拥塞、SDCCH拥塞都会导致寻呼成功率下降。

位置区划分的合理性、基站覆盖情况、上下行不平衡处理。

网优参数调整优化:降低RACH 最小接入电平参数调整;增加MS最大重发次数;对于华为BTS312型基站,可以打开寻呼重发功能;“寻呼次数”由1次改为4次。

造成掉话的原因有哪些

无线系统掉话分为SDCCH掉话和TCH掉话,其主要产生原因综述如下:

(1)由于干扰而导致的掉话

(2)由于切换而导致的掉话

1)在基站做分担话务量的切换时,一些切换请求会因为切入小区的信号强度太弱而失败,即使切换成功也经常会因为信号强度太弱而掉话。原因是在BSC中我们对手机用户的接收信号强度设有最低门限(RX_LEV_ACC_MIN=-105dBm),当低于此门限值时,手机无法建立呼叫。

2)有一些小区由于相邻小区都很繁忙,造成忙时目标基站无切换信道或在拓扑关系中漏定义切换条件(含BSC间切换和越局切换),致使手机用户在进行切换时无法占用相邻小区的空闲话音信道,此时BSC将对此进行呼叫重建(Direct Retry),若主叫基站的信号此时不能满足最低工作门限或亦无空闲话音信道,则呼叫重建失败导致掉话。当小区之间存在

着漏覆盖或者盲区时也会导致切换失败而掉话。

3)小岛效应。如果服务小区A由于地形的原因产生的场强覆盖小岛C,而在小岛1C周围又为小区B的覆盖范围,如在A的邻近小区的拓扑结构表中未添加小区B,那么当用户在C中建立呼叫后一走出小岛C,由于无处可切换将产生掉话。

(3)由于天馈线原因而导致的掉话

1)由于两副天线下仰角不同而产生的掉话

RBS200基站或RBS2000采用A型CDU时每个定向小区均有两副收发双向天线,该小区的BCCH和SDCCH有可能分别从两副不同的天线发出。当两副天线的俯仰角不同时,就会造成两副天线的覆盖范围不同,当用户刚好在能接收BCCH信号却接收不到TCH信号的区域时,这时用户能收到服务信号(即BCCH信号),但在振铃后通话时掉话。即用户在产生呼叫时却因无法占用SDCCH信道或无法分配TCH信道而掉话。

2)由于天馈线方位角原因而产生的掉话

RBS200基站或RBS2000采用A型CDU时每个定向小区均有两副收发双向天线,当两副天线的方位角不同时就会形成不同覆盖范围。和第一点同理,用户在产生呼叫时却因无法占用SDCCH信道或无法分配TCH信道而掉话。

3)由于天馈线自身原因而产生的掉话。

天馈线损伤、进水、打折和接头处接触不良,均会导致驻波比大,降低发射功率或收信灵敏度,从而产生严重的掉话。另外,如果CDU有故障或CDU射频连接线接触不良,也同样会造成掉话。

4)分集接收失败而产生的掉话。

两副天线之间水平距离不合理(正常在4 m左右)、两副天线方向角不一致、CDU有故障或CDU射频连接线接触不良或天线交叉接错,均会降低收信灵敏度产生掉话。

(4)Abis接口失败产生的掉话

Abis接口的 ,包括BSC未收到来自BTS的测量报告,超过TA极限,切换过程的一些信令失败以及一些内部原因,此外还有Abis接口的误码率的影响。

(5)A接口失败产生的掉话

A接口失败出现的较少,主要是切换(BSC之间或MSC之间的切换)的失败,原因是切换局数据不全或目的基站不具备切入条件。

(6)基站软硬件故障而产生的掉话

系统的硬件故障或软件不完善,程序或数据差错等原因都会造成掉话。

(7)由于采用直放站而导致的掉话

为减少投资,扩大覆盖范围,一些县城内的小基站普遍采用直放站直接放大其信号。由于直放站有选频或全频带放大两种,其选频不合理会引起同频或邻频干扰,或者功率太大而造成对附近站的干扰,从而造成掉话。

(8)TA和实际不符

由于某种原因,当BSC计算出的时间提前量(TA)与实际所需要的TA不相符时,会造成时隙上干扰,干扰严重时会引起掉话。

切换分哪几种

根据不同的切换判决触发条件分:

1、紧急切换- TA过大紧急切换

质量差紧急切换

快速电平下降紧急切换

干扰切换

2、负荷切换

3、正常切换-边缘切换

分层分级切换

PBGT切换

4、速度敏感性切换(快速移动切换)

5、同心圆切换

切换执行的顺序

又可以分为同步切换、异步切换

搬迁前评估要收集哪些信息

1. 原有网络基本信息:网络拓扑、话音业务:忙时用户每户话务量、短信:忙时发(收)短

消息数/用户。

2. 原有网络设备基本信息:原网设备支持的协议版本;MSC、BSC、BTS的型号和软件版本;

厂家、基站数量、载频数量(半速率、EDGE)、覆盖区域、从属MSC;基站型号、传输模式、E1数量、从属BSC(MSC);基站型号、载频配置、合路器类型、合路方式、合路损耗、机顶功率、避雷器、滤波器;塔放种类、频段、塔放增益、工作电压、工作电流、供电方式;对7/8、5/4、13/8三种直径馈线的使用规则、馈线长度;室内分布系统的覆盖方式及馈线布置原则;直放站的类型、站址、施主基站、发射功率、频点设置、天线配置;站址、载频配置、传输模式、天线配置。

3. 原有网络网规数据:工程参数;无线参数;话统数据,KPI公式;网络规划原则;信道

配置情况;MSC相关信息(网络侧位置更新时间、位置更新成功率及寻呼成功率、MSC间切换成功率、MSC侧关于支持半速率和全速率之间切换的控制参数;语音版本、加密算法;T305、T308)。

4. 原有核心网KPI:检查本局VLR用户总数比率、智能用户数比率、各局向接通率情况、

CPU占用率、每线话务量、局向话务量、每链路信令负荷、短消息收发成功率、平均接续时长、BHCA

5. 网络异常信息和客户投诉:

6. 客户的工程和维护能力:根据客户的实施能力安排工程实施计划

单站开通后,网优侧要做哪些工作

检查基站告警。

查看小区占用情况及干扰带分布。

检查基站开通后的话统指标。

检查小区参数设置。

检查基站开通后的用户感受和投诉情况。

对开通后站点进行DT和CQT,单站验证接收电平,质量,切换等DT和CQT指标。 对指标有问题的基站进行工程参数和网优参数的适当调整,同时复测验证。

信号波动有哪些原因

无线信道的传播特性引起,即多径效应,这样就会产生多径衰落或快衰落。由于无线信道的这种传播特性,使得在接收端收到的信号场强就产生了波动。

小区重叠覆盖区引起的小区重选或切换。此时若一些相关的小区参数设置的不当——如小区选择参数、切换参数等,当这些参数设置的使手机很容易进行小区重选或切换时,手机就会在两个信号大小交替变化的频点上不断进行重选或切换,这是容易造成接收信号的波动其中一个原因。

外界存在干扰。 如果设备性能不够稳定,也可能会对信号波动带来一些影响。例如TRX输出功率本身就存在波动,下行功控、DTX(不连续发射)功能的开启也会对信号的波动带来一些影响。

错误指示掉话要改哪些参数

TCH掉话:

T200 SACCH TCH SAPI0(10ms):1-255,一般设为150

T200 SACCH TCH SAPI3(10ms):1-255,一般设为200

N200 SACCH 从5改到10,15,20。

SDCCH掉话:

T200 SDCCH:1-255,缺省为60,一般设为150

T200 SACCH SDCCH:1-255,缺省为60,一般设为150

T200 SDCCH SAPI3:1-255,缺省为60,一般设为180

SAPI0定义为主信令;SAPI3定义为短消息。

干扰切换和质量差切换的区别

“BQ切换”即“质量差切换”在上下行的服务小区的链路质量在滤波器长度时间内平均值大于等于紧急切换链路质量限制时触发

干扰切换在当上下行接收电平大于干扰切换链路接收功率门限,但传输质量又低于干扰切换质量限制时触发。

基带跳频和射频跳频的区别

1)使用下行DTX和下行功率控制的限制

此时如果采用基带跳频将导致通话质量的恶化,严重时会导致某些品牌的MS掉话。而使用射频跳频则不会出现这种情况,射频跳频是唯一的选择。

2)参数设置

若采用射频跳频,可采用十分简单的频率复用技术,如1:1模型或1:3模型等。在这种情况下,就是增加基站也不需重新进行新的频率规划。

若采用基带跳频,则每个小区应有两个跳频频率分配表(其中一个含有BCCH频点)。

3)TRX损坏对容量及质量的影响

若采用射频跳频,当TRX损坏时,该小区的容量虽然会降低,但话音质量却会提高。这是因为每个TRX采用的跳频组都是相同的,当其中的一个坏掉时,会降低对其它TRX的干扰。 若采用基带跳频,因为可用频点数目等于TRX的数目,所以如果TRX损坏的话,不但该小区的容量会降低,而且参与跳频的频点也会随之减少,该小区的性能也会受到影响(如话音质量)。

怎样判断是网内干扰还是网外干扰,网外干扰如何定位和排除

网内干扰主要来自于同频和邻频干扰,可以通过DT和CQT发现的干扰;相反则为网外干扰,如电视台、大功率电台、微波、雷达、高压电力线,模拟基站等。。

网外干扰的定位和排除:通过扫频仪测试定位和排除,话务量不高,干扰不规律,时有时现的。

双频网(900/1800)之间的切换属于什么切换,有哪些相关参数

属于层间切换,小区所在层;小区优先级;层间切换门限;层间切换磁滞

天线的分类和选型的原则,电器指标,高速公路选择天线类型

天线的分类:

按波束宽度

60、90、120、全向。

按频段

900,1800,双频天线。

按极化方式

单极化、双极化。

天线选型原则:

市区基站天线选择

为了能更好地控制小区的覆盖范围、抑制干扰,市区一般不选用水平半功率角≥90°的定向天线和全向天线;由于市区基站一般对覆盖范围要求不大,因此建议选用中等增益的天线。同时天线的体积和重量可以变小,有利于安装和降低成本;由于市区基站对覆盖范围的控制很严格,下倾角一般很大,选择电下倾天线可以增大下倾角调整范围,同时有利于干扰控制;由于市区基站站址选择困难,天线安装空间受限,建议选用双极化天线。

郊区基站天线选择

郊区的应用环境介于市区环境与农村环境之间,因此可根据实际情况分别参考市区与农村天线选择的建议;考虑到将来的平滑升级,一般不建议采用全向站型;郊区基站天线即使采用下倾角,一般下倾角也比较小;郊区基站采用垂直极化和双极化天线的效果差不多,因此选择时主要从天线安装环境和成本等方面考虑。

天线电器指标:

? 极化方式

? 半功率角

? 下倾角

? 前后向比

? 增益

? 驻波比

基站勘测的内容;

CQT测试选址原则;

热点话务区。

重要客户区(移动老总家),政府机关。

无线环境具有代表性地点。

切换成功率很低最可能原因;

BSC侧的相邻关系未做或做错,或对侧BSC也没做对应相邻关系或做错,包括孤岛效应。 MSC侧的对应小区切换路由不通。

小区拥塞造成无法入切换。

基站时钟无法同步或异常。

切换时频点干扰。

切换参数设置不合理。

硬件故障。

寻呼成功率相关参数

RACH最小接入电平

寻呼次数

MS最大重发次数

随机接入错误门限

T200含义

T200定时器是防止数据链路层数据发送过程死锁的定时器,数据链路层的作用就是将容易出差错的物理链路改造成顺序的无差错的数据链路。

怎样检查上行干扰;

检查话统里干扰带分布;检查基站维护的干扰带等级。

16bit排序

服务小区与邻小区都有各自的排序结果,值越小,优先级越高,排队越靠前。

第1-3位:按照小区电平的排序。

第4位:同层小区间切换磁滞比较位

第5-10位:切换层级位。

第11位:负荷调整位

第12、13位:共BSC/MSC调整位

第14位:层间切换门限调整位

第15位:小区类型调整位

第16位:保留位

上下行不平衡怎么看出来,有哪些原因;

看等级九、十、十一的比例和等级一、二、三的比例。前者过大为上行弱,后者过大为下行弱。

乒乓切换怎样导致掉话

一旦发生切换不及时,或着电平波动,就很容易切换掉话。

下行覆盖差怎么解决

提高载频功率等级

更换大功率载频板

使用损耗低的合路器

加高站址

换高增益天馈

调整方位角和下倾角正打覆盖。

调整无线链路失效计数器和T3109优化下行覆盖

驻波比理想情况下是多少

1.5或1.0以下

射频跳频概念,跳频增益,什么情况下跳频增益最大,跳频好处,跳频增益最大多少; 跳频有两个作用,频率分集作用和干扰分集作用。

跳频的频率分集增益由传播环境,MS速度和跳频序列的频率数目及频率间的相关性决定,其最大值不超过6dB。当MS速度很快时,跳频不起频率分集作用;一般来讲,移动通信的电磁波由直达波分量和散射波分量组成,当直达波成分占主要地位时,跳频的频率分集作用不明显,其增益大约在0~3dB,反之,散射波分量占主要地位时,增益显著,大约在3~6dB左右;对于一个传播环境、MS速度及频率间隔均满足使跳频频率分集增益最大的典型环境,三个频率跳频最大可达3.3dB,四个频率跳频最大可达6dB,9个频率跳频其频率分集增益不超过

5.5dB,最大的频率分集增益不超过6dB。

跳频的干扰分集能力与干扰的分布形式、跳频序列的频率数目及其频率间的相关性有关。一般来讲,对于窄带干扰,干扰分集作用明显,对于宽带干扰则不起明显作用;经过测试,当干扰呈窄带分布时,跳频频率数目为3、5、7时对受干扰频点的干扰分集增益分别为3.2dB、

4.6dB、5.5dB。由于干扰分集作用主要表现在对干扰的平均上,因此,对于单个频点的干扰分集增益没有上MBR的默认值为0,在系统消息类型2ter和5ter中发送。

上下行不平衡的概念;

下行接收电平-上行接收电平不等于6dB

T3103a,T3103b,T3103c计数器的意义; T3103a定时器为源小区的切换定时器

T3103b定时器为目标小区的两个切换定时器

T3103c定时器为小区内切换等待切换完成定时器

共MSC/BSC调整在16bit优选级中的位置

第12、13位

呼叫建立流程;

切换流程;

同步切换和异步切换区别;

同一基站的不同小区间的切换是同步切换;不同基站的小区间的切换是异步切换。 异步切换会下分物理信息,同步切换没有。

搬迁后网络覆盖下降,有哪些原因? 设备功率 天馈老化

合路损耗过大 参数原因

T3212作用?何时重新计时?

位置更新定时器,用于手机寻呼,当新小区的T3212和源小区的T3212不等时,会导致T3212超时后重新计时。

影响覆盖的参数有哪些?如何调整这些参数? 无线链路失效计数器

SACCH复桢数 T3109定时器

MS最小接收信号等级 RACH最小接入电平 载频功率等级

紧急切换TA限制

基站时钟有几种状态?

内时钟、外时钟、外同步时钟

排除干扰有哪些方法? 更换频点,BSIC。 合理规划相邻关系。 下行DTX。 跳频。 同心圆。 打开功控。

路测时上/下行干扰如何判断?

手机接收电平很好,但手机一直以满功率发射,可以判断为存在上行干扰。 手机接收电平很好,但手机误码率较高,可以断定为存在下行干扰。

覆盖保障措施有哪些?

搬迁前做好机顶功率的测量和对比,配给的载频板功率情况, 网优覆盖参数按照搬迁前的经验值设。

搬迁前后合路器的损耗对比

加了塔放后,数据配置需要做什么操作? 天馈配置表里有无塔放、功率衰减因子的设置。 功率衰减因子=塔放增益-馈线损耗=12-4=8

三工塔放增益12dB、 双工塔放增益14dB、 单工塔放增益14dB、

假定馈线损耗为4dB

小区重选的触发条件?

1)当前驻留小区的无线路径损耗太大(C1<=0); 2)当前驻留小区的下行链路故障(DSC<=0);

3)当前驻留小区被禁止了;

4)根据小区重选参数C2,在同一个位置区有一个比当前驻留小区更好的小区,或运用小区重选滞后参数CRH,在选中的网络里的另一位置区中有一更好小区。

5)随机接入次数达到BCCH上广播的最大重试次数,仍然没能成功接入当前驻留小区。

华为PBGT切换算法的公式是

PBGT(n) = ( Min ( MS_TXPWR_MAX,P ) - RXLEV_DL - PWR_C_D ) - ( Min ( MS_TXPWR_MAX (n),P ) - RXLEV_NCELL(n) ) 其中各个参数含义如下:

MS_TXPWR_MAX: 服务小区允许的MS最大发射功率; MS_TXPWR_MAX (n):邻近小区n允许的MS最大发射功率; RXLEV_DL : MS对服务小区的接收功率;

RXLEV_NCELL(n): MS对邻近小区n的接收功率;

PWR_C_D: 由于功率控制引起的服务小区最大下行发射功率与服务小区实际下行发射功率的差值;

P: MS最大发射功率能力。 影响搬迁前后基站话务量下降的主要原因有: 1、搬迁前后基站机顶功率较搬迁前有所下降; 2、搬迁后天馈性能下降;

3、参数设置不合理(如:MS最小接收信号等级或RACH最小接入电平设置较大); 4、用户数量变化;

5、不同厂家BSC侧话务量统计方式有差异。华为按照测量报告上报个数进行统计,部分友商按照TCH占用时长进行统计。因此,当出现严重干扰或覆盖电平很低时,基站接收不到MS上报的测量报告(Measurement Result),华为不统计此部分话务量,但由于BSS侧的定时器(如SACCH复帧数、T200系列定时器)尚未超时,基站仍旧保持着底层链路资源,其他厂家将该部分时间统计为话务量。(注:BSC侧话务量统计方式的不同,不影响交换侧计费)

写出话务统计中切换统计的几种

小区内切换,BSC内小区间切换,跨MSC的出入BSC间的切换

小区切换算法有哪些? M准则,K准则,16bit排位

T3109有什么作用?

与无线链路失效计数器,共同控制上行无线链路的断超时。T3109=a+

RadioLinkTimeout×0.48s,a=1或2s

华为常用的合路器及典型损耗值? EDU 1dB CDU 4.5dB SCU 6.8dB SCU+CDU 8dB

双CDU(不合路) 1dB 双CDU(合路) 4.5dB

下倾角与覆盖距离的关系?机械下倾调整的极限值? 机械下倾调整好大是12度吧 GPRS中,CS1~CS4的编码方式?

含有RLC数据块的RLC/MAC块可以使用信道编码方案CS-1、CS-2、CS-3和CS-4来进行编码,采用CS-1编码的RLC/MAC块不包含保留部分。

GPRS四种信道编码方案下RLC数据块大小如下表所示。

编码方式设置CS-1。

掉话原因分析思路?

移动公司最坏小区定义?

分子:掉话大于3%,或拥塞大于5%,且每信道话务量间于0.1-0.6的小区总数。 分母:每信道话务量大于0.1的小区总数。

同心圆切换算法

当不选择“增强型同心圆功能允许”时,由接收质量门限、接收电平门限、接收电平磁滞、TA门限、TA磁滞共同决定内外圆区域;

当选择“增强型同心圆功能允许”时,由接收质量门限、外圆向内圆切换接收电平门限、内圆向外圆切换接收电平门限、TA门限、TA磁滞共同决定内外圆区域。

以上五个参数决定普通同心圆功能的内外圆覆盖范围。

内圆的区域可以表示为:

接收电平>= 接收电平门限 + 接收电平磁滞 并且 TA

外圆的区域可以表示为:

接收电平< 接收电平门限 - 接收电平磁滞 或者 TA >=TA 门限 + TA 磁滞 或者 接收质量>=接收质量门限

公式表达的内圆和外圆之间有一段“空白”地段,即

接收电平门限 - 接收电平磁滞 <= 接收电平 <接收电平门限 + 接收电平磁滞 and TA 门限 - TA 磁滞 <= TA < TA 门限 + TA 磁滞

这个区域就是同心圆的磁滞带,作用是防止乒乓切换。

当TA门限取值为63,TA磁滞取值为0 时,内圆的边界完全由接收电平和接收质量参数决定;当接收电平门限取值为63,接收电平磁滞为0时,内圆边界完全由TA和接收质量参数决定。

切换成功率比较差,但是无线切换成功率却较好,该怎么分析网络问题

系统消息中,与邻区相关的有哪些系统消息

基站时钟有哪几种状态? 锁定BSC时钟、自由震荡,捕捉

单通问题如何分析 鉴于系统内话路的流程,产生单通、双不通可能的原因有:

1、无线部分:

主要是无线环境的因素,如上下行电平不平衡导致单方接收质量差、上下行干扰等原因; 2、基站部分:

硬件方面:单板(如CDU、TRX、TMU等)故障、TMU的SD529交换网表出错等; 软件方面:“无线信道配置表”(时隙号)、“站点BIE中继模式表”(中继模式号与“站点BIE描述表”中不一致,导致级联站不能正常通话)等数据配置错误; 3、ABIS口部分,

主要是基站到32BIE(或34BIE)之间(包括中间的中继传输设备),各接口处接头以及连线的端口质量、传输线路的误码等原因,可能导致单方话音质量的恶劣;

4、BSC部分:

硬件方面:32BIE(或34BIE)至CTN之间所有单板及连线(包括母板)、BNET/CTN等单板故障;

软件方面: BIE的时隙配置、BIE的HW配置、中继电路的配置(信令时隙不可用); 5、A接口部分:

硬件方面:

(1)单板故障:E3M板、MSM板、FTC板、MSC侧的DT板等;

(2)连线错误(交叉线、鸳鸯线等);

(3)拨码错误:12FTC以及13FTC上均有拨码设置TC板是否复用,MSM板上有拨码设置TC

的维护控制信息所占用的时隙(S6.6)和复用解复用方式(S6.7),如果拨码错误,也会导致无话音或单通; 数据配置方面:

CIC配置,A接口中继电路是否可用的设置; 在使用12FTC时,不可配置EFR业务;对于复用时的一组TCSM单元,4块TC板对应走信令的4个时隙均应配为不可用,最后一块TC板的最后一个时隙作为维护时隙时也应为不可用,否则可能出现无话音现象;

注意:当某CIC配为不可用,BSC侧与MSC侧一定要一致,否则会出现指配失败。 6、MSC部分: 硬件方面:

(1)单板(DT、网板NET和CTN)故障或与背板接触不良,背板或槽位坏;

(2)连线损坏或接触问题(如DT至NET间HW连线、SM与AM之间光纤连接、出局中继连线的连接等);

软件部分:“半永久连接表”配置错,出局中继的数据配置错误; 7、手机问题

对于个别手机存在的单通或双不通情况,也有可能是手机本身的问题。

参数修改流程?

一、数据检查

优化前需首先检查现网数据是否存在隐患,项目包括:

? 主机数据与BAM数据是否一致,主要通过查看主机与BAM数据是否一

致,避免长期维护过程中维护人员误操作造成的重大数据隐患,该工作对维护性网优尤其重要;

? 根据文档制度规定,查看以往数据修改记录及修改效果记录,对以

前的数据修改有充分的了解,避免重走弯路;

? 检查BSC、BTS软件版本,了解版本注意事项,明确版本问题的规避

方法。

二、数据修改前向客户递交《网络操作申请单》

申请内容至少应包括:

? 修改或操作的内容; ? 所作操作的目的; ? 解决何种问题;

? 操作进行的时间;

? 相关工作是否准备就绪;

? 是否要求用户配合和资源准备(人力、车辆、SIM卡等);

? 可能会导致的异常结果以及问题发生后的处理措施;

? 操作对业务的影响程度,包括对话统指标的影响。 三、制定详细的数据修改计划

计划内容包含:

? 数据修改的目的;

? 网上设备的版本,是否清楚相关的注意事项; ? 具体的修改步骤;

? 修改的具体内容,包括修改前后各参数的值变化; ? 所采用的命令字;

? 操作时间:操作时间的确定根据修改参数对业务及网络运行的安全

级别而定,安全级别的划分可参见后面附件《GSM网络优化参数级别分类》

中的说明(WCDMA和CDMA2000暂时没有此网优参数级别分类文档,等发布后再另行通知)。大量数据修改或安全级别(设备影响级别或网络影响级别)为2和3的数据修改,均必须放在话务量较低的深夜(当地时间晚12:00以后)进行,参数安全级别为0、1且数据修改范围较小(涉及基站不超过10个),则可避开当地话务忙时进行动态数据修改;注:在采用自动数据配置台进行数据修改前必须仔细阅读最新的《BSC自动配置台已知问题及规避措施》或相应版本的《数据配置指导书》; ? 出现异常后的处理措施;

? 若需要重启BSC则必须注明相关单板拨码开关的设置;

? 数据修改应提前知会工程督导,并根据情况确定是否需要督导配合。

四、每次修改前必须对原有数据进行备份,并注明日期,严格按照动态数据配置指导书进行修改。

五、修改后,将最新数据文件备份在BAM上,并注明修改日期。

六、修改完成后必须通过基站维护台检查各基站、各载频、各信道的工作状态是否正常,是否有正常占用;并尽可能进行拨打测试,保证业务正常;注:如果前天晚上做了大量数据修改后,第二天上午是最危险时期千万不可掉以轻心,应安排人员早7:30前到机房值班,密切关注异常现象。

七、修改后应仔细观察话务统计,修改前后是否有异常情况发生,特别是拥塞率、掉话率、切换成功率等指标;确定异常情况处理措施,及时恢复设备正常运行。对于重大问题应遵循公司相关规定处理。

八、大范围、高安全级别的数据修改后,应 组织征求项目组讨论意见,决定是否组织拨测或路测,确保网络运行正常。

九、数据修改及其修改效果记录应在办事处专用服务器存档,便于后期工程师查对记录,了解数据修改情况。

十、在数据修改中总结出的改进建议,应积极提相应产品技术建议对产品进行改建。

优化结束后需要输出哪些文档?

网优报告,工程参数总表,客户满意度调查,参数修改记录,技术问题处理表,遗留问题表,工程备忘录

割接流程?

日常汇报操作模式?

日报,周报,(指标统计分析),问题跟综表,客户满意度调查,日常网络监控表,

客户拜访纪要。

数据修改级别如何定义?

一、设备影响级别

0级——对设备运行无影响,即参数设置过程中设备本身运行不受影响。

1级——对设备运行影响较小,须在调整前暂时闭锁调整对象。如调整参数时需要闭信道、闭载频等,但设备程序等不需要重新加载。

2级——对设备运行影响较大,在调整中会复位调整对象。设备在参数调整过程中需要复位基站或单板,需要重新加载基站或单板的程序和数据。

3级——对设备运行影响重大,在调整中会中断BSC服务,必须在审批通过后凌晨时段调整。

参数调整需要复位BSC、需要重新加载BSC的数据和程序。 二、网络影响级别

0级——对网络服务无影响。修改参数的过程中不影响所有用户的使用和状态,即用户感觉不到网络有变化。

1级——对网络服务影响较小,不中断网络服务。修改参数的过程中不影响正在通话或与网络建立连接的用户的操作,但对空闲状态的用户行为有一定影响。

2级——对网络服务影响较大,会短时间中断部分网络服务。修改参数会造成用户通话的中断。但在短时间内可以恢复。

3级——对网络服务影响重大,会中断网络服务。修改参数会使网络中断提供服务,并需要一段时间才能恢复正常。

1、 移动公司的组织结构如何?

范文10:java华为试题[下载]【以文搜文】

JAVA方面

1 面向对象的特征有哪些方面

2 String是最基本的数据类型吗?

3 int 和 Integer 有什么区别

4 String 和StringBuffer的区别

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

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

6 说出一些常用的类,包,接口,请各举5个

类:ArrayList PreparedStatement Connection String HttpServlet………

包:java,sql java.util, java.lang, java.io, javax.httpServlet,java.math,java.text,java.awt 接口:HttpSessionAttributeListener, ActionListener InputStream Collection

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你所知道的集合类都有哪些?主要方法?

ArrayList HashMap LinkedList HashTable

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

19.说出在JSP页面里是怎么分页的?

页面需要保存以下参数:

总行数:根据sql语句得到总行数

每页显示行数:设定值

当前页数:请求参数

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

数据库方面:

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

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

2. 事务是什么?

事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:

原子性

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

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

隔离性

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

持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

3. 游标的作用?如何知道游标已经到了最后?

游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。

4. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和

行级触发有何区别。

事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。

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