OC14_OC结业考试错题集

//

//  main.m

//  C14_OC结业考试错题集

//

//  Created by Rickie on 15/11/12.

//  Copyright (c) 2015 Rickie. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        /*

        

            1、用哪个关键字定义协议中必须实现的方法:

            答案:(D         选了:A

            A@optional

            B@protected

            C@private

            D、不用写关键字

            

            

            

            6、下列哪个选项不需要release方法:

            答案:(C         选了:A

            A[[NSString alloc]init];

            B[[NSString alloc] initWithString:@”hehe”];

            C[[NSArray arrayWithArray: arr1];

               D[[NSMutableDictionary alloc] init];

            

            

            

           16NSString *name = [[NSString alloc]initWithString:@"张三"];

           NSLog(@"%d",[name retainCount]);

           上述代码打印结果是:

               答案:(A          选了:D

           A-1

           B0

           C1

           D2

        

           20OC中与alloc相反的方法是:

           答案:(C        选了:A

           Arelease

           Bretain

           Cdealloc

           Dfree

        

        

           22、以下说法不正确的是:

           答案:(A       选了:C

           Anonatomic:提供多线程保护,提高性能,在没有使用多线程的编程中可以选择使用。

           Bassign:属性默认值。说明设置器直接进行赋值,针对基础数据类型 NSIntegerCGFloat)和C数据类型(int, float, double, char)等等。

           Cretain:此属性只用于obj-c的对象类型,对参数进行release旧值,再retain新值。

           Dcopy:此属性只对实现NSCopying协议的对象有效(NSString)。拷贝工作由copy方法执行。

           

           

           

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

           答案:(C        选了:B

           A、类的接口部分可以包含实例变量、属性和方法

           B、可以把声明和实现都放到.h文件中

           C、一对文件(Person.h Person.m)只能定义一个类

           D、类比较抽象,对象比较具体

           

           

           40、下列有效的键路径是:

           答案:(B        选了:C

           A[foo valueForKeyPath:@”1SomeMember”]

           B[foo valueForKeyPath:@”someMember.someAttribute”]

           C[foo valueForKeyPath:@”SOMEMEMBER@someAttibute”]

           D[foo valueForKeyPath:@”some Member”]

           

           43、下面哪个选项对集合的描述是正确的:

           答案:(D        选了:B

           A、集合内不能存不同类型的对象

           B、集合内可以存整型的数

           C、字典内键值可以相同,但是每个键值对应的对象必须不同

           D、集合内只能存对象

        

        

           52、下面哪个选项无内存问题的:

           答案:(C          选了:D

           A

           -(NSString *)description{

               NSString * str = [[NSString alloc] initWithFormat:@"description"];

               return str;

           }

           B

           -(NSString *)description{

               NSString * str = [[NSString alloc] initWithFormat:@"description"];

               [str release];

               return str;

           }

           C

           -(NSString *)description{

               NSString * str = [[NSString alloc] initWithFormat:@"description"];

               [str autorelease];

               return str;

           }

           D

           -(NSString *)description{

               NSString * str = [NSString stringWithFormat:@"description"];

               return [str autorelease];

           }

           

           

           

           53、现有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…”

           答案:(C       选了:B

           Awalk();

           Bsuper.walk;

           C[self walk];

           Dself.walk();

           

           

           

           54@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]);

           答案:(D       选了:C

           Aper.name = -1;

           Bper.name = 0;

           Cper.name = 1;

           Dper.name = 2;

           

           

           56、下列代码:

           @property(nonatomic,assign)id<Painting>myObject;

           答案:(C        选了D

           A、是说myObjectPainting分类的一部分

           B、是说myObject遵从于Painting分类

           C、是说myObject遵从于Painting协议

           D、不是合法的Objective-C语法格式

           

           

           59、对于语句NSString* testObject = [[NSData alloc] init];关于testObject是什么类型对象,以下说法正确的是:

           答案:(A        选了:D

           A、编译时,NSString类型,运行时,NSData类型

           B、编译与运行时,都是NSData类型

           C、编译与运行时,都是NSString类型

           D、运行时,NSString类型,编译时,NSData类型

           

           

           60、读代码:

           NSString *str=@"hello";

           NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];

           [mt addObject:str];

           NSLog(@"%lu",mt.count);

           结果是:

           答案:(A       选了:B

           A1

           B2

           C3

           D4

           

           

           62、声明一个返回值为NSArray,并且带两个字符串对象的BLOCK类型变量:

           答案:(D        选了:C

           ANSArray (*aBlock)(NSString * str,NSString *str2)

           BNSArray ^(*aBlock)(NSString * str,NSString *str2)

           CNSArray (^aBlock)(NSString * str,NSString *str2)

           DNSArray *(^aBlock)(NSString * str,NSString *str2)

           

           

           64、协议与委托的描述不正确的是:

           答案:(C        选了:A

           A、委托是iOS的一种设计模式

           B、协议里的方法默认是必须实现的

           C、类接受了多个协议,这些协议写在父类后面的<>内,多个协议之间用隔开

           D、定义协议使用@protocol关键字

           

           

           

           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       选了A

           A2=1 3=3 4=3

           B1=2 3=3 3=4

           C1=2 3=3 3=3

           D、程序崩溃

           

           

           68、下面程序段的输出结果是什么:

           int a = 10;

           NSNumber *b = [[NSNumber alloc] initWithInt:a];

           NSLog(@"%d", a+++b);

           答案:(D       选了A

           A21

           B20

           C30

           D、编译错误

           

           

           70、读代码

           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       选了:A

           AiLanou

           BiL123

           CiLaios

           DiLa123

           

           74、查看下列代码,能正确输出number的选项是:

           @interface MyClass : NSObject

        {

            int number;

        }

           +(void) printNumber;

           @end

           @implementation MyClass

           +(void) printNumber

        {

            number =10;

            NSLog(@""%d"",number);

        }

           @end

           答案:(D      选了:A

           A[MyClass printNumber];

           BMyClass * obj = [[MyClass alloc] init]; [obj printNumber];

           CprintNumber();

           D、编译错误,无法执行。

           

           

           75、下列选项中不能正常为empname属性赋值的代码有:

           答案:(B      选了:C

           Aemp.name=@"李嘉诚";

           Bemp->name=@"李开复";

           C[emp setValue:@"柳传志" forKey:@"name"];

           D[emp setName:@"黄光裕"];

           

           

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

           NSString * aString = [[NSString alloc] initWithString:@"123"];

           [aString autorelease];

           NSMutableArray * arr = [NSMutableArray array];

           [arr addObject:aString];

           NSLog(@"string = %lu",[aString retainCount]);

           答案:(C      选了:A

           A1

           B0

           C、整型最大值

           D2

           

        

           79、下列哪个操作不会引起引用计数(retaincount)的变化是:

           答案:(B      选了:C

           ANSString *str1 = [[NSString stringWithFormat:@"hehe"];

           Bint a=1;

           CNSMutableData *data1 = [NSMutableData allocWithZone:data2];

           DNSArray *arr1 = [[NSArray alloc]initWithArray:arr2];

           

           7、在dealloc方法中对变量的释放顺序与初始化的顺序相同。

           答案:(F      选了:正确

           正确

           错误


           10、便利构造器产生的对象应当由使用者进行销毁。

           答案:(F      选了:正确

           正确

           错误

                 

         

         

         */

         

         

         

         

    }

    return 0;

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值