IOS软件工程师笔试题(全选择题)【0-1年经验】
iOS开发工程师招聘笔试题与参考答案(某大型央企)

招聘iOS开发工程师笔试题与参考答案(某大型央企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个选项是iOS开发中常用的UI框架?A. UIKitB. AppKitC. CocoaD. Swift2、在Swift中,以下哪个关键字用于定义一个不可变的常量?A. varB. letC. constD. readonly3、题干:在iOS开发中,以下哪个框架是用来处理网络请求的?A. UIKitB. FoundationC. CoreGraphicsD. AFNetworking4、题干:在Swift中,以下哪个关键字用于定义一个可选类型?A. maybeB. maybe?C. optionalD. ?5、题干:在Swift中,以下哪个选项是用于创建单例模式的最佳实践?A. 使用静态变量B. 使用全局变量C. 使用static letD. 使用singleton关键字6、题干:在iOS开发中,以下哪种布局方式可以保证子视图始终位于父视图的中心?A. AutoLayoutB. Absolute LayoutC. Spring FrameworkD. Storyboard7、题干:在iOS开发中,以下哪个框架主要用于处理网络请求?A. UIKitB. Core GraphicsC. Core DataD. AFNetworking8、题干:在iOS开发中,以下哪个类用于处理文本的输入和显示?A. UITextFieldB. UITextViewC. UILabelD. UIButton9、以下哪个框架是用于iOS开发中的网络请求?A. UIKitB. Core DataC. AFNetworkingD. Core Graphics二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术是iOS开发中常用的UI组件?()A、UITableViewB、UICollectionViewC、UIWebViewD、UIImagePickerController2、以下关于iOS开发中多线程的说法,正确的是哪些?()A、iOS中可以使用GCD(Grand Central Dispatch)进行线程管理。
iOS开发工程师笔试题

12.NSLog(@"%@%d",str,[str retainCount]);
13.=======================================================
str的retainCount创建+1,retain+1,加入数组自动+1
04.[strretain];
05.[aryaddObject:str];
06.NSLog(@"%@%d",str,[str retainCount]);
07.[strretain];
08.[strrelease];
09.[strrelease];
10.NSLog(@"%@%d",str,[str retainCount]);
[cpp] view plaincopy
01.=======================================================
02.NSMutableArray* ary = [[NSMutableArray array] retain];
03.NSString *str = [NSString stringWithFormat:@"test"];
10. [name release];
11. name = t;
12.}
5.对于语句NSString*obj = [[NSData alloc] init]; obj在编译时和运行时分别时什么类型的对象?
编译时是NSString的类型;运行时是NSData类型的对象
软件工程师笔试题

软件工程师笔试题一、概述软件工程师笔试题旨在测试应聘者在软件工程领域的知识和技能,包括软件开发流程、编程语言、算法和数据结构、数据库管理、网络通信等方面的内容。
本文将以题目形式呈现一些常见的软件工程师笔试题,帮助应聘者更好地准备笔试。
二、题目列表以下是一些常见的软件工程师笔试题,涵盖不同领域的知识和技能:1. 编程语言题目1.1 给定一个整数数组,如何找到数组中的最大值和最小值?1.2 解释什么是代码优化,列举一些常用的代码优化技术。
1.3 什么是多态?如何在面向对象编程中实现多态?2. 算法和数据结构题目2.1 实现一个二叉树的遍历算法,并写出相应的代码。
2.2 描述并实现一个基于散列函数的哈希表数据结构。
3. 数据库管理题目3.1 解释什么是数据库事务,并描述事务的ACID特性。
3.2 如何进行数据库性能优化?列举一些常用的优化手段。
4. 网络通信题目4.1 解释TCP/IP协议栈的每一层的功能及其相互关系。
4.2 什么是RESTful API?如何设计一个符合RESTful原则的API接口?5. 项目管理题目5.1 请描述你在之前的项目开发中承担的角色和任务。
5.2 你如何进行项目需求分析和任务分解?请描述你的方法和流程。
三、解答1. 编程语言题目1.1 在给定的整数数组中,可以通过遍历一次数组,并将当前元素与最大值和最小值进行比较来找到最大值和最小值。
首先,将最大值和最小值初始化为数组的第一个元素。
然后,遍历数组的每个元素,如果当前元素大于最大值,则更新最大值;如果当前元素小于最小值,则更新最小值。
最后,返回最大值和最小值。
1.2 代码优化是指通过改进代码的执行效率、内存占用或其他方面的性能指标来提高程序的运行效率。
常用的代码优化技术包括:- 减少循环次数或循环体内的计算量。
- 减少方法调用次数或方法体内的计算量。
- 使用合适的数据结构和算法。
- 避免过多的内存分配和释放。
- 使用缓存和预加载等技术提高数据访问效率。
IOS笔试题题目

