- 19、
声明一个方法:提供Student对象数组按照学号升序排列的判断条件:
答案:(A)
- 分析: NSComparisonResult返回的是一个比较结果, 我还没有会..
-
-
37、
以下对类的描述不正确的是:
答案:(C)
-
37、
-
-
38、
在OC中扩展类的方法的形式不包括:
答案:(B)
-
38、
- 延展:为知道源代码的类(自己定义的类)增加私有方法. 私有方法只能在本类中使用, 方法是将类的声明和实现写在实现文件(.m文件)中.不在声明文件(头文件)中声明. 这样 就只能在自己的类中使用了. 声明私有属性也是在实现文件中@interface @end之间定义属性. 私有属性在本类中可以被使用.
-
-
47、
创建对象时,对象的内存和指向对象的指针分别分配在哪里:
答案:(A)
-
47、
-
-
52、
下面哪个选项无内存问题的:
答案:(C)
-
52、
- 分析: release是立即释放内存, 使该对象的引用计数 - 1, autorelease是在释放池结束的时刻引用计数 - 1, 所以C是对的, 不太明白..
-
-
60、
读代码:
NSString *str=@"hello";
NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];
[mt addObject:str];
NSLog(@"%lu",mt.count);
结果是:答案:(A)
-
60、
- 分析: 集合中存放元素的特点是: 无序, 唯一, 存放对象类型. 题目中str对象加入集合中两次, 第二次加入不计入集合中. 所以set.count为1
-
-
66、
下面程序段的输出结果是什么:
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)
-
66、
- 分析:
- 字典中setObjectForKey 的意思是如果该key在字典中存在 , 则替换字典中该key对应的value. 如果不存在, 则增加一对键值.
- [dic setObject:a forKey:str]; 这句代码表示 将key为str的数据更改为a. a必须是对象类型. 此题中a为int型, 不符合字典中元素的条件, 所以程序崩溃.
-
-
67、
下面程序段的输出结果是什么:
NSString * aString = [[NSString alloc] initWithString:@"hehe"];
[aString autorelease];
NSMutableArray *arr = [NSMutableArray array];
[arr addObject:aString];
NSLog(@"string = %d",[aString retainCount]);答案:(A)
-
67、
-
-
71、
下面程序段的输出结果是什么:
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)
-
71、
- 分析: arr1 = @[@"2", @"3", @"4"]; arr2 = @[@"1", @"1", @"1"];
- 将arr2作为keys, arr.作为values存入新字典中. 因为字典的存放键值规则为 如果该key存在, 则替换之前的value, 如果不存在, 则增加. arr2中都为1, 所以三对键值中会依次替 换前边的那对键值. 所以结果为 1 = 4.
-
-
74、
查看下列代码,能正确输出number的选项是:
@interface MyClass : NSObject
{
int number;
}
+(void) printNumber;
@end
@implementation MyClass
+(void) printNumber
{
number =10;
NSLog(@""%d"",number);
}
@end答案:(D)
- 分析: 在类方法中将number 赋值为10, 并且NSLog中写了两对双引号, 不懂啊..
-
75、
下列选项中不能正常为emp的name属性赋值的代码有:
答案:(B)
- 分析: -> 运算符叫做“指向结构体成员运算符”,是C语言和C++语言的一个运算符,用处是使用一个指向结构体或对象的指针访问其内成员
- 不能用-> 访问属性.
-
76、
NSMutableDictionary字典中删除对象可以使用下面那个方法:
答案:(D)
-
74、
-
- 80、
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)
-
-
4、
方法需要传递多个参数时,参数以逗号分隔。
答案:(F)
-
4、
- 分析: OC中的具有多个参数的方法是这么定义的: -(void)printInformation:(NSString *)name age:(NSInteger)age sex:(NSString *)sex;
- 调用该方法传递参数应该是: [student printInformation:str age:age sex:sex];
-
- 80、
OC错题总结
最新推荐文章于 2020-10-28 21:37:17 发布