我的模拟OC测试
来源:互联网 发布:霸气 知乎 编辑:程序博客网 时间:2024/06/02 03:24
Objective-C考试
※ 选择题(共80题,每题1分)
- 1、
面向对象的特性不包括:
答案:(D)
- 2、
向Xcode控制台输出一个字符串应该用:
答案:(A)
- 3、
下列哪个选项不需要release方法:
答案:(C)
- 4、
NSString *name = [[NSString alloc]initWithString:@"张三"];
NSLog(@"%d",[name retainCount]);
上述代码打印结果是:
NSLog(@"%d",[name retainCount]);
上述代码打印结果是:
答案:(A)
- 5、
下列哪个选项与@synthesize配合使用:
答案:(D)
- 6、
必须实现的协议方法使用:关键字声明.
答案:(C)
- 7、
对于Objective-C中的方括号“[]”的作用,下列说法错误的是:
答案:(D)
- 8、
现有如下集合,能准确删除“张三”的代码是:
NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];
NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];
答案:(A)
- 9、
OC中与alloc相反的方法是:
答案:(C)
- 10、
经过下列哪种操作后需要使用release方法。
答案:(C)
- 11、
OC中,所有类的根类是:
答案:(A)
- 12、
关于集合描述不正确的是:
答案:(A)
- 13、
OC中的委托最好声明成:
答案:(B)
- 14、
以下说法不正确的是:
答案:(A)
- 15、
下面哪些选项是类:
答案:(A)
- 16、
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)
- 17、
以下代码执行后,person对象的retain count是多少:
Person * person = [[Person alloc] init];
[person retain]; [person release];
Person * person = [[Person alloc] init];
[person retain]; [person release];
答案:(B)
- 18、
关于类和对象的概念,下列属于对象的是:
答案:(C)
- 19、
在OC中,类中成员变量的可见度(访问权限)不包括:
答案:(D)
- 20、
下面关于类概念的描述中,错误的是:
答案:(D)
- 21、
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)
- 22、
Objective-C中包含一个自定义的头文件应该使用:
答案:(C)
- 23、
用哪个关键字定义协议中必须实现的方法:
答案:(D)
- 24、
OC中布尔(BOOL)类型的变量的值只有:
答案:(B)
- 25、
名为print::的方法有几个传入参数:
答案:(C)
- 26、
-(id)setName:(NSString *)name :(NSString *)sex age:(int)age的方法名是:
答案:(C)
- 27、
下面哪些选项是属性的正确声明方式:
答案:(C)
- 28、
使用 Objective-C 语言输出“This is a Objective-C program.”正确的是:
答案:(D)
- 29、
下列选项中全部属于对象的是:
答案:(C)
- 30、
声明一个方法:提供Student对象数组按照学号升序排列的判断条件:
答案:(A)
- 31、
关于类目的说法正确的有:
答案:(A)
- 32、
下面哪个选项对集合的描述是正确的:
答案:(D)
- 33、
实例变量默认的访问修饰符是:
答案:(C)
- 34、
Objective-C 语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:
答案:(C)
- 35、
关于NSSet描述正确的有:
答案:(B)
- 36、
下面程序段的输出结果是什么:
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)
- 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、
现有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)
- 39、
下列有效的键路径是:
答案:(B)
- 40、
NSRange的成员变量有:
答案:(A)
- 41、
协议与委托的描述不正确的是:
答案:(C)
- 42、
声明一个返回值为NSArray,并且带两个字符串对象的BLOCK类型变量:
答案:(D)
- 43、
以下说法正确的是:
答案:(C)
- 44、
下面哪个选项是正确的:
答案:(B)
- 45、
NSRange是什么数据类型:
答案:(C)
- 46、
自定义一个Person类,下面哪个选项是规范的便利构造器声明方式:
答案:(D)
- 47、
下面哪个选项无内存问题的:
答案:(C)
- 48、
对于语句NSString* testObject = [[NSData alloc] init];关于testObject是什么类型对象,以下说法正确的是:
答案:(A)
- 49、
下面程序段的输出结果是什么:
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)
- 50、
下面程序段的输出结果是什么:
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)
- 51、
下列哪个选项不能作为property的可选属性:
答案:(A)
- 52、
现有自定义类Student,下列选项中Student类的便利构造器编写正确的是:
答案:(D)
- 53、
创建对象时,对象的内存和指向对象的指针分别分配在哪里:
答案:(A)
- 54、
在OC中扩展类的方法的形式不包括:
答案:(B)
- 55、
读代码:
NSString *str=@"hello";
NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];
[mt addObject:str];
NSLog(@"%lu",mt.count);
结果是:
NSString *str=@"hello";
NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];
[mt addObject:str];
NSLog(@"%lu",mt.count);
结果是:
答案:(A)
- 56、
有一个类Student,要求实现:定义一个实例初始化方法,初始化方法需要传入名字和性别:
答案:(B)
- 57、
关于KVC的描述正确的是:
答案:(B)
- 58、
下面描述正确的选项是:
答案:(B)
- 59、
简单类型的成员比如:int类型成员在使用@property()时,括号中应使用:
答案:(A)
- 60、
关于KVC的描述正确的是:
答案:(A)
- 61、
下列代码正确的输出结果是:
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)
- 62、
内存管理的关键字描述错误的是:
答案:(C)
- 63、
下列代码:
@property(nonatomic,assign)id<Painting>myObject;
@property(nonatomic,assign)id<Painting>myObject;
答案:(C)
- 64、
@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)
- 65、
关于协议描述不正确的是:
答案:(D)
- 66、
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)
- 67、
查看下列代码,能正确输出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)
- 68、
下列选项中不能正常为emp的name属性赋值的代码有:
答案:(B)
- 69、
有如下一个类定义
@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)
- 70、
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)
- 71、
读代码
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的值为:
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)
- 72、
NSMutableDictionary字典中删除对象可以使用下面那个方法:
答案:(D)
- 73、
关于内存管理的描述错误的是:
答案:(D)
- 74、
写出下面程序段的输出结果:
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)
- 75、
下面程序段的输出结果是什么:
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)
- 76、
下面程序段的输出结果是什么:
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)
- 77、
对于下面代码说法正确的是:
@property (copy,nonatomic,readonly)NSString * calValue;
@property (copy,nonatomic,readonly)NSString * calValue;
答案:(D)
- 78、
下面程序段的输出结果是什么:
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)
- 79、
下面程序段的输出结果是什么:
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)
- 80、
下面程序段的输出结果是什么:
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)
※ 判断题(共10题,每题2分)
- 1、
协议中定义的方法默认是必须实现的。
答案:(T)
- 2、
方法需要传递多个参数时,参数以逗号分隔。
答案:(F)
- 3、
在类方法中可以使用实例变量。
答案:(F)
- 4、
不是每个对象都有引用计数。
答案:(F)
- 5、
一个文件中可以声明多个类。
答案:(T)
- 6、
在静态(类)方法中,self就是指当前的类名。
答案:(T)
- 7、
注释可以出现在程序的任何位置。
答案:(T)
- 8、
Objective-C 可以多重继承。
答案:(F)
- 9、
在dealloc方法中对变量的释放顺序与初始化的顺序相同。
答案:(F)
- 10、
retain的作用是引用计数减一。
答案:(F)
[关闭]
0 0
- 我的模拟OC测试
- 坑到死的OC测试题
- OC字符串NSString类的模拟
- 简单的图书馆系统 LibrarySystem(OC模拟)
- 性能测试新手误区(二):为什么我模拟的百万测试数据是无效的?
- 性能测试新手误区(二):为什么我模拟的百万测试数据是无效的
- 第三题:反素数(我的模板)(NOIP2009模拟测试题)
- 【黑马程序员】【OC语言】我的第一个OC程序
- 【OC】阿里巴巴开放平台的测试
- OC中字符串的方法测试
- 我的第一个Oc程序
- 我的第一个oc程序
- 我的第一个OC语言程序
- 我的OC升级之路(一)
- 我的OC升级之路(二)
- 我的OC升级之路(三)
- 我的第一个OC程序
- 我的OC练习(一)
- 100分程序员的8个习惯
- QT 总结(三) 1.Qt 运行 bat 文件 QProcess 2.获取当前文件路径
- SAP系统中设备管理模块的主要增强出口
- Contains Duplicate II
- View注入框架:Butterknife简单使用
- 我的模拟OC测试
- 黑马程序员_java类加载器与反射
- 编程经验:关于OpenCV源码调试的好文章转载~
- HTML5游戏实战之20行代码实现打地鼠
- POJ2356 Find a multiple【鸽巢原理】
- SAP 财务会计结构
- 软件工程师的鄙视链
- 一个启发式程序员的思考
- 什么样的程序员最易涨薪?