1. delegate中的property使用以下哪个属性()A. assignB. retainC. copyD. Strong2. 关于Objective-C中属性的说明,以下错误的是()A.readwrite是可读可写特性,需要生成getter方法和setter方法B.readonly是只读特性,只有getter方法,没有setter方法C.assign是赋值属性,setter方法将传入参数赋值给实例变量D.retain表示持有特性,copy属性表示拷贝属性,都会建立一个相同的对象3. 下面对category描述不正确的是()A.category可以添加新的方法B.category可以删除修改之前的方法C.将类的实现分散到多个不同文件或多个不同框架中D.创建对私有方法的前向引用4. NSRunLoop的以下描述错误的是()A.Runloop并不是由系统自动控制的B.有3类对象可以被run loop监控:sources,timers,observersC.线程是默认启动run loop的D.NSTimer可手动添加到新建的NSRunLoop中5. 单例类NSNotificationCenter提供信息广播通知,它采用的是观察者模式的通知机制。
()A. 对B. 错6. 判断:从通讯录数据库查询联系人数据,可通过ABAddressBookCopyArrayOfAllPeople和ABAddressBookCopyPeopleWithName函数获得。
()A. 对B. 错7. NSURLConnection类的同步请求方法是()A.+ sendSynchronousRequest:returningResponse:error:B.–initWithRequest:delegate:C.–initWithRequest:delegate:startImmediately:8. genstrings命名的基本语法:genstrings [-a] [-q] [-o] sourcefile()A.对B.错9. 面哪些属于UITableViewDelegate协议的方法()A.tableView:cellForRowAtIndexPath:B.tableView:numberOfRowsInSection:C.tableView:didSelectRowAtIndexPath:D.numberOfSectionsInTableView:10. 平铺导航模式是在内容组织上没有层次关系,展示的内容都放置在一个主屏幕上,采用分屏或分页控制器进行导航,可以左右或者上下滑动屏幕查看内容()A.对B.错多选:1. UIPopoverController控制器的常用方法和属性()A.presentPopoverFromBarButtonItem:permittedArrowDirections:animated:呈现Popover视图方法B.dismissPopoverAnimated: 关闭Popover视图方法C.popoverVisible,判断Popover视图是否可见D.popoverArrowDirection,判断Popover视图箭头的方向2. 模态视图专用属性有哪些()A.UIModalPresentationFullScreen,全屏状态,是默认呈现样式,iPhone只能全屏呈现。
iOS笔试题及答案.doc

1.什么是ARC/MRC,ARC无法管理内存的情况?答案1. ARC:自动引用计数。
0C自动内存管理机制,2区别于MRC需要手动管理引用计数retain或release对引用计数+1・1操作。
这种操作耗费精力容易出错,比如在多线程操作有时不确定哪个线程最后使用完毕,在模块化时对象被多个模块创建和使用,不能确定最后由谁去释放o无法管理内存的情况?**1***Block或Delegate的循环引用解决的方法:掐断其中的一条强引用,使之变成弱引用,变成这样,就打破了循环引用:_weaktypeof (self) weakSelf =self;Delegate要用weak修饰***2**NSTimer 未释放在使用NSTimer addtarget时,为了防止target被释放而导致的程序异常,timer会强引用target ,所以这也是一处内存泄露的隐患。
解决方法是使用线程安全的MSWeakTimer ,然后在dealloc中主动调用invalidate杆3★"非0C对象2•如何理解retain/copy/assign/release/autor releas引dealloc 关键字?答案copy:建立一个索引计数为1的对象,然后释放旧对象,主要用于nsstring;retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 对其他NSObject和其子类assign:简单赋值,不更改索引计数release :手动释放对象;dealloc :它的作用是,当对象的引用计数为0 ,系统会自动调用dealloc方法,回收内存。
autorelease 原理:a. 先建立一^autorelease poolb. 对象从这个autorelease pool里面生成。
c. 对象生成之后调用autorelease函数,这个函数的作用仅仅是在autorelease pool中做个标记,让pool记得将来release —下这个对象。
ios开发工程师笔试题

