• 当前位置:创业找项目 > 试题答案 > 公司笔试题目
  • 公司笔试题目

  • 来源:创业找项目
  • 时间:2018-05-06
  • 移动端:公司笔试题目
  • 篇一:著名风电企业求职笔试题及答案

    一、判断题(试题库出题至少30题)

    1、 电机中心高是从电机成品底脚平面至轴中心线的距离,它包括制造厂供应的绝缘垫块的厚度,还包括电机安装是调整用的垫块厚度。(√) 2、 小型电机常用装配式集电环。(×)

    3、 强度是抵抗破坏的能力,刚度是抵抗变形的能力。(√) 4、 为了减少电机转子的振动,设计时应使轴的临界转速比额定转速至少高15%。(√)

    5、 机座刚度表征抵抗变形的能力,小主要与机座尺寸、形状和使用材料有关。(√)

    6、 圆筒的变形包括它圆周的伸长及断面上各点的轴向位移。(×)

    7、 机座内圆与铁心采用过盈配合,要求接触好,以增加热传导能力,并避免铁心与机座相对滑动。(√) 8、 定子中,散嵌绕组主要应用于大中型电机中,成型绕组主要应用与小型电机中。(×)

    9、 集电环的材料应具有较好的导电性和机械强度,常用铜合金或低碳钢,对高速电机则用合金钢。(√) 10、 精磨时纵向进给量要小,不允许留下砂轮走刀的痕迹。(√ ) 11、 最后精磨时,无进给量的空行程次数要足够少。(×) 12、 复合材料是由两种或多种不同性质的材料用物理或化学方法制成的具有新性能的材料。(√) 13、 复合材料性能优于其组分材料的性能。(×) 14、 镀金的戒指属于复合材料。(√) 15、 常用的焊缝无损检测方法有切割检验法。(×) 16、 轴承滚动体包括球状、滚针、椭球形等形状。(×) 17、 总体设计是研发流程的重要环节,是在产品规划阶段完成的内容。(×) 18、 总体设计方案评审不仅是设计部门的内部评审,需要质保、服务、制造、试验等部门提供支持。(√) 19、 风力发电机组的选型即要考虑到结构和重量的需要,也要考虑视觉

    美观的要求。这是我们选择双馈发电机组的主要原因。(×)

    20、 我公司目前风力发电机组的技术路线是中速双馈变速恒频风力发电机组。(×) 21、 零部件选型是总体方案设计的一部分,是总体方案设计的前提。(×) 22、 关键零部件的选型是要在载荷确定下才能进行的工作。(×) 23、 部件选型必须提供两个或两个以上的供应商。(×) 24、 风机主轴强度设计中只需关注大的尺寸,一些细小的部位如过渡圆

    角可不用考虑 。(×) 25、 强度设计的目的是把结构设计的越强越好。(×) 26、 目前直驱式发电机组最常见的故障是增速箱损坏。(×) 27、 风力发电机正常刹车时先顺桨再高速刹车。(√) 28、 SY8220Y风机导流罩和机舱罩所用材料相同,前底架和后底架所用材料相同。(×) 29、 风机铸件材料选用QT400-18A,则说明机械性能强度的验收是根据单铸试件的强度验收 。(√) 30、 三一的1.5MW高速双馈风力发电机组桨距角及发电功率可随风速的变化而变化。(√)

    二、填空题(试题库出题至少20题)

    1、 电机设计一般包括 电磁设计 和 机械设计 两部分。 2、 定子铁心可采用外装压 和 内装压 两种压紧方法。 3、 电机转子端部绕组接头部分一般采用钎焊的方式。

    4、 为了防止风沙进入冷却器内,冷却器进口处一般要加装过滤网。 5、 双馈异步发电机定子槽型一般有半开口矩形槽,开口矩形槽两种。

    6、 操作者应当根据被加工工件的材质、砂轮的材料、硬度、粒度、粘结剂和组织选择合适的砂轮型号。

    7、 硬齿面是指配对啮合的齿轮齿面硬度为 HB>350 。

    8、 为保证回转支承滚道耐磨和承载能力而进行的热处理工序是滚道淬火 。

    9、 为消除回转支承套圈内部应力,减小变形而进行的热处理工序是回火。 10、

    目前世界上的风力发电机形式各种各样,尽管他们的构造和性能千

    差万别,但是他们一般都是由风轮、机舱、 塔架 和 基础 四部分组成的。 11、

    在总体方案设计时需要考虑风机的关键参数,包括风轮直径、额定

    转速、电机极数、整机重量和外形尺寸等。 12、 关键件是指在机器工作中起决定作用的部件。

    13、

    金属材料使用性能是指金属材料在正常工作条件下所表现出来的

    力学性能、物理性能和化学性能。 14、

    根据公司规定,目前主轴承选型的主要供应商为 FAG 、 SKF 和

    NSK 。 15、 风机的强度计算可分为极限计算和疲劳计算。

    16、

    目前国内的高速双馈式风机主要结构包括风轮系统、主轴、底架、

    增速箱、发电机、润滑系统、制动系统。

    17、 风力发电机组额定功率:当风速达到风力发电机组的额定风速时风力发电机的发电功率。

    18、 当风速达到切入风速,准备并入电网时,叶片的桨距角为0度,风力发电机组顺桨时叶片桨距角为90度。

    19、 回转支承的安装方式可分为:座式安装和悬挂式安装。

    20、 回转支承的滚道型式可分为:单排四点接触球式,双排四点接触球式、单排交叉滚柱式和三排滚柱式。

    三、选择题(含单选、多选,试题库出题至少30题)

    1、 国际卧式安装的电机代号是(A)

    A、IMB B、IMV C、ISB D、ISV

    2、 对于单列圆柱滚子轴承,内圈无挡边,外圈的两侧带挡边的代号是(A) A、NU B、N C、NJ D、NUP

    3、 下面哪些性不能能说明电机设计的质量好(C) A、电机温升低 B、输出电压谐波小 C、体积大

    D、零件设计寿命长

    4、 以下硅钢片牌号中单位质量损耗最小的为(D) A. 50W400 B. 50W470 C 50W350D. 50W310 5、 下列轴承中,主要用来承受轴向载荷的是(D) A. 深沟球轴承B. 调心滚子轴承C. 调心球轴承D. 推力球轴承

    6、 下面哪些做法是风力发电机设计应该避免的(ABCD) A. 海上风机的防护等级为IP23 B. 陆路运输的电机直径超过5m C. 轴承的设计寿命为3年 D. 电机不采取防潮措施

    7、 异步电机转子主要由(ABD)几部分组成

    A. 转子铁心B. 转子绕组C. 轴承D. 引接线、并头套

    8、 用于连接的普通螺纹与用于传动的丝杠相比较,其主要设计特点的差别

    是( B )

    A.强度高 B.自锁性好 C.效率高 D.便于加工

    9、 当零件的两个加工表面的尺寸精度与形状精度的要求均很高,同时它们

    之间的位置精度要求也很高,在设计工艺过程和选择精基准时,遵循的基准选择原则是 ( D )

    A.基准重合 B.基准统一 C.自为基准 D.互为基准 10、 影响齿轮传递运动准确性的误差项目有(ACD)

    A.齿距累积误差B.一齿切向综合误差 C.切向综合误差 D.公法线长度变动误差E. 齿形误差 11、 真空灌注成型的过程中加热固化的目的是(B) A.加速固化B.减小收缩C.提高强度D.提高刚度 12、

    复合材料可改变组分材料的(ABC)

    A.刚度 B.强度 C.热学性能 D.质量 13、

    下列属于复合材料的有(ABCD)

    A.胶合板 B.钢筋混凝土 C.夹布橡胶轮胎 D.玻璃钢

    14、 轴承内外圈可分离的轴承是( D )

    A.调心滚子轴承 B.深沟球轴承C.角接触球轴承 D.圆锥滚子轴承 15、 负变位传动的变位齿轮,其啮合角( B ) A.变大B.变小 C.不变 D.不确定 16、 以下属于压力控制阀的是(CD) A.单向阀 B.节流阀 C.顺序阀 D.减压阀 17、 一对正确啮合的渐开线齿轮,其传动比与哪些因素有关(B ) A.安装是否正确 B.两齿轮齿数 C.齿轮是否标准 D.模数 18、 硬度是工业生产中控制和检查零件质量最常用的检查方法。金属的

    硬度按试验方法不同,表示方式有 (ABCD)

    A.布氏硬度值(HB) B.洛式硬度值(HR)

    C.维氏硬度(HV) D.肖氏硬度(HS) 19、 下列设备或检测方法能进行齿面探伤的是(AC) A.荧光磁粉探伤机B.手持式磁粉探伤仪 C.着色探伤D.超声波探伤仪 20、 以下哪个环节不是总体方案设计的内容(D) A.总体结构和布局B.主要功能和关键参数 C.主要技术路线 D.标竿产品研究

    21、 风机总体方案设计时关键参数不包括(D)

    A.切入风速B.额定风速C.切出风速D.年平均风速 22、 低温型风力发电机组的正常运行温度为(C)

    A.-20℃~+40℃B.-25℃~+45℃ C.-30℃~+40℃ D.-30℃~+45℃ 23、 风机部件选型不包括以下哪个内容(B)

    A.变桨驱动方式 B.机舱底架制造方案 C.主轴承型号 D.高速轴刹车 24、 下类零部件那些属于风机关键零部件(ABCD) A.齿轮箱B.发电机C.变桨电机D.联轴器 25、 塔架的强度分析包含哪几方面?(ABC)

    A.静强度分析 B.疲劳强度分析 C.屈曲稳定性分析 D.重量分析 26、 当水平轴风力发电机迎风向和风向有较大差异时需要做出的动作

    是(B)。

    A. 变桨 B. 偏航 C. 刹车 D. 检修 27、 SY7715风机风轮设置仰角的作用(C)

    A. 最大限度的捕捉风能 B. 使所需变桨功率最小 C. 保证叶尖和塔筒的距离D. 使所需偏航功率最小 28、 SY8220风机的偏航方式是(A)

    A. 上风向主动偏航 B. 下风向主动偏航 C. 上风向被动偏航 D. 下风向被动偏航

    29、 理想状态下的最大风能利用系数 ( B ) A. 0.436 B. 0.593 C. 0.693 D. 1.000 30、 增速箱与电机联接采用联轴器的作用 ( D )

    A. 调整增速箱与电机间少量水平位移B. 调整增速箱与电机的少量偏心 C. 调整增速箱与电机轴心小偏角 D. 以上ABC不全对

    四、简答题(试题库出题至少10题)

    1、 简述下电机的设计技术依据? 答:(1)电机的用途;

    (2)与之连接的电系统对电机的要求(电流、电压、频率、相数等); (3)与之连接的机械系统及工作环境对电机的要求(几何尺寸、质量、结构及安装形式、防护类型、冷却方式、飞逸转速或超速转速、转动惯量等); (4)额定数据、运行方式和不同用途所要求的各种性能指标; (5)电机及各组成部分承受电气、机械、热负荷的能力;

    (6)有关的国家标准、专业标准、设计任务书以及用户提出的其他按要求; (7)此外还应考虑生产的可能性和经济合理性。 2、 简述强度设计的屈服强度的定义和意义?

    答:屈服强度是弹性变形和塑性变形的分界点,如果材料的强度超过屈服强度,则会产生塑性变形,塑性变形是不可恢复的变形,是设计不允许的。 3、 举例说明在什么情况下螺纹连接需要防松,防松方法可分为哪几类。 答:一般螺纹连接能满足自锁条件而不会自动松脱,但在受振动和冲击载荷,或是温度变化较大时,连接螺母可能会逐渐松动。为了使连接可靠,设计时

    必须采用防松措施。防松的主要目的是防止螺纹副间的相对转动(2分)。按其工作原理可分为:

    1)摩擦防松。保持螺纹副间的摩擦阻力以防松,如加弹簧垫圈,对顶双螺母等。

    2)机械防松。利用止动零件阻止螺纹副间的相对转动,如槽形螺母和开口销等。

    3)破坏螺纹副防松。破坏及改变螺纹副关系,例如冲击法。 4、 什么是玻璃钢的老化性能?

    答:玻璃钢的老化是指将玻璃钢产品不同程度的暴露于大气、江河海水、油、酸、碱等介质中,经过若干年后,玻璃钢的性能下降。 5、 简述齿轮传动的失效形式?

    答:齿轮传动的失效形式主要有轮齿折断和齿面损伤两类。齿面损伤又有齿面接触疲劳磨损、胶合、磨粒磨损和塑性流动等。 6、 什么是技术路线的含义?

    答:技术路线是指在总体方案内对新产品开发的目标准备采取的技术手段、具体步骤及解决关键问题的方法等在内的开发途径。包括总体布置图、外观总图、设计计算书和合理可行方案等。 7、 简述总体设计阶段风机的关键零部件?

    答:①变桨系统,包括变桨轴承和变桨电机(含减速机)

    ②主轴承 ③增速箱 ④发电机

    ⑤ 偏航系统,包括偏航轴承和偏航电机(含减速机)

    8、 有限元分析在强度设计中非常重要,请问有限元分析的主要步骤有哪些?

    答:① 结构传力分析和简化;②有限元建模;③ 边界条件及载荷施加;④ 分析计算;⑤结果提取和分析。

    9、 简述风力发电机在风速逐渐增大到切出风速的过程中风机的控制过程?

    答:风速增加到切入风速后风机叶片桨矩角由90°变到0°,捕捉风能,启动风轮转动,风轮转速达到并网转速后风机开始并网,将桨矩角变到0°,获得最大风能利用系数;当风速达到额定风速附近时,风机跟踪发电功率,调整桨矩角,保证转速和发电功率恒定;当风速达到切出风速时,桨矩角变到90°,风机脱网。 10、

    双馈感应式发电机是怎样实现恒频控制的?

    答:转子通过双向变频器与电网连接,可实现功率的双向流动。根据风速的变化和发电机转速的变化,调节转子电流频率的变化,实现恒频控制。

    五、论述题(试题库出题至少10题,或者论述5个、编程或绘图5个)

    1、 定子机座的作用及基本要求?

    答:定子机座主要用于固定铁心,承受和传递扭矩,支撑端盖和气体冷却器等部件,它还能形成电机冷却风路的一部分或作为电机的散热面。

    对机座的基本要求:①机座应具有足够的强度和刚度,使其在加工、运输、起吊、分瓣放置和运行中能承受各种机械作用力、电磁力而不致产生有害的变形;②机座应便于加工、运输、安装和检修;③机座内圆空间应得到充分

    利用,并应满足通风冷却的要求,直流电机机座还应满足磁路要求;④机座的中心高和底脚安装尺寸应符合有关标准和技术条件的规定。 2、 何谓系列电机?有何优点?

    答:所谓系列电机,是指技术要求、应用范围、结构型式、冷却方式、生产工艺基本相同,功率及安装尺寸按一定规律递增,零部件通用性很高的一系列电机。系列电机所具备的特点将在设计、制造、使用和维修方面带来很多方便,考生可作详细说明。例如,零部件通用性高,就便于成批生产和实现生产过程的机械化、自动化,也有利于提高产品的质量和产量,降低生产成本。 改善槽内填充效果,防止电晕现象发生。 3、 滚动轴承支撑方案有哪几种?

    答: 滚动轴承支撑方案有以下三种:

    ① 固定+固定的组合; ② 游动+游动的组合; ③ 固定+游动的组合。

    4、 采用标准芯棒、标准钢球、千分表检测普通卧式车床主轴的径向跳动和轴向窜动。

    1)简述两个项目的检测过程。 2)如何评定其误差值。

    答:1)主轴径向跳动:①将芯棒插入主轴定位锥面上;②千分表触头分别置于芯棒的主轴近端和远端两处;③回转主轴,检测千分表的变化量;④将芯棒拔出,转180o再插入在主轴定位锥面上重复检测程序。

    主轴轴向窜动:①在芯棒伸出端的顶尖孔中放入一个钢球;②将千分表触头置于钢球面的最前端;③回转主轴,检测千分表的变化量。

    2)千分表的变化量是主轴的径向跳动误差(两次检测的平均值)和主轴的轴向窜动误差。

    5、 论述回转支承与轴承有哪些区别?

    篇二:46家著名公司C C++笔试题目

    46家著名公司C C++笔试题目之华为 (附答案)

    2010-06-04 21:34

    1.请你分别画出 OSI 的七层网络结构图和 TCP/IP 的五层结构图。 *********************************答案

    ****************************************

    OSI TCP/IP

    应用层(Application Layer)

    表示层(Presentation Layer)

    会话层(Session Layer)

    传输层(Transport Layer)

    网络层(Network Layer)

    传输层(Transport Layer) 网络层(Network Layer) 数据链路层(DataLink Layer) 物理层(Physical Layer)应用层(Application Layer) 数据链路层(DataLink Layer) 物理层(Physical Layer)

    2.请你详细地解释一下 IP 协议的定义,在哪个层上面?主要有什么作用?TCP 与 UDP呢?

    *********************************答案

    ****************************************

    IP协议即网络之间互连的协议或因特网协议(Internet Protocol),它是为计算机网络相互连接进行通信而设计的协议,位于网络层,其作用在于充分的开放透明性与灵活有效的多业务增值能力,用于将低层传输给TCP和UDP,或将TCP和UDP发来的数据传输给低层设备。

    TCP是指传输控制协议(Transmission Control Protocol),是一种面向连接的,可靠的,基于字节流的传输协议,通常TCP用于传输较大并要求准确的数据包,但是较慢。

    UDP是指用户数据报协议(User Datagram Protocol),是一种非连接的,面向事务的简单不可靠的的信息传送服务协议,通常用于传输较小且对数据准确性要求不高的场合,但较快。

    3.请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的? *********************************答案

    ****************************************

    交换机:数据链路层,交换机=多口网桥(Multi-port Bridge),每个端口对应一个节点或LAN段。连接局域网的不同网段(广播域),不是传统以太网广播式(Broadcast)包传输技术,自学习(Auto Self-learning)网卡地址(MAC Address)及包检查过滤,切割大型网络、各网段频带独立,有效地提高网络整体性能。 路由器:工作于网络层的设备,能连接相同或不同类型的局域网。具有网上传递数据时选择最佳路径的能力;基于协议或IP地址转发数据包;可过滤广播数据包的问题。

    4.请问 C++的类和 C 里面的 struct 有什么区别?

    *********************************答案

    ****************************************

    C++的class和C++的struct之间区别很小,只有两点:

    (1)默认的成员访问权限,前者是private,后者是public;

    (2)默认的继承权限,来自class的继承默认为private继承,来自struct的继承默认是public继承。

    C++的类和 C 里面的 struct区别:

    (1)CALSS类中对数据进行了封装,其他对象要直接访问其私有数据是不行的,而STRUCT中的数据就可以直接访问。

    (2)CLASS有继承的概念,而STRUCT没有

    (3)CLASS中的成员函数有虚拟、重载、动态束定等概念,而STRUCT中没有。

    5.请讲一讲析构函数和虚函数的用法和作用。

    *********************************答案

    ****************************************

    析构函数:置于“~”是析构函数;析构函数因使用“~”符号(逻辑非运算符),表示它为逆构造函数,加上类名称来定义。

    析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载,只有在类对象的生命期结束的时候,由系统自动调用。有适放内存空间的作用。

    虚函数:虚函数是C++多态的一种表现,例如:子类继承了父类的一个函数(方

    法),而我们把父类的指针指向子类,则必须把父类的该函数(方法)设为virturl(虚函数)。 使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virturl 函数名=0我们把这样的函数(方法)称为纯虚函数。 如果一个类包含了纯虚函数,称此类为抽象类。 虚函数是用于类当被继承时,子类在使用同基类名字相同的函数名时,对象能直接调用相应的函数,而不是永远指向基类中的相同函数名的函数。一般来说,如果一个类可能做为基类使用的话,我们最好将其析构函数虚拟化,因为这样当其子类的对象退出时,也会一并调用子类的析构函数释放内存,如果不虚拟化,则只会调用基类的析构函数,从而导致内存未完全释放。

    6.全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?

    *********************************答案

    ****************************************

    我们可以从几个方面来考虑:

    (1) 生存周期不同:全局变量为整个程序从运行到结束(结束时所占内存释放),局部变量从调用模块到模块结束(结束时所占内存释放);

    (2) 作用范围不同:全局变量可被整个程序中的任意函数或变量访问,局部变量只可被本模块内的函数或变量访问;

    (3) 分配方式不同:全局变量存储在全局数据区并且在程序开始运行的时候被加载,局部变量存储在线程的栈中;

    (4) 安全感不同: 全局变量可在整个程序的任何地方被修改,而局部变量在其模块之外是不可见的;

    (5) 用途不同: 使用全局变量时,函数间要访问该变量可直接访问,而局部变量在不同模块间访问只能通过参数传递来共享数据。

    另:全局数据区分为两部分全局数据区和静态数据区,静态数据区专门存放static变量。static的全局变量只在该文件范围内可见,不能用extern声明为外部变量。

    操作系统和编译器,是通过内存分配的位置来知道的,编译器会自动初始化全局

    变量(如果未初始化)为0,而局部变量的初始值则视当前内存内的值而定。

    7.8086 是多少位的系统?在数据总线上是怎么实现的?

    *********************************答案

    ****************************************

    8086是16位的系统,数据总线为16位,地址总线为20位。它既能处理16位数据,也能处理8位数据。通过地址总线复用可寻址的内存空间为1MB。

    46家著名公司C C++笔试题目之普天 (一) (附答案)

    2010-06-08 0:25

    1.实现双向链表删除一个节点 P,在节点 P 后插入一个节点,写出这两个函数。 *********************************答案

    ****************************************

    //此双向链表以含附加头结点为例

    //删除结点

    int DelNode( Link * pLink, Link * pNode )

    {

    Link * pLinkTemp; pLinkTemp = pLink->pNext; while ( pLinkTemp && pLinkTemp->iData != pNode->iData ) //查找要删除的结点

    { } if ( pLinkTemp != 0 ) {pLinkTemp->pPre->pNext = pLinkTemp->pNext; pLinkTemp->pNext->pPre = pLinkTemp->pPre; pLinkTemp = pLinkTemp->pNext;

    } } pLinkTemp->pPre = 0; pLinkTemp->pNext = 0; free( pLinkTemp ); return 1; else { } return 0;

    //插入结点

    int AddNode( Link * pLink, Link * pNode )

    {

    Link *pLinkTemp; pLinkTemp = pLink->pNext; while ( pLinkTemp && pLinkTemp->iData != pNode->iData ) //查找插入位置

    { } if ( pLinkTemp != 0 ) {} else pNode->pPre = pLinkTemp; = pLinkTemp->pNext; pLinkTemp = pLinkTemp->pNext; pNode->pNext pLinkTemp->pNext->pPre = pNode; pLinkTemp->pNext = pNode; return 1;

    篇三:各大IT公司笔试面试题目

    2011 各大IT公司笔试面试题目

    分类: C++ 语法知识2012-02-12 11:05 563人阅读 评论(1) 收藏 举报

    2011.10.17百度面试题

    1、进程切换需要注意哪些问题?

    保存处理器PC寄存器的值到被中止进程的私有堆栈;保存处理器PSW寄存器的值到被中止进程的私有堆栈; 保存处理器SP寄存器的值到被中止进程的进程控制块;

    保存处理器其他寄存器的值到被中止进程的私有堆栈; 自侍运行进程的进程控制块取SP值并存入处理器的寄存器SP; 自侍运行进程的私有堆栈恢复处理器各寄存器的值;

    自侍运行进程的私有堆栈中弹出PSW值并送入处理器的PSW; 自侍运行进程的私有堆栈中弹出PC值并送入处理器的PC。

    2、输入一个升序数组,然后在数组中快速寻找两个数字,其和等于一个给定的值。

    这个编程之美上面有这个题目的,很简单的,用两个指针一个指向数组前面,一个指向数组的后面,遍历一遍就可以了。

    3、有一个名人和很多平民在一块,平民都认识这个名人,但是这个名人不认识任何一个平民,任意两个平民之间是否认识是未知的,请设计一个算法,快速找出这些人中的那个名人。 已知已经实现了一个函数 bool know(int a,int b) 这个函数返回true的时候,表明a认识b,返回false的时候表明a不认识b。

    思路:首先将n个人分为n/2组,每一组有2个人,然后每个组的两个人调用这个know函数,假设为know(a,b),返回true的时候说明a认识b,则a肯定不是名人,a可以排除掉了,依次类推,每个组都调用这个函数依次,那么n个人中就有n/2个人被排除掉了,数据规模将为n/2。同理在剩下的n/2个人中在使用这个方法,那么规模就会将为n/4,这样所有的遍历次数为n/2+n/4+n/8+........ 这个一个等比数列,时间复杂度为o(n)。

    4、判断一个自然数是否是某个数的平方。当然不能使用开方运算。

    方法1:

    遍历从1到N的数字,求取平方并和N进行比较。

    如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。

    复杂度为O(n^0.5)。

    方法2:

    使用二分查找法,对1到N之间的数字进行判断。

    复杂度为O(log n)。

    方法3:

    由于

    (n+1)^2

    =n^2 + 2n + 1,

    = ...

    = 1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1)

    注意到这些项构成了等差数列(每项之间相差2)。

    所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。

    如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。

    复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。

    例如:3^2 = 9 = 1 + 2*1+1 + 2*2+1 = 1 + 3 + 5

    4^2 = 16 = 1 + 2*1 + 1 + 2*2+1 + 2*3+1

    view plain

    1.

    2.

    3.

    4.

    5.

    6.

    7.

    8.

    9. int square(int n){ int i = 1; n = n - i; while( n > 0 ) { i += 2; n -= i; }

    10. if( n == 0 ) //是某个数的平方

    11.return 1;

    12. else //不是某个数的平方

    13.return 0;

    14. }

    百度2011.10.16校园招聘会笔试题

    一、算法设计

    1、设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。

    思路:这个使用数学中的极坐标来解决,先调用[s1,t1]随机产生一个数r,归一化后乘以半径,得到R*(r-s1)/(t1-s1),然后在调用

    [s2,t2]随机产生一个数a,归一化后得到角度:360*(a-s2)/(t2-s2)

    2、为分析用户行为,系统常需存储用户的一些query,但因query非常多,故系统不能全存,设系统每天只存m个query,现设计一个算法,对用户请求的query进行随机选择m个,请给一个方案,使得每个query被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。

    思路:如果用户查询的数量小于m,那么直接就存起来。如果用户查询的数量大于m,假设为m+i,那么在1-----m+i之间随机产生一个数,如果选择的是前面m条查询进行存取,那么概率为m/(m+i),如果选择的是后面i条记录中的查询,那么用这个记录来替换前面m条查询记录的概率为m/(m+i)*(1-1/m)=(m-1)/(m+i),当查询记录量很大的时候,m/(m+i)== (m-1)/(m+i),所以每个query被抽中的概率是相等的。

    3、C++ STL中vector的相关问题:

    (1)、调用push_back时,其内部的内存分配是如何进行的?

    (2)、调用clear时,内部是如何具体实现的?若想将其内存释放,该如何操作?

    vector的工作原理是系统预先分配一块CAPACITY大小的空间,当插入的数据超过这个空间的时候,这块空间会让某种方式扩展,但是你删除数据的时候,它却不会缩小。

    vector为了防止大量分配连续内存的开销,保持一块默认的尺寸的内存,clear只是清数据了,未清内存,因为vector的capacity容量未变化,系统维护一个的默认值。

    有什么方法可以释放掉vector中占用的全部内存呢?

    标准的解决方法如下

    template < class T >

    void ClearVector( vector< T >& vt )

    {

    vector< T > vtTemp;

    veTemp.swap( vt );

    }

    事实上,vector根本就不管内存,它只是负责向内存管理框架acquire/release内存,内存管理框架如果发现内存不够了,就malloc,但是当vector释放资源的时候(比如destruct), stl根本就不调用free以减少内存,因为内存分配在stl的底层:stl假定如果你需要更多的资源就代表你以后也可能需要这么多资源(你的list, hashmap也是用这些内存),所以就没必要不停地malloc/free。如果是这个逻辑的话这可能是个trade-off

    一般的STL内存管理器allocator都是用内存池来管理内存的,所以某个容器申请内存或释放内存都只是影响到内存池的剩余内存量,而不是真的把内存归还给系统。这样做一是为了避免内存碎片,二是提高了内存申请和释放的效率——不用每次都在系统内存里寻找一番。

    二、系统设计

    正常用户端每分钟最多发一个请求至服务端,服务端需做一个异常客户端行为的过滤系统,设服务器在某一刻收到客户端A的一个请求,则1分钟内的客户端任何其它请求都需要被过滤,现知每一客户端都有一个IPv6地址可作为其ID,客户端个数太多,以至于无法全部放到单台服务器的内存hash表中,现需简单设计一个系统,使用支持高效的过滤,可使用多台机器,但要求使用的机器越少越好,请将关键的设计和思想用图表和代码表现出来。

    三、求一个全排列函数:

    如p([1,2,3])输出:

    [123]、[132]、[213]、[231]、[321]、[323]

    求一个组合函数

    如p([1,2,3])输出:

    [1]、[2]、[3]、[1,2]、[2,3]、[1,3]、[1,2,3]

    这两问可以用伪代码。

    网易游戏2011.10.15校园招聘会笔试题

    1、对于一个内存地址是32位、内存页是8KB的系统。0X0005F123这个地址的页号与页内偏移分别是多少。

    2、如果X大于0并小于65536,用移位法计算X乘以255的值为: (X<<8)-X

    X<<8-X是不对的,因为移位运算符的优先级没有减号的优先级高,首先计算8-X为0,X左移0位还是8。

    3、一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有3n+1个空指针。

    4、以下两个语句的区别是:第一个动态申请的空间里面的值是随机值,第二个进行了初始化,里面的值为0

    1.

    2. int *p1 = new int[10];int *p2 = new int[10]();

    5、计算机在内存中存储数据时使用了大、小端模式,请分别写出A=0X123456在不同情况下的首字节是,大端模式:0X12 小端模式:0X56 X86结构的计算机使用 小端 模式。

    一般来说,大部分用户的操作系统(如windows, FreeBsd,Linux)是小端模式的。少部分,如MAC OS,是大端模式 的。

    6、在游戏设计中,经常会根据不同的游戏状态调用不同的函数,我们可以通过函数指针来实现这一功能,请声明一个参数为int *,返回值为int的函数指针:

    int (*fun)(int *)

    7、下面程序运行后的结果为:to test something

    1.

    2.char str[] = "glad to test something"; char *p = str;

    3.

    4.

    5.

    6.

    7. p++; int *p1 = static_cast<int *>(p); p1++; p = static_cast<char *>(p1); printf("result is %s\n",p);8、在一冒险游戏里,你见到一个宝箱,身上有N把钥匙,其中一把可以打开宝箱,假如没有任何提示,随机尝试,问:

    (1)恰好第K次(1=<K<=N)打开宝箱的概率是多少。 (1-1/n)*(1-1/(n-1))*(1-1/(n-2))***(1/(n-k+1)) = 1/n

    (2)平均需要尝试多少次。

    这个就是求期望值由于每次打开宝箱的概率都是1/n,则期望值为:1*(1/n)+2*(1/n)+3*(1/n)+......+n*(1/n) = (n+1)/2

    亚信联创2011.9.17招聘会笔试题

    1、对于如下程序: 1.

    2.

    3.

    4.

    5.

    6.

    7.

    8.

    9. #include <iostream>using namespace std;class A{public: A() { cout<<"A"<<endl; }

    10. };11.

    12. int main(void)

    13. {

    14. A a[4], b,*p;

    15. }

    会输出多少个A?(C)

    A、2 B、3C、5 D、6

    p只是一个对象指针,并没有指向一个对象的内存空间,所以没有调用构造函数。

    2、头文件中的 ifndef/define/endif 有什么作用?

    答:防止该头文件被重复引用,避免变量、类型等被重新定义 。

    3、const 有什么用途?(请至少说明两种)

    答:(1)可以定义 const 常量。

    (2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

    4、如下的字符串函数,用于生存一个字符串 ”连接号码异常” ,并返回它的指针

    1.

    2.

    3. char* strfun(){ char str[20];

    4.

    5.

    6.

    7.

    8.

    9. strcpy(str, “连接号码异常”); printf(“%s \n”, str); //printf语句1 return str;}void main(){

    10. char *pstr = strfun();

    11. printf("%s \n", pstr);//printf语句2

    12. }

    问题1 : printf语句1和printf语句2哪个能在屏幕上正在打印出来?

    问题2 : 如果不能正常在屏幕上打印出字符串,请说明原因。

    问题3 : 如果不修改strfun的声明,请问该如何修改上述程序的错误。

    答:

    问题1:语句1可以正常打印,语句2不能正常打印;

    问题2:语句2使用的指针所指向的内存空间str[20],在函数strfun返回时已经被释放了;

    问题3:可以将函数strfun中的语句char str[20];改为char *str = new char[20];

    5、下面是交换两个double型数据的函数, 1.

    2.

    3.

    4.

    5.

    6.

    7.

    8.

    9. void swap( double* p1, double* p2 ) { double *p; *p = *p1; *p1 = *p2; *p2 = *p; } void main() {

    10.double a = 0.1;

    11.double b = 0.2;

    12.swap( &a, &b );

    13. }

    请找出上述代码的错误,指出错误的原因,并改正。

    答:函数swap中混淆了double型指针与double型变量的差别,对于一个未初始化的指针访问其内存空间是非常危险的。对swap函数修改如下:

    1.

    2.

    3.

    4.

    5.

    6.

    7. void swap( double* p1, double* p2 ){ double p; p = *p1; *p1 = *p2; *p2 =p;}


    公司笔试题目》由:创业找项目整理
    链接地址:http://www.gjknj.com/duwu/9964.html
    转载请保留,谢谢!
  • 下一篇:铁塔公司笔试题目