150303第一期黑暗的星期二之OC考试(解析慢慢上)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weilaizhuan/article/details/44043785

oc考完了,这个煎熬啊,废话不多说,上习题

1、
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次打印的地址是否相同:

答案:(A)


7、
OC中的委托最好声明成:

答案:(B)


8、
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"];
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]);
控制台中打印的最后一条信息会是:

答案:(D)


14、
下面关于类概念的描述中,错误的是:

答案:(D)


15、
以下代码执行后,person对象的retain count是多少:
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];
控制台打印的结果是:

答案:(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];

答案:(A)


29、
下列选项中全部属于对象的是:

答案:(C)


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

答案:(A)


31、
下列代码:
@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…”:

答案:(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]);

答案:(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]);

答案:(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);

答案:(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);
打印结果是:

答案:(D)


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

答案:(D)


46、
下列代码正确的输出结果是:
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);

答案:(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);

答案:(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]);

答案:(C)


67、
对于下面代码说法正确的是:
@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]);
上述代码打印结果正确的是:

答案:(C)


70、
下面程序段的输出结果是什么:
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);
结果是:

答案:(C)


72、
下面程序段的输出结果是什么:
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

答案:(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);

答案:(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

答案:(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);

答案:(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);

答案:(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);

答案:(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)


猜你喜欢

转载自blog.csdn.net/weilaizhuan/article/details/44043785