iOS面试面试题面试题

iOS面试题积累(1)

2019-10-28  本文已影响0人  跨境大师兄

1.(单选)下面的http状态码中哪一个是状态码是标注请求不正确地:()
A.302 是请求链接错误或者找不到服务器。
B.500以上是服务器错误。
C.200以上是正确。
D.100以上是请求接受成功。

答案:A
参考链接

2.(单选)下面关于Objective-C内存管理的描述错误的是:()
A.当使用ARC来管理内存时,代码中可以出现autorelease
B.autoreleasepool 在 drain 的时候会释放在其中分配的对象
C.当使用ARC来管理内存时,在线程中大量分配对象而不用autoreleasepool则可能会造成内存泄露

答案:C

参考链接

3.使用imageNamed方法创建UIImage对象时,与普通的init方法有什么区别?()
A.没有区别,只是为了方便
B.imageNamed方法只是创建了一个指针,没有分配其他内存
C.imageNamed方法将图片加载到内存中后不再释放
D.imageNamed方法将使用完图片后立即释放

答案:C

4.下面对category描述不正确的是()
A.category可以添加新的方法
B.category可以删除修改之前的方法
C.将类的实现分散到多个不同文件或多个不同框架中
D.创建对私有方法的前向引用

答案:C

参考链接

5.多线程中栈与堆是公有的还是私有的()
A.栈公有,堆私有
B.栈公有,堆公有
C.栈私有,堆公有
D.栈私有,堆私有

答案:C

参考链接

6.以下哪个算法不是对称加密算法()
A.DES
B.RC5
C.AES
D.RSA

答案:D

参考链接

7.已知有序序列b c d e f g q r s t,则在二分查找关键字b的过程中,先后进行比较的关键字依次是多少?()
A.f d b
B.f c b
C.g c b
D.g d b

答案:B

参考链接

9.UIEdgeInsets edgeInsets = UIEdgeInsetsMake(10, 10, 10, 10);@synchronized(edgeInsets)}关于以上代码,正确的说法()
A. 写在大括号内部的代码,会保证多线程访问edgeInsets不出错
B. UIEdgeInsetsMake是构造UIEdgeInsets数据类型的方法
C. UIEdgeInsets本质上是OC中的基本数据类型
D. 代码错误

答案:D

只能存放对象类型 id 现在是一个基本数据类型
UIEdgeInsets 是比较特殊的类型,和NSRange 、CGRect一样本质上都是结构体类型。因为OC没有命名空间,所以只能使用前缀来区分,但OC中许多非对象类型同样使用和对象类型的一样前缀,注意甄别(一般非对象类型创建时无*号,id除外)。
@synchronized用来保护被访问的对象同时只能有一个线程操作,保证了线程访问对象时不出错。

9.单例类NSNotificationCenter提供信息广播通知,它采用的是观察者模式的通知机制。
A.对
B.错

答案:A

参考链接

10.添加子视图的方法中,是下列哪个面向对象特性的体现?
A.封装
B.继承
C.多态
D.协议

答案:C

11.为应用程序创建window的时候,以下哪个是声明成属性的必要原因?
A. 类的内部可以访问。
B. 类的外部可以访问。
C. 延长生命周期。
D. 拷贝window副本。

答案:B

12.以下那个属性可以导致view向右向下平移10个point?
A. simpleView.transform = CGAffineTransformMake(10,10, 1, 1, 0, 0);
B. simpleView.transform = CGAffineTransformMake(1, 1, 10, 10, 0, 0);
C. simpleView.transform = CGAffineTransformMake(1, 0, 1, 0, 10, 10);
D. simpleView.transform = CGAffineTransformMake(1, 0, 0, 1, 10, 10);

答案:D

13.以下是定义cell重用标识符的语句:static NSString * const reuseIdentifier = @"Cell"; 关于以上代码说法正确的是?
A. static是为了修饰变量是全局区域的
B. static是为了修饰变量是可以被其它类引用为全局变量的
C. const是为了修饰 reuseIdentifier指针本身不可以改变
D. const是为了修饰 reuseIdentifier指针指向的内容不可以改变

答案:C

14.下列哪项不属于数据持久化?()
A. 属性列表
B. Core Data
C. NSUserDefaults
D. 归档和反归档

答案:D

15.有以下程序段 int k=0; while(k=1) k++; 则while循环执行的次数是()
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行1次

答案:D

k=1 是一条赋值语句,令 k 的值等于 1。语句 k = 1 的结果是 永远是 1 , while(k=1) = while(1) ,是死循环,执行无限次
k == 1 才是一条逻辑语句,判断 k 的值是否等于1 。如果 k 的值等于 1 , k==1 的结果是1,否则是0。

16.请看下面一段代码

int main(){
        int b = 2;
        char *c = NULL;
        c = (char *)malloc(100 * sizeof(char));
    return 0;
}   

请问访问a,b,c 3种类型变量的效率从高到低依次是 ()
A. cba
B. abc
C. acb
D. bca

答案:B

17.下面四种内部排序算法中哪一种在最差情况下时间复杂度最高?( )
A. 快速排序
B. 冒泡排序
C. 堆排序
D. 归并排序

答案:B

18.下面哪个方法不属于NSObject的内省(Introspection)方法
A. init
B. isKindOfClass
C. responseToSelector
D. isMemberOfClass

答案:A

参考链接

19.下面哪个不属于对象数据序列化方法 ( )
A. JSON
B. Property List
C. XML
D. HTTP

答案:D

20.一个类的delegate(代理)的作用不正确的是
A. delegate中的函数在其他类中实现
B. 主要用于不同类型的对象之间一对一传递消息
C. 没有指派则不会触发
D. 可以一个对象的delegate指派给多个其他类型的对象

答案:D

上一篇下一篇

猜你喜欢

热点阅读