IBM面试题.docx

上传人:b****4 文档编号:6057971 上传时间:2023-05-09 格式:DOCX 页数:18 大小:29.17KB
下载 相关 举报
IBM面试题.docx_第1页
第1页 / 共18页
IBM面试题.docx_第2页
第2页 / 共18页
IBM面试题.docx_第3页
第3页 / 共18页
IBM面试题.docx_第4页
第4页 / 共18页
IBM面试题.docx_第5页
第5页 / 共18页
IBM面试题.docx_第6页
第6页 / 共18页
IBM面试题.docx_第7页
第7页 / 共18页
IBM面试题.docx_第8页
第8页 / 共18页
IBM面试题.docx_第9页
第9页 / 共18页
IBM面试题.docx_第10页
第10页 / 共18页
IBM面试题.docx_第11页
第11页 / 共18页
IBM面试题.docx_第12页
第12页 / 共18页
IBM面试题.docx_第13页
第13页 / 共18页
IBM面试题.docx_第14页
第14页 / 共18页
IBM面试题.docx_第15页
第15页 / 共18页
IBM面试题.docx_第16页
第16页 / 共18页
IBM面试题.docx_第17页
第17页 / 共18页
IBM面试题.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

IBM面试题.docx

《IBM面试题.docx》由会员分享,可在线阅读,更多相关《IBM面试题.docx(18页珍藏版)》请在冰点文库上搜索。

IBM面试题.docx

IBM面试题

一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块钱卖给另外一个人,问他赚了多少钱?

这是IBM面试时的题目,有四种算法:

1、9-8=1,11-10=1,1+1=2,所以最后赚2元。

2、最初只有8块钱,最后你有11块了,

所以是赚3块;

3、第一次买卖,主人公损失8块,获得一只鸡,第二次买卖;主人公获得9块,损失一只鸡;第三次买卖,主人公损失10块,获得一只鸡;第四买卖,主人公获得11块,损失一只鸡

所以整个产生的GDP(国内生产总值)是8+9+10+11=38元+4只鸡

4、整个事件有3次交易,我门来看看具体是哪3次?

第一次交易:

8元买进,9元卖出,利润1元;

第二次交易:

9元卖出,10元买进,利润-1元;

第三次交易:

10元买进,11元卖出利润1元;

整个过程:

1-1+1=1元

所以分析得知:

这个人是个傻子,因为后两次交易等于白干了。

经测试,企业认为:

回答利润是2元的肯定是面试失败者;

回答3元的更为愚蠢,因为自己什么是追加成本都不知道,肯定也是失败;

回答1元者,恭喜你,不属于傻子范围;

结果是:

本来可以直接赚3元的,经过他3次交易后总利润变成1元了。

所以正确答案是:

-2元!

回答-2元者,面试成功!

比较强的回答:

合计利润应该为两元

我认为合计利润应该为两元。

