Iphone面试题
史上最全的iOS面试题及答案
史上最全的iOS面试题及答案1. 1.写一个NSString类的实现+ (id)initWithCString:(c*****t char *)nullTerminatedCStringencoding:(NSStringEncoding)encoding;+ (id) stringWithCString: (c*****t char*)nullTerminatedCStringencoding: (NSStringEncoding)encoding{NSString *obj;obj = [self allocWithZone: NSDefaultMallocZone()];obj = [obj initWithCString: nullTerminatedCString encoding: encoding];return AUTORELEASE(obj);}2static 关键字的作用:(1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;(2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;(3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;(4)在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;(5)在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。
3线程与进程的区别和联系?进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
程和线程的主要差别在于它们是不同的操作系统资源管理方式。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。
苹果面试问题
苹果面试问题
苹果面试问题
1.“你如何在不让任何人知道你在调查的情况下调查一项技术?”
如何在不让人知道的情况下研究一项技术?
这是一个棘手的问题。
苹果不想让人们知道它在计划什么,所以保密是关键。
这是一个非常难的问题。
苹果不想让外界知道它的计划,所以保密是关键问题。
2.描述一下iPhone中某些组件的制造过程
请描述一下iPhone部分组件的制造过程。
某些工程工作需要一些非常专业的技术知识。
要完成一些工程师的工作,你需要技术专长。
3.你如何测试自动售货机的原型?
你如何测试自动售货机的原型?
这位未来的工程师被要求解决一个问题:“如果自动售货机拿走1美元钞票,并给出价值75美分的产品。
但是它不会给你改变。
你如何分析哪里出了问题?你无法接触到自动售货机的内部。
一位杰出的工程师被要求解决这样一个问题:如果自动售货机赚了1美元,卖了75美分,它没有得到零钱。
如果你无法访问它的内部组件,你将如何分析这个问题?
4.“你为什么不去你实习的地方工作?”
为什么不打算去实习过的地方工作?
5.写一个使用递归计算一个数的阶乘的函数。
写一个使用递归计算阶乘的函数。
6.在从1到n的整数流中,只有一个数字会被重复。
“你怎么知道那个数字是多少?”
在从1到n的整数列中,只会重复一个数字。
你怎么知道是哪个号码?
1。
苹果公司面试试题
苹果公司面试试题1."Howwouldyouinvestigateatechnologywithoutlettinganyo neknowyouwereinvestigatingit?"你如何在研究一项技术的同时又不让任何人知情?Thisisatoughquestion.Appledoesn'twantpeopletoknowwhati t'splanning,sosecrecyiskey.这是个很难的问题。
苹果公司不希望外界知道自己的计划,所以保密是关键问题。
2."Describethemanufacturingprocessforsomeoftheponentsi naniPhone."请描述iPhone部分元件的制造过程。
You'llneedsomeseriouslytechnicalexpertiseforcertainengine eringjobs.要完成某些工程师的工作,你需要技术方面的*知识。
3."Howdoyoutesttheprototypeofthevendingmachine?"你如何测试一个自动售货机的原型?Thisprospectiveengineerwasaskedtosolveaproblem:"Ifvendi ngmachinetakes1$billandgives75centsworthproduct.Butitdoesn' tgivesoutchange.Howdoyouanalyzewhathasgonewrong.Youdon' thaveanyaccesstointernalsofthevendingmachine."有一个杰出的工程师被要求解决这样一个问题:如果自动售货机收入1美元,卖出75美分的东西,但却没有找零。
如果无法接触到它的内部构件,你将如何分析问题所在。
2019年iOS面试真题大全
2019年iOS面试真题大全(3-5年)1、自我介绍2、如何实现一个倒计时功能,类似于蘑菇街中的秒杀。
3、怎么理解es6箭头函数中的this,它和一般函数的this指向有什么区别呢?4、一个矩形,里面一个樱桃,过樱桃做一条直线,并且没有数据和测量工具,如果做到评分矩形呢?5、说一下同源策略6、vue中的路由时如何管理的?你知道他的实现方式吗?7、提到了我的博客,问我的博客相关问题。
8、retina屏幕的了解9、说一说移动端的布局。
flexible。
10、知道原理吗,怎么自己去实现一个flexible。
rem布局的实现原理。
移动端的点透是什么,有没有了解11、说一说异步编程的方式有哪些。
12、项目中的设计是怎么回事,说说设计方面。
13、你博客里的轮播图,如果还要优化,你会怎么去优化。
14、你最喜欢的es6中的特性是什么,为什么。
15、为什么选择前端(不是科班,这个问题经常被问。
)16、css布局的属性有哪些。
17、有没有遇到过这样的问题:一个有border的div,里面有一个图片,发现图片和下面的border 有一定的空隙(baseline)。
18、函数调用的方式有哪些。
他们的区别是什么。
19、说一说原型链(这个要非常清楚)。
20、用过什么框架。
jquery用过吗?21、你实习公司的前端leader是谁。
22、给你一个项目,你使用jquery还是vue、react。
为什么。
(这个问题也是会被经常问到的)23、说一说异步编程。
24、说一说回调地狱是什么,有什么问题。
异常捕获怎么做。
25、说一说promise。
一个promise有多个then,如果第一个then出错,后面的还会执行吗,如何捕获异常。
如果第一个then出错了,我还想要后面的继续执行,应该怎么做。
26、你在学习js的时候,遇到过哪些js方面的坑、你觉得js哪些知识会难一些。
27、 MVC 具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后怎么通知 Model?28、两个无限长度链表(也就是可能有环)判断有没有交点29、UITableView 的相关优化30、 KVO、Notification、delegate 各自的优缺点,效率还有使用场景31、如何手动通知 KVO32、Objective-C 中的 copy 方法33、 runtime 中,SEL 和 IMP 的区别34、autoreleasepool 的使用场景和原理35、RunLoop 的实现原理和数据结构,什么时候会用到36、block 为什么会有循环引用37、使用 GCD 如何实现这个需求:A、B、C 三个任务并发,完成后执行任务 D。
史上最全的iOS面试题及答案
史上最全的iOS面试题及答案以下是为大家整理的史上最全的ios面试题及答案的相关范文,本文关键词为史上,最全,ios,试题,答案,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教师教学中查看更多范文。
精品文档.史上最全的ios面试题及答案?1.写一个nsstring类的实现+(id)initwithcstring:(c*****tchar*)nullTerminatedcstringencoding:(nsstringencoding)encoding;+(id)stringwithcstring:(c*****tchar*)nullTerminatedcstringencoding:(nsstringencoding)encoding{nsstring*obj;obj=[selfallocwithZone:nsDefaultmallocZone()];obj=[objinitwithcstring:n ullTerminatedcstringencoding:encoding];returnAuToReLeAse(obj);}2static关键字的作用:(1)函数体内static变量的作用范围为该函数体,不同于auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;(2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;(3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。
3线程与进程的区别和联系?精品文档进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
史上最全的iOS面试题及答案
史上最全的iOS面试题及答案史上最全的iOS面试题及答案iOS面试小贴士———————————————回答好下面的足够了-------------------------------------多线程、特别是NSOperation 和GCD 的内部原理。
运行时机制的原理和运用场景。
SDWebImage的原理。
实现机制。
如何解决TableView卡的问题。
block和代理的,通知的区别。
block的用法需要注意些什么。
strong,weak,retain,assign,copy nomatic 等的区别。
设计模式,mvc,单利,工厂,代理等的应用场景。
单利的写法。
在单利中创建数组应该注意些什么。
NSString 的时候用copy和strong的区别。
响应值链。
NSTimer 在子线程中应该手动创建NSRunLoop ,否则不能循环执行。
UIScrollView和NSTimer组合做循环广告图轮播的时候有一个属性可以控制当上下滚动tableview的时候广告轮播图依然正常滚动。
Xcode最新的自动布局。
这个很多公司都用。
尽量自学下。
git ,和svn的用法。
git的几个命令简单的记下。
友盟报错可以查到具体某一行的错误,原理是什么。
Instrument 可以检测电池的耗电量、和内存的消耗。
的用法。
动画CABaseAnimation CAKeyAni…. CATrans….. CAGoup…. 等熟悉。
ARC的原理。
自己写过什么自定义控件就最好了。
———————————————回答好上面的足够了------------------------------------- __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
2.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
【7】IOS面试题-线程网络2
1.多线程都有哪些实现,GCD要注意些什么。
三种线程优缺点?(1)NSThread:轻量级的方式(具有很少的规则和惯例,依赖的东西少),比较底层和原始。
需要自己手动管理线程的生命周期,同步的时候需要加锁来控制线程执行顺序,会增加系统开销。
不推荐使用。
(2)NSOperationQueue:一个NSoperation对象可以通过调用start方法执行任务,默认是同步执行;也可以将NSOperation添加到一个NSOperationQueue中执行,这时是异步的。
通过这个方式开启线程后,可以中途停止、继续、取消等操作。
如果想控制线程执行顺序,可以通过添加依赖完成。
优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。
对于上传、下载这种复杂的操作,推荐使用。
(3)GCD:苹果提供的,异步执行。
提高了代码执行效率和多核的利用率,性能更好。
对于复杂的不推荐使用,但是简单的提交数据推荐使用。
2. 在哪里用过哪些第三方库,在哪获取第三库?读过第三方代码没有?在开发的过程中,用过很多第三方类库,AFNetWorking、SDWebImage、MBProgressHUD、FMDB、EGOTableViewPullRefresh、ShareSDK等。
注意:提到的可能面试官都会问到。
大多是从Github、CocoaChina地方等下载。
第三方类库主要是用它的功能,对于比较优秀的代码自己也读了一下,写的非常棒,比如。
(这个时候可以详细介绍一个你最熟悉的第三方类库)3. 多个iphone版本适配?最简单有效的方式是通过autolayout+sizeclass来进行适配的,但是这种方式的缺点需要添加的约束比较多,对于手写的代码非常麻烦。
一般手写代码进行布局的时候,会选择第三方类库来做,比如FLKAutoLayout,可以用简单的一句代码完成对一个控件添加的全部约束,非常实用。
4. 上拉加载更多,下拉刷新如何实现?用EGOTableViewPullRefresh做的,上拉的时候,从服务器取一组新的数据,加到数组中,刷新界面;下拉的时候,从服务器取数据,更新数组,刷新界面。
苹果公司面试的8个问题以及答案
8个苹果面试中求职者可能遇到的问题及答案!【问题一】:“你面前有两扇门,其中一扇门内藏着宝藏,但如果你不小心闯入另一扇门,只能痛苦地慢慢死掉……” 这一听就是那种经典的最令人头痛的一类问题,但其实与其他问题相比,这只是个热身。
在这两扇门后面,有两个人,这两个人都知道哪扇门后有宝藏,哪扇门擅闯者死,而这两个人呢,一个人只说真话,一个人只说假话。
谁说真话谁说假话?那就要看你有没有智慧自己找出来了,游戏规则是,你只能问这两个人每人一个问题。
那么,你问什么问题?问哪个人?根据他们的回答,你又该怎么做?求职者的最佳答案:随便问其中一个人:“如果我问另一个人,他会跟我说哪扇门后是宝藏?如果你问的恰好是讲真话的那个人,那他指给你的答案就是那扇通向死亡的门,因为他会诚实地告诉你那个说谎的人会怎么说。
如果你问的是那个只说谎话的,你得到的也是错误的答案,因为另一个人是讲真话的,说谎话的人会告诉你与讲真话的人相反的答案。
所以你只要随便问一个人上述问题,然后选择与他们说的相反的门就行了。
【问题二】:“你前面站了5个人,他们中间只有一个人讲真话……” 这个问题比上个问题难就难在,你只知道他们五个中有一个只讲真话,但其余四个,他们有时候讲真话,有时候讲假话,只有一点可以确定,这四个人将真话和假话有个规律:如果这次讲了真话,下次就会讲假话,如果这次讲假话,下次就讲真话。
你的任务是,把五个人中那个只讲真话的人找出来。
你可以问两个问题,两个问题可以向同一个人发问,也可以分别问两个人。
你该问什么问题?小提示:你可以这样安排两个问题承担的任务:首先你可以先问一个问题,不管得到的答案是什么,你都能从中知道下一个问题你将得到的答案是真是假。
求职者的最佳答案:随便找一个人,首先问:“你是那个只讲真话的吗?”如果答案是肯定的,你再问这个人:“谁是只讲真话的?”;如果第一个问题你得到的答案是否定的,你就再问对方“谁不是只讲真话的?” 正如这个问题给出的提示,第一个问题的价值在于,如果你得到的答案是“我是”,那么你问的人要么是那个只讲真话的,要么是那个这一轮讲假话的“半真话半假话”者,不管是谁,他下一轮一定会说真话。
iOS面试题(附答案)
iOS面试题(附答案)1、简述一下UIViewController的生命周期?alloc -‐> i nit -‐> l oadView -‐>viewDidLoad -‐> v iewWillAppear -‐>viewDidAppear -‐>viewWillDisappear -‐>viewDidDisappear -‐>viewUnLoad -‐>dealloc2、#import和#include的区别?#import导入的头文件不会多次重复导入3、写一个计算A、B中较大值的标准宏MAX?#define MAX(A,B) ( (A)>(B) ? (A) : (B) )4、谈一下iOS中的多线程?多线程是指从软件或硬件上实现多个线程并发执行的技术iOS中可以使用NSThread、NSOperation、GCD实现多线程5、谈一下Objective-‐C的内存管理方式?ARC、手动管理、线程池6、简述assign、retain、copy、weak和strong分别在什么情况下使用?答案见《iOS面试知识点整理.pdf》7、类别的作用?说一下类别和类扩展的区别?类别的作用是给类增加方法类扩展可以给类增加属性或私有变量,只可以对自定义的类使用类扩展8、说说你对KVC和KVO的理解?KVC:键值编码,提供一种机制来间接访问对象的属性KVO:键值观察,基于KVC实现的对类属性的观察监听9、深复制和浅复制的区别?答案见《iOS面试知识点整理.pdf》10、谈一下你对block的理解,请写一个block类型的属性?block本质是匿名函数声明一个block:方法一:void (^block)( N SString *string);方法二:typedef v oid(^MyBlock)(NSString *string);@property (nonatomic, s trong)MyBlock b lock;11、frame和bounds的区别?答案见《iOS面试知识点整理.pdf》12、谈一下UITableViewCell的重用机制?13、简述一下消息推送的流程?1、在苹果推送服务器APNs上注册deviceToken,并发送给自己的后台服务器;2、后台服务器将deviceToken和要发送的消息打包发送给APNs(注意:这一步还需要推送证书的路径和密码)3、A PNs将消息发送给deviceToken中保存的指定设备中的指定App14、简述一下App发布到AppStore的流程?1、首先生成发布描述文件(通过创建生产证书 -‐> 创建AppId (Bundle I d)-‐> 创建发布的描述文件)2、然后在iTunesContent中创建一个应用并填好信息3、在XCode中将项目打包并上传(注意:Bundle I d全程一致, 在build S etting中填好刚创建的描述文件)4、最后再回到iTunesContent中选择刚才上传的项目,然后点击提交。
iOS 面试题及答案
iOS 面试题及答案1、自动释放池是什么,如何工作的?当您向一个对象发送一个autorelease消息时,cocoa就会将该对象的一个引用放入到最新的自动释放池。
它仍然是个正当的对象,因此自动释放池定义的作用域内的其他对象可以向它发送消息。
当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就会被释放。
2、线程和进程的区别和联系?进程和线程都是由操作系统所体会的程序运行的基本单元,系统会利用该基本单元实现系统对应用的并发性。
线程和进程的主要差别在于它们是不同的操作系统资源管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所有多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
3、属性readwrite,readonly,assign,retain,copy,nonatomic各是什么作用,在哪种情况下用?1)Readwrite是可读可写特性,需要生成getter方法和setter方法时2)Readonly是只读写特性,只会生成getter方法,不会生成setter方法,不希望属性在类外改变3)Assign是赋值特性,setter方法将传入参数赋值给实例变量,仅设置变量时4)Retain表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+15)Copy表示赋值特性,setter方法将传入对象赋值一份,需要完全一份新的变量时6)Nonatomic非原子操作,决定编译器生成的setter,getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic4、object-c中创建线程的方法是什么,如果在主线程中执行代码,方法是什么,如果想延时执行代码,方法又是什么?线程创建有三种方法:使用nsthread创建、使用gcd的dispatch创建、使用子类化的nsoperation创建,然后将其加入nsoperationqueue;在主线程执行代码,方法是performSelectorOnMainThread,如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone5、类别的作用,继承和类别在实现中有何区别?Category可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改;并且如果类别和原来类中的方法产生冲突,类别将覆盖原来的方法,因此类别具有更高的优先级;将类的实现分散到多个不同文件或多个不同框架中,创建对私有方法的前向引用,向对象添加非正式协议。
ios(OC部分)经典面试题大全
Objective_C 经典面试题一、简答题1、Objective-C的类可以多重继承么?可以采用多个协议么?不可以多重继承,可以采用多个协议.2、#import和#include的区别是什么?#import〈〉跟 #import"”有什么区别?#import能避免头文件被重复包含的问题:1。
一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include。
使用include要注意重复引用的问题:class A,class B都引用了class C,class D若引用class A与class B,就会报重复引用的错误。
2. #import确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。
所以,#import比起#include的好处就是它避免了重复引用的问题.所以在OC中我们基本用的都是import.#import<> 包含iOS框架类库里的类,#import""包含项目里自定义的类。
3、Category是什么?扩展一个类的方式用继承好还是类目好?为什么?Category是类目。
用类目好,因为继承要满足a is a b的关系,而类目只需要满足a has a b的关系,局限性更小,你不用定义子类就能扩展一个类的功能,还能将类的定义分开放在不同的源文件里,用Category 去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系.4、延展是什么?作用是什么?延展(extension):在自己类的实现文件中添加类目来声明私有方法。
5、类实例(成员)变量的@protected ,@private,@public声明各有什么含义?@protected:受保护的,该实例变量只能在该类和其子类内访问,其他类内不能访问。
@private:私有的,该实例变量只能在该类内访问,其他类内不能访问。
@public:共有的,该实例变量谁都可以访问。
苹果公司的11个面试问题
苹果公司的11个面试问题1.桌上有台旧的iPhone,你能看到哪些材料?职位:产品设计工程师在苹果,作为一个产品设计工程师,你要绞尽脑汁将产品成本降到最低,以保持较低的产品价格。
你必须知道如何在一定资金范围内让产品定价更有竞争力。
熟悉材料也可以帮助你在降低成本的同时,做出更好的产品。
2.说说你用过的苹果产品职位:销售苹果从来不会聘用一个从没使用过苹果产品的销售人员。
3.在新机测试中,有500种垫圈都被判NG(不合格),你要如何找出问题的根源,并且怎么解决它?职位:产品质量工程师作为一个质保人员,你必须确保自己能够解决任何问题。
一旦问题滞留到生产阶段,造成的损失不上万也得上千了。
4.在一个资源非常有限的环境下,你怎么实现一个作为用户空间框架的线程模型来处理诸如网络、文件系统、UI系统等事项?职位:软件工程师写运行代码很容易,但要保证它运行流畅则要花点功夫,尤其是为手机设计软件。
5.如何诊断缓冲溢出?职位:软件工程师这是判定一个工程师是否足够优秀的最佳问题。
6.有100盏灯泡,它们都是亮着的。
接下来,第一轮你每隔一盏灯就转换开关,第二轮每隔三盏转换开关(第一轮被关掉的灯泡可能会在第二轮时被重新打开),两轮后会有多少盏是亮着的?职位:高级软件工程师这个数学问题有点复杂,谁能告诉我答案么?7.你如何接收最新的科技讯息?职位:Macgenius(苹果店内“天才吧”的Mac顾问)当你在苹果商店向消费者展示产品操作时,人们可能会问你对TechCrunch,甚至是BusinessInside上一些苹果新闻的看法。
8.一个6X6宫格图,你从左上角出发,目的地是右下角。
中途只可以往右或者向下移动,能有多少路线到达终点?职位:高级软件工程师看来,高级软件工程师都得会做数学题啊。
小编是没希望了··不过苹果给出这个问题并不一定是要你给出答案,他们注重的是你的思考过程。
9.如何证实曲面曲率的连续性?职位:CADSculptor(CAD制图员)CADSculptor需要与设计师一样对产品追求完美,即使是一块玻璃的形状也要精益求精。
苹果面试非技术类职位烧脑面试试题.doc
苹果面试非技术类职位烧脑面试试题看看那些非技术岗位的“烧脑”难题吧!如下是网给大家的,希望对大家有所作用。
1.“向一个5岁小孩解释清楚RAM是什么。
”——苹果专营店店员职位2.“向一个八岁孩子解释何为调制解调器/路由器以及它的功能。
”——居家专业参谋职位3.“场景:你正在接待一位生气的顾客,他等了20分钟需求帮助,现在正在制造骚乱。
她嚷嚷她要去Best Buy(美国连锁电子产品零售商)或者微软商店去买她想买的电脑。
请你解决这个问题。
”——导购职位4.“一位男士打寻求建议,说他有一台根本上就是块大板砖的旧电脑。
你会怎么做?”——苹果保修居家专业参谋职位5.“描述一下曾经令你感到谦卑的经历。
”——苹果零售店导购职位6.“下面哪件事更重要?——解决顾客遇到的难题还是为他们创造好的体验?”——苹果居家专业参谋职位7.“为什么苹果公司把公司名字从Apple Computers Incorporated改成了Apple Inc.?”——导购职位8.“你看起来非常正能量啊,什么类型的事儿能让你感到沮丧?”——Family Room参谋职位9.“角色扮演——仅仅使用嗓音,你如何让顾客感受到你很愿意帮助他们?”——学院居家专业参谋职位10.“当你作为一名顾客走进一家苹果专卖店时,你会注意到店里的哪些东西?/你走进去第一印象是什么?”——导购职位11.“如果你面前有一个混合密度均匀和不均匀硬币的罐子,从中取出一枚硬币抛3次,得出的结果是正面-正面-反面顺序,那么你取出的密度均匀和不均匀硬币的概率是多少?”——领导分析师职位12.“每天有多少个婴儿出生?”——全球供给链经理职位13.“你如何分解一支笔的本钱?”——全球供给链经理职位。
苹果面试题及答案
苹果面试题及答案问题一:你前面站了5个人,他们中间只有一个人讲真话这个问题比上个问题难就难在,你只知道他们五个中有一个只讲真话,但其余四个,他们有时候讲真话,有时候讲假话,只有一点可以确定,这四个人将真话和假话有个规律:如果这次讲了真话,下次就会讲假话,如果这次讲假话,下次就讲真话。
你的任务是,把五个人中那个只讲真话的人找出来。
你可以问两个问题,两个问题可以向同一个人发问,也可以分别问两个人。
你该问什么问题?小提示:你可以这样安排两个问题承担的任务:首先你可以先问一个问题,不管得到的答案是什么,你都能从中知道下一个问题你将得到的答案是真是假。
求职者的最佳答案:随便找一个人,首先问:你是那个只讲真话的吗? 如果答案是肯定的,你再问这个人:谁是只讲真话的? 如果第一个问题你得到的答案是否定的,你就再问对方谁不是只讲真话的?正如这个问题给出的提示,第一个问题的价值在于,如果你得到的答案是我是,那么你问的人要么是那个只讲真话的,要么是那个这一轮讲假话的半真话半假话者,不管是谁,他下一轮一定会说真话。
所以你可以继续问这个人:谁是只讲真话的? 对方的答案就是正确答案。
如果对第一个问题你得到的答案是我不是,那么回答者不可能是只讲真话的那个人,只能是一个此轮讲真话的半真话半假话者。
此人下一轮将会说假话,所以你应该问他:谁不是只讲真话的? 同样他告诉你的,只能是那个只讲真话的。
问题二:你面前有两扇门,其中一扇门内藏着宝藏,但如果你不小心闯入另一扇门,只能痛苦地慢慢死掉这一听就是那种经典的最令人头痛的一类问题,但其实与其他问题相比,这只是个热身。
在这两扇门后面,有两个人,这两个人都知道哪扇门后有宝藏,哪扇门擅闯者死,而这两个人呢,一个人只说真话,一个人只说假话。
谁说真话谁说假话?那就要看你有没有智慧自己找出来了,游戏规则是,你只能问这两个人每人一个问题。
那么,你问什么问题?问哪个人?根据他们的回答,你又该怎么做?求职者的最佳答案:随便问其中一个人:如果我问另一个人,他会跟我说哪扇门后是宝藏?如果你问的恰好是讲真话的那个人,那他指给你的答案就是那扇通向死亡的门,因为他会诚实地告诉你那个说谎的人会怎么说。
apple面试问题
apple面试问题给大家精心整理了apple公司的面试题,欢迎收看part 1: self introduction可以用中文也可以用英文,建议使用英文(电话面试里提过英语口语可以加分),面试官是native english speaker,英语好的同学之前准备个两三遍就行了,英语弱的同学要多准备。
lz这组的candidates 中有4位同学用了英语介绍,大家的背景很diverse (学生/教师/技术人员/销售都有)学历也从学士,硕士,博士和留学生非常多元化。
apple面试官会给每人2分钟时间。
最后对对你的兴趣爱好稍加提问,以增进感情。
part2:discussion based on the video面试官在放video之前会问同学们去过apple store没有,并用一个词描述apple store给你的感觉。
接着放video,可以看到世界各地apple store.之后面试官会基于问video问一些问题: q:从短片中看到了什么? q:对retail的理解?q:对apple store的理解?q:如果你是apple store员工,你怎样服务顾客?等等…… lz觉得在回答这些问题的时候,!!能联系自己或者朋友的例子会更具有说服力!!part3:other questionsapple面试官也会问同学们最喜欢哪部电影?举例曾经遇到过的一个很难相处的人,你是如何和他/她沟通的?这类问题是看同学们的性格和处理人际问题的方式。
大部分candidates之前没有准备过这类问题,所以回答得都凭第一感觉,例子也很真实。
part4:question time接近尾声就轮到同学们对apple面试官提问。
lz建议提与自己申请的职位相关的问题会比较proper.总结:apple初面的氛围非常轻松,是聊天的感觉。
面试官很友善,也不会对同学们的观点进行压力性的提问。
整个过程中,其实更多是看同学们的交流能力,表达能力。
【留学生就业】苹果面试官30问:他们是这么问求职者的
【留学生就业】苹果面试官30问:他们是这么问求职者的作为一家最负盛名的科技公司,你有想过苹果面试的时候都喜欢问什么问题么?近日,外媒采访了曾经去往苹果面试的求职者,收集了一些比较有趣的面试问题。
跟其他科技公司一样,苹果都会根据你简历上的经历进行提问和抛出一些令人一脸懵的难题。
1.你会如何向8岁的孩子解释路由器的工作原理?2.你最好的朋友是谁?3.如果你有两个鸡蛋,在不摔碎的前提下如何搞清楚它们可以从多高的高度扔下去不会碎?你有几个解决方案?4.形容一个你解决过的有趣的问题,并且详述你是如何解决的?5.每天都有多少孩子出生?6.桌子上有100枚硬币,其中有10枚朝上,90枚朝下,如何在不触摸不看的情况下找出哪些硬币是朝上的?如何将这些硬币分成朝上硬币数量相同的两堆?7.形容下你自己,是什么激励了你?8.如果我们雇用你,你最想做什么样的工作?9.有三个箱子,一个放着苹果,一个放着橘子,另外一个放着苹果和橘子。
这三个箱子被打乱顺序无法分出哪个箱子装着什么?你该如何在只打开一个箱子并取出其中一个水果的前提下,马上知道这些箱子里装的是什么水果?10.你正在面对一个生气的顾客,这个顾客在等待我们的服务的时候等待了20分钟,这让她很烦躁,并宣称她将去百思买或者微软的零售店买其他公司的电脑,你会怎么处理这个情况?11.你会怎么降低(公司)笔的费用成本?12.如果有个顾客带着他完全无法使用的老旧电脑来寻求我们的帮助,你会怎么处理?13.你觉得自己聪明么?14.描述你曾失败的一次经历,你从中获得什么样的教训?15.你曾对上司的决定表达过不同意么?你是如何表达的?举个例子并且阐述下你是如何处理的,结果是什么?16.你把一杯装满水的水杯放在转盘上,最先发生的是杯子从转盘上滑落还是水溅出来?17.你生命中最自豪的一件事是什么?18.我们为什么要雇用你?19.你觉得自己是有创意的人么?你曾想过什么有创意的事情呢?20.描述一个能体现你谦卑的事情。
苹果公司面试题汇总
苹果公司面试题汇总与谷歌等行业大佬一样,苹果公司在招聘新人时,会基于应聘者的背景提出一些技术方面的问题,也会问一些看似简单但需要认真思考后才能作答的问题,比如:1.在你所做的事情中,你最自豪的是什么?请告诉我们。
2.你经历过哪些失败?从中学到了什么?3.描述一个有趣的问题,然后说出你的解决方案。
4.请向一个8岁的孩子解释解调器和路由器是什么,以及它们是如何工作的。
5.你为什么来这里?6.有100枚平放在桌子上的硬币,每枚硬币都有正反两面,其中10枚正面朝上,另外90枚背面朝上。
你不能看、摸或以任何其他方式分辨哪一面朝上。
请将这些硬币分成两堆,让每一堆中正面朝上的硬币数目相同。
7.你未来五年的计划是什么?8.为什么要加入苹果公司?加入苹果公司对现在的你意味着哪些损失?9.自我介绍。
什么会让你兴奋?10.你怎样测试一台烤面包机?11.如果我们雇佣你,你想做什么?12.有3个箱子,一个里面装着苹果,一个里面装着橘子,还有一个里面装着苹果和橘子。
箱子上都贴着标签,但所有的标签都和箱子里的水果不符。
只能打开其中一个箱子,不要往里面看,从中拿出一个水果。
通过查看这个水果,你能立刻调整所有标签的顺序,让它们和箱子里的水果相符吗?13.你和经理有过分歧吗?如何处理?举例说明处理这些差异的过程和最终结果,以及各方对你的看法。
14.我们为什么要雇用你?15.你有创新精神吗?你认为什么是创新?16.描述一次震撼人心的体验。
17.解决客户问题比创造良好的客户体验更重要的是什么?18.哪些事情让你备受打击?19.每天有多少孩子出生?20.你什么时候以顾客的身份逛过苹果商店?进店后的观感如何?21.你有两个鸡蛋。
如果你想知道哪一层是鸡蛋不会被打碎的最高层,你应该怎么做?最好的解决方案是什么?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}答: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].2. 以下为Windows NT下的32位C++程序,请计算sizeof的值 void Func ( char str[100] ) { sizeof( str ) = ? } void *p = malloc( 100 ); sizeof ( p ) = ?这题很常见了,Func ( char str[100] )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
Windows NT 32位平台下,指针的长度(占用内存的大小)为4字节,故sizeof( str ) 、sizeof ( p ) 都为4。
3.还是考指针,不过我对cocoa的代码还是不太熟悉大概是这样的- (void)*getNSString(const NSString * inputString){inputString = @"This is a main test\n";return ;}-main(void){NSString *a=@"Main";NSString *aString = [NSStringstringWithString:@"%@",getNSString(a)];NSLog(@"%@\n", aString);}最后问输出的字符串:NULL,output在函数返回后,内存已经被释放。
4.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: ?; #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) ?; 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
?; 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
?; 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。
记住,第一印象很重要。
写一个" 标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A)<= (B) ? (A) : (B)) 这 个测试是为下面的目的而设的: ?; 标识#define在宏中应用的基本知识。
这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方 法, 对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
?; 三重条件操作符的知识。
这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
?; 懂得在宏中小心地把参数用括号括起来 ?;我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b);结果是: ((*p++) <= (b) ? (*p++) : (*p++)) 这个表达式会产生副作用,指针p会作三次++自增操作。
5.写一个委托的interface@protocol MyDelegate;@interface MyClass: NSObject{id <MyDelegate> delegate;}// 委托方法@protocol MyDelegate- (void)didJobs:(NSArray *)args;@end6. 写一个NSString类的实现+ (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding;+ (id) stringWithCString: (constchar*)nullTerminatedCString encoding: (NSStringEncoding)encoding { NSString *obj;obj = [self allocWithZone: NSDefaultMallocZone()]; obj = [obj initWithCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj); }7.obj-c有多重继承么?不是的话有什么替代方法? cocoa 中所有的类都是NSObject 的子类多继承在这里是用protocol 委托代理来实现的 你不用去考虑繁琐的多继承,虚基类的概念. ood的多态特性在obj-c 中通过委托来实现.8.obj- c有私有方法么?私有变量呢objective-c - 类里面的方法只有两种, 静态方法和实例方法. 这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西. 如果没有了私有方法的话, 对于一些小范围的代码重用就不那么顺手了. 在类里面声名一个私有方法@interface Controller : NSObject { NSString *something; }+ (void)thisIsAStaticMethod;- (void)thisIsAnInstanceMethod;@end@interface Controller (private) -(void)thisIsAPrivateMethod;@end@private可以用来修饰私有变量在Objective‐C中,所有实例变量默认都是私有的,所有实例方法默认都是公有的9.关键字const有什么含意?修饰类呢?static的作用,用于类呢?还有extern c的作用const 意味着"只读",下面的声明都是什么意思? const int a; int const a; const int *a; int * const a; int const * a const;前两个的作用是一样,a是一个常整型数。
第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。
第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。
最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。
结论:?; 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。
如果 你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。
(当然,懂得用const的程序员很少会留下的垃圾让别人来清 理的。
) ?; 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
?; 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。
简而言之,这样可以减少bug的出现。
(1)欲阻止一个变量被改变,可以使用const 关键字。
在定义该const 变量时,通常需要对它进行初 始化,因为以后就没有机会再去改变它了; (2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指 定为const; (3)在一个函数声明中,const 可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值; (4)对于类的成员函数,若指定其为const 类型,则表明其是一个常函数,不能修改类的成员变量; (5)对于类的成员函数,有时候必须指定其返回值为const 类型,以使得其返回值不为“左值”。
关键字volatile有什么含意?并给出三个不同的例子。
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。
精确地说就是,优化器在用到 这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
下面是volatile变量的几个例子:?; 并行设备的硬件寄存器(如:状态寄存器) ?; 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) ?; 多线程应用中被几个任务共享的变量?; 一个参数既可以是const还可以是volatile吗?解释为什么。
?; 一个指针可以是volatile 吗?解释为什么。
下面是答案: ?; 是的。
一个例子是只读的状态寄存器。
它是volatile因为它可能被意想不到地改变。
它是const因为程序不应该试图去修改它。
?; 是的。
尽管这并不很常见。
一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。
static 关键字的作用:(1)函数体内static 变量的作用范围为该函数体,不同于auto 变量,该变量的内存只被分配一次, 因此其值在下次调用时仍维持上次的值; (2)在模块内的static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明 它的模块内; (4)在类中的static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝; (5)在类中的static 成员函数属于整个类所拥有,这个函数不接收this 指针,因而只能访问类的static 成员变量。