IOS软件工程师笔试题(全选择题)【0-1年经验】

合集下载

iOS开发工程师招聘笔试题与参考答案(某大型央企)

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开发工程师笔试题

iOS开发工程师笔试题
11.[aryremoveAllObjects];
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笔试题题目

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

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开发工程师笔试题

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笔试题选择题

【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笔试题及答案

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架构的优点是分离了应用程序的不同功能部分,使得各部分可以独立开发和测试,易于维护和扩展。

ios笔试题及答案

ios笔试题及答案

ios笔试题及答案1. 什么是iOS?A. 苹果公司的移动操作系统B. 苹果公司的桌面操作系统C. 微软公司的移动操作系统D. 谷歌公司的移动操作系统答案:A2. iOS系统支持的设备类型包括哪些?A. iPhoneB. iPadC. iPod TouchD. 所有以上选项答案:D3. 在iOS中,用于开发应用程序的主要编程语言是什么?A. SwiftB. JavaC. PythonD. C++答案:A4. iOS应用程序的扩展名是什么?A. .appB. .exeC. .ipaD. .apk答案:C5. 在iOS开发中,哪个框架用于创建用户界面?A. UIKitB. SwiftUIC. React NativeD. Flutter答案:A6. iOS应用程序的生命周期包括哪些阶段?A. 启动、运行、暂停、恢复、退出B. 启动、运行、暂停、终止C. 启动、运行、暂停、恢复、终止D. 启动、运行、暂停、恢复、退出、终止答案:C7. 在iOS中,哪个工具用于测试应用程序的性能?A. XcodeB. InstrumentsC. SimulatorD. TestFlight答案:B8. iOS应用程序的图标尺寸是多少?A. 180x180 pixelsB. 1024x1024 pixelsC. 120x120 pixelsD. 57x57 pixels答案:A9. iOS应用程序的最小支持版本是什么?A. iOS 7B. iOS 8C. iOS 9D. iOS 10答案:A10. iOS应用程序的发布平台是什么?A. App StoreB. Google PlayC. Microsoft StoreD. Amazon Appstore答案:A。

IOS笔试题

IOS笔试题

卷一:技术题部分一、不定项选择题:基础理论知识,(10题×4分,合计40分)1、以下线性表中能使用二分查找的有()A. 链接方式存储,元素无序B. 链接方式存储,元素有序C. 顺序方式存储,元素无序D. 顺序方式存储,元素有序2、贪婪法是一种()的算法。

A.不求最优,只求满意 B.只求最优 C.求取全部可行解 D.求取全部最优解3、下列是散列(哈希)算法的有()A. MD5 B.DES C.SHA-1 D.RSA E.RC44、下列四个不同数制表示的数中,数值最大的是()A.二进制数01111011 B.八进制数175C. 十进制数123D. 十六进制数7B5、0x12345678在采用BigEndian字节序时在内存中的排列顺序是(),在采用LittleEndian 字节序时在内存中的排列顺序是()A.12 34 56 78 B.34 12 78 56 C.78 56 34 12 D.56 78 12 346、在提供虚拟存储的系统中,用户的逻辑地址空间主要受()的限制。

A. 内存空闲块的大小 B.外存的大小 C.计算机编址范围 D.页表大小7、虚存页面调度算法有多种,()调度算法不是页面调度算法。

A.后进先出 B.先进先出 C.最近最少使用 D.随机选择8、在LINUX某个目录下执行命令ls -l后,得到关于某个文件(假设文件名为a)权限的字符串为“-rwxr-xr--”,则与此用户在同一组的用户对该文件a所拥有的操作权限有()A. 读B. 写C. 执行D. 没有任何操作权限9、当出现()情况时,系统可能产生死锁。

A. 进程释放资源B. 一个进程进入死循环C. 多个进程竞争,资源出现了循环等待D. 多个进程竞争共享型设备10、FTP默认的数据端口号是(),HTTP默认的端口号是()A.20 B.21 C.22 D.23E.25 F.80 G.1024 H.8080二、不定项选择题:语言知识。

iOS笔的试卷

iOS笔的试卷