(出局就出局,明明白白,不趟那个企业的浑水,搞得那么复杂。

首先要明确两个基本点:

1、利润的计算方式是销售额减费用(包括生产费用、管理费用和财务费用)的差额;

2、利润是以货币为终结。

所以,上面买鸡的两次行为应该独立计算。

两次买卖行为是两次完整的利润生产过程,每一次都产生了毛利一元。

把鸡卖掉再买回来算利润损失,这违反了上面说的两条基本原则。

鸡就像工业材料、土地、水电一样,不能作为利润的终结计算方式。

用钱去买东西,必须履行卖的过程,回收货币完成一次货币循环,才能计算利润。

鸡原来9元卖掉了,已经完成了货币循环了。

第二次10元把鸡买回来,原来的1元利润没有损失,更不能说9-10=-1,亏了1元,只是又开始了一个利润生产过程,与第一次的8元、9元已经没有任何关系了。

假如我后来发现这只鸡是太空稀有物种,又用1000元把鸡买回来,1500元卖掉,第二次赚了500元。

这么赚钱的事情,按照上面的算法岂不是亏大了(11元卖掉,1000元买回,亏了989元)?

所以,有些企业账面利润很多,实际上都压在应收款上,不堪重负,倒闭了。

财务有一种说法叫“现金为王”。

没有钱周转,把材料、货品、土地这些流通性比货币差很多的东西当作货币去运作,是很危险的。

又一个比较强的回答:

第一次交易:

-8(成本)

第二次交易:

-8+9=1(含成本的利润)---此时有9元的成本

第三次交易:

-8+9-10=-9(9元的成本,再加1元的成本买进,此时的成本为10元)

第四次交易:

-8+9-10+11=2(但是前面的成本是10元,卖出为11元,只赚了1元)

成本核算:

成本8元在第二次交易时已赚回,还得利润1元.

第三交易时的成本为10元,用第二次交易时所得的9元(注意第一次的成本也在内,且还要加1元)再加1元买入.

第四次交易为卖出11元,也就是说在成本8元基础上面利润为3元,但在成本为10元的基础上利润为1元.

还有更强的!

投资收益率=净收益/投资总额

=(11-8)/8=37.5%

第一次交易:

投资收益率=(9-8)/8=12.5%=I1

净现值=(现金流入-现金流出)*[(1+折现率)^-1]

=(9-8)*[(1+37.5%)^-1]=1*0.7273=0.7273=NPV1<0

赔钱的买卖

第二次交易:

投资收益率=(11-10)/10=10%=I2

净现值=(11-10)*0.7273=0.7273=NPV2<0

这家伙在同一个地方栽了两次跟头

内部收益率=I1+[NPV1/(|NPV2|+|NPV1|)]*(I2-I1)

=12.5%+[0.7273/(0.7273+0.7273)]*(10%-12.5%)

=11.25%=IRR<37.5%

经济效果不可接受

净收益=9+11-[8*(1+37.5%)+10*(1+37.5%)]

=20-24.75=-4.75

他赚了-4.75元钱

对GDP的贡献:

“整个产生的GDP(国内生产总值)是8+9+10+11=38元+4只鸡。

”大家都别搞ERP了,回家贩鸡去吧,说不准明年中国的GDP就排名世界第一了。

曾经有两位经济学界的学者同行,路遇一坨狗屎,

甲对乙说:

“你把这坨狗屎吃掉,我就给你5000万。

乙想想,吃坨狗屎赚5000万,值!

于是捏着鼻子把狗屎吃掉了。

甲给了乙5000万,越想想郁闷——5000万块钱就这么没了,不行,我得想办法弄回来。

没多久又遇一坨狗屎,于是甲说:

“我把这坨狗屎吃掉,你给我5000万。

乙吃了狗屎,胃里正不舒服,心想,我吃了狗屎,也要你尝尝吃狗屎的滋味。

于是两人一拍即合,甲吃掉了狗屎,乙将5000万还给了甲。

两人边走边想,越想越不对劲:

我们两个今天是哪门子神经发癫,一人吃了一坨狗屎......始终想不通,于是找到经济学界泰斗“吴经验”。

吴老听完两人的叙述,说道:

“恭喜二位,你们又为祖国的GDP增长贡献了1个亿”。

 

面向对象的语言具有:

继承性、封装性、多态性。

ASP.NET中共有几种类型的控件?

各有什么区别?

     Html控件――传统的html标记+runat=”server”,可在服务器端访问,功能没有Web控件强大

     Web控件――服务器端控件,可以回传数据,事件驱动

用户控件――自定义、可重用的控件,和WebForm很相似,以WebForm为容器运行

 自定义控件――自定义、可重用的组件,从WebControl继承,在服务器端执行

abstract class和interface有什么区别?

接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类

ADO.net中常用的对象有哪些?

分别描述一下。

Connection:

连接对象.传递连接字符串,以连接数据库。

Command:

命令对象传递T-sql语句或者存储过程,以执行对数据库的查询与操作。

DataAdpater:

适配器对象管理Command对像。

主要用于查询或更新数据。

DataReader:

数据读取器对象快速、以向前、不断开连接的情况下读取数据。

DataSet:

数据集对象从数据库中取出数据,保存到内存,即可断开连接。

进程和线程的区别?

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源

简述 private、 protected、 public、 internal 修饰符的访问权限

private:

   私有成员, 在类的内部才可以访问。

 

     protected:

 保护成员,该类内部和继承类中可以访问。

 

     public:

    公共成员,完全公开,没有访问限制。

 

     internal:

   在同一命名空间内可以访问

什么是受管制的代码?

在.net环境中运行的代码都称之为受管制的代码(托管代码),在.net环境之外,在Windows上运行的代码称之为不受管制的代码

CTS、CLS和CLR分别作何解释?

CTS:

通用语言系统。

CLS:

通用语言规范。

CLR:

公共语言运行库

列举ASP.NET 页面之间传递值的几种方式。

1.使用QueryString,  如....?

id=1; response. Redirect().... 

2.使用Session变量 

3.使用Server.Transfer

ASP.NET中的身份验证有那些?

你当前项目采用什么方式验证请解释

    Windows、Forms、Passport,一般采用Forms,比较简单、适用面广

什么是WEB控件?

使用WEB控件有那些优势?

    web控件就是可以在服务器执行的控件,优势在于可以回传数据,带有事件驱动

ASP.Net是什么?

ASP.Net是建立在微软新一代.Net平台架构上,利用普通语言运行时(CommonLanguageRuntime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架。

ASP与ASP.NET的区别:

1.开发语言不同

ASP仅局限于使用non-type脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。

ASP.NET允许用户选择并使用功能完善的strongly-type编程语言,也允许使用潜加巨大的.NETFramework。

2.运行机制不同

ASP是解释运行的编程框架,所以执行效率加较低。

ASP.NET是编译性的编程框架,运行是服务器上的编译好的公共语言运行时库代码,可以利用早期绑定,实施编译来提高效率。

3.开发方式

ASP把界面设计和程序设计混在一起,维护和重用困难。

ASP.NET把界面设计和程序设计以不同的文件分离开,复用性和维护性得到了提高。

ASP。

NET与ASP相比,主要有哪些进步?

asp解释形,aspx编译型,性能提高,有利于保护源码。

Ajax有什么组成?

原理?

回答:

Asynchronous、JavaScript、XML

Ajax的原理基于web标准(standards-basedpresentation)XHTML+CSS的表示;

使用DOM(DocumentObjectModel)进行动态显示及交互;使用XML和XSLT进行数据交换及相关操作;使用XMLHttpRequest进行异步数据查询、检索;使用JavaScript将所有的东西绑定在一起。

抽象工厂的设计模式?

回答:

抽象工厂属于工厂模式的一种,指当有多个抽象角色时,使用的一种工厂模式。

抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。

抽象工厂模式的优缺点分析:

1、优点:

多个产品同时创建。

客户端代码简洁。

一个具体的工厂创建一系列相互联系的产品,使得客户端的调用非常简单,原因是一系列的产品被

设计到一个工厂类中来创建。

客户端需要创建另外一些列的产品,只需要更换一个产品创建类就可以了。

2、缺点:

增加新产品的话,需要修改工厂类(接口),以及其实现类。

3、使用时机:

在客户端需要同时创建一些列比较固定的对象时,可以考虑使用抽象工厂模式。

4、适用性:

·一个系统要独立他的产品创建、组合和表示时。

·一个系统要用多个产品系列中的一个来配置时

·要强调一系列相关的产品对象和对象的设计以便进行联合使用时

·提供一个产品类库,而只想显示他们的接口而不是实现时

简单工厂的优缺点?

优:

工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。

而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。

缺:

由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;

WebServices的作用?

回答:

使用不同程序和在不同系统平台上开发出来的程序,都可以相互通信。

存储过程和函数的区别?

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

事务是什么?

什么是锁?

事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:

原子性:

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

一致性:

事务在完成时,必须使所有的数据都保持一致状态。

在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。

事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。

隔离性:

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。

事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

持久性:

事务完成之后,它对于系统的影响是永久性的。

该修改即使出现系统故障也将一直保持。

锁:

在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。

与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。

当然锁还分级别的。

什么是存储过程?

有什么优点?

答:

存储过程是一组予编译的SQL语句,它的优点有1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。

3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。

4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

什么叫视图?

游标是什么?

视图是一种虚拟的表,具有和物理表相同的功能。

可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。

对视图的修改不影响基本表。

它使得我们获取数据更容易,相比多表查询。

  游标:

是对查询出来的结果集作为一个单元来有效的处理。

游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。

可以对结果集当前行做修改。

一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

什么是索引,有什么优点?

索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。

什么是触发器?

出发器是一种特殊类型的存储过程,出发器主要通过事件触发而被执行的,触发器的优点:

1.强化约束,触发器能够提供比CHECK约束。

2.跟踪变化,触发器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化。

3.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上的触发器被触发。

abstractclass和interface有什么区别?

接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类

.NET中类(class)和结构(struct)的区别。

结构是值类型、类是引用类型

结构不能被继承、类可以被继承

结构中定义变量不能赋初值、类中定义变量可以赋初值

结构不可以添加无参构造函数、类可以添加无参构造函数

 

进程和线程的区别?

答:

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

请说明DataReader和DataSet的主要区别,并根据你的经验说明他们分别用在什么场合

DataSet提供一个内存中数据的关系表示形式,DataSet中包括若干表的信息(表的数据、对数据进行排序或约束的信息)和表之间的关系等。

相当于离线的数据库。

DataReader提供一个来自数据库的快速、仅向前、只读数据流。

使用DataReader时必须时刻保持数据库处于连接状态。

要通过应用程序执行以下操作,就要使用DataSet:

a)在结果的多个表之间进行导航。

b)操作来自多个数据源(例如,来自多个数据库、一个XML文件和一个电子表格的混合数据)的数据。

