巨坑OC笔试题!!!

※ 选择题(共80题,每题1分)

  • 1、
    以下代码执行后,person对象的retain count是多少:
    Person * person = [[Person alloc] init];
    [person retain]; [person release];

    答案:(B)


  • 2、
    OC中布尔(BOOL)类型的变量的值只有:

    答案:(B)


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

    答案:(D)


  • 4、
    现有如下集合,能准确删除“张三”的代码是:
    NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];

    答案:(A)


  • 5、
    NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three",nil];
    NSLog(@"%@",[array objectAtIndex:1]);
    NSLog(@"%@",[array objectAtIndex:3]);
    控制台中打印的最后一条信息会是:

    答案:(D)


  • 6、
    向Xcode控制台输出一个字符串应该用:

    答案:(A)


  • 7、
    NSMutableString * str = [[NSMutableString alloc] initWithFormat:@"123"];
    NSLog(@"str = %p",str);
    [str appendFormat:@"456"];
    NSLog(@"str = %p",str);
    上面代码对字符串str进行拼接后,2次打印的地址是否相同:

    答案:(A)


  • 8、
    下列选项中全部属于对象的是:

    答案:(C)


  • 9、
    使用 Objective-C 语言输出“This is a Objective-C program.”正确的是:

    答案:(D)


  • 10、
    在OC中,类中成员变量的可见度(访问权限)不包括:

    答案:(D)


  • 11、
    关于类和对象的概念,下列属于对象的是:

    答案:(C)


  • 12、
    下面哪些选项是属性的正确声明方式:

    答案:(C)


  • 13、
    NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"];
    NSLog(@"%@",[dict objectForKey:@"aKey"]);
    [dict release];
    控制台中打印的最后一条信息会是:

    答案:(C)


  • 14、
    OC中,所有类的根类是:

    答案:(A)


  • 15、
    OC中的委托最好声明成:

    答案:(B)


  • 16、
    下列说法中错误的是:

    答案:(C)


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

    答案:(D)


  • 18、
    Objective-C中包含一个自定义的头文件应该使用:

    答案:(C)


  • 19、
    关于集合描述不正确的是:

    答案:(A)


  • 20、
    在OC中,类的定义包括两部分(声明与实现),其中实现部分是:

    答案:(C)


  • 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];
    控制台打印的结果是:

    答案:(A)


  • 22、
    面向对象的特性不包括:

    答案:(D)


  • 23、
    必须实现的协议方法使用:关键字声明.

    答案:(C)


  • 24、
    在OC中类的接口声明关键字为:

    答案:(B)


  • 25、
    NSString *name = [[NSString alloc]initWithString:@"张三"];
    NSLog(@"%d",[name retainCount]);
    上述代码打印结果是:

    答案:(A)


  • 26、
    -(id)setName:(NSString *)name :(NSString *)sex age:(int)age的方法名是:

    答案:(C)


  • 27、
    名为print::的方法有几个传入参数:

    答案:(C)


  • 28、
    Objective-C的代码文件的后缀为:

    答案:(B)


  • 29、
    经过下列哪种操作后需要使用release方法。

    答案:(C)


  • 30、
    不会立刻使引用计数器改变的是:

    答案:(C)


  • 31、
    类何时调用dealloc方法:

    答案:(D)


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

    答案:(C)


  • 33、
    关于协议描述不正确的是:

    答案:(D)


  • 34、
    创建对象时,对象的内存和指向对象的指针分别分配在哪里:

    答案:(A)


  • 35、
    关于KVC的描述正确的是:

    答案:(B)


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

    答案:(D)


  • 37、
    实例变量默认的访问修饰符是:

    答案:(C)


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

    答案:(A)


  • 39、
    简单类型的成员比如:int类型成员在使用@property()时,括号中应使用:

    答案:(A)


  • 40、
    在OC中扩展类的方法的形式不包括:

    答案:(B)


  • 41、
    NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
    [formatter setAMSymbol:@"AM"];
    [formatter setPMSymbol:@"PM"];
    [formatter setDateFormat:@"YY-MM-dd hh:mm:ss aaa"]; 
    NSString * currentDate = [formatter stringFromDate:[NSDate date]]; 
    NSLog(@"%@",currentDate);
    打印结果是:

    答案:(D)


  • 42、
    以下说法正确的是:

    答案:(C)


  • 43、
    现要求声明一个集合,并将字符串添加到集合中,编写了如下代码,其中错误的是第几行:
    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)


  • 44、
    自定义一个Person类,下面哪个选项是规范的便利构造器声明方式:

    答案:(D)


  • 45、
    下面程序段的输出结果是什么:
    NSArray * arr1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
    NSString *str;
    str = [arr1 objectAtIndex:2];
    NSLog(@"%@",str);

    答案:(C)


  • 46、
    关于KVC的描述正确的是:

    答案:(A)


  • 47、
    现有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)


  • 48、
    下面描述正确的选项是:

    答案:(B)


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

    答案:(D)


  • 50、
    现有自定义类Student,下列选项中Student类的便利构造器编写正确的是:

    答案:(D)


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

    答案:(C)


  • 52、
    关于类目、延展的描述错误的是:

    答案:(B)


  • 53、
    下面程序段的输出结果是什么:
    NSMutableArray * arr1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3", nil];
    [arr1 addObject:@"0"];
    [arr1 replaceObjectAtIndex:2 withObject:@"3"];
    NSLog(@"%@",arr1);

    答案:(B)


  • 54、
    Objective-C 语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:

    答案:(C)


  • 55、
    NSString 和 NSMutableString的关系和区别描述不正确的是:

    答案:(D)


  • 56、
    读代码:
    NSString *str=@"hello";
    NSMutableSet *mt=[NSMutableSet setWithObjects:str, nil];
    [mt addObject:str];
    NSLog(@"%lu",mt.count);
    结果是:

    答案:(A)


  • 57、
    NSRange是什么数据类型:

    答案:(C)


  • 58、
    有一个类Student,要求实现:定义一个实例初始化方法,初始化方法需要传入名字和性别:

    答案:(B)


  • 59、
    内存管理的关键字描述错误的是:

    答案:(C)


  • 60、
    NSRange的成员变量有:

    答案:(A)


  • 61、
    下面哪个选项是正确的:

    答案:(B)


  • 62、
    关于NSSet描述正确的有:

    答案:(B)


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

    答案:(C)


  • 64、
    下面程序段的输出结果是什么:
    NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];
    [dic removeObjectForKey:@"3"];
    NSLog(@"%@",dic);

    答案:(C)


  • 65、
    下列代码:
    @property(nonatomic,assign)id<Painting>myObject;

    答案:(C)


  • 66、
    下列选项中不能正常为emp的name属性赋值的代码有:

    答案:(B)


  • 67、
    下面程序段的输出结果是什么:
    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)


  • 68、
    将@”2B青年”替换成@”文艺青年”的代码是:

    答案:(B)


  • 69、
    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]);
    上述代码打印结果正确的是:

    答案:(C)


  • 70、
    下面程序段的输出结果是什么:
    int a = 10;
    NSNumber *b = [[NSNumber alloc] initWithInt:a];
    NSLog(@"%d", a+++b);

    答案:(D)


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

    答案:(C)


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

    答案:(B)


  • 73、
    下面程序段的输出结果是什么:
    NSString * aString = [[NSString alloc] initWithString:@"hehe"]; 
    [aString autorelease];
    NSMutableArray *arr = [NSMutableArray array];
    [arr addObject:aString];
    NSLog(@"string = %d",[aString retainCount]);

    答案:(A)


  • 74、
    有如下一个类定义
    @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)


  • 75、
    对于下面代码说法正确的是:
    @property (copy,nonatomic,readonly)NSString * calValue;

    答案:(D)


  • 76、
    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);
    结果是:

    答案:(C)


  • 77、
    下面程序段的输出结果是什么:
    NSMutableDictionary * dic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"1",@"2",@"2",@"3",@"3",@"4", nil];
    [dic setObject:@"1" forKey:@"3"];
    [dic removeObjectForKey:@"1"];
    NSLog(@"%@",dic);

    答案:(C)


  • 78、
    查看下列代码,能正确输出number的选项是:
      @interface MyClass : NSObject
    {
      int number;
    }
    +(void) printNumber;
    @end
    @implementation MyClass
    +(void) printNumber
    {
      number =10;
      NSLog(@""%d"",number);
    }
    @end

    答案:(D)


  • 79、
    下面程序段的输出结果是什么:
    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)


  • 80、
    NSMutableDictionary字典中删除对象可以使用下面那个方法:

    答案:(D)


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

  • 1、
    OC中如果向空指针nil发送消息,程序会崩溃的。

    答案:(F)


  • 2、
    在类方法中可以使用实例变量。 

    答案:(F)


  • 3、
    retain的作用是引用计数减一。

    答案:(F)


  • 4、
    不是每个对象都有引用计数。

    答案:(F)


  • 5、
    声明了@property指令,就不能再用setter,getter 方法了。

    答案:(F)


  • 6、
    当类别中的方法与原始类方法名称冲突时,类别具有更高的优先级。

    答案:(T)


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

    答案:(F)


  • 8、
    协议中定义的方法默认是必须实现的。

    答案:(T)


  • 9、
    注释可以出现在程序的任何位置。

    答案:(T)


  • 10、
    实例对象都是通过调用类方法生成的。

    答案:(T)

