OC测试题

更新时间:2023-09-30 10:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

OC测试题

一、选择题(共80题,每题1分)

1、不会立刻使引用计数器改变的是:_________ A、release B、alloc C、autorelease D、retain

2、在OC中类的接口声明关键字为:_________ A、@import B、@interface C、@implemention D、@protocol 3、

NSString *name = [[NSString alloc]initWithString:@\张三\

NSLog(@\上述代码打印结果是:_________ A、-1 B、0 C、1

D、2

4、下列选项中全部属于对象的是:_________ A、我的白色iPhone4s;Mac Mini B、狗;老虎

C、邻居家的猫咪“贝贝”;我的弟弟“张三” D、保时捷;犀利哥 5、

NSDictionary *dict = [NSDictionary

dictionaryWithObject:@\NSLog(@\[dict release];

控制台中打印的最后一条信息会是:_________ A、a value B、aKey : a value C、崩溃信息 D、a value : aKey

6、现有如下集合,能准确删除“张三”的代码是:NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@\张三\左护法\李四\右使\唐sir\老大哥\答案_________

A、[peoples removeObjectForKey:@\左护法\

B、[peoples removeObject:@\张三\C、[peoples removeObjectAtIndex:0]; D、[peoples removeAllObjects];

7、关于类和对象的概念,下列属于对象的是:_________ A、奥迪A6 B、保龄球 C、世界冠军刘翔 D、西红柿

8、以下说法不正确的是:_________

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

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

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

D、copy:此属性只对实现NSCopying协议的对象有效(NSString)。拷贝工作由copy方法执行。 9、

NSArray *array = [NSArray

arrayWithObjects:@\NSMutableSet *set = [[NSMutableSet alloc]init];

for(NSString *str in array){ [set addObject:str];}

NSLog(@\控制台打印的结果是:__________ A、4 B、5 C、6 D、7

10、经过下列哪种操作后需要使用release方法。答案________ A、delegate B、assign C、retain D、dealloc

11、声明一个方法:提供Student对象数组按照学号升序排列的判断条件:答案: A、

-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent B、

-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent

C、-

(BOOL))compareWithNumberForAscendSort:(Student*)otherStudent

D、+(int)compareWithNumberForAscendSort:(Student 12、下列哪个选项不需要release方法: 答案:

A、[[NSString alloc]init];

B、[[NSString alloc] initWithString:@”hehe”]; C、[[NSArray arrayWithArray: arr1]; D、[[NSMutableDictionary alloc] init]; 13、OC中,所有类的根类是: 答案: A、NSObject B、NSDate C、NSCoding D、UIView

14、下列哪个选项与@synthesize配合使用: 答案: A、@end B、@interface C、@implementation D、@property

31、创建对象时,对象的内存和指向对象的指针分别分配在哪里: 答案: A、堆区,栈区 B、常量区,堆区 C、全局区,栈区 D、栈区,堆区

32、协议与委托的描述不正确的是: 答案:

A、委托是iOS的一种设计模式 B、协议里的方法默认是必须实现的

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

D、定义协议使用@protocol关键字 33、类何时调用dealloc方法: 答案:

A、[property release]后 B、[instance release]后 C、[super dealloc]时 D、当引用计数为0时. 34、

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

[formatter setAMSymbol:@\[formatter setPMSymbol:@\

[formatter setDateFormat:@\ NSString * currentDate = [formatter stringFromDate:[NSDate date]]; NSLog(@\打印结果是: 答案:

A、2012-05-31 17:45:04 PM B、12-05-31 17:45:04 C、2012-05-31 17:45:04 D、12-05-31 05:45:04 PM 35、NSRange的成员变量有: 答案:

A、location,length B、width,height C、location,height D、length,width

36、现有自定义类Student,下列选项中Student类的便利构造器编写正确的是:

答案

A、-(id) initWithName:(NSString *) newName{ Student * stu = [[Student alloc] init]; stu.Name = newName; return stu;}

B、+(id) studentWithName:(NSString *) newName{ Student * stu = [[Student alloc] init]; stu.Name

= newName; return stu;}

C、+(id) studentWithName:(NSString *) newName{ Student * stu = [[Student alloc] init]; stu.Name

= newName; [stu release]; return stu;}

D、+(id) studentWithName:(NSString *) newName{ Student * stu = [[Student alloc] init]; stu.Name

= newName; [stu autorelease]; return stu;}

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

答案:

A、-(id)personWithName:(NSString *)theName; B、-(id)personwithName:(NSString *)theName; C、+(id)personwithName:(NSString *)theName; D、+(id)personWithName:(NSString *)theName; 38、下列代码正确的输出结果是:NSString * urlStr = @\www.lanou3g.com

\[urlStr substringWithRange:range];NSLog(@\答案: A、lan B、lanou3g C、www.lan D、ou3g

39、在OC中扩展类的方法的形式不包括: 答案: A、继承 B、多态 C、类目 D、延展

40、关于KVC的描述正确的是: 答案:

A、KVC是指\B、是一种间接访问对象的属性的机制。 C、只能访问对象的属性。

D、当对象的属性值改变时,我们能收到一个通知。 41、以下说法正确的是: 答案:

A、求数组的内容的个数用length方法 B、字典是根据其位置来索引数据的 C、协议中定义的方法默认是必须实现的 D、定义类目必须要拿到自己类的源代码

42、简单类型的成员比如:int类型成员在使用@property()时,括号中应使用: 答案: A、assign B、copy C、retain D、auto 43、下列代码:

@property(nonatomic,assign)idmyObject; 答案:

A、是说myObject是Painting分类的一部分 B、是说myObject遵从于Painting分类

C、是说myObject遵从于Painting协议 D、不是合法的Objective-C语法格式 44、内存管理的关键字描述错误的是: 答案:

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

C、release可以减小对象的引用计数,但autorelease不可以 D、dealloc方法不能直接调用

45、下面程序段的输出结果是什么:NSMutableArray * arr1 = [[NSMutableArray alloc]

initWithObjects:@\[arr1 addObject:@\

[arr1 replaceObjectAtIndex:2 withObject:@\NSLog(@\答案: A、0,1,2,3 B、1,2,3,0 C、1,3,3,0 D、0,3,2,3

46、下列有效的键路径是: 答案:

A、[foo valueForKeyPath:@”1SomeMember”]

B、[foo valueForKeyPath:@”someMember.someAttribute”] C、[foo

valueForKeyPath:@”SOMEMEMBER@someAttibute”] D、[foo valueForKeyPath:@”some Member”]

47、有一个类Student,要求实现:定义一个实例初始化方法,初始化方法需要传入名字和性别: 答案:

A、-(id)initWithName:(NSString *)name sex:(NSString *)sex{ if (self){ self.name

= name; self.sex = sex; } return self;}

B、-(id)initWithName:(NSString *)name sex:(NSString *)sex{ if (self = [super init]) { self.name = name; self.sex = sex; } return self;}

C、-(id)initWithName:(NSString *)name sex:(NSString *)sex{ if (!self) { self.name

= name; self.sex = sex; } return self;}

D、-(id)initWithName:(NSString *)name sex:(NSString *)sex{ if (self = [super init]) { self.name = name; self.sex = sex; }}

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

A、集合内不能存不同类型的对象 B、集合内可以存整型的数

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

D、集合内只能存对象

49、NSString 和 NSMutableString的关系和区别描述不正确的是:答案:

A、NSString是不可变字符串,即本身内容不能被改变。 B、NSMutableString是可变字符串,即本身内容可修改。 C、NSMutableString是NSString的子类。 D、NSString和NSMutableString没有任何关系。 50、下面哪个选项无内存问题的: 答案:

A、-(NSString *)description{ NSString * str = [[NSString alloc] initWithFormat:@\B、-(NSString *)description{ NSString * str = [[NSString alloc] initWithFormat:@\release]; return str;}

C、-(NSString *)description{ NSString * str = [[NSString alloc] initWithFormat:@\autorelease]; return str;}

D、-(NSString *)description{ NSString * str = [NSString stringWithFormat:@\autorelease];}

51、关于NSSet描述正确的有: 答案:

A、NSSet可以存放任何数据类型的数据。 B、NSSet存放数据是无序的。 C、NSSet可以通过下标获取数据。 D、NSSet存放的数据是有序的。

52、下列哪个选项不能作为property的可选属性: 答案: A、alloc B、retain C、atomic D、strong

53、下面哪个选项是正确的: 答案:

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

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

D、可以在一个类的外部,调用这个类延展的方法 54、以下对类的描述不正确的是: 答案:

A、类的接口部分可以包含实例变量、属性和方法 B、可以把声明和实现都放到.h文件中

C、一对文件(Person.h Person.m)只能定义一个类 D、类比较抽象,对象比较具体

55、声明一个返回值为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-5 CBACC 6--10 ACAAA 11-15 ACADA 21-25 BCDBD 31-35 ACDDA 41-45 CACCB 51-55BABCD

16--20 CABCD 26--30 CDCDB

36-40 DDBBB

46-50 BBDDC

本文来源:https://www.bwwdw.com/article/ylfd.html

Top