c)在各层之间交换数据或使用XMLWeb服务。

与DataReader不同的是,DataSet能传递给远程客户端。

d)重用同样的记录集合,以便通过缓存获得性能改善(例如排序、搜索或筛选数据)。

e)每条记录都需要执行大量处理。

f)使用XML操作对数据进行操作,例如可扩展样式表语言转换(XSLT转换)或XPath查询。

对于下列情况,要在应用程序中使用DataReader:

a)不需要缓存数据。

b)要处理的结果集太大,内存中放不下。

c)一旦需要以仅向前、只读方式快速访问数据。

请解释转发与跳转的区别?

转发:

HttpServerUtility.Transfer();

对于当前请求,终止当前页的执行,并使用指向一个新页的指定URL路径来开始执行此新页。

可以清除QueryString和Form集合

跳转:

HttpResponse.Redirect();

将客户端重定向到新的URL并指定该新URL,默认不终止当前页的执行.

override与重载的区别

override 与重载的区别。

重载是方法的名称相同。

参数或参数类型不同,进行多次重载以适应不同的需要

Override 是进行基类中函数的重写。

为了适应需要。

ArrayList,Array,string[]三者的区别?

ArrayList用于不定长的数组,可以随意的增删。

Array的容量是固定的,在Array中,您只能一次获取或设置一个元素的值,支持排序、反转等操作

