Objective-C考试 [关闭]

※ 选择题(共40题,每题2分)

      1、
以下说法正确的是________。

答案:(C)

  • A、alloc,retain,release,dealloc都会使对象的引用计数变化
  • B、属性就是实例变量加上点语法
  • C、类目可以为所有的类添加新方法
  • D、类目不能随意使用

      2、
NSCountedSet * set3 = [NSCountedSet setWithObjects:@"123",@"456",@"789",@"123", nil];
NSLog(@"%lu",[set3 countForObject:@“123"]);

打印的是:

答案:(C)

  • A、1
  • B、123
  • C、2
  • D、0

      3、
NSString *string = @“IMac”;创建出的该字符串是存储在:

答案:(C)

  • A、堆区
  • B、栈区
  • C、常量区
  • D、静态区

      4、
- (void) backName;叙述错误的是

答案:(D)

  • A、实例方法
  • B、backName表示方法名
  • C、(void )表示返回值类型为空
  • D、类方法

      5、
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"wangwu",@"name",@"man",@"sex", nil];
NSLog(@"dict = %@“,dict);

控制台打印的是:

答案:(A)

  • A、name = wangwu;sex = man
  • B、name = man;sex = wangwu
  • C、name = wangwu;man = sex
  • D、wangwu = name;sex = man

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

答案:(D)

  • A、类是抽象数据类型的实现
  • B、类是具有共同行为的若干对象的统一描述体
  • C、类是创建对象的模板
  • D、类就是C语言中的结构体类型

      7、
方法 - (Fraction *)addFraction:(Fraction *)anotherFraction; 有几个参数?

答案:(D)

  • A、2个参数
  • B、没有参数
  • C、1个类型为Void的参数
  • D、1个类型为Fraction*的参数

      8、
下列方法中是删除指定下标元素的方法是:

答案:(A)

  • A、- (void)removeObjectAtIndex:(NSUInteger)index
  • B、- (void)removeLastObject
  • C、- (void)addObject:(ObjectType)anObject
  • D、- (void)removeAllObjects

      9、
协议与代理的描述不正确的是:________

答案:(C)

  • A、委托是iOS的一种设计模式
  • B、协议里的方法默认是必须实现的
  • C、类遵守了多个协议,这些协议写在父类后面的<>内,多个协议间用、隔开
  • D、定义协议使用@protocol关键字

      10、
下面哪些选项是属性的正确声明方式______。

答案:(A)

  • A、@property(nonatomic,retain)NSString * myString
  • B、@property(nonatomic,assign)NSString * myString
  • C、@property(nonatomic,assign)int *myNumber
  • D、@property(nonatomic,retain)int myNumber

      11、
属性的属性readonly是什么意思_______。

答案:(A)

  • A、只声明getter方法,无setter方法
  • B、只声明setter方法,无getter方法
  • C、既有getter方法,也有setter方法
  • D、没有getter方法,也没有setter方法

      12、
以下哪个是Category的正确声明______。

答案:(B)

  • A、NSDateNowTime.h
  • B、NSString+SayHi.h
  • C、SayHi+NSString.h
  • D、NowTime.h

      13、
NSMutableDictionary *mutableDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lisi",@"name",[NSNumber numberWithInt:20],@"age", nil];
[mutableDic setObject:@"89" forKey:@"num"];
NSLog(@"mutableDic4 = %@“,mutableDic);

控制台打印是:

答案:(B)

  • A、name = lisi;num = 89
  • B、age = 20;name = lisi;num = 89
  • C、age = 20;name = lisi
  • D、age = 20

      14、
对于- (id)objectAtIndex:(NSUInteger)index;描述正确的是:

答案:(C)

  • A、返回最后一个元素
  • B、获取集合元素个数
  • C、获得index位置的元素
  • D、是否包含某一个元素

      15、
- (instancetype)initWithName:(NSString*)name age:(NSInteger)age 在.m中实现正确的是

答案:(A)

  • A、

    - (instancetype)initWithName:(NSString*)name age:(NSInteger)age{
    self = [super init];
    if(self) {
    _name = name;
    _age = age;
    }
    return self;
    }
  • B、
    - (instancetype)initWithName:(NSString*)name age:(NSInteger)age{
    _name = name;
    _age = age;
    }
  • C、
    - (void)initWithName:(NSString*)name age:(NSInteger)age{
    _name = name;
    _age = age;
    return self;
    }
  • D、
    + (instancetype)initWithName:(NSString*)name age:(NSInteger)age{
    self.name = name;
    self.age = age;
    return self;
    }

      16、
NSMutableDictionary *mutableDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"zhangsan",@"name",[NSNumber numberWithInt:20],@"age", nil];
[mutableDic setValue:@"nil" forKey:@"age"];NSLog(@"mutableDic3 = %@“,mutableDic);

打印的是:

答案:(D)

  • A、name = zhangsan
  • B、age = nil
  • C、age = 12;name = zhangsan
  • D、age = nil; name = zhangsan

      17、
OC中的实例对象是怎么产生的

答案:(B)

  • A、实例对象是通过点出来的
  • B、实例对象都是通过调用类方法alloc生成的
  • C、实例对象都是自动生成的
  • D、实例对象都是通过调用实例方法生成的

      18、
以下对类的描述不正确的是

答案:(C)

  • A、类的接口部分可以包含实例变量、属性和方法
  • B、可以把声明和实现都放到.h文件中
  • C、一对文件(Person.h Person.m)只能定义一个类
  • D、类比较抽象,对象比较具体

      19、
NSString 和 NSMutableString的关系和区别描述不正确的是

答案:(D)

  • A、NSString是不可变字符串,即本身内容不能被改变
  • B、NSMutableString是可变字符串,即本身内容可修改
  • C、NSMutableString是NSString的子类
  • D、NSString和NSMutableString没有任何关系

      20、
-(void) sayHi{
NSLog(@"大家好。");
}

关于该方法,叙述错误的是

答案:(A)

  • A、这是一个类方法
  • B、方法名为sayHi
  • C、返回值为void
  • D、NSLog(@"大家好。");与C语言的printf方法一样。OC中,在每一个字符串前,都要加上@

      21、
关于类目和协议的说法错误的是______。

答案:(B)

  • A、类目可以为所有的类添加新方法
  • B、类目中添加的方法比原类中定义的方法级别要低    //级别要比原来的高,因为可以覆盖
  • C、定义协议要使用关键字@protocol
  • D、定义一个协议后,任何类都可以遵循这个协议

      22、
NSMutableArray *array = @[@"bob", @"steve", @"john"];  //没有mutableCopy
[array addObject:@“Peter"];
NSLog(@“%@”,array);

运行结果是:

答案:(B)

  • A、bob,steve,john
  • B、程序崩溃
  • C、bob,steve,john,Peter
  • D、steve,john

      23、
写出下面程序段的输出结果:

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

      24、
下列关于for...in快速遍历集合描述正确的是: ( )

答案:(B)

  • A、遍历出来的元素可以基本数据类型;
  • B、遍历出来的元素只能为对象类型;
  • C、 至少要遍历一次;   //遍历过程中可以终止
  • D、遍历集合的过程中可以删除集合中元素  //不可以,会发生错误

      25、
下列说法正确的是:

答案:(C)

  • A、求数组的内容个数用length方法
  • B、字典是根据其位置来索引数据的
  • C、协议中定义的方法默认是必须实现的
  • D、字符串只有NSString不可变字符串这一种

      26、
属于类的扩展的是______。

答案:(A)

  • A、继承
  • B、多态
  • C、封装
  • D、Block

      27、
关于字符串的拷贝说法正确的是:()

答案:(B)

  • A、字符串的拷贝都是深拷贝;
  • B、可变字符串的拷贝都是深拷贝;
  • C、不可变字符串的拷贝都是深拷贝;
  • D、不可变字符串的拷贝都是浅拷贝

      28、
NSArray *arr = [NSArray arrayWithObjects:@“a1",@"a5",@"c4",@"l9",@"o0", nil];
NSComparator sortString = ^(id arr1,id arr2){ return [arr1 compare: arr2]; //block
};
NSArray *array = [arr sortedArrayUsingComparator:sortString];
NSLog(@“%@“,array) ;

打印出的是:

答案:(A)

  • A、a1,a5,c4,l9,o0
  • B、c4,a5,a1,l9,o0
  • C、a1,a5,c4,o0,l9
  • D、a5,a1,c4,l9,o0

      29、
直接造成对象引用计数减一的是______。

答案:(A)

  • A、release
  • B、autorelease
  • C、retain
  • D、alloc

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

答案:(A)

  • A、- (NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent
  • B、- (NSComparison)compareWithNumberForAscendSort:(Student*)otherStudent
  • C、- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent
  • D、+ (int)compareWithNumberForAscendSort:(Student*)otherStudent

      31、
下列哪个选项与@synthesize配合使用______。

答案:(D)

  • A、@end
  • B、@interface
  • C、@implementaion
  • D、@property

      32、
关于代理描述错误的是:________

答案:(D)

  • A、代理是基于OC来实现的,他将实现的细节掩藏
  • B、代理模式中可以根据不同的情况让不同的类去当代理,只要代理对象遵守代理协议即可
  • C、代理让程序更具有扩展性,也减少了程序的复杂度
  • D、任何类都可以当代理       //遵循这个协议

      33、
以下哪些对象不需要我们释放_________。

答案:(D)

  • A、数组中的对象
  • B、便利构造器创建的对象
  • C、字典中的对象
  • D、以上都是

      34、
- (NSString *)componentsJoinedByString:(NSString *)separator;关于这个方法下列表述正确的是:

答案:(D)

  • A、该方法是属于NSString的方法
  • B、该方法是属于NSDictionary的方法
  • C、该方法是删除NSString内所有的元素
  • D、这是NSArray的方法, 用separator作拼接符将数组元素拼接成一个字符串

      35、
[str stringByReplacingOccurrencesOfString:@" " withString:@""] 关于上述方法描述正确的是:

答案:(B)

  • A、在首部添加空格
  • B、去除所有空格
  • C、去除首尾空格
  • D、在尾部添加空格

      36、
sendMessage::: 这个方法有几个参数传入

答案:(C)

  • A、0
  • B、1
  • C、3
  • D、不确定

      37、
-[Person sayHi]: unrecognized selector sent to instance 0x100114d70 上面崩溃信息可以看出崩溃原因是上面_________。

答案:(C)

  • A、内存泄露
  • B、过度释放
  • C、方法没实现
  • D、都不是

      38、
copy下的属性的内部实现_______。

答案:(B)

  • A、

    - (void)setName:(NSString *)name{
    if(_name != name){
    [_name release];
    _name = [[name copy] autorelease];
    }
    }
  • B、
    - (void)setName:(NSString *)name{
    if(_name != name){
    [_name release];
    _name = [name copy];
    }
    }
  • C、
    - (NSString *)name{
    return [[_name copy]autorelease];
    }
  • D、
    - (NSString *)name{
    return [_name copy];
    }

      39、
有以下两个字符串 NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"hey"]; NSString *str2 = [[NSString alloc] initWithFormat:@“hey"]; 则 str1 和 str2 的 retainCount 各为多少

答案:(A)

  • A、1,-1
  • B、1,1
  • C、1,0
  • D、-1,1

      40、
.h文件中声明如下:

+ (id)studentWithName:(NSString *)name
sex:(NSString *)sex
age:(NSInteger)age
school:(NSString *)school
number:(NSInteger)number;

.m文件中如何实现?

答案:(A)

  • A、

    + (id)studentWithName:(NSString*)name
    sex:(NSString*)sex
    age:(NSInteger)age
    school:(NSString*)school
    number:(NSInteger)number
    {
    Student* stu = [[Student alloc] initWithName:name sex:sex age:age school:school number:number];
    return stu;
    }
  • B、
    + (id)studentWithName:(NSString*)name
    sex:(NSString*)sex
    age:(NSInteger)age
    school:(NSString*)school
    number:(NSInteger)number
    {
    Student* stu = [[Student alloc] initWithName:name sex:sex age:age school:school number:number];
    }
  • C、
    + (id)studentWithName:(NSString*)name
    sex:(NSString*)sex
    age:(NSInteger)age
    school:(NSString*)school
    number:(NSInteger)number
    {
    Student* stu = [Student initWithName:name sex:sex age:age school:school number:number];
    return stu;
    }
  • D、
    + (id)studentWithName:(NSString*)name
    sex:(NSString*)sex
    age:(NSInteger)age
    school:(NSString*)school
    number:(NSInteger)number
    {
    Student* stu = [alloc initWithName:name sex:sex age:age school:school number:number];
    return stu;
    }

※ 判断题(共10题,每题2分)

      1、
componentsSeparatedByString:方法的返回值是字符串

答案:(F)

  • 正确
  • 错误

      2、
通过字面量创建的字符串是常量字符串, 存在于常量区

答案:(T)

  • 正确
  • 错误

      3、
sortedArrayUsingSelector: 给可变数组排序不需要返回值。    //函数名不对,没有Array.  NSArray和NSMutableArray的description方法都是 sortArrayUsingDescriptors

答案:(F)

  • 正确
  • 错误

      4、
-(id)objectForKey:(id)aKey;是根据key取出value

答案:(T)

  • 正确
  • 错误

      5、
NSEnumerator是一个抽象类, 所以没有NSEnumerator对象存在   //不是通过alloc实现

答案:(F)

  • 正确
  • 错误

      6、
所有集合都可以保存id类型的数据

答案:(T)

  • 正确
  • 错误

      7、
遵守协议,但没有实现协议方法,调用协议方法会出现程序奔溃

答案:(T)

  • 正确
  • 错误

      8、
self和super没有本质区别,可以互用

答案:(F)

  • 正确
  • 错误

      9、
在OC面向对象设计框架中,类是程序的基本组成单元     //**没有类的话, 就没有对象

答案:(T)

  • 正确
  • 错误

      10、
self 在实例方法中代表本类的对象,在类方法中代表本类

答案:(T)

  • 正确
  • 错误


自己在OC考试中的试题的更多相关文章

  1. iOS开发(OC)中的命名规范

    开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...

  2. OC项目中使用Swift

    1.在OC工程中新建 Swift 文件,会提示的是否创建一个桥接文件,创建不创建都无所谓,这个桥接文件主要是用来包含OC头文件的,主要用于Swift中使用OC         2.在Person.sw ...

  3. 2014年同年CFA考试中哪些CFA资料没有变化?

    从2014年起,美国CFA协会将官方教材.题库.模拟题等CFA资料捆绑在报名费用之中,而以往可以单独选购的纸质版教材也变成了额外购买.这让非常多參加12月的CFA考生产生了借阅6月考生CFA资料的想法 ...

  4. 在Swift项目中使用OC,在OC项目中使用Swift

    几天前,我开始新的App的开发了.终于有机会把swift用在实战中了,也学到了之前纯学语法时没有机会获得的知识. 这篇博文中,我就如何使用swift.OC混编做一个介绍. OC中使用Swift 首先, ...

  5. 在OC代码中创建Swift编写的视图控制器

    背景 近日在和一群朋友做项目,我和另一位同学负责iOS客户端,我是一直使用OC的,而他只会Swift,因此在我们分工协作之后,就需要把代码合在一起,这就牵扯到如何在TabbarController中添 ...

  6. 将React Native 集成进现有OC项目中(过程记录) 、jsCodeLocation 生成方式总结

    将RN集成到现有OC项目应该是最常见的,特别是已经有OC项目的,不太可能会去专门搞个纯RN的项目.又因为RN不同版本,引用的依赖可能不尽相同,所以特别说明下,本文参考的文档是React Native ...

  7. 在OC项目中实现swift与oc混编 相互引用

    --------------------------------------------------------Begin--------------------------------------- ...

  8. oc工程中oc、swift混编代码打包成静态framework踩坑笔记

    参考资料: https://www.jianshu.com/p/734341f7c242 https://www.jianshu.com/p/55038871e7de   两天时间探索,期间不知道遇到 ...

  9. OC对象中的getter方法中不能用self.

    @interface boy:NSObject { int _age; } - (void)setAge:(int)age; - (int)age; @end @implementation boy ...

随机推荐

  1. Vertica 项目常用代码

    1.查看目录下面有多少文件数 ls -l |grep "^-"|wc -l 思路很明显了,ls后通过grep进行过滤判断是文件还是文件夹, 如果是判断文件夹,可以使用ls -l | ...

  2. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...

  3. 二分套二分 hrbeu.acm.1211Kth Largest

    Kth Largest TimeLimit: 1 Second   MemoryLimit: 32 Megabyte Description There are two sequences A and ...

  4. 该怎样提高ZBrush的创作效率

     ZBrush是一款数字雕刻和绘画软件,以强大的功能和直观的工作流程改变了整个三维行业,相信使用ZBrush的人都希望加快雕刻速度提高ZBrush技能,很多雕刻专家也都试图证明加快雕刻速度是否真的能提 ...

  5. js统计字符串中各种字符情况

    问题描述:在一个字符串中,统计出大写字母.小写字母.数字和其他字符各数.这个算法以前在学习java的时候,老师说过,而且说了四种算法.在孔乙己的世界里,茴香豆的"茴"字有四种写法嘛 ...

  6. java 19 -15 File类批量更改文件名的方法

    /* 需求: * 把H:\三国演义下面的视频名称修改为 00?_介绍.avi 思路: A:封装目录 B:获取该目录下所有的文件的File数组 C:遍历该File数组,得到每一个File对象 D:拼接一 ...

  7. angular常见坑洞

    由于版本不同,可能有些问题在某些版本下出现,某些版本下不出现. 指令不可平行(v1.3.2): 多个指令不能这样一个接着一个排下去: <div> <directive-one/> ...

  8. S2--《优化MySchool数据库设计》总结

    第一章    数据库的设计 1.1  数据库设计 数据库中创建的数据库结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素. 糟糕的数据库设计表现在以下两个方面: *效率低下 * ...

  9. 第二章 下山遇虎(@helper)

    @helper方法定义 使用@helper关键字可以定义一个方法,这样就可以在页面中调 用这个方法了,和C#中的方法一样.在页面中定义的方法可以访问ViewBag,HttpContext等等页面的属性 ...

  10. android studio使用说明

    一.学习的基本配置文档,搞好各种参数的基本配置,熟练使用. C:\Program Files\Java\jdk1.7.0_09\bin   二.problems meet in weather and ...