ios开发工程师笔试题
预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制
1.沙盒是什么,你理解的沙盒的作用是干什么?
2.浅克隆和深克隆区别是什么,阐述一个你在项目开发中遇到深拷贝的场景。
3. 谈谈你对IOS的推送机制原理的理解。
4.数据库现有三张表,分别为:
Goods(商品表): ID商品编号、NAME商品名称、MANUFACTURER生产商、SID规格编号
Spec(规格表):ID规格编号、COLOR颜色、SIZE尺寸
Sales_record(销售记录表):ID销售记录流水号、GID销售商品编号、COUNT销售量
(1)请设计查询语句查出规格编号为1销售量最多的商品编号、商品名称、颜色、尺寸;
(2)请设计查询语句查出生产商在上海(以上海开头)的商品的销售量总和;
5.谈谈你对KVO和KVC的理解,项目有没有应用到,如果应用到,请说下应用场景。
6.阐述项目中如何使用HTTP请求
7.谈谈你对约束的理解,有没有用过,如果有,请说明应用场景。
8.简单阐述你的应用使用多线程的理解。
9.现在一个班上有10个每个高低不同的人,先把10个人打乱排队,如何用程序排序的算法,把10个人按照高低或者低高的顺序排序。
10.谈谈你对工厂方法设计模式的理解及写个简单伪代码。
【IT专家】一套不错的IOS笔试题选择题

本文由我司收集整编,推荐下载,如有疑问,请与我司联系一套不错的IOS 笔试题选择题2015/08/17 1 1-10 C 语言计算机基础1、请看下面一段代码static int a = 1;int main(){ int b = 2; char *c = NULL; c = (char *)malloc(100 * sizeof(char)); return 0;} 请问访问a,b,c 3 种类型变量的效率从高到低依次是A. cbaB. abcC. acbD. bca(B)2、下面四种内部排序算法中哪一种在最差情况下时间复杂度最高?A. 快速排序B. 冒泡排序C. 堆排序D. 归并排序(B)3、Shell 中,将command1 的输出作为command2 的输入应该使用的命令是A. command1 command2B. command1 command2C. command1 command2D. command1 |command2(D)4、下面的数据结构中不属于线性结构的是A. 栈B. 链表C. 二叉树D. 线性表(C)5、在一个二叉树上,第5 层最多可以有的节点数是A. 2B. 8C. 16D. 32(C)6、在长度为n 的线性表上进行顺序查找,在最糟糕的情况下需要的比较次数是A. nB. 2n-1C. 2nD. n(A)7、下面那项不是动态语言的特性A. 在运行时替换一个类B. 在运行时动态加载lib 文件C. 在运行时修改对象中的方法D. 在运行时增加对象的方法(B)8、已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A. cedbaB. acbedC. decabD. deabc。
ios笔试题及答案

