OC考核测试题

#import <Foundation/Foundation.h>

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])

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

@autoreleasepool {

/* 第1题 请将如下数据存储成字典,并将字典内容以字符串形式输出,输出:"XXX,年龄XXX岁,科目XXX,分数XXX"(将XXX替换为相应的数据)。

*/

NSString *name = @"张三";

NSInteger age = 22;

NSNumber  *[email protected];

NSString *subject = @"数学";

//数据存储成字典

NSDictionary *[email protected]{@"name":name,

@"age":@(age),

@"score":score,

@"subject":subject};

NSLog(@"%@,年龄%@岁,科目%@,分数%@",dic[@"name"],dic[@"age"],dic[@"subject"],dic[@"score"]);

/*第2题:12,9,34,56,11存入NSArray数组,输出结果:1)倒序输出2)降序输出*/

NSArray *array=[[NSArray alloc]initWithObjects:@12,@9,@34,@56,@11,nil];

for (int i=4; i<[array count]; i--) {

NSString *element=[array objectAtIndex:i];

NSLog(@"%@",element);

}

NSLog(@"\n");

NSComparator sortBlock=^(id obj1,id obj2){

return [obj2 compare:obj1];

};

NSArray *sortArray=[array sortedArrayUsingComparator:sortBlock];

for (id str in sortArray) {

NSLog(@"%@",str);

}

/* 第3题 判断中间目录是否存在

比如 传入字符串 @"/home/qianfeng/oc.txt" 和 @"qianfeng"

返回:YES

传入字符串 @"/usr/qianfeng/oc.txt 和 @"fengqian"

返回:NO

*/

NSString *[email protected]"/home/qianfeng/oc.txt";

NSRange rang=[str rangeOfString:@"qianfeng"];

if (rang.location==NSNotFound) {

NSLog(@"NO");

}else{

NSLog(@"YES");

}

NSString *[email protected]"/usr/qianfeng/oc.txt";

NSRange rang1=[str1 rangeOfString:@"fengqian"];

if (rang1.location==NSNotFound) {

NSLog(@"NO");

}else{

NSLog(@"YES");

}

/* 第4题数组内元素按中文排序

*/

NSArray *[email protected][@"小雨",@"安安",@"小风",@"荣荣",@"张涛",@"李文荣"];

NSArray *sortedArr2=[arr2 sortedArrayUsingSelector:@selector(localizedCompare:)];

for (NSString *str in sortedArr2) {

NSLog(@"%@",str);

}

}

return 0;

}

时间: 2024-10-14 00:56:18

OC考核测试题的相关文章

oc深坑测试题及其答案

一.选择题(共80题,每题1分) 1. 不会立刻使引用计数器改变的是: 答案:(C) A.release B.alloc C.autorelease D.retain 2. 在OC中类的接口声明关键字为: 答案:(B) A.@import B.@interface C.@implemention D.@protocol 3. NSString *name = [[NSString alloc]initWithString:@"张三"];NSLog(@"%d",[na

OC高级编程——深入block,如何捕获变量,如何存储在堆上

首先先看几道block相关的题目 这是一篇比较长的博文,前部分是block的测试题目,中间是block的语法.特性,block讲解block内部实现和block存储位置,请读者耐心阅读.具备block基础的同学,直接调转到block的实现 下面列出了五道题,看看能否答对两三个.主要涉及block栈上.还是堆上.怎么捕获变量.答案在博文最后一行 //-----------第一道题:-------------- void exampleA() { char a = 'A'; ^{ printf("%

C以及Objective-C测试题讲解(下)

接前天的博客,今天继续讲解后27题.测试题地址:http://www.eosgarden.com/en/articles/objc-quizz/take/ 31.Which of the following can be inherited? 以下哪些可被继承? 答案:protocols,classes.协议和类 说明:要注意categories无法被继承. 32.How do you throw an exception? 如何抛出异常? 答案:@throw e 说明:Object-C语言的异

C以及Objective-C测试题讲解(上)

测试地址:http://www.eosgarden.com/en/articles/objc-quizz/take/ 这是前几天好友共享的Obj-C测试题,共57题.自以为精通OC了的本人去做了下测试题,结果受到了较为严重的精神打击,考点非常细,有些甚至非常底层.准备分2次讲解这些题目,下面逐个讲解这些考题.其中有一些题目笔者自身也有一些疑问,欢迎探讨. 1.What is "Nil" in Objective-C? “Nil”在OC中是什么? 答案:(void *)0 说明:'NUL

第十一讲.oc学习补充(description方法,)

一.description方法的使用 1.默认的description方法 NSLog函数一旦发现用%@输出某个OC对象时,就会调用这个对象的description方法(这个方法返回值是NSString类型,是OC中的字符串类型),并且将description方法返回的字符串代替%@的位置进行输出. * description方法的默认实现是返回这样的格式:<类名: 对象的内存地址>,因此上面代码的输出结果为: 2.重写description方法 description方法的默认实现是返回类名

iOS开发——网络编程OC篇&amp;Socket编程

Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议   对应于应用层 tcp协议    对应于传输层 ip协议     对应于网络层 三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要

嵌入式&amp;iOS:回调函数(C)与block(OC)传 参/函数 对比

C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(int data_i32)); callBack.c 1).在doSomeThingCount函数,对运行次数自增,并调用参数--函数. void DSTCount(void(*CallBack)(int data_i32)) { static int numb = 0; numb++; (*Call

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

OC内存管理

OC内存管理 一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等. 管理范围:任何继承NSObject的对象,对其他的基本数据类型无效. 本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也