iOS 笔试题姓名 _________________时间 ____________________一、填空题( 20 题)1、与 alloc 对应的方法是2、@property 的作用是,与 retain 对应的方法是, @synthesize的作用是。

3、一个对象的dealloc 方法在时被调用。

4、分类( categories)能够向一个已有的类中增添拓展( extensions)能够在目前类中增。

加。

5、iOS 开发者账户中,最多能够增添台设施号。

6、协议( protocal)能够分为两种,此中以重点字声明的协议能够不被实现。

7、是大部分Objective-C 类继承的根类,它没有父类。

8、代理( delegate)的作用是。

9、UIViewController的 didReceiveMemoryWarning 方法在时会调用。

10、MVC模式中, M是指,V 是指,C 是指。

11、autorelase的作用是。

12、 iOS 后台运转是在系统版本才开始支持。

13、代码:- (void )setName:(NSString *)newName{ = newName;}被调用的结果是。

14、UDID是由位十六进制字符串构成。

15、在KVC中通用的属性接见器方法是和。

16、重点字nil在 Objective-C 中表示。

17、#import 和 #include 的差别是。

18、在 Objective-C 中能否支持运算符重载,可否在头文件里声明私有方法。

19、在 Instruments工具中,用于检查内存泄漏的工具是。

20、在 iOS 开发环境下,后缀为 .a 的文件又叫做。