ios笔试题及答案一、题目描述:1. 请简述iOS的MVC架构是什么?答案:iOS的MVC架构即Model-View-Controller架构,用于分离应用程序的数据模型、用户界面和控制逻辑。
Model负责处理数据的存储、检索和修改,View负责显示用户界面,Controller负责管理用户交互并根据用户操作更新Model和View。
2. 什么是iOS的Autolayout?答案:Autolayout是iOS中的一种界面布局方式,用于实现适配不同屏幕尺寸和方向的界面。
通过使用约束关系来描述视图之间的关系,Autolayout可以自动调整和计算视图的位置和大小。
3. 请简要介绍iOS中的多线程编程方式。
答案:iOS中的多线程编程方式包括:- NSThread:通过创建和管理自己的线程对象来实现多线程。
- GCD(Grand Central Dispatch):使用队列(dispatch queue)来管理任务的执行,自动进行线程的调度。
- NSOperation:基于GCD之上的高层抽象,通过将任务封装成操作(operation)来实现多线程。
二、题目解答:1. iOS的MVC架构是一种经典的软件设计架构,它将应用程序分为三个部分:Model、View和Controller。
下面分别介绍这三个部分的作用:- Model:代表应用程序的数据模型,负责处理数据的存储、检索和修改。
它通常包含数据结构、数据库操作和网络请求等功能。
- View:代表用户界面,负责显示数据和用户交互。
它包含了屏幕上显示的各种元素,如按钮、标签、文本框等。
- Controller:作为Model和View之间的连接器,负责处理用户输入、更新Model和View之间的关系。
它接收用户交互事件,调用Model的方法进行数据处理,更新View的显示。
MVC架构的优点是分离了应用程序的不同功能部分,使得各部分可以独立开发和测试,易于维护和扩展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单选题(共25题)
1.OC中包含一个自定义的头文件应该使用:
A.#include ""
B.#include<>
C.#import ""
D.#import<>
2.必须实现的协议方法使用:关键字声明.
A.@property
B.@interface
C.@required
D.@protocol
3.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.4
B.5
C.6
D.7
4.声明一个方法:提供Student对象数组按照学号升序排列的判断条件:
A.-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudent
B.-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudent
C.- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudent
D.+(int)compareWithNumberForAscendSort:(Student
5.OC语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:
A.@public
B.@private
C.@protected
D.@friendly
6.关于集合描述不正确的是:
A.所有的集合都可以添加元素。
B.集合分为可变集合.不可变集合。
C.数组.字典.NSSet这三种集合存储数据的方式不同。
D.所有集合都能保存id类型数据。
7.NSDictionary *dict = [NSDictionary dictionaryWithObject:@"a value" forKey:@"aKey"]; NSLog(@"%@",[dict objectForKey:@"aKey"]);
[dict release];
控制台中打印的最后一条信息会是:
A.a value
B.aKey : a value
C.崩溃信息
D.a value : aKey
8.向OC控制台输出一个字符串应该用:
A.NSLog()
B.Printf()
C.NSPrintf()
D.scanf()
9.名为print::的方法有几个传入参数:
A.0
B.1
C.2
D.3
10.下列哪个选项与@synthesize配合使用:
A.@end
B.@interface
C.@implementation
D.@property
11.面向对象的特性不包括:
A.封装
B.继承
C.多态
D.构造
12.OC中,所有类的根类是:
A.NSObject
B.NSDate
C.NSCoding
D.UIView
13.现有如下集合,能准确删除“张三”的代码是:
NSMutableDictionary * peoples=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"张三",@"左护法",@"李四",@"右使",@"唐sir",@"老大哥", nil];
A.[peoples removeObjectForKey:@"左护法"];
B.[peoples removeObject:@"张三"];
C.[peoples removeObjectAtIndex:0];
D.[peoples removeAllObjects];
14.使用OC语言输出“This is a Objective-C program.”正确的是:
A.NSLog(@"%s",This is a Objective-C program.);
B.NSLog(@"%@",This is a Objective-C program.);
C.NSLog(@"This is a Objective-C program.",%@);
D.NSLog(@"This is a Objective-C program.");
15.协议与委托的描述不正确的是:
A.委托是iOS的一种设计模式
B.协议里的方法默认是必须实现的
C.类接受了多个协议,这些协议写在父类后面的<>内,多个协议之间用“.”隔开
D.定义协议使用@protocol关键字
16.关于协议描述不正确的是:
A.协议分正式和非正式协议。
B.在要求确认协议的类必须实现协议中的方法时,可以使用@required。
C.一个协议可以被多个类确认。
D.协议中声明的方法,默认是@optional的。
17.下面关于类概念的描述中,错误的是:
A.类是抽象数据类型的实现
B.类是具有共同行为的若干对象的统一描述体
C.类是创建对象的模板
D.类就是C语言中的结构体类型
18.下面哪些选项是属性的正确声明方式:
A.@property(nonatomic,retain)NSString myString;
B.@property(nonatomic,assign)NSString * myString;
C.@property(nonatomic,assign)int mynumber;
D.@property(nonatomic,retain)int mynumber;
19.NSString *name = [[NSString alloc]initWithString:@"张三"];
NSLog(@"%d",[name retainCount]);
上述代码打印结果是:
A.-1
B.0
C.1
D.2
20.不会立刻使引用计数器改变的是:
A.release
B.alloc
C.autorelease
D.retain
21.OC中的委托最好声明成:
A.retain
B.assign
C.copy
D.readonly
22.经过下列哪种操作后需要使用release方法。
A.delegate
B.assign
C.retain
D.dealloc
23.在OC中类的接口声明关键字为:
A.@import
B.@interface
C.@implemention
D.@protocol
24.-(id)setName:(NSString *)name :(NSString *)sex age:(int)age的方法名是:
A.-(id)setName:(NSString *)name :(NSString *)sex age:(int)age
B.-setName:name :sex age:age
C.setName: : age:
D.setName:name:age:
25.将@"2B青年"替换成@"文艺青年"的代码是:
A.[@"2B青年" stringByAppendingOfString:@"2B" withString:@"文艺"];
B.NSRange range = {0,2}; [@"2B青年" stringByReplacingCharactersInRange:range withString:@"文艺"];
C.NSRange range = {1,2};[@"2B青年" stringByReplacingCharactersInRange:range withString:@"文艺"];
D.[@"2B青年" stringByReplacingOccurrencesOfString:@"文艺" withString:@"2B"];。