OC测试题

更新时间:2024-06-03 11:14: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

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/dk46.html

Top