ObjectiveC面试题.docx

上传人:b****1 文档编号:15063593 上传时间:2023-06-30 格式:DOCX 页数:38 大小:27.03KB
下载 相关 举报
ObjectiveC面试题.docx_第1页
第1页 / 共38页
ObjectiveC面试题.docx_第2页
第2页 / 共38页
ObjectiveC面试题.docx_第3页
第3页 / 共38页
ObjectiveC面试题.docx_第4页
第4页 / 共38页
ObjectiveC面试题.docx_第5页
第5页 / 共38页
ObjectiveC面试题.docx_第6页
第6页 / 共38页
ObjectiveC面试题.docx_第7页
第7页 / 共38页
ObjectiveC面试题.docx_第8页
第8页 / 共38页
ObjectiveC面试题.docx_第9页
第9页 / 共38页
ObjectiveC面试题.docx_第10页
第10页 / 共38页
ObjectiveC面试题.docx_第11页
第11页 / 共38页
ObjectiveC面试题.docx_第12页
第12页 / 共38页
ObjectiveC面试题.docx_第13页
第13页 / 共38页
ObjectiveC面试题.docx_第14页
第14页 / 共38页
ObjectiveC面试题.docx_第15页
第15页 / 共38页
ObjectiveC面试题.docx_第16页
第16页 / 共38页
ObjectiveC面试题.docx_第17页
第17页 / 共38页
ObjectiveC面试题.docx_第18页
第18页 / 共38页
ObjectiveC面试题.docx_第19页
第19页 / 共38页
ObjectiveC面试题.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ObjectiveC面试题.docx

《ObjectiveC面试题.docx》由会员分享,可在线阅读,更多相关《ObjectiveC面试题.docx(38页珍藏版)》请在冰点文库上搜索。

ObjectiveC面试题.docx

ObjectiveC面试题

Objective-C面试题

※选择题(共80题,每题1分。

1、

OC中与alloc相反的方法是:

答案:

(C)

A、release

B、retain

C、dealloc

D、free

2、

必须实现的协议方法使用:

关键字声明.

答案:

(C)

A、@property

B、@interface

C、@required

D、@protocol

3、

NSArray*array=[NSArrayarrayWithObjects:

@"1",@"2",@"3",@"4",@"2",nil];

NSMutableSet*set=[[NSMutableSetalloc]init];

for(NSString*strinarray)

{

[setaddObject:

str];

}

NSLog(@"%lu",[setcount]);

[setrelease];

控制台打印的结果是:

答案:

(A)

A、4

B、5

C、6

D、7

4、

声明一个方法:

提供Student对象数组按照学号升序排列的判断条件:

答案:

(A)

A、-(NSComparisonResult)compareWithNumberForAscendSort:

(Student*)otherStudent

B、-(NSInteger)compareWithNumberForAscendSort:

(Student*)otherStudent

C、-(BOOL))compareWithNumberForAscendSort:

(Student*)otherStudent

D、+(int)compareWithNumberForAscendSort:

