[关闭]
@Rookie 2017-07-28T14:29:57.000000Z 字数 4284 阅读 1130

基础面试题3

未分类


在此输入正文

1.在实际开发当中程序员不可能只考虑一种尺寸,有时需要做必要的屏幕适配工作,甚至还会遇到横竖屏是不同的布局方式,在可视化编程当中,应当使用____

A、sizeClasses
B、size
C、sizeClass
D、classSize

答案:A

2.storyBoard怎么传值

A、- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {}
B、- (NSString *)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {}
C、- (NSArray *)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {}
D、- (NSDictionary *)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {}

答案:A

3.segue的三个重要属性

A、cell、sourceViewController、destinationViewController
B、identifier、source、destinationViewController
C、identifier、sourceViewController、destinationViewController
D、identifier、sourceViewController、Controller

答案:C

4.xib绘制的cell注册方式?

A、[self registerNib:(nullable UINib *) forCellReuseIdentifier:(nonnull NSString *)]
B、[tableView registerNib:(nullable UINib *) forCellReuseIdentifier:(nonnull NSString *)]
C、[ self.tableView registerNib:(nullable UINib *) forCellReuseIdentifier:(nonnull NSString *)]
D、以上都不对

答案:C

5.当程序从后台将要重新回到前台的时候,会先执行以下哪个方法:

A、
-(void)applicationDidFinishLaunching:(UIApplication*)application{}

B、
- (void)applicationWillEnterForeground:(UIApplication *)application{ }

C、
- (void)applicationDidBecomeActive:(UIApplication *)application{ }

D、
- (void)applicationWillTerminate:(UIApplication *)application{ }

答案:B

6.开始动画和结束动画的方法是().

A、startAnimating , stopAnimating;
B、animationImages , animationRepeatCount
C、stopAnimating , animationDuration
D、startAnimating , animationDuration

答案:A

7.当应用程序将要进入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了,此时会先执行以下哪个方法:()

A、- (void)applicationDidBecomeActive:(UIApplication *)application{ }
B、- (void)applicationDidEnterBackground:(UIApplication *)application{ }
C、- (void)applicationWillTerminate:(UIApplication *)application{ }
D、- (void)applicationWillResignActive:(UIApplication *)application{ }

答案:D

8.以下关于视图的frame与bounds的理解错误的是:()

A、bounds是指这个view在window坐标系的坐标和大小
B、frame指的是这个view在它superview的坐标系的坐标和大小
C、frame和bounds是UIView中的两个属性(property)。
D、bounds是以自身左上角的点为原点的坐标系,frame是以父视图左上角的点为原点的坐标系。

答案:A

9.下面对UIView、UIWindow和CALayer理解错误的是:

A、UIView继承于UIResponder
B、UIResponder继承于NSObject,UIView可以响应用户事件。
C、UIResponder继承与NSObject,CALayer继承于NSObject,CALayer可以响应事件。
D、UIView是用来显示内容的,可以处理用户事件,CALayer是用来绘制内容的,依赖与UIView来进行显示

答案:C

10.对响应者链处理原则描述不正确的是().

A、最顶层的视图如果不能处理这个事件或动作消息,就传递给UIWindow对象来处理。
B、在这个视图层次中的每个后续的父视图遵循上述的模式,如果它不能处理这个事件或动作消息的话。
C、如果一个视图或者它的视图控制器不能处理这个事件或动作消息,它将传递给该视图的子视图。
D、点击检测视图或者第一响应者传递事件或动作消息给它的视图控制器(如果它有的话);如果没有一个视图控制器,就传递给它的父视图。

答案:C

11.已知数据元素为(34,76,45,18,26,54,92,65),按照依次插入节点的方法生成一棵二叉排序树,则该树的深度为()

A.7

B.6

C.4

D.5

  1. D(正确)
  2. 根据二叉排序树的性质:
  3. 1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  4. 2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  5. 3)左、右子树也分别为二叉排序树;
  6. 所以根据性质:第一个数34为根节点;
  7. 第二个树:76>34,所以为34的右孩子;
  8. 第三个数45:因为34<45<76,所以4576的左孩子;
  9. 4个数1818<34所以为根节点的左孩子;
  10. 第五个数26:因为18<26<34,所以26在根节点的左子树上且为节点18的右孩子;
  11. 第六个数54:因为54>34,所以在根节点的右子树上,又45<54<76,所以5445的右孩子;
  12. 7个数92:因为92>76>34,所以9276的右孩子;
  13. 8个数65:首先64>34,所以为右子树上的节点,又65<76,所以为76左子树上的节点,又65>54>45,所以为54的右孩子

12.输入序列是ABC,输出序列变为BCA时,经过的栈操作为()
A.push,push,push,pop,pop,pop

B.push,push,pop,push,pop,pop

C.push,pop,push,push,pop,pop

D.push,push,pop,pop,push,pop

  1. 正确答案: B

13.关于浅复制和深复制的说法,下列说法正确的是()
A.浅层复制:只复制指向对象的指针,而不复制引用对象本身。

B.深层复制:复制引用对象本身。

C.如果是浅复制,若类中存在成员变量指针,修改一个对象一定会影响另外一个对象

D.如果是深拷贝,修改一个对象不会影响到另外一个对象

  1. 正确答案: A B C D

14.下面程序段的输出结果是什么:

  1. int a = 10;
  2. NSNumber *b = [[NSNumber alloc] initWithInt:a];
  3. NSLog(@"%d", a+++b);

A.21

B.20

C.30

D.编译错误

  1. 答案:(D
  2. // 输出时类型不匹配,b是一个对象

15.声明一个返回值为NSArray,并且带两个字符串对象的BLOCK类型变量:

A.NSArray (*aBlock)(NSString * str,NSString *str2)

B.NSArray ^(*aBlock)(NSString * str,NSString *str2)

C.NSArray (^aBlock)(NSString * str,NSString *str2)

D.NSArray *(^aBlock)(NSString * str,NSString *str2)

  1. 答案:(D
  2. //block用^来修饰

16.下面程序段的输出结果是什么:
NSMutableArray * arr1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3", nil];[arr1 addObject:@"0"];
[arr1 replaceObjectAtIndex:2 withObject:@"3"];
NSLog(@"%@",arr1);

A.0,1,2,3

B.1,2,3,0

C.1,3,3,0

D.0,3,2,3

  1. 答案:(B
  2. //下标为2的对象是@"3",替换的对象还是@"3"

17.关于NSOperation queue的说法,正确的是?()

A.主要用于多线程并发处理

B.它是一个队列,有严格的先进先出

C.它不会遵守严格的先进先出

D.NSOperationQueue可以通过调整权重来调整队列的执行顺序

  1. 正确答案: A C D

18.能够匹配 [a-zA-Z]([a-zA-Z]|\d|_){7,9} 此正则表达式的字符串是 ()

A.TTON.CO.123

B.TTON_CO

C.TTON_CO123

D.TTON_CO.TTON.CO123

  1. 正确答案: C
  2. 长度为8-10位的用户密码,以字母开头,包含字母、数字、下划线的组合

19.下列对事件概述描述错误的是().

A、事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象。
B、系统将事件按照特定的路径传递给可以对其进行处理的对象。
C、事件对象中仅包含三点触摸序列相对应的所有触摸对象
D、在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件。

答案:C

20.使用imageNamed方法创建UIImage对象时.与普通的init方法有什么区别.

A、没有区别,只是为了方便
B、imageNamed方法只是创建了一个指针,没有分配其他内存
C、imageNamed方法将图片加载到内存中后不再释放
D、imageNamed方法将使用完图片后立即释放

答案:C

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注