oc测试题 (1).doc_第1页
oc测试题 (1).doc_第2页
oc测试题 (1).doc_第3页
oc测试题 (1).doc_第4页
oc测试题 (1).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、判断题1、声明了property指令,就不能再用setter,getter 方法了。可以,只是说我们更方便了2、注释可以出现在程序的任何位置。对的3、一个文件中可以声明多个类。对的4、对象和现实中的物体是一一对应的关系。5、使用一个类方法也需要构建一个对象。6、class 指令可把想要的类的接口文件包含进来如果在a.h里import了b.h,那么所有import了a.h的文件都会同时与b.h产生编译依赖,一旦b.h被修改,所有应用了a.h 的文件也要被重新编译。如果可以使用前置声明而不是import b.h,而是用class,就可以解除这种依赖关系,b.h被修改,只import了a.h的文件就未必需要重新编译。7、对象被创建出来后,其引用计数为0.Objective-C的对象拥有引用计数,对象被创建后其引用计数为1,当其引用计数减少为0时,系统将会销毁此对象8、使用便利构造器获得的对象也需要释放。不需要8.retain、 copy.assign举个例子可能更好理解点NSString *pt = NSString alloc initWithString:abc;上面一段代码会执行以下两个动作1 在堆上分配一段内存用来存储abc比如:内存地址为:0X1111 内容为 abc2 在栈上分配一段内存用来存储pt比如:地址为:0Xaaaa 内容自然为0X1111下面分别看下assign retain copyassign的情况:NSString *newPt = pt assing; 此时newPt和pt完全相同 地址都是0Xaaaa内容为0X1111即newPt只是pt的别名,对任何一个操作就等于对另一个操作。 因此retainCount不需要增加。retain的情况:NSString *newPt = pt retain; 此时newPt的地址不再为0Xaaaa,可能为0Xaabb 但是内容依然为0X1111。 因此newPt 和 pt 都可以管理abc所在的内存。因此 retainCount需要增加1copy的情况:NSString *newPt = pt copy; 此时会在堆上重新开辟一段内存存放abc 比如0X1122 内容为abc 同时会在栈上为newPt分配空间 比如地址:0Xaacc 内容为0X1122 因此retainCount增加1供newPt来管理0X1122这段内存9、objective c 可以多重继承。不可以10、冒号也是方法名的一部分。不是11、在类方法中可以使用实例变量。不可以12、默认情况下,实例变量没有特别说明的话,它们的使用范围是private 类型。13、NSString 对象可以被修改。14、break只会跳出本次循环。15、求数组的内容的个数用length方法。16、字典是根据其位置来索引数据的。17、协议中定义的方法默认是必须实现的。18、定义类目必须要拿到自己类的源代码。19、同时接受多个协议时,协议名之间要用逗号隔开。20、数组只能保存对象。21、retain的作用是引用计数减一。22、autorelease只不过是意味着“预定延迟发送一条release消息。23、objective-c的对象生成之后,需要一个指针来指向它。24、objective-c的对象在使用完成之后不会自动销毁,需要执行dealloc来释放,否则内存泄露。25、 声明一个类时必须命名它的父类。26、 实例变量在一对外。27、实例方法不能直接访问实例变量。28、方法不能与变量重名。29、方法需要传递多个参数时,参数以逗号分隔。30、消息表达式不能嵌套使用。31、点语法在实现上与访问器没有区别,但是会造成性能上损失或产生额外线程调用。32、重载方法返回值,参数个数可以不同。33、类方法实例对象也可以使用。34、实例对象都是通过调用类对象的类方法生成的。对的35、初始化方法就是在对象创建的时候给实例变量一些初始值。对的36、在Objective -c 中,对象不断地被其它对象创建、使用和销毁。对的37、为了保证程序不产生额外的内存开销,当对象不再被需要以后,应当被立即销毁。对的38、对象也有可能在创建了一个对象以后,把他传递给别一个对象去使用。39、不是每个对象都有引用计数。错的40、便利构造器产生的对象应当由使用者进行销毁。41、在dealloc方法中对变量的释放顺序与初始化的顺序相同。相反42、属性声明可以出现在类的接口定义的方法区域的任意位置。对的43、属性还可以在协议或类目的声明中声明。对的44、属性的声明比方法的声明多了参数的说明。45、属性的声明可以在子类、协议和类目中重复进行。对的46、分类的接口中不应当带有实例变量的声明。对47、协议本质上是一堆还未与任何类的实现代码关联的方法的声明。对的48、协议也有自己的特殊数据类型来代表- 协议对象。协议类49、协议我单独使用时并不能代表协议对象本身。对的50、协议中声明的方法名不可与类中声明的方法名重名。对的二、简答题1、什么是面向对象编程?2、使用实例变量和局部变量的作用范围?3、实例变量有几种可见级别?分别描述下他们在什么范围内可见,默认的可见级别是哪种?4、self 和 super 的区别?5、id 表示什么数据类型?什么是静态类型?6、子类从父类那里得到什么?7、下列名称中,哪些是不合法的?为什么?Int playNextSong 6_05 _calloc Xx z alpha clearScreen _1312 A$ReInitialize - 8、写出为什么使用类方法,给出三个主要理由?9、叙述一下内存管理的几条基本原则。10、copy和retain的区别?11、Cocoa中常见的集合有哪几种?12、封装有什么好处?13、类目和延展有什么作用?14、协议和类的区别?15、Objc中,与alloc语义相反的方法是dealloc还是release?与retain语义相反的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?16、在一个对象的方法里面: = “object”;和name ”object”有什么不同吗?17、什么是retain count?18、以下每行代码执行后,person对象的retain count分别是多少Person *person = Person alloc init; person retain; person release;person release;19、为什么很多内置类如UITableViewController的delegate属性都是assign而不是retain的?20、定义属性时,什么情况使用copy,assign,和retain?21、obj-c有私有方法么?私有变量呢22、这段代码有什么问题,如何修改? for (int i = 0; i someLargeNumber; i+)NSString *string = Abc;string = string lowercaseString;string = string stringByAppendingString:xyz;NSLog(%,string);23、下面声明里面的a都是什么意思? const int a;int const a;const int *a;int *const a;int const * a const;24、#import 和 class 的区别?25、自动释放池是什么,如何工作26、readwrite,readonly,assign,retain,copy,nonatomic属性的作用27、写个委托的interface28、写个NSString 类的实现29、类方法与实例方法的区别?30、interface,end 中的的涵义?31、 NSObject中 NS 的涵义?32、 将一个NSString 字符串转换为C字符串的两种方式?33、 把C字符串转换成NSString字符串的方法?34、 实现一个将字符串转换为数组?35、请求索引子字符串的两种形式:其具体代码是?36、 根据范围生成子字符串的代码?37、搜索与替换字符串的代码?38、改变字符串大小的代码?39、创建一个包含3个元素的数组40、将数组转换为字符串41、创建一个包含三个键值对的字典42、列举字典中的所有关键字的方法43、创建一个对象44、给数组分配容量45、什么是重载方法?46、什么是便利构造器47、autorelease 与 release 的区别48、objective-c 与普通C 语言的区别具体体现在哪里?49、子类具有的功能?50、写个便利构造器的实现例子三、填空1、一个类如果接受了协议,那么它必需实现协议中声明的全部 方法。2、在 Cocoa中, , , , 等集合可以进行快速枚举。3、类方法使用 前缀而非连字号()定义。声明和实现他们的方式与 相同。4、属性通过所谓的 方法,即访问信息的方法,将 和 公开给外部使用。5、 消息表达式的形式是在方括号内放入两个元素,前一个是 ,而后一个是 。 6、 协议包括两种回调: 和 。7、 字符串常量由 和 表示。8、 字符串通过 方法报告自己的长度。9、 三种最简单的字符串检查是 ,以及 和 匹配。10、 iphone主要使用3类集合: 、 和 。11、 objective-c 中的所有类都应该是 形式。12、 特殊变量self 指的是 。该对象也叫做 ,即接收消息的对象。 可以给空值对象发送任意消息。13、 类方法无权访问 ,因为只有为对象分配内存时才能创建这些元素。14、属性的默认行为是 .赋值过程就像是给 赋了一个值。不存在任何与属性相关的特殊保留释放行为,但使它成为属性可以通过点表示法将变量公开到类之外。15、 将属性的特性设为retain实现了两个功能。首先 。其次, 。16、 是objc使用的一种线程保护技术,基本上来讲,是防止在未完成的时候被另外一个线程读取,造成数据错误17、 ,非原子性访问,不加同步,多线程并发访问会提高性能。18、 用便利方法arrayWithObjects:创建数组,它返回一个 的数组。19、 为同一个关键字设置 时,cocoa将会替换字典中的 。20、集合是 的一组对象。而且所有对象必须 四、选择题(1)在计算机中,一个字节所包含二进制位的个数是 A)2 B)4 C)8 D)16(2)已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36B)0C)-24D)-60(3)下列不合法的指针变量的定义是A)int *_k;B)char *_245;C)int *p;D)double *5_is(4)已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是A)10B)5C)2D)以上答案都不对(5)下列关于指针变量赋空值的说法错误的是A)当赋空值的时候,变量指向地址为0的存储单元B)赋值语句可以表达为变量名=0;C)赋值语句可以表达为变量名=0;D)一个指针变量可以被赋空值(6)属于C语言基本数据类型的是( ) A.指针型 B.无符号整型 C.数组型 D.结构型(7)C语言的长整型数值在计算机中占用的字节个数是( ) A.1 B.2 C.3 D.4(8)C语言中,x3d在内存中占用的字节数是( ) A.1 B.2 C.4 D.5 (9)对于while语句,错误的说法是( ) A.用条件控制循环体的执行次数 B.循环体至少要执行一次 C.循环体有可能一次也不执行 D.循环体中可以包含若干条语句 (10) 用八位无符号二进制数能表示的最大十进制数为 A.127 B. 128 C. 255 D. 256五、编程实现:1、描述一个公司系统要求:公司可以成立部门,也可以雇佣员工,并且在做这两个操作的时候有控制台的输出(比如:某部门雇佣了某个员工)其中有一个类要编写至少两个初始化方法,并指明你定义的指定的初始化方法(用注释指明即可)给每个类增加一个便利构造器给公司类提供一个单例方法。2、定义一个名为MIN的宏,它给出两个值的最小值。然后编写一个程序来测试这个宏定义。3、定义三个新类,分别名为Song、PlayList和MusicCollection.Song对象包含着关于特定歌曲的信息,比如歌曲名、艺术家,专辑、歌曲长度等,PlayList对象包含播放列表名称和一个歌曲的集合:MusicCollection对象包含播放列表集合。它包括一个名为Library的主播放列表,这个列表包含该集合中的所有歌曲。定义上述的三个类,并编写方法实现下列任务: 创建一个Song 对象,并设置其信息。 创建一个PlayList对象,并对播放列表添加和删除歌曲。如果一首新歌不在主列表中,那 么将其添加进去。确保从主播放列表中删除一首歌时,也要从音乐集合中的其他播放列表中删除此歌曲。 创建一个MusicCollection 对象,并对该集合添加和删除播放列表。 搜索并显示关于所有歌曲,播放列表或整个音乐集合的信息。 确保所有你定义的类都不产生内存漏洞。4、编写一个程序,测试添加和移除字典中的条目时,对添加和移除对象的引用计数有什么影响。5、建立新的类PolygonShape,具有如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论