(Student

5、

下列选项中全部属于对象的是:

答案:

(C)

A、我的白色iPhone4s;MacMini

B、狗;老虎

C、邻居家的猫咪“贝贝”;我的弟弟“张三”

D、保时捷;犀利哥

6、

关于集合描述不正确的是:

答案:

(A)

A、所有的集合都可以添加元素。

B、集合分为可变集合、不可变集合。

C、数组、字典、NSSet这三种集合存储数据的方式不同。

D、所有集合都能保存id类型数据。

7、

NSDictionary*dict=[NSDictionarydictionaryWithObject:

@"avalue"forKey:

@"aKey"];

NSLog(@"%@",[dictobjectForKey:

@"aKey"]);

[dictrelease];

控制台中打印的最后一条信息会是:

答案:

(C)

A、avalue

B、aKey:

avalue

C、崩溃信息

D、avalue:

aKey

8、

向Xcode控制台输出一个字符串应该用:

答案:

(A)

A、NSLog()

B、Printf()

C、NSPrintf()

D、scanf()

9、

名为print:

:

的方法有几个传入参数:

答案:

(C)

A、0

B、1

C、2

D、3

10、

下列哪个选项与@synthesize配合使用:

答案:

(D)

A、@end

B、@interface

C、@implementation

D、@property

11、

面向对象的特性不包括:

答案:

(D)

A、封装

B、继承

C、多态

D、构造

12、

OC中,所有类的根类是:

答案:

(A)

A、NSObject

B、NSDate

C、NSCoding

D、UIView

13、

现有如下集合,能准确删除“张三”的代码是:

NSMutableDictionary*peoples=[NSMutableDictionarydictionaryWithObjectsAndKeys:

@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥",nil];

答案:

(A)

A、[peoplesremoveObjectForKey:

@"左护法"];

B、[peoplesremoveObject:

@"张三"];

C、[peoplesremoveObjectAtIndex:

0];

D、[peoplesremoveAllObjects];

14、

使用Objective-C语言输出“ThisisaObjective-Cprogram.”正确的是:

答案:

(D)

A、NSLog(@"%s",ThisisaObjective-Cprogram.);

B、NSLog(@"%@",ThisisaObjective-Cprogram.);

C、NSLog(@"ThisisaObjective-Cprogram.",%@);

D、NSLog(@"ThisisaObjective-Cprogram.");

15、

下列说法中错误的是:

答案:

(C)

A、Objective-C不用"函数调用",而用互相传递讯息.

B、Objective-C一个完整的类分为interface和implementation两块

C、Objective-C对象使用new分配内存,用delete释放

D、Objective-C协议分为非正式协议和正式协议

16、

用哪个关键字定义协议中必须实现的方法:

答案:

(D)

A、@optional

B、@protected

C、@private

D、不用写关键字

17、

下面关于类概念的描述中,错误的是:

答案:

(D)

A、类是抽象数据类型的实现

B、类是具有共同行为的若干对象的统一描述体

C、类是创建对象的模板

D、类就是C语言中的结构体类型

18、

下面哪些选项是属性的正确声明方式:

答案:

(C)

A、@property(nonatomic,retain)NSStringmyString;

B、@property(nonatomic,assign)NSString*myString;

C、@property(nonatomic,assign)intmynumber;

D、@property(nonatomic,retain)intmynumber;

19、

NSString*name=[[NSStringalloc]initWithString:

@"张三"];

NSLog(@"%d",[nameretainCount]);

上述代码打印结果是:

答案:

(A)

A、-1

B、0

C、1

D、2

20、

不会立刻使引用计数器改变的是:

答案:

(C)

A、release

B、alloc

C、autorelease

D、retain

21、

OC中的委托最好声明成:

答案:

(B)

A、retain

B、assign

C、copy

D、readonly

22、

经过下列哪种操作后需要使用release方法。

答案:

(C)

A、delegate

B、assign

C、retain

D、dealloc

23、

在OC中类的接口声明关键字为:

答案:

(B)

A、@import

B、@interface

C、@implemention

D、@protocol

24、

-(id)setName:

(NSString*)name:

(NSString*)sexage:

(int)age的方法名是:

答案:

(C)

A、-(id)setName:

(NSString*)name:

(NSString*)sexage:

(int)age

B、-setName:

name:

sexage:

age

C、setName:

:

age:

D、setName:

name:

age:

25、

以下说法不正确的是:

答案:

(A)

A、nonatomic:

提供多线程保护,提高性能,在没有使用多线程的编程中可以选择使用。

B、assign:

属性默认值。

说明设置器直接进行赋值,针对基础数据类型(NSInteger,CGFloat)和C数据类型(int,float,double,char)等等。

C、retain:

此属性只用于obj-c的对象类型,对参数进行release旧值,再retain新值。

D、copy:

此属性只对实现NSCopying协议的对象有效(NSString)。

拷贝工作由copy方法执行。

26、

关于类和对象的概念,下列属于对象的是:

答案:

(C)

A、奥迪A6

B、保龄球

C、世界冠军刘翔

D、西红柿

27、

Objective-C的代码文件的后缀为:

答案:

(B)

A、.cpp

B、.m

C、.pl

D、.c

28、

Objective-C中包含一个自定义的头文件应该使用:

答案:

(C)

A、#include""

B、#include<>

C、#import""

D、#import<>

29、

下列哪个选项不需要release方法:

答案:

(C)

A、[[NSStringalloc]init];

B、[[NSStringalloc]initWithString:

@”hehe”];

C、[[NSArrayarrayWithArray:

arr1];

D、[[NSMutableDictionaryalloc]init];

30、

NSMutableString*str=[[NSMutableStringalloc]initWithFormat:

@"123"];

NSLog(@"str=%p",str);

[strappendFormat:

@"456"];

NSLog(@"str=%p",str);

上面代码对字符串str进行拼接后,2次打印的地址是否相同:

答案:

(A)

A、相同

B、不同

C、随机打印

D、有时相同,有时不同

31、

下面哪个选项对集合的描述是正确的:

答案:

(D)

A、集合内不能存不同类型的对象

B、集合内可以存整型的数

C、字典内键值可以相同,但是每个键值对应的对象必须不同

D、集合内只能存对象

32、

下面哪个选项无内存问题的:

答案:

(C)

A、

-(NSString*)description{

NSString*str=[[NSStringalloc]initWithFormat:

@"description"];

returnstr;

}

B、

-(NSString*)description{

NSString*str=[[NSStringalloc]initWithFormat:

@"description"];

[strrelease];

returnstr;

}

C、

-(NSString*)description{

NSString*str=[[NSStringalloc]initWithFormat:

@"description"];

[strautorelease];

returnstr;

}

D、

-(NSString*)description{

NSString*str=[NSStringstringWithFormat:

@"description"];

return[strautorelease];

}

33、

关于KVC的描述正确的是:

答案:

(B)

A、KVC是指"Key-ValueObserving"

B、是一种间接访问对象的属性的机制。

C、只能访问对象的属性。

D、当对象的属性值改变时,我们能收到一个通知。

34、

关于协议描述不正确的是:

答案:

(D)

A、协议分正式和非正式协议。

B、在要求确认协议的类必须实现协议中的方法时,可以使用@required。

C、一个协议可以被多个类确认。

D、协议中声明的方法,默认是@optional的。

35、

关于类目的说法正确的有:

答案:

(A)

A、类目可以为所有的类添加新方法。

B、类目中添加的方法比原类中定义的方法级别要低。

C、定义类目需要使用关键字category。

D、类目可以随意使用。

36、

下面描述正确的选项是:

答案:

(B)

A、当计数器为1时,dealloc方法由系统自动调用

B、一个对象在引用计数变为0时,会调用自己的dealloc方法

C、在dealloc方法里,应该在[superdealloc]后释放本类所拥有的对象

D、开启ARC后,可以重载dealloc,必须在dealloc里写[superdealloc]方法

37、

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

NSArray*arr1=[[NSArrayalloc]initWithObjects:

@"1",@"2",@"3",nil];

NSString*str;

str=[arr1objectAtIndex:

2];

NSLog(@"%@",str);

答案:

(C)

A、1

B、2

C、3

D、程序崩溃

38、

@interfacePerson:

NSObject

@property(nonatomic,retain)NSString*name;

@end

上面声明一个Person类

Person*per=[[Personalloc]init];

=[[NSStringalloc]initWithFormat:

@"张三"];

NSLog(@"=%d",[retainCount]);

答案:

(D)

A、=-1;

B、=0;

C、=1;

D、=2;

39、

以下说法正确的是:

答案:

(C)

A、求数组的内容的个数用length方法

B、字典是根据其位置来索引数据的

C、协议中定义的方法默认是必须实现的

D、定义类目必须要拿到自己类的源代码

40、

关于类目、延展的描述错误的是:

答案:

(B)

A、延展主要为类提供“私有”方法

B、类目、延展不但能为类添加方法,而且都可以添加新的实例变量

C、无论能否拿到类的源码,类目都可以对其扩展

D、类目和延展声明语法不同

41、

Objective-C语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:

答案:

(C)

A、@public

B、@private

C、@protected

D、@friendly

42、

下列代码:

@property(nonatomic,assign)idmyObject;

答案:

(C)

A、是说myObject是Painting分类的一部分

B、是说myObject遵从于Painting分类

C、是说myObject遵从于Painting协议

D、不是合法的Objective-C语法格式

43、

在OC中扩展类的方法的形式不包括:

答案:

(B)

A、继承

B、多态

C、类目

D、延展

44、

下列代码正确的输出结果是:

NSString*urlStr=@"";

NSRangerange=NSMakeRange(4,7);

NSString*prefix=[urlStrsubstringWithRange:

range];

NSLog(@"%@",prefix);

答案:

(B)

A、lan

B、lanou3g

C、

D、ou3g

45、

自定义一个Person类,下面哪个选项是规范的便利构造器声明方式:

答案:

(D)

A、-(id)personWithName:

(NSString*)theName;

B、-(id)personwithName:

(NSString*)theName;

C、+(id)personwithName:

(NSString*)theName;

D、+(id)personWithName:

(NSString*)theName;

46、

下面哪个选项是正确的:

答案:

(B)

A、用继承可以扩展一个类,要调用扩展的方法,既可以用父类,也可以用子类

B、用类目可以扩展一个类,可以直接用该类或该类的实例对象,去调用该类目扩展的方法

C、延展就是类目

D、可以在一个类的外部,调用这个类延展的方法

47、

现要求声明一个集合,并将字符串添加到集合中,编写了如下代码,其中错误的是第几行:

NSString*aString=[[NSStringalloc]initWithString:

@"iLanou"];

(1)

[aStringautorelease];

(2)

NSArray*arr=[NSArrayarray];(3)

[arraddObject:

aString];(4)

NSLog(@"string=%lu",[aStringretainCount]);

答案:

(C)

A、

(1)

B、

(2)

C、(3)

D、(4)

48、

关于KVC的描述正确的是:

答案:

(A)

A、KVC是指“键-值-编码”。

B、是一种直接访问对象的属性的机制。

C、只能访问对象的属性。

D、当对象的属性值改变时,我们能收到一个通知。

49、

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

NSMutableArray*arr1=[[NSMutableArrayalloc]initWithObjects:

@"1",@"2",@"3",nil];

[arr1addObject:

@"0"];

[arr1replaceObjectAtIndex:

2withObject:

@"3"];

NSLog(@"%@",arr1);

答案:

(B)

A、0,1,2,3

B、1,2,3,0

C、1,3,3,0

D、0,3,2,3

50、

协议与委托的描述不正确的是:

答案:

(C)

A、委托是iOS的一种设计模式

B、协议里的方法默认是必须实现的

C、类接受了多个协议,这些协议写在父类后面的<>内,多个协议之间用“、”隔开

D、定义协议使用@protocol关键字

51、

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

NSMutableDictionary*dic=[[NSMutableDictionaryalloc]initWithObjectsAndKeys:

@"1",@"2",@"2",@"3",@"3",@"4",nil];

[dicremoveObjectForKey:

@"3"];

NSLog(@"%@",dic);

答案:

(C)

A、1=23=4

B、1=22=3

C、2=14=3

D、2=13=2

52、

NSRange的成员变量有:

答案:

(A)

A、location,length

B、width,height

C、location,height

D、length,width

53、

NSDateFormatter*formatter=[[NSDateFormatteralloc]init];

[formattersetAMSymbol:

@"AM"];

[formattersetPMSymbol:

@"PM"];

[formattersetDateFormat:

@"YY-MM-ddhh:

mm:

ssaaa"];

NSString*currentDate=[formatterstringFromDate:

[NSDatedate]];

NSLog(@"%@",currentDate);

打印结果是:

答案:

(D)

A、2012-05-3117:

45:

04PM

B、12-05-3117:

45:

04

C、2012-05-3117:

45:

04

D、12-05-3105:

45:

04PM

54、

内存管理的关键字描述错误的是:

答案:

(C)

A、retaincount是指对象的引用计数。

B、retain关键字可以增大对象的引用计数。

C、release可以减小对象的引用计数,但autorelease不可以

D、dealloc方法不能直接调用

55、

以下对类的描述不正确的是:

答案:

(C)

A、类的接口部分可以包含实例变量、属性和方法

B、可以把声明和实现都放到.h文件中

C、一对文件()只能定义一个类

D、类比较抽象,对象比较具体

56、

关于NSSet描述正确的有:

答案:

(B)

A、NSSet可以存放任何数据类型的数据。

B、NSSet存放数据是无序的。

C、NSSet可以通过下标获取数据。

D、NSSet存放的数据是有序的。

57、

简单类型的成员比如:

int类型成员在使用@property()时,括号中应使用:

答案:

(A)

A、assign

B、copy

C、retain

D、auto

58、

有一个类Student,要求实现:

定义一个实例初始化方法,初始化方法需要传入名字和性别:

答案:

(B)

A、

-(id)initWithName:

(NSString*)namesex:

(NSString*)sex{

if(self){

=name;

=sex;

}

returnself;

}

B、

-(id)initWithName:

(NSString*)namesex:

(NSString*)sex{

if(self=[superinit]){

=name;

=sex;

}

returnself;

}

C、

-(id)initWithName:

(NSString*)namesex:

(NSString*)sex{

if(!

self){

=name;

=sex;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2