自己在OC考试中的试题

 

Objective-C考试 

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

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

答案:(C)


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

答案:(C)


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

答案:(C)


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

答案:(D)


      5、
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"wangwu",@"name",@"man",@"sex", nil];
    NSLog(@"dict = %@“,dict);
控制台打印的是:

答案:(A)


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

答案:(D)


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

答案:(D)


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

答案:(A)


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

答案:(C)


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

答案:(A)


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

答案:(A)


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

答案:(B)


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

答案:(B)


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

答案:(C)


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

答案:(A)

  • - (instancetype)initWithName:(NSString*)name age:(NSInteger)age{
        self = [super init];
        if(self) {
            _name = name;
            _age = age;
        }
          return self;
    }
  • - (instancetype)initWithName:(NSString*)name age:(NSInteger)age{
        _name = name;
        _age = age;
    }
  • - (void)initWithName:(NSString*)name age:(NSInteger)age{
        _name = name;
        _age = age;
       return self;
    }
  • + (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)


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

答案:(B)


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

答案:(C)


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

答案:(D)


      20、
-(void) sayHi{    
    NSLog(@"大家好。");
}
关于该方法,叙述错误的是

答案:(A)


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

答案:(B)


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

答案:(B)


      23、
写出下面程序段的输出结果:
NSString * aString = [[NSString alloc] initWithString:@"123"]; 	
[aString autorelease];		
NSMutableArray * arr = 
[NSMutableArray array];		
[arr addObject:aString];		
NSLog(@"string = %lu",[aString retainCount])

答案:(C)


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

答案:(B)


      25、
下列说法正确的是:

答案:(C)


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

答案:(A)


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

答案:(B)


      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)


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

答案:(A)


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

答案:(A)


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

答案:(D)


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

答案:(D)


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

答案:(D)


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

答案:(D)


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

答案:(B)


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

答案:(C)


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

答案:(C)


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

答案:(B)

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

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

答案:(A)


      40、
.h文件中声明如下:
+ (id)studentWithName:(NSString *)name
                  sex:(NSString *)sex
                  age:(NSInteger)age
               school:(NSString *)school
               number:(NSInteger)number;
.m文件中如何实现?

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



原文地址:https://www.cnblogs.com/mafeng/p/5234118.html