富士软件时划科技iOS面试题

感谢您能抽出几分钟时间来参加本次面试,现在我们就马上开始吧!
本题目答题时间30分钟,答完提交后请原地等待技术人员面试
您的姓名
    ____________
delegate中的property使用以下哪个属性( )
A.assign
B.retain
C.copy
D.Strong
NSString *name = [[NSString alloc]initWithString:@"张三"];
NSLog(@"%d",[name retainCount]);
上述代码打印结果是:( )
A.-1
B.0
C.1
D.2
声明一个方法:提供Student对象数组按照学号升序排列的判断条件:( )
A.- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent
B.-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent
C.-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent
D.+(int)compareWithNumberForAscendSort:(Student*)otherStudent
(2018)10 + (43)16的结果是( )
A.(2085)16
B.(2085)10
C.(2061)10
D.(100000001101)2
内存管理的关键字描述错误的是:( )
A.retaincount是指对象的引用计数。
B.retain关键字可以增大对象的引用计数。
C.release可以减小对象的引用计数,但autorelease不可以
D.dealloc方法不能直接调用
下面哪些属于UITableViewDelegate协议的方法( )
A.tableView:cellForRowAtIndexPath
B.tableView:numberOfRowsInSection
C.tableView:didSelectRowAtIndexPath
D.numberOfSectionsInTableView
下面关于线程管理错误的是( )
A. GCD所用的开销要比NSThread大
B. 可以在子线程中修改UI元素
C. NSOperationQueue是比NSthread更高层的封装
D. GCD可以根据不同优先级分配线程
下面代码的作用是让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]方法初始化
 什么是key window?( )
A. App中唯一的那个UIWindow对象 
B. 可以指定一个key的UIWindow 
C. 可接收到键盘输入等事件的UIWindow 
D. 不可以隐藏的那个UIWindow对象
下面关于Objective-C内存管理的描述错误的是 ( )
A. 在使用ARC的项目中不能使用NSZone
B. autoreleasepool 在 drain 的时候会释放在其中分配的对象
C. 当使用ARC来管理内存时,在线程中大量分配对象而不用autoreleasepool则可能会造成内存泄露
D.当使用ARC来管理内存时,代码中不可以出现autorelease
堆和栈的区别正确的是( )
A.对于栈来讲,我们需要手工控制,容易产生memory leak。
B.对于堆来说,释放工作由编译器自动管理,无需我们手工控制
C.在Windows下,栈是向高地址扩展的数据结构,是连续的内存区域,栈顶的地址和栈的最大容量是系统预先规定好的。
D.对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低
下面那个方法不属于NSObject的内省(Introspection)方法 ( )
A. init
B. isKindOfClass
C. responseToSelector
D. isMemberOfClass
求以下程序段的输出 ( )

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
 对NSOperationQueue理解不正确的是( )
A. 存放NSOperation的集合类
B. 可以设置最大并发数
C. 放进去的线程会自动执行
D. 用户需要管理放进去的线程执行顺序

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
 下面关于类概念的描述中,错误的是:( )
A.类是抽象数据类型的实现
B.类是具有共同行为的若干对象的统一描述体
C.类是创建对象的模板
D.类就是C语言中的结构体类型
以下关于socket的描述错误的是 ( )
A. 是一种文件描述符
B. 是一个编程接口
C.仅限于TCP/IP
D.可用于一台主机内部不同进程间的通信。
NSDictionary *dict = [NSDictionarydictionaryWithObject:@"a value" forKey:@"aKey"]; NSLog(@"%@",[dictobjectForKey:@"aKey"]); 
[dict release];  
控制台中打印的最后一条信息会是:( 
A.a value
B.aKey : a value
C.崩溃信息
D.a value : aKey
Objective C中的线程下面描述不正确的是 ( )
A. 使用NSThread创建,使用GCD的dispatch
B. 直接使用NSOperation,然后将其加入NSOperationQueue
C. 在主线程执行代码,方法是performSelectorOnMainThread
D. 如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone
 使用imageNamed方法创建UIImage对象时,与普通的init方法有什么区别?( )
A. 没有区别,只是为了方便
B. imageNamed方法只是创建了一个指针,没有分配其他内存
C. imageNamed方法将图片加载到内存中后不再释放
D. imageNamed方法将使用完图片后立即释放
简述一下推送通知的流程
    ____________
谈谈你对Socket的理解?思考Socket连接是如何维持实时通信的?TCP和UDP协议有什么区别
    ____________
设有三个关系:
               S(SNO, SNAME, AGE, SEX,LESSON)
               SC(SNO, LESSONNO,SCORE)
               C(LESSONNO, LESSONNAME, TEACHER)
试用关系代数表达式表示下列查询:
(1).查询学号为10001的学生的所有姓名,年龄,性别。
(2).查询WANG同学所有课程分数。
(3).查询LI同学生物课的老师姓名。
    ____________

25题 | 被引用2次

使用此模板创建