面试题分享【不断更新】
问题1:求以下程序段的输出
int test(int x, int y) {x = x + y;return x * y; }int main(int argc, const char * argv[]) {@autoreleasepool {int x = 3, y = 10, z = test(x, y);NSLog(@"%d%d", x++, ++z);}return 0; }
答案:3131
问题2:求以下程序段的输出
int func(int x) {int countx = 0;while (x) {countx++;x = x&(x-1);}return countx; }int main(int argc, const char * argv[]) {@autoreleasepool {NSLog(@"%d", func(2013));}return 0; }
答案:9
问题3:简述两个for循环的优缺点
for (i = 0; i < N; i++) {if (condition) {doSomeThing();} else {doOtherThing();} }if (condition) {for (i = 0; i < N; i++) {doSomeThing();} } else {for (i = 0; i < N; i++) {doOtherThing();} }
答案:无
问题4:请指出下面代码的问题
UIView *tmpView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.view addSubview:tmpView];
答案:无
问题5:你所了解的单例有哪些?请写了一个单例的示例代码。
答案:
@interface Manager : NSObject + (id)sharedManager; @end
static Manager *instance = nil;@implementation Manager+ (id)sharedManager {if (!instance) {instance = [[super allocWithZone:NULL] init];}return instance; }// 复写allocWithZone和copyWithZone的目的是在外部多次调用alloc的时候,内部能够确保对象只创建了一次+ (id)allocWithZone:(NSZone *)zone {return [[self sharedManager] retain]; }- (id)copyWithZone:(NSZone *)zone {return self; }// 复写retain、retainCount、release、autorelease避免单件对象被外部释放 - (id)retain {return self; }- (NSUInteger)retainCount {return NSUIntegerMax; }- (void)release {}- (id)autorelease {return self; }
问题6:在你的日常开发过程中,是否遇到过崩溃问题?怎么解决?
答案:无
问题7:请写出使用委托(代理)的示例代码。
答案:
A委托B
A.h
@protocol ADelegate; @interface A : NSObject@property (nonatomic, assign) id<ADelegate> delegate;- (void)go;@end@protocol ADelegate <NSObject>- (void)doSomeThing;@end
A.m
@implementation A- (void)go {if ([_delegate respondsToSelector:@selector(doSomeThing)]) {[_delegate doSomeThing];} }@end
B.h
#import "A.h"@interface B : NSObject<ADelegate>@end
B.m
@implementation B- (void)doSomeThing {NSLog(@"do something..."); }@end
man.m
#import "A.h" #import "B.h"int main(int argc, const char * argv[]) {@autoreleasepool {A *a = [[A alloc] init];B *b = [[B alloc] init];a.delegate = b;[a go];[a release];[b release];return 0;} }
// 输出
do something...
问题8:写出控制器加载视图的常规调用方法流程。
答案:
loadView
viewDidLoad
viewWillAppear
viewWillLayoutSubviews
viewDidLayoutSubviews
viewDidAppear
问题9:Objective-C有多重继承么?不是的话,请以示例代码说明。
答案:无
问题10:请写出下面代码的打印结果(默认在32位机器下运行)。
char a[] = "hello world"; char *p = a;NSLog(@"%ld", sizeof(a)); NSLog(@"%ld", sizeof(p));
答案:
12
4
如果在64位机器上运行
12
8
问题11: 请完成下面的函数
@interface NSCustomArray : NSArray @property (nonatomic, retain) NSArray *targets; - (void)updateTargetsByArray:(NSArray *)newArray; // 将newArray赋值给targets @end
@implementation NSCustomArray- (void)updateTargetsByArray:(NSArray *)newArray {NSArray *tmpArray = [[NSArray alloc] initWithArray:newArray];// 将tmpArray赋值给targets } @end
答案:无
问题12:检查如下代码是否有问题,如果有问题,正确的写法是?
- (void)setTarget:(NSObject *)target {self.target = target; }
答案:无
问题13:指出下面代码的问题
- (void)willEndStepOne:(NSObject *)userInfo {[NSThread detachNewThreadSelector:@selector(doSomeThing:) toTarget:self withObject:userInfo]; }- (void)doSomeThing:(NSObject *)userInfo {int max_loop_times = 999999;for (int i=0; i<max_loop_times; i++) {int randNum = rand();NSString *tmpString = [NSString stringWithFormat:@"%d", randNum];NSLog(@"%@", tmpString);} }
答案:无
转载于:https://www.cnblogs.com/and_he/archive/2013/02/20/2919235.html
面试题分享【不断更新】相关推荐
- 腾讯python面试题_面试题 | 腾讯数据分析面试题分享
原标题:面试题 | 腾讯数据分析面试题分享 annatx | 作者 高级农民工 | 来源 今天给各位分享两道数据分析试题, 这是腾讯数据分析面试官在面试时考察候选人喜欢出的题,属于硬性技能考察题目,特 ...
- 冲击双十一,我是怎么拿下蚂蚁金服的offer的,Java面试题分享
本文转载自:冲击双十一,我是怎么拿下蚂蚁金服的offer的,Java面试题分享 一.JVM面试题 1. 说说你对JVM内存模型的了解,每个区的作用是什么? 栈区: 栈分为java虚拟机栈和本地方法栈 ...
- 太棒了!2018-2020前端经典面试题整理合集,还附带大厂面试题分享!
2018到2020年,3年经典面试题整理合集,话不多说,直接上题. 1,盒模型 1.1,ie 盒模型算上 border.padding 及自身(不算 margin),标准的只算上自身窗体的大小 css ...
- 常见Linux运维面试题分享
学习Linux进入工作岗位的过程必定是要经过面试.与其他技术岗位相同.Linux运维也要经理人力面试和技术面试.对于初级运维工程师面试题目相对也很简单,但是同样有很多朋友在简单的问题上犯错.下面为大家 ...
- Unity面试】 2022年Unity面试题分享
[重点面试题]代表面试的时候问到的题目 光背答案是没有用的,一定要动手操作一下,才能知道答案为什么是这个. 本文章力求从简单的形式到深入理解原理,再到扩展,丰富知识的层次感,知其所以然. 在文末为大家 ...
- Python培训之就业面试题分享
近几年,学习Python编程的人越来越多,大家对于Python编程技术非常感兴趣,想要转型到这个行业,下面小编为大家整理一份Python找工作的面试题分享,希望能够帮助正在找Python工作的小伙们. ...
- python开发工程师面试题-2019超实用Python开发工程师面试题分享
原标题:2019超实用Python开发工程师面试题分享 Python诞生很早,但真正火爆时间并不长.目前Python语言的应用领域非常广泛,主要有系统编程.图形处理.数学处理.文本处理.数据库编程.网 ...
- 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18)
1.android开发新浪面试题[开发者必看哦] 下载地址 http://www.eoeandroid.com/thread-177885-1-1.html 2.华为关于android笔试题案例解析 ...
- java只会用不知道原理6_程序员面试宝典之14道初级Java面试题分享
程序员面试宝典之14道初级Java面试题分享 程序员面试宝典之14道初级Java面试题分享! 关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应 ...
- Python面试题分享,不要错过哟!
近几年,学习Python编程的人越来越多,大家对于Python编程技术非常感兴趣,想要转型到这个行业,下面小千为大家整理一份Python找工作的面试题分享,希望能够帮助正在找Python工作的小伙们. ...
最新文章
- java实现ad域登陆验证
- 读取数据库信息构建视图字段的备注信息,方便程序代码生成
- SE43自定义sap菜单
- Python中使用PIL快速实现二值图
- 【SICP练习】66 练习2.37
- Node Express4.x 片段视图 partials
- 进阶学习js中的执行上下文
- Python框架篇之Django(基本流程、命令行、配置文件)
- 【实习之T100开发(1),韩顺平Java视频教程百度云盘
- siamfc-pytorch代码讲解(二):trainsiamfc
- windows照片查看器没了_装机必备|Windows 上用得最爽的18款高效软件
- Linux中rz和sz命令用法详解
- Paper | Multitask learning
- 计算机的通讯方式有哪些特点,1.串行通信有几种方式?它们的特点分别是什么...
- IP地址冲突的原因及其解决方法
- 哪吒2之大闹东海电影项目亮点怎么样?
- Linux开发板网络直连电脑的设置方法
- java 蓝牙打印_Android蓝牙打印机,带你真正了解各种打印格式
- 阿里暑期实习生面试经验-数据分析岗位
- 用RJS写的检测用户名和email是否存在
热门文章
- POJ-3067 Japan(树状数组、线段树)
- desktop docker 无法卸载_docker,生信人的福音!
- 拷贝构造函数编程实验
- ValueError: invalid literal for int() with base 10 与数据类型有关的转换报错
- linux磁盘分区fdisk命令详解
- nodejs如何实现ajax,nodejs使用静态服务器处理ajax
- Leetcode题库 744.寻找比目标字母大的最小字母(C实现)
- 十大排序算法之插入排序
- 华为海思MPP媒体处理软件开发学习(基础)
- Linux上快速搭建Jenkins服务器 实现持续集成开发