大家好,又见面了,我是全栈君。
1、
不会立马使引用计数器改变的是:
答案:(C)
A、release
B、alloc
C、autorelease
D、retain
2、
在OC中类的接口声明keyword为:
答案:(B)
A、@import
B、@interface
C、@implemention
D、@protocol
3、
NSString *name = [[NSString alloc]initWithString:@”张三”];NSLog(@”%d”,[name retainCount]);上述代码打印结果是:
答案:(A)
A、-1
B、0
C、1
D、2
4、
下列选项中所有属于对象的是:
答案:(C)
A、我的白色iPhone4s;Mac Mini
B、狗;老虎
C、邻居家的猫咪“贝贝”;我的弟弟“张三”
D、保时捷;犀利哥
5、
NSDictionary *dict = [NSDictionary dictionaryWithObject:@”a value” forKey:@”aKey”];NSLog(@”%@”,[dict objectForKey:@”aKey”]);[dict release];控制台中打印的最后一条信息会是:
答案:(C)
A、a value
B、aKey : a value
C、崩溃信息
D、a value : aKey
6、
现有例如以下集合,能准确删除“张三”的代码是:NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@”张三”,@”左护法”,@”李四”,@”右使”,@”唐sir”,@”老大哥”, nil];
答案:(A)
A、[peoples removeObjectForKey:@”左护法”];
B、[peoples removeObject:@”张三”];
C、[peoples removeObjectAtIndex:0];
D、[peoples removeAllObjects];
7、
关于类和对象的概念,下列属于对象的是:
答案:(C)
A、奥迪A6
B、保龄球
C、世界冠军刘翔
D、西红柿
8、
下面说法不对的是:
答案:(A)
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:@”1″,@”2″,@”3″,@”4″,@”2″, nil];NSMutableSet *set = [[NSMutableSet alloc]init];for(NSString *str in array){ [set addObject:str];}NSLog(@”%lu”,[set count]);[set release];控制台打印的结果是:
答案:(A)
A、4
B、5
C、6
D、7
10、
经过下列哪种操作后须要使用release方法。
答案:(C)
A、delegate
B、assign
C、retain
D、dealloc
11、
声明一个方法:提供Student对象数组依照学号升序排列的推断条件:
答案:(A)
A、-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent
B、-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent
C、- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent
D、+(int)compareWithNumberForAscendSort:(Student
12、
下列哪个选项不须要release方法:
答案:(C)
A、[[NSString alloc]init];
B、[[NSString alloc] initWithString:@”hehe”];
C、[[NSArray arrayWithArray: arr1];
D、[[NSMutableDictionary alloc] init];
13、
OC中,全部类的根类是:
答案:(A)
A、NSObject
B、NSDate
C、NSCoding
D、UIView
14、
下列哪个选项与@synthesize配合使用:
答案:(D)
A、@end
B、@interface
C、@implementation
D、@property
15、
向Xcode控制台输出一个字符串应该用:
答案:(A)
A、NSLog()
B、Printf()
C、NSPrintf()
D、scanf()
16、
必须实现的协议方法使用:keyword声明.
答案:(C)
A、@property
B、@interface
C、@required
D、@protocol
17、
NSMutableString * str = [[NSMutableString alloc] initWithFormat:@”123″];NSLog(@”str = %p”,str);[str appendFormat:@”456″];NSLog(@”str = %p”,str);上面代码对字符串str进行拼接后,2次打印的地址是否同样:
答案:(A)
A、同样
B、不同
C、随机打印
D、有时同样,有时不同
18、
Objective-C的代码文件的后缀为:
答案:(B)
A、.cpp
B、.m
C、.pl
D、.c
19、
下列说法中错误的是:
答案:(C)
A、Objective-C不用”函数调用”,而用互相传递讯息.
B、Objective-C一个完整的类分为interface和implementation两块
C、Objective-C对象使用new分配内存,用delete释放
D、Objective-C协议分为非正式协议和正式协议
20、
NSArray *array = [NSArray arrayWithObjects:@”one”, @”two”, @”three”,nil];NSLog(@”%@”,[array objectAtIndex:1]);NSLog(@”%@”,[array objectAtIndex:3]);控制台中打印的最后一条信息会是:
答案:(D)
A、one
B、two
C、three
D、崩溃信息
21、
OC中布尔(BOOL)类型的变量的值仅仅有:
答案:(B)
A、1/0
B、YES/NO
C、true/false
D、1/-1
22、
Objective-C中包括一个自己定义的头文件应该使用:
答案:(C)
A、#include “”
B、#include<>
C、#import “”
D、#import<>
23、
在OC中。类中成员变量的可见度(訪问权限)不包含:
答案:(D)
A、@public
B、@protected
C、@private
D、@optional
24、
OC中的托付最好声明成:
答案:(B)
A、retain
B、assign
C、copy
D、readonly
25、
面向对象的特性不包含:
答案:(D)
A、封装
B、继承
C、多态
D、构造
26、
OC中与alloc相反的方法是:
答案:(C)
A、release
B、retain
C、dealloc
D、free
27、
用哪个keyword定义协议中必须实现的方法:
答案:(D)
A、@optional
B、@protected
C、@private
D、不用写keyword
28、
以下哪些选项是属性的正确声明方式:
答案:(C)
A、@property(nonatomic,retain)NSString myString;
B、@property(nonatomic,assign)NSString * myString;
C、@property(nonatomic,assign)int mynumber;
D、@property(nonatomic,retain)int mynumber;
29、
对于Objective-C中的方括号“[]”的作用,下列说法错误的是:
答案:(D)
A、用于通知某个对象该做什么
B、方括号内第一项是对象,其余部分是你须要对象运行的操作
C、在Objective-C中通知对象运行某种操作,称为发送消息.(也叫调用方法)
D、方括号里能够为空
30、
下面代码运行后,person对象的retain count是多少:Person * person = [[Person alloc] init];[person retain]; [person release];
答案:(B)
A、0
B、1
C、2
D、3
31、
创建对象时,对象的内存和指向对象的指针分别分配在哪里:
答案:(A)
A、堆区,栈区
B、常量区,堆区
C、全局区。栈区
D、栈区。堆区
32、
协议与托付的描写叙述不对的是:
答案:(C)
A、托付是iOS的一种设计模式
B、协议里的方法默认是必须实现的
C、类接受了多个协议。这些协议写在父类后面的<>内,多个协议之间用“、”隔开
D、定义协议使用@protocolkeyword
33、
类何时调用dealloc方法:
答案:(D)
A、[property release]后
B、[instance release]后
C、[super dealloc]时
D、当引用计数为0时.
34、
NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter setAMSymbol:@”AM”];[formatter setPMSymbol:@”PM”];[formatter setDateFormat:@”YY-MM-dd hh:mm:ss aaa”]; NSString * currentDate = [formatter stringFromDate:[NSDate date]]; NSLog(@”%@”,currentDate);打印结果是:
答案:(D)
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)
A、location,length
B、width,height
C、location,height
D、length,width
36、
现有自己定义类Student,下列选项中Student类的便利构造器编写正确的是:
答案:(D)
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类,以下哪个选项是规范的便利构造器声明方式:
答案:(D)
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“;NSRange range = NSMakeRange(4,7);NSString *prefix = [urlStr substringWithRange:range];NSLog(@”%@”,prefix);
答案:(B)
A、lan
B、lanou3g
C、www.lan
D、ou3g
39、
在OC中扩展类的方法的形式不包含:
答案:(B)
A、继承
B、多态
C、类目
D、延展
40、
关于KVC的描写叙述正确的是:
答案:(B)
A、KVC是指”Key-Value Observing”
B、是一种间接訪问对象的属性的机制。
C、仅仅能訪问对象的属性。
D、当对象的属性值改变时,我们能收到一个通知。
41、
下面说法正确的是:
答案:(C)
A、求数组的内容的个数用length方法
B、字典是依据其位置来索引数据的
C、协议中定义的方法默认是必须实现的
D、定义类目必需要拿到自己类的源码
42、
简单类型的成员比方:int类型成员在使用@property()时,括号里应使用:
答案:(A)
A、assign
B、copy
C、retain
D、auto
43、
下列代码:@property(nonatomic,assign)id<Painting>myObject;
答案:(C)
A、是说myObject是Painting分类的一部分
B、是说myObject遵从于Painting分类
C、是说myObject遵从于Painting协议
D、不是合法的Objective-C语法格式
44、
内存管理的keyword描写叙述错误的是:
答案:(C)
A、retaincount是指对象的引用计数。
B、retainkeyword能够增大对象的引用计数。
C、release能够减小对象的引用计数,但autorelease不能够
D、dealloc方法不能直接调用
45、
以下程序段的输出结果是什么:NSMutableArray * arr1 = [[NSMutableArray alloc] initWithObjects:@”1″,@”2″,@”3″, nil];[arr1 addObject:@”0″];[arr1 replaceObjectAtIndex:2 withObject:@”3″];NSLog(@”%@”,arr1);
答案:(B)
A、0,1,2,3
B、1,2,3,0
C、1,3,3,0
D、0,3,2,3
46、
下列有效的键路径是:
答案:(B)
A、[foo valueForKeyPath:@”1SomeMember”]
B、[foo valueForKeyPath:@”someMember.someAttribute”]
C、[foo valueForKeyPath:@”SOMEMEMBER@someAttibute”]
D、[foo valueForKeyPath:@”some Member”]
47、
有一个类Student,要求实现:定义一个实例初始化方法,初始化方法须要传入名字和性别:
答案:(B)
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、
以下哪个选项对集合的描写叙述是正确的:
答案:(D)
A、集合内不能存不同类型的对象
B、集合内能够存整型的数
C、字典内键值能够同样。可是每一个键值相应的对象必须不同
D、集合内仅仅能存对象
49、
NSString 和 NSMutableString的关系和差别描写叙述不对的是:
答案:(D)
A、NSString是不可变字符串,即本身内容不能被改变。
B、NSMutableString是可变字符串。即本身内容可改动。
C、NSMutableString是NSString的子类。
D、NSString和NSMutableString没有不论什么关系。
50、
以下哪个选项无内存问题的:
答案:(C)
A、-(NSString *)description{ NSString * str = [[NSString alloc] initWithFormat:@”description”]; return str;}
B、-(NSString *)description{ NSString * str = [[NSString alloc] initWithFormat:@”description”]; [str release]; return str;}
C、-(NSString *)description{ NSString * str = [[NSString alloc] initWithFormat:@”description”]; [str autorelease]; return str;}
D、-(NSString *)description{ NSString * str = [NSString stringWithFormat:@”description”]; return [str autorelease];}
51、
关于NSSet描写叙述正确的有:
答案:(B)
A、NSSet能够存放不论什么数据类型的数据。
B、NSSet存放数据是无序的。
C、NSSet能够通过下标获取数据。
D、NSSet存放的数据是有序的。
52、
下列哪个选项不能作为property的可选属性:
答案:(A)
A、alloc
B、retain
C、atomic
D、strong
53、
NSRange是什么数据类型:
答案:(C)
A、数组
B、字典
C、结构体
D、指针
54、
以下描写叙述正确的选项是:
答案:(B)
A、当计数器为1时,dealloc方法由系统自己主动调用
B、一个对象在引用计数变为0时,会调用自己的dealloc方法
C、在dealloc方法里。应该在[super dealloc]后释放本类所拥有的对象
D、开启ARC后。能够重载dealloc,必须在dealloc里写 [super dealloc]方法
55、
实例变量默认的訪问修饰符是:
答案:(C)
A、@public
B、@private
C、@protected
D、@package
56、
以下程序段的输出结果是什么:NSArray * arr1 = [[NSArray alloc] initWithObjects:@”1″,@”2″,@”3″, nil];NSString *str;str = [arr1 objectAtIndex:2];NSLog(@”%@”,str);
答案:(C)
A、1
B、2
C、3
D、程序崩溃
57、
@interface Person : NSObject@property(nonatomic,retain)NSString * name;@end上面声明一个Person类Person * per = [[Person alloc] init];per.name = [[NSString alloc] initWithFormat:@”张三”];NSLog(@”per.name = %d”,[per.name retainCount]);
答案:(D)
A、per.name = -1;
B、per.name = 0;
C、per.name = 1;
D、per.name = 2;
58、
以下程序段的输出结果是什么:NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@”1″,@”2″,@”2″,@”3″,@”3″,@”4″, nil];[dic removeObjectForKey:@”3″];NSLog(@”%@”,dic);
答案:(C)
A、1=2 3=4
B、1=2 2=3
C、2=1 4=3
D、2=1 3=2
59、
关于协议描写叙述不对的是:
答案:(D)
A、协议分正式和非正式协议。
B、在要求确认协议的类必须实现协议中的方法时,能够使用@required。
C、一个协议能够被多个类确认。
D、协议中声明的方法。默认是@optional的。
60、
以下哪个选项是正确的:
答案:(B)
A、用继承能够扩展一个类。要调用扩展的方法,既能够用父类,也能够用子类
B、用类目能够扩展一个类,能够直接用该类或该类的实例对象,去调用该类目扩展的方法
C、延展就是类目
D、能够在一个类的外部,调用这个类延展的方法
61、
下面对类的描写叙述不对的是:
答案:(C)
A、类的接口部分能够包括实例变量、属性和方法
B、能够把声明和实现都放到.h文件里
C、一对文件(Person.h Person.m)仅仅能定义一个类
D、类比較抽象,对象比較详细
62、
声明一个返回值为NSArray。而且带两个字符串对象的BLOCK类型变量:
答案:(D)
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)
63、
Objective-C 语言中类的实例变量假设仅仅能够被本类和其子类訪问,须要下列哪个修饰符:
答案:(C)
A、@public
B、@private
C、@protected
D、@friendly
64、
关于类目、延展的描写叙述错误的是:
答案:(B)
A、延展主要为类提供“私有”方法
B、类目、延展不但能为类加入方法,并且都能够加入新的实例变量
C、不管是否能拿到类的源代码,类目都能够对其扩展
D、类目和延展声明语法不同
65、
现要求声明一个集合,并将字符串加入到集合中,编写了例如以下代码,当中错误的是第几行:NSString * aString = [[NSString alloc] initWithString:@”iLanou”]; (1)[aString autorelease]; (2)NSArray * arr = [NSArray array]; (3)[arr addObject:aString]; (4)NSLog(@”string = %lu”,[aString retainCount]);
答案:(C)
A、(1)
B、(2)
C、(3)
D、(4)
66、
查看下列代码,能正确输出number的选项是: @interface MyClass : NSObject{ int number;}+(void) printNumber;@end@implementation MyClass+(void) printNumber{ number =10; NSLog(@””%d””,number);}@end
答案:(D)
A、[MyClass printNumber];
B、MyClass * obj = [[MyClass alloc] init]; [obj printNumber];
C、printNumber();
D、编译错误,无法运行。
67、
读代码NSString * str =[[NSString alloc]initWithFormat:@”%@”,@”iLanou123ios”];NSString * str1=[str substringToIndex:3];NSString * str2=[str substringWithRange:NSMakeRange(6, 3)];NSString * newStr=[str1 stringByAppendingString:str2];NSLog(@”newStr=%@”,newStr);则newStr的值为:
答案:(D)
A、iLanou
B、iL123
C、iLaios
D、iLa123
68、
对于以下代码说法正确的是:@property (copy,nonatomic,readonly)NSString * calValue。
答案:(D)
A、没有getter方法,当对calvalue赋值时,将产生一个NSString副本。
B、此属性可保证多线程安全。
C、此属性在合成时能够生成设置器方法。
D、此属性仅仅能读取,不能赋值。
69、
NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@”1″,@”2″,@”2″,@”3″,@”3″,@”4″, nil];NSArray *arr = [[NSArray alloc] initWithArray:[dic allKeys]];NSString *str = [[NSString alloc] initWithFormat:[arr objectAtIndex:0],[arr objectAtIndex:1],[arr objectAtIndex:2]];NSLog(@”%@”,str);结果是:
答案:(C)
A、123
B、234
C、2
D、3
70、
以下程序段的输出结果是什么:NSString * aString = [[NSString alloc] initWithFormat:@”123″]; NSLog(@”%d”,aString.retainCount);aString = @”456″;NSLog(@”%d”,aString.retainCount);[aString release];aString = @”789″;NSLog(@”%d”,aString.retainCount);
答案:(D)
A、1,2,1
B、1,1,0
C、1,-1,0
D、1,-1,-1
71、
以下程序段的输出结果是什么:NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@”1″,@”2″,@”2″,@”3″,@”3″,@”4″, nil];NSString *str = @”3″;int a = 3;[dic setObject:a forKey:str];NSLog(@”%@”,dic);
答案:(D)
A、2=1 3=3 4=3
B、1=2 3=3 3=4
C、1=2 3=3 3=3
D、程序崩溃
72、
写出以下程序段的输出结果:NSString * aString = [[NSString alloc] initWithString:@”123″]; [aString autorelease];NSMutableArray * arr = [NSMutableArray array];[arr addObject:aString];NSLog(@”string = %lu”,[aString retainCount]);
答案:(C)
A、1
B、0
C、整型最大值
D、2
73、
NSMutableDictionary字典中删除对象能够使用以下那个方法:
答案:(D)
A、filteredArrayUsingPredicate:
B、arrayByAddingObject:
C、initWithCapacity:
D、setValue:forKey:
74、
有例如以下一个类定义@interface MyClass:NSObject@property(nonatomic,retain)NSString *str;@end@implementation MyClass(1)-(NSString *)str{ return str;}-(void)dealloc{ self.str = nil; [super dealloc];}@end
答案:(C)
A、-(void)setStr:(NSString *)newStr{ str = newStr;}
B、-(void)setStr:(NSString *)newStr{ [str release]; str = [newStr retain];}
C、-(void)setStr:(NSString *)newStr{ if(str != newStr) { [str release]; str = [newStr retain]; }}
D、-(void)setStr:(NSString *)newStr{ [newStr retain] [str release] = newStr;}
75、
下列哪个操作不会引起引用计数(retaincount)的变化是:
答案:(B)
A、NSString *str1 = [[NSString stringWithFormat:@”hehe”];
B、int a=1;
C、NSMutableData *data1 = [NSMutableData allocWithZone:data2];
D、NSArray *arr1 = [[NSArray alloc]initWithArray:arr2];
76、
以下程序段的输出结果是什么:NSString * aString = [[NSString alloc] initWithString:@”hehe”]; [aString autorelease];NSMutableArray *arr = [NSMutableArray array];[arr addObject:aString];NSLog(@”string = %d”,[aString retainCount]);
答案:(A)
A、string = -1
B、string = 0
C、string = 1
D、string = 2
77、
以下程序段的输出结果是什么:NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@”1″,@”2″,@”1″,@”3″,@”1″,@”4″, nil];NSArray *arr1 = [[NSArray alloc] initWithArray:[dic allKeys]];NSArray *arr2 = [[NSArray alloc] initWithArray:[dic allValues]];NSMutableDictionary *dic2 = [[NSMutableDictionary alloc] initWithObjects:arr1 forKeys:arr2];NSLog(@”%@”,dic2);
答案:(C)
A、1=2 1=3 1=4
B、2=1 3=1 4=1
C、1=4
D、4=1
78、
以下程序段的输出结果是什么:int a = 10;NSNumber *b = [[NSNumber alloc] initWithInt:a];NSLog(@”%d”, a+++b);
答案:(D)
A、21
B、20
C、30
D、编译错误
79、
以下程序段的输出结果是什么:NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@”1″,@”2″,@”2″,@”3″,@”3″,@”4″, nil];[dic setObject:@”1″ forKey:@”3″];[dic removeObjectForKey:@”1″];NSLog(@”%@”,dic);
答案:(C)
A、1=3 2=3 3=4
B、1=2 1=3 3=4
C、2=1 3=1 4=3
D、3=1 3=2 4=3
80、
下列选项中不能正常为emp的name属性赋值的代码有:
答案:(B)
A、emp.name=@”李嘉诚”;
B、emp->name=@”李开复”;
C、[emp setValue:@”柳传志” forKey:@”name”];
D、[emp setName:@”黄光裕”];
二、推断题(共10题,每题1分)
1、
一个文件里能够声明多个类。
答案:(T)
正确
错误
2、
实例对象都是通过调用类方法生成的。
答案:(T)
正确
错误
3、
方法须要传递多个參数时。參数以逗号分隔。
答案:(F)
正确
错误
4、
不是每一个对象都有引用计数。
答案:(F)
正确
错误
5、
Objective-C 能够多重继承。
答案:(F)
正确
错误
6、
为了保证程序不产生额外的内存开销,当对象不再被须要以后,应当被马上销毁。
答案:(T)
正确
错误
7、
retain的作用是引用计数减一。
答案:(F)
正确
错误
8、
凝视能够出如今程序的不论什么位置。
答案:(T)
正确
错误
9、
在dealloc方法中对变量的释放顺序与初始化的顺序同样。
答案:(F)
正确
错误
10、
便利构造器产生的对象应当由使用者进行销毁。
答案:(F)
正确
错误
[关闭]
报露出的问题
1. 不熟悉
2. 不在意
3.
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116357.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...