富士软件时划科技iOS面试题
感谢您能抽出几分钟时间来参加本次面试,现在我们就马上开始吧!
            :本题目答题时间30分钟,答完提交后请原地等待技术人员面试
            
           
            Q2:delegate中的property使用以下哪个属性( ) 
            A.assign  
B.retain  
C.copy  
D.Strong
           
            Q3:NSString *name = [[NSString alloc]initWithString:@张三];NSLog(@%d,[name retainCount]);上述代码打印结果是:( )
            A.-1  
B.0  
C.1  
D.2
           
            Q4:声明一个方法:提供Student对象数组按照学号升序排列的判断条件:( )
            A.- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent
B.-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent
C.-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent
D.+(int)compareWithNumberForAscendSort:(Student*)otherStudent
           
            Q5:(2018)10 + (43)16的结果是( )
              A.(2085)16  
B.(2085)10  
C.(2061)10  
D.(100000001101)2
           
            Q6:内存管理的关键字描述错误的是:( )
            A.retaincount是指对象的引用计数。
B.retain关键字可以增大对象的引用计数。
C.release可以减小对象的引用计数,但autorelease不可以 
D.dealloc方法不能直接调用
           
            Q7:下面哪些属于UITableViewDelegate协议的方法( )
            A.tableView:cellForRowAtIndexPath 
B.tableView:numberOfRowsInSection
C.tableView:didSelectRowAtIndexPath
D.numberOfSectionsInTableView
           
            Q8:下面关于线程管理错误的是( )
            A. GCD所用的开销要比NSThread大 
B. 可以在子线程中修改UI元素 
C. NSOperationQueue是比NSthread更高层的封装 
D. GCD可以根据不同优先级分配线程
           
            Q9:下面代码的作用是让doSomeThing函数每隔1秒被调用1次。请问哪里有错误( )NSTimer *myTimer=[NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(doSomeThing:)  userInfo:nil repeats:YES]; [myTimer fire]
            A. 没有将timer加入runloop 
B. doSomeThing缺少参数 
C. 忘记传递数据给userInfo 
D. myTimer对象未通过[[myTimer alloc] init]方法初始化
           
            Q10:什么是key window?( )
            A. App中唯一的那个UIWindow对象 
B. 可以指定一个key的UIWindow 
C. 可接收到键盘输入等事件的UIWindow 
D. 不可以隐藏的那个UIWindow对象
           
            Q11:下面关于Objective-C内存管理的描述错误的是 ( )
            A. 在使用ARC的项目中不能使用NSZone
B. autoreleasepool 在 drain 的时候会释放在其中分配的对象 
C. 当使用ARC来管理内存时,在线程中大量分配对象而不用autoreleasepool则可能会造成内存泄露 
D.当使用ARC来管理内存时,代码中不可以出现autorelease
           
            Q12:堆和栈的区别正确的是( )
            A.对于栈来讲,我们需要手工控制,容易产生memory leak。
B.对于堆来说,释放工作由编译器自动管理,无需我们手工控制
C.在Windows下,栈是向高地址扩展的数据结构,是连续的内存区域,栈顶的地址和栈的最大容量是系统预先规定好的。
D.对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低
           
            Q13:下面那个方法不属于NSObject的内省(Introspection)方法 ( )
            A. init
B. isKindOfClass
C. responseToSelector
D. isMemberOfClass
           
            Q14:求以下程序段的输出 ( )int func(int x){ int countx = 0; while (x) {countx++;x = x(x-1);} return countx;}int main(int argc,const char * argv[]){@autoreleasepool{NSLog(@%d, func(2013));  }return 0;}
            A.1   
B. 5   
C. 8   
D. 9
           
            Q15:对NSOperationQueue理解不正确的是( )
            A. 存放NSOperation的集合类
B. 可以设置最大并发数
C. 放进去的线程会自动执行
D. 用户需要管理放进去的线程执行顺序
           
            Q16:NSArray *array = [NSArrayarrayWithObjects:@1,@2,@3,@4,@2, nil];NSMutableSet *set = [[NSMutableSetalloc]init];for(NSString *str in array) {  [set addObject:str];} NSLog(@%lu,[set count]); [set release]; 控制台打印的结果是:( )
            A.4  
B.5  
C.6  
D.7
           
            Q17:下面关于类概念的描述中,错误的是:( )
            A.类是抽象数据类型的实现  
B.类是具有共同行为的若干对象的统一描述体  
C.类是创建对象的模板  
D.类就是C语言中的结构体类型
           
            Q18:以下关于socket的描述错误的是 (    )
            A. 是一种文件描述符   
B. 是一个编程接口   
C.仅限于TCP/IP    
D.可用于一台主机内部不同进程间的通信。
           
            Q19:NSDictionary *dict = [NSDictionarydictionaryWithObject:@a value forKey:@aKey]; NSLog(@%@,[dictobjectForKey:@aKey]);[dict release];控制台中打印的最后一条信息会是:( 
            A.a value 
B.aKey : a value  
C.崩溃信息  
D.a value : aKey
           
            Q20:Objective C中的线程下面描述不正确的是 ( )
            A. 使用NSThread创建,使用GCD的dispatch
B. 直接使用NSOperation,然后将其加入NSOperationQueue
C. 在主线程执行代码,方法是performSelectorOnMainThread
D. 如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone
           
            Q21:使用imageNamed方法创建UIImage对象时,与普通的init方法有什么区别?( )
            A. 没有区别,只是为了方便
B. imageNamed方法只是创建了一个指针,没有分配其他内存
C. imageNamed方法将图片加载到内存中后不再释放
D. imageNamed方法将使用完图片后立即释放
           
            Q23:谈谈你对Socket的理解?思考Socket连接是如何维持实时通信的?TCP和UDP协议有什么区别
            选项1
           
            Q24:设有三个关系:       S(SNO, SNAME, AGE, SEX,LESSON)       SC(SNO, LESSONNO,SCORE)       C(LESSONNO, LESSONNAME, TEACHER)试用关系代数表达式表示下列查询:(1).查询学号为10001的学生的所有姓名,年龄,性别。(2).查询WANG同学所有课程分数。(3).查询LI同学生物课的老师姓名。
            选项1