二、单项选择题( 20 题)1、在 Objective-C 中,类的成员变量默认被声明为:()A:@private B:@protected C:@public D:@package2、iPhone、iPad、iTouch 中使用的架构是()A:arm B:i386C:x86D:IA-323、下边哪个类在 iPhone 应用程序开发时不可以使用( )A:UITabViewControllerB:UINavigationController C:UISplitViewController D:UITableViewController4、对于 Objective-C++中的异样办理,下边说法最正确的选项是()A:Objective-C 不支持异样办理B:在 Objective-C++中, Objective-C 的异样办理能够捕捉C++的异样C:在 Objective-C++中, Objective-C 的异样办理不可以捕捉到 C++的异样D: 在 Objective-C++中, Objective-C 和 C++的异样办理能够互相捕捉异样5、在对象的 dealloc 方法中,对于 [super dealloc];语句说法正确的选项是()A:[super dealloc];有没有没相关系B:[super dealloc];应当放在 dealloc 方法内的第一行C:[super dealloc];应当放在 dealloc 方法内的最后一行D:[super dealloc];地点无所谓,只需在dealloc 方法里有就能够6、下边对于方法: [[[object method1] method2] method3:[object method4]];中的method调用次序是( ) A:1234B:1243C:4123D:432 17、iOS开发中, HTTPS通信是在什么地点来保障安全性()A: NSURLRequest方法里B: NSURLRequest代理方法里C: NSURLConnection方法里D:NSURLConnection代理方法里8、对于 NSURLConnection同步通信和异步通信,下边说法正确的选项是()A:同步通信是指发送数据后,不等接收方回应,接着发下一个数据B:异步通信时会堵塞目前线程C:发送同步通信时,系统会自动创立一个独自的线程D:一般不在主线程中使用同步通信,由于会惹起主线程堵塞9、下边方法中,那一个方法没有创立新的线程()A:+ (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(id)argument;B:- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument;C:- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg;D:- (void)performSelectorOnMainThread:(SEL)aSelectorwithObject:(id)arg waitUntilDone:(BOOL)wait;10、ARC (Automatic Reference Counting)模式下,下边哪个方法是未被禁用的:( )A:retain B:copy C:release D:autorelease 11、下边不是标准UIButton种类的是( )A:UIButtonTypeRoundedRect B:UIButtonTypeContactAddC:UIButtonTypeRadio D:UIButtonTypeInfoLight12、在给 UIButton 设置图片刻,为了让图片适应按钮的大小,需要将按钮的contentMode设置为:( )A: UIViewContentModeScaleToFill C: UIViewContentModeScaleAspectFill B: UIViewContentModeScaleAspectFit D: UIViewContentModeCenter13、对于 UIControl 和 UIView 之间的关系,下边说法正确的选项是A:UIControl 继承于 UIView B:UIView 继承于 UIControlC:UIControl 与 UIView 之间没有继承关系D:UIControl 和 UIView 都是直接继承于UIResponder( )14、对于应用程序目录在更新、恢复和更新过程的变化,下边说法错误的选项是()A: 在备份过程中 /Library/Caches 目录会被备份B:在应用程序更新过程中,/Documents目录会被保存C:在备份过程中 /tmp 目录将不会被备份D: 在应用程序更新过程中,/Library/Preferences目录会被保存15、iPhone上,不可以被应用程序直接调用的系统程序是A: 通信录B:短信C:日历D:邮件()16、以下 UIView 的方法中,哪一个在IOS5.0 前后的系统调用体制不一样()A: addSubView B:layoutSubView C:drawRect D:removeFromSuperView17、结构 UIImage 的方法中,占用内存最大的哪个方法()A:imageNamed B:imageWithContentsOfFile C:imageWithData D:三者同样大18、以下对象中不可以调用initWithContentsOfFile方法进行结构的是()A:NSString B:NSXMLParser C:NSDictionary D:NSData19、对于iCloud,下边说法错误的选项是()A:能够经过程序,将一个文档保存到用户的iCloud 里B:用以经过程序,在 iCloud 里只保存一个键值对C:不可以在模拟器上测试 iCloud 程序D:程序使用 iCloud 时,只需要使用相应的 API 即可,不需要额外的配置20、应用程序大小超出多少时,只好经过WiFi从 App Store 上下载( )A:5MB B:10MB C:20MB D:100MB三、多项选择题( 10 题)1、下边哪些方法是UITableView 的 delegate方法 :()A:- (NSInteger)tableView:(UITableView *)tableViewnumberOfRowsInSection:(NSInteger)section;B:- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath;C:- (CGFloat)tableView:(UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath *)indexPath;D:- (void)tableView:(UITableView *)tableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath;2、下边哪些重点字会惹起对象的引用计数 (retainCount)加一:()A:alloc B: init C:retain D:copy3、在以 .mm 为拓展名的文件里,能够包括的代码有哪些?()A:C B:Objective-C C:C++D:Java4、下边哪些类中使用到了单例(Singletion)模式?()A:NSFileManager B:NSNotificationCenter C:UIApplicationD:UIDevice5、能够经过代码进行写操作的文件或目录有?()A:bundle 目录B:Documents 目录C:keychain D:SQLite6、下边各数据种类中,能够直接放进NSArray 数组的有:()A:BOOL B:NSInteger C:NSString D:NSArray7、Objective-C 的迅速列举对照循环接见的长处,下边说法正确的选项是()A: 使用迅速列举效率更高B: 语法更简短C:使用更安全D:支持更多的数据种类8、对于 XML 和 JSON,以下说法正确的有:()A:XML 是一种近似 HTML 的语言, JSON 是一种轻量级的数据互换格式。

软件工程师笔试题及答案

软件工程师笔试题及答案

软件工程师笔试题及答案一、选择题1. 在面向对象编程中,封装的目的是:A. 隐藏数据B. 隐藏方法C. 隐藏数据和方法D. 隐藏类答案:C2. 下列哪个不是Java的基本数据类型?A. intB. floatC. StringD. double答案:C3. 在软件开发中,哪个阶段是进行需求分析?A. 计划阶段B. 需求分析阶段C. 设计阶段D. 编码阶段答案:B二、简答题1. 请简述软件开发生命周期(SDLC)的主要阶段。

答案:软件开发生命周期(SDLC)的主要阶段包括:- 需求收集与分析- 系统设计- 编码与实现- 测试- 部署- 维护2. 什么是递归算法?请举例说明。

答案:递归算法是一种在问题解决过程中调用自身的算法。

它通常用于解决可以分解为相似子问题的问题。

例如,计算阶乘的算法就是一个递归算法:```int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```三、编程题1. 编写一个函数,实现字符串的反转。

示例代码:```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组,请找出其中最大的连续子数组和。

示例代码:```pythondef max_subarray_sum(arr):max_sum = current_sum = arr[0]for num in arr[1:]:current_sum = max(num, current_sum + num)max_sum = max(max_sum, current_sum)return max_sum```四、案例分析题1. 描述一个你参与过的软件项目,并解释你在项目中的角色和贡献。

答案:(此处应根据个人经验填写具体内容,包括项目名称、使用的技术和工具、个人职责、解决的问题以及取得的成果等。

IOS软件工程师笔考试试题(全选择题)【0-1年经验】

IOS软件工程师笔考试试题(全选择题)【0-1年经验】

单选题(共25题)1.OC中包含一个自定义的头文件应该使用:A.#include ""B.#include<>C.#import ""D.#import<>2.必须实现的协议方法使用:关键字声明.A.@propertyB.@interfaceC.@requiredD.@protocol3.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.4B.5C.6D.74.声明一个方法:提供Student对象数组按照学号升序排列的判断条件:A.-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)otherStudentB.-(NSInteger)compareWithNumberForAscendSort:(Student*)otherStudentC.- (BOOL))compareWithNumberForAscendSort:(Student*)otherStudentD.+(int)compareWithNumberForAscendSort:(Student5.OC语言中类的实例变量如果只可以被本类和其子类访问,需要下列哪个修饰符:A.@publicB.@privateC.@protectedD.@friendly6.关于集合描述不正确的是:A.所有的集合都可以添加元素。

iOS笔试题01

iOS笔试题01

1>#import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次2>@class仅仅是声明一个类名,并不会包含类的完整声明;@class还能解决循环包含的问题3>#import <> 用来包含系统自带的文件,#import “”用来包含自定义的文件1>readwrite:同时生成get方法和set方法的声明和实现2>readonly:只生成get方法的声明和实现3>assign:set方法的实现是直接赋值,用于基本数据类型4>retain:set方法的实现是release旧值,retain新值,用于OC对象类型5>copy:set方法的实现是release旧值,copy新值,用于NSString、block等类型6>nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)1>@property (nonatomic, retain) NSString *name;- (void)setName:(NSString *)name{if (_name != name) {[_name release];_name = [name retain];}}2>@property(nonatomic, copy) NSString *name;- (void)setName:(NSString *)name{if (_name != name) {[_name release];_name = [name copy];}}1>编译时是NSString类型2>运行时是NSData类型1>常用OC类型:NSString、NSArray、NSDictionary、NSData、NSNumber等2>OC对象需要手动管理内存,C的基本数据类型不需要管理内存id声明的变量能指向任何OC对象1>每个对象都有一个引用计数器,每个新对象的计数器是1,当对象的计数器减为0时,就会被销毁2>通过retain可以让对象的计数器+1、release可以让对象的计数器-13>还可以通过autorelease pool管理内存4>如果用ARC,编译器会自动生成管理内存的代码1>只要调用了alloc、copy、new方法产生了一个新对象,都必须在最后调用一次release或者autorelease2>只要调用了retain,都必须在最后调用一次release或者autorelease3>@property如果用了copy或者retian,就需要对不再使用的属性做一次release操作4>如果用了ARC,另外讨论NSMutableArray* ary = [[NSMutableArray array] retain];NSString *str = [NSString stringWithFormat:@"test"]; // 1[str retain]; // 2[ary addObject:str]; // 3NSLog(@"%d", [str retainCount]);[str retain]; // 4[str release]; // 3[str release]; // 2NSLog(@"%d", [str retainCount]);[ary removeAllObjects]; // 1NSLog(@"%d", [str retainCount]);结果:3、2、11>创建线程的方法NSThreadNSOperationQueue和NSOperationGCD2>主线程中执行代码[self performSelectorOnMainThread: withObject: waitUntilDone:];[self performSelector: onThread:[NSThread mainThread] withObject: waitUntilDone:];dispatch_async(dispatch_get_main_queue(), ^{});3>延时执行double delayInSeconds = 2.0;dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,(int64_t)(delayInSeconds * NSEC_PER_SEC));dispatch_after(popTime, dispatch_get_main_queue(), ^(void){});[self performSelector: withObject: afterDelay:];[NSTimer scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:];。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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"];。

相关文档
最新文档