您好,欢迎访问三七文档
Objective-C考试※选择题(共80题,每题1分)1、OC中与alloc相反的方法是:答案:(C)A、releaseB、retainC、deallocD、free2、必须实现的协议方法使用:关键字声明.答案:(C)A、@propertyB、@interfaceC、@requiredD、@protocol3、NSArray*array=[NSArrayarrayWithObjects:@1,@2,@3,@4,@2,nil];NSMutableSet*set=[[NSMutableSetalloc]init];for(NSString*strinarray){[setaddObject:str];}NSLog(@%lu,[setcount]);[setrelease];控制台打印的结果是:答案:(A)A、4B、5C、6D、74、声明一个方法:提供Student对象数组按照学号升序排列的判断条件:答案:(A)A、-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudentB、-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudentC、-(BOOL))compareWithNumberForAscendSort:(Student*)otherStudentD、+(int)compareWithNumberForAscendSort:(Student5、下列选项中全部属于对象的是:答案:(C)A、我的白色iPhone4s;MacMiniB、狗;老虎C、邻居家的猫咪“贝贝”;我的弟弟“张三”D、保时捷;犀利哥6、关于集合描述不正确的是:答案:(A)A、所有的集合都可以添加元素。B、集合分为可变集合、不可变集合。C、数组、字典、NSSet这三种集合存储数据的方式不同。D、所有集合都能保存id类型数据。7、NSDictionary*dict=[NSDictionarydictionaryWithObject:@avalueforKey:@aKey];NSLog(@%@,[dictobjectForKey:@aKey]);[dictrelease];控制台中打印的最后一条信息会是:答案:(C)A、avalueB、aKey:avalueC、崩溃信息D、avalue:aKey8、向Xcode控制台输出一个字符串应该用:答案:(A)A、NSLog()B、Printf()C、NSPrintf()D、scanf()9、名为print::的方法有几个传入参数:答案:(C)A、0B、1C、2D、310、下列哪个选项与@synthesize配合使用:答案:(D)A、@endB、@interfaceC、@implementationD、@property11、面向对象的特性不包括:答案:(D)A、封装B、继承C、多态D、构造12、OC中,所有类的根类是:答案:(A)A、NSObjectB、NSDateC、NSCodingD、UIView13、现有如下集合,能准确删除“张三”的代码是: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、@optionalB、@protectedC、@privateD、不用写关键字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、-1B、0C、1D、220、不会立刻使引用计数器改变的是:答案:(C)A、releaseB、allocC、autoreleaseD、retain21、OC中的委托最好声明成:答案:(B)A、retainB、assignC、copyD、readonly22、经过下列哪种操作后需要使用release方法。答案:(C)A、delegateB、assignC、retainD、dealloc23、在OC中类的接口声明关键字为:答案:(B)A、@importB、@interfaceC、@implementionD、@protocol24、-(id)setName:(NSString*)name:(NSString*)sexage:(int)age的方法名是:答案:(C)A、-(id)setName:(NSString*)name:(NSString*)sexage:(int)ageB、-setName:name:sexage:ageC、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、奥迪A6B、保龄球C、世界冠军刘翔D、西红柿27、Objective-C的代码文件的后缀为:答案:(B)A、.cppB、.mC、.plD、.c28、Objective-C中包含一个自定义的头文件应该使用:答案:(C)A、#includeB、#includeC、#importD、#import29、下列哪个选项不需要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-ValueObservingB、是一种间接访问对象的属性的机制。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、1B、2C、3D、程序崩溃38、@interfacePerson:NSObject@property(nonatomic,retain)NSString*n
本文标题:OC试题-2
链接地址:https://www.777doc.com/doc-4006161 .html