版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weilaizhuan/article/details/44043785
oc考完了,这个煎熬啊,废话不多说,上习题
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、
17、
18、
19、
20、
21、
22、
23、
24、
25、
26、
27、
28、
29、
30、
31、
32、
33、
34、
35、
36、
37、
38、
39、
40、
41、
42、
43、
44、
45、
46、
47、
48、
49、
50、
51、
52、
53、
54、
55、
56、
57、
58、
59、
60、
61、
62、
63、
64、
65、
66、
67、
68、
69、
70、
71、
72、
73、
74、
75、
76、
77、
78、
79、
80、
Objective-C中包含一个自定义的头文件应该使用:
答案:(C)
2、
以下说法不正确的是:
答案:(A)
3、
下面哪些选项是属性的正确声明方式:
答案:(C)
4、
经过下列哪种操作后需要使用release方法。
答案:(C)
5、
必须实现的协议方法使用:关键字声明.
答案:(C)
6、
NSMutableString * str = [[NSMutableString alloc] initWithFormat:@"123"];
NSLog(@"str = %p",str);
[str appendFormat:@"456"];
NSLog(@"str = %p",str);
上面代码对字符串str进行拼接后,2次打印的地址是否相同:
NSLog(@"str = %p",str);
[str appendFormat:@"456"];
NSLog(@"str = %p",str);
上面代码对字符串str进行拼接后,2次打印的地址是否相同:
答案:(A)
7、
OC中的委托最好声明成:
答案:(B)
8、
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"];
NSLog(@"%@",[dict objectForKey:@"aKey"]);
[dict release];
控制台中打印的最后一条信息会是:
NSLog(@"%@",[dict objectForKey:@"aKey"]);
[dict release];
控制台中打印的最后一条信息会是:
答案:(C)
9、
下列哪个选项与@synthesize配合使用:
答案:(D)
10、
OC中与alloc相反的方法是:
答案:(C)
11、
在OC中,类的定义包括两部分(声明与实现),其中实现部分是:
答案:(C)
12、
在OC中,类中成员变量的可见度(访问权限)不包括:
答案:(D)
13、
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three",nil];
NSLog(@"%@",[array objectAtIndex:1]);
NSLog(@"%@",[array objectAtIndex:3]);
控制台中打印的最后一条信息会是:
NSLog(@"%@",[array objectAtIndex:1]);
NSLog(@"%@",[array objectAtIndex:3]);
控制台中打印的最后一条信息会是:
答案:(D)
14、
下面关于类概念的描述中,错误的是:
答案:(D)
15、
以下代码执行后,person对象的retain count是多少:
Person * person = [[Person alloc] init];
[person retain]; [person release];
Person * person = [[Person alloc] init];
[person retain]; [person release];
答案:(B)
16、
名为print::的方法有几个传入参数:
答案:(C)
17、
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];
控制台打印的结果是:
NSMutableSet *set = [[NSMutableSet alloc]init];
for(NSString *str in array)
{
[set addObject:str];
}
NSLog(@"%lu",[set count]);
[set release];
控制台打印的结果是:
答案:(A)
18、
下面哪些选项是类:
答案:(A)
19、
面向对象的特性不包括:
答案:(D)
20、
下列哪个选项不需要release方法:
答案:(C)
21、
不会立刻使引用计数器改变的是:
答案:(C)
22、
对于Objective-C中的方括号“[]”的作用,下列说法错误的是:
答案:(D)
23、
-(id)setName:(NSString *)name :(NSString *)sex age:(int)age的方法名是:
答案:(C)
24、
用哪个关键字定义协议中必须实现的方法:
答案:(D)
25、
OC中布尔(BOOL)类型的变量的值只有:
答案:(B)
26、
向Xcode控制台输出一个字符串应该用:
答案:(A)
27、
关于集合描述不正确的是:
答案:(A)
28、
现有如下集合,能准确删除“张三”的代码是:
NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];
NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];
答案:(A)
29、
下列选项中全部属于对象的是:
答案:(C)
30、
声明一个方法:提供Student对象数组按照学号升序排列的判断条件:
答案:(A)
31、
下列代码:
@property(nonatomic,assign)id<Painting>myObject;
@property(nonatomic,assign)id<Painting>myObject;
答案:(C)
32、
下面描述正确的选项是:
答案:(B)
33、
声明一个返回值为NSArray,并且带两个字符串对象的BLOCK类型变量:
答案:(D)
34、
现有Person类声明和Person的子类Student,代码如下:
@interface Person : NSObject
-(void) walk;
@end
@implementation Person
-(void) walk
{
NSLog(@"Person is walking…");
}
@end
@interface Student : Person
-(void) studentWalk;
@end
@implementation Student
-(void) studentWalk
{
(1)
}
end
在下列选项中,那些代码可以填在(1)处实现调用Person类中的walk方法,并输出“Person is walking…”:
@interface Person : NSObject
-(void) walk;
@end
@implementation Person
-(void) walk
{
NSLog(@"Person is walking…");
}
@end
@interface Student : Person
-(void) studentWalk;
@end
@implementation Student
-(void) studentWalk
{
(1)
}
end
在下列选项中,那些代码可以填在(1)处实现调用Person类中的walk方法,并输出“Person is walking…”:
答案:(C)
35、
在OC中扩展类的方法的形式不包括:
答案:(B)
36、
NSString 和 NSMutableString的关系和区别描述不正确的是:
答案:(D)
37、
现要求声明一个集合,并将字符串添加到集合中,编写了如下代码,其中错误的是第几行:
NSString * aString = [[NSString alloc] initWithString:@"iLanou"]; (1)
[aString autorelease]; (2)
NSArray * arr = [NSArray array]; (3)
[arr addObject:aString]; (4)
NSLog(@"string = %lu",[aString retainCount]);
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)
38、
@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]);
@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)
39、
下面哪个选项无内存问题的:
答案:(C)
40、
关于协议描述不正确的是:
答案:(D)
41、
下面哪个选项对集合的描述是正确的:
答案:(D)
42、
下面程序段的输出结果是什么:
NSArray * arr1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
NSString *str;
str = [arr1 objectAtIndex:2];
NSLog(@"%@",str);
NSArray * arr1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
NSString *str;
str = [arr1 objectAtIndex:2];
NSLog(@"%@",str);
答案:(C)
43、
下面哪个选项是正确的:
答案:(B)
44、
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);
打印结果是:
[formatter setAMSymbol:@"AM"];
[formatter setPMSymbol:@"PM"];
[formatter setDateFormat:@"YY-MM-dd hh:mm:ss aaa"];
NSString * currentDate = [formatter stringFromDate:[NSDate date]];
NSLog(@"%@",currentDate);
打印结果是:
答案:(D)
45、
现有自定义类Student,下列选项中Student类的便利构造器编写正确的是:
答案:(D)
46、
下列代码正确的输出结果是:
NSString * urlStr = @"www.lanou3g.com";
NSRange range = NSMakeRange(4,7);
NSString *prefix = [urlStr substringWithRange:range];
NSLog(@"%@",prefix);
NSString * urlStr = @"www.lanou3g.com";
NSRange range = NSMakeRange(4,7);
NSString *prefix = [urlStr substringWithRange:range];
NSLog(@"%@",prefix);
答案:(B)
47、
实例变量默认的访问修饰符是:
答案:(C)
48、
下列哪个选项不能作为property的可选属性:
答案:(A)
49、
有一个类Student,要求实现:定义一个实例初始化方法,初始化方法需要传入名字和性别:
答案:(B)
50、
内存管理的关键字描述错误的是:
答案:(C)
51、
创建对象时,对象的内存和指向对象的指针分别分配在哪里:
答案:(A)
52、
协议与委托的描述不正确的是:
答案:(C)
53、
下面程序段的输出结果是什么:
NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];
[dic removeObjectForKey:@"3"];
NSLog(@"%@",dic);
NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];
[dic removeObjectForKey:@"3"];
NSLog(@"%@",dic);
答案:(C)
54、
自定义一个Person类,下面哪个选项是规范的便利构造器声明方式:
答案:(D)
55、
Objective-C 语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:
答案:(C)
56、
下列有效的键路径是:
答案:(B)
57、
关于NSSet描述正确的有:
答案:(B)
58、
下面程序段的输出结果是什么:
NSMutableArray * arr1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3", nil];
[arr1 addObject:@"0"];
[arr1 replaceObjectAtIndex:2 withObject:@"3"];
NSLog(@"%@",arr1);
NSMutableArray * arr1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3", nil];
[arr1 addObject:@"0"];
[arr1 replaceObjectAtIndex:2 withObject:@"3"];
NSLog(@"%@",arr1);
答案:(B)
59、
关于KVC的描述正确的是:
答案:(A)
60、
关于KVC的描述正确的是:
答案:(B)
61、
以下说法正确的是:
答案:(C)
62、
对于语句NSString* testObject = [[NSData alloc] init];关于testObject是什么类型对象,以下说法正确的是:
答案:(A)
63、
关于类目、延展的描述错误的是:
答案:(B)
64、
NSRange是什么数据类型:
答案:(C)
65、
类何时调用dealloc方法:
答案:(D)
66、
写出下面程序段的输出结果:
NSString * aString = [[NSString alloc] initWithString:@"123"];
[aString autorelease];
NSMutableArray * arr = [NSMutableArray array];
[arr addObject:aString];
NSLog(@"string = %lu",[aString retainCount]);
NSString * aString = [[NSString alloc] initWithString:@"123"];
[aString autorelease];
NSMutableArray * arr = [NSMutableArray array];
[arr addObject:aString];
NSLog(@"string = %lu",[aString retainCount]);
答案:(C)
67、
对于下面代码说法正确的是:
@property (copy,nonatomic,readonly)NSString * calValue;
@property (copy,nonatomic,readonly)NSString * calValue;
答案:(D)
68、
NSMutableDictionary字典中删除对象可以使用下面那个方法:
答案:(D)
69、
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *str = [NSString stringWithFormat:@”abc”];
NSString *str2 = [str retain];
[pool release];
NSLog(@”str retainCount = %d,str2 retainCount = %d”,[str retainCount],[str2 retainCount]);
上述代码打印结果正确的是:
NSString *str = [NSString stringWithFormat:@”abc”];
NSString *str2 = [str retain];
[pool release];
NSLog(@”str retainCount = %d,str2 retainCount = %d”,[str retainCount],[str2 retainCount]);
上述代码打印结果正确的是:
答案:(C)
70、
下面程序段的输出结果是什么:
int a = 10;
NSNumber *b = [[NSNumber alloc] initWithInt:a];
NSLog(@"%d", a+++b);
int a = 10;
NSNumber *b = [[NSNumber alloc] initWithInt:a];
NSLog(@"%d", a+++b);
答案:(D)
71、
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);
结果是:
NSArray *arr = [[NSArray alloc] initWithArray:[dic allKeys]];
NSString *str = [[NSString alloc] initWithFormat:[arr objectAtIndex:0],[arr objectAtIndex:1],[arr objectAtIndex:2]];
NSLog(@"%@",str);
结果是:
答案:(C)
72、
下面程序段的输出结果是什么:
NSString * aString = [[NSString alloc] initWithString:@"hehe"];
[aString autorelease];
NSMutableArray *arr = [NSMutableArray array];
[arr addObject:aString];
NSLog(@"string = %d",[aString retainCount]);
NSString * aString = [[NSString alloc] initWithString:@"hehe"];
[aString autorelease];
NSMutableArray *arr = [NSMutableArray array];
[arr addObject:aString];
NSLog(@"string = %d",[aString retainCount]);
答案:(A)
73、
查看下列代码,能正确输出number的选项是:
@interface MyClass : NSObject
{
int number;
}
+(void) printNumber;
@end
@implementation MyClass
+(void) printNumber
{
number =10;
NSLog(@""%d"",number);
}
@end
@interface MyClass : NSObject
{
int number;
}
+(void) printNumber;
@end
@implementation MyClass
+(void) printNumber
{
number =10;
NSLog(@""%d"",number);
}
@end
答案:(D)
74、
将@”2B青年”替换成@”文艺青年”的代码是:
答案:(B)
75、
下面程序段的输出结果是什么:
NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];
[dic setObject:@"1" forKey:@"3"];
[dic removeObjectForKey:@"1"];
NSLog(@"%@",dic);
NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];
[dic setObject:@"1" forKey:@"3"];
[dic removeObjectForKey:@"1"];
NSLog(@"%@",dic);
答案:(C)
76、
有如下一个类定义
@interface MyClass:NSObject
@property(nonatomic,retain)NSString *str;
@end
@implementation MyClass
(1)
-(NSString *)str
{
return str;
}
-(void)dealloc
{
self.str = nil;
[super dealloc];
}
@end
@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)
77、
下面程序段的输出结果是什么:
NSString * aString = [[NSString alloc] initWithFormat:@"123"];
NSLog(@"%d",aString.retainCount);
aString = @"456";
NSLog(@"%d",aString.retainCount);
[aString release];
aString = @"789";
NSLog(@"%d",aString.retainCount);
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)
78、
下面程序段的输出结果是什么:
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);
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)
79、
关于内存管理的描述错误的是:
答案:(D)
80、
下面程序段的输出结果是什么:
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);
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)
※ 判断题(共10题,每题2分)
1、
注释可以出现在程序的任何位置。
答案:(T)
2、
为了保证程序不产生额外的内存开销,当对象不再被需要以后,应当被立即销毁。
答案:(T)
3、
一个文件中可以声明多个类。
答案:(T)
4、
在动态(实例)方法中,self是指调用当前方法的那个对象。
答案:(T)
5、
在OC中,数组保存的只能是对象。
答案:(T)
6、
在dealloc方法中对变量的释放顺序与初始化的顺序相同。
答案:(F)
7、
OC中如果向空指针nil发送消息,程序会崩溃的。
答案:(F)
8、
不是每个对象都有引用计数。
答案:(F)
9、
当类别中的方法与原始类方法名称冲突时,类别具有更高的优先级。
答案:(T)
10、
声明了@property指令,就不能再用setter,getter 方法了。
答案:(F)