Stirng[]和Array比较相似,不支持排序、反转等操作

.什么叫应用程序域?

应用程序域提供安全而通用的处理单元,公共语言运行库可使用它来提供应用程序之间的隔离。

您可以在具有同等隔离级别(存在于单独的进程中)的单个进程中运行几个应用程序域,而不会造成进程间调用或进程间切换等方面的额外开销。

在一个进程内运行多个应用程序的能力显著增强了服务器的可伸缩性。

列举一下你所了解的XML技术及其应用

XML的应用可分为四类:

1.可根据客户需要与不同的数据源进行交互。

 

2.可将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。

3.可将同一数据以不同面貌展现给不同的用户。

4.网络代理可对所取得的信息进行编辑、增减以适应个人用户的需要

具体热门应用有:

ajax技术,WebServices技术

什么是JavaScript

JavaScript是一种脚本语言,一种基于对象(Object)和事件驱动(EventDriven)的解释性语言,也可以说是一种web浏览器语言

JavaScript的特点

1.动态性:

使用JavaScript可以直接对用户输入的信息做出响应,无须经过Web服务程序,这样就可以减少服务器的通信量。

(类似于Ajax)

2.跨平台性:

JavaScript比高级编程语言和服务器端编程语言更容易开发,因为编写、执行、调试和应用JavaScript脚本所需的就是文本编辑器和浏览器,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。

什么是虚函数?

什么是抽像函数?

虚函数:

可由子类继承并重写的函数。

抽像函数:

规定其非虚子类必须实现的函数,必须被重写

.什么是反射

程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。

它是在运行时创建和使用类型实例

forward和redirect的区别是什么?

❑前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。

❑前者只能转到同一个Web应用程序的另一个页面,后者可以转到任何的URL,包括其它的服务器。

前者可以将request和response对象一起传到其它页面,后者不能

Jsp中include动作和include指令的区别

include动作

includepage=”…”>在主页面被请求时,将次级页面的输出结果包含进来,产生两个Servlet,次页面更新时,不会影响主页面,一般用于包含动态页面。

include指令<%@includefile=”…”%>可以在主jsp文档转换成servlet时,将文件的实际内容包含到文档中,相当于代码的复制,最终只产生一个Servlet,一般速度要快一点。

List、Map、Set三个接口,存取元素时,各有什么特点?

List以特定次序来持有元素,可有重复元素。

Set无法拥有重复元素,内部排序。

Map保存key-value值,value可多值。

html与xml的区别?

1.XML是区分大小写字母的,HTML不区分。

2.在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

或者之类的结束标记。

在XML中,绝对不能省略掉结束标记。

3.在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/字符作为结尾。

这样分析器就知道不用查找结束标记了。

4.在XML中,属性值必须分装在引号中。

在HTML中,引号是可用可不用的。

5.在HTML中,可以拥有不带值的属性名。

在XML中,所有的属性都必须带有相应的值。

 

1)阐述面向接口、面向对象、面向方面编程的区别

面向接口更关注的是概念,它的原则是先定义好行为规范,再根据行为规范创建实现,严格的来说,面向接口应该是面向对象中的一部分吧,因为面向对象也强调的是本末倒置原则,也就是实现依赖于抽象,而抽象不依赖于具体实现,更具比较的应该是面向接口与面向抽象对象,我的体会是面向接口更加灵活,但实现时候,稍微有些代码冗余,而面向抽象可以结合面向接口,先定义接口,再定义抽象类,在抽象类中处理一些公共逻辑,再实现具体实现类。

面向对象是对复杂问题的分解。

面向方面的编程是一种新概念,它解决了很多面向对象无法解决的问题,比如面向对象技术只能对业务相关的代码模块化,而无法对和业务无关的代码模块化。

而面向方面正是解决这一问题的方案,它的关键思想是"将应用程序中的商业逻辑与对其提供支持的通用服务进行分离"。

.在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。

答:

stringstr=null是不给他分配内存空间,而stringstr=""给它分配长度为空字符串的内存

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2