自己在OC考试中的试题

 

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)

  •  正确
  •  错误

[关闭]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值