TDengine是一种高性能、高可靠的时序数据库,由中国企业开发而成。然而,有些用户认为TDengine存在许多问题,因此将其称为"巨坑"。以下是一些可能导致用户这样形容TDengine的问题: 首先,TDengine在与其他数据库集成时可能存在兼容性问题。由于其独特的架构和设计理念,一些已有的应用程序或工具可能无法直接适配TDengine。这可能导致用户需要进行大量的修改或重写现有代码,对于一些复杂的应用场景来说,这可能是一项耗时且繁琐的工作。 其次,TDengine的文档和教程相对较少。对于新用户来说,他们可能很难找到足够的资源来学习和理解TDengine的使用方法和最佳实践。这可能给用户带来一些困扰,特别是在遇到问题时很难找到解决办法。 此外,TDengine在某些方面的性能可能不如用户期望。虽然它被称为高性能数据库,但是与其他同类产品相比,TDengine可能在某些场景下的性能表现不如人意。这可能导致一些用户对TDengine的性能感到失望,并在使用过程中遇到一些瓶颈。 最后,TDengine可能也存在一些稳定性问题。尽管它被标榜为高可靠性数据库,但在实际使用中,一些用户可能遇到了一些无法解决的故障或崩溃问题。这可能对用户的业务和数据产生一定的影响,并损害用户对TDengine的信任度。 总之,尽管TDengine在性能和可靠性方面具备一定的优势,但也不能否认它目前还存在一些问题。用户在选择使用TDengine时需要充分了解其特点和局限性,并根据自身业务需求评估是否适合使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值