Objective-C面試題_第1頁
Objective-C面試題_第2頁
Objective-C面試題_第3頁
Objective-C面試題_第4頁
Objective-C面試題_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Objective-C面試題 選擇題(共 80 題,每題 1 分。)1、OC中與 alloc相反的方法是:答案:( C)?A 、 releaseB 、 retainC、 deallocD、 free2、必須實現的協議方法使用:關鍵字聲明.答案:( C)A 、 propertyB 、 interfaceC、 requiredD、 protocol3、NSArray *array = NSArray arrayWithObjects:"1","2","3","4","2", nil;NSMutabl

2、eSet *set = NSMutableSet allocinit; for(NSString *str in array) set addObject:str;NSLog("%lu",set count);set release;控制臺打印的結果是:?答案:( A)A 、 4B 、 5C、 6D、 74、聲明一個方法:提供Student 對象數組按照學號升序排列的判斷條件:答案:( A)A 、-(NSComparisonResult)compareWithNumberForAscendSort:(Student*)o therStudent? B 、-(NSIntege

3、r)compareWithNumberForAscendSort:(Student*)otherStude nt?C、 -(BOOL)compareWithNumberForAscendSort:(Student*)otherStudentD、 +(int)compareWithNumberForAscendSort:(Student5、下列選項中全部屬于對象的是:答案:( C)?A 、我的白色 iPhone4s;Mac MiniB、狗 ; 老虎C、鄰居家的貓咪“貝貝”; 我的弟弟“三”? D、保時捷 ; 犀利哥?6、關于集合描述不正確的是:答案:( A)A 、所有的集合都可以添加元素。B 、

4、集合分為可變集合、不可變集合。C、數組、字典、 NSSet這三種集合存儲數據的方式不同。?D、所有集合都能保存id 類型數據。7、NSDictionary*dict= NSDictionarydictionaryWithObject:"avalue"forKey:"aKey"NSLog("%",dict objectForKey:"aKey");dict release;控制臺中打印的最后一條信息會是:答案:( C)A 、 a valueB 、 aKey : a valueC、崩潰信息D、 a value : aK

5、ey8、向 Xcode 控制臺輸出一個字符串應該用:答案:( A)A 、 NSLog()B 、 Printf()? C、 NSPrintf()?D、 scanf()9、名為 print:的方法有幾個傳入參數:答案:( C)A 、 0B 、 1C、 2D、 310、下列哪個選項與synthesize配合使用:答案:( D)A 、 endB 、 interfaceC、 implementationD、 property11、面向對象的特性不包括:答案:( D)A 、封裝B 、繼承C、多態? D、構造?12、OC中, 所有類的根類是:答案:( A)A 、 NSObjectB 、 NSDateC、 N

6、SCodingD、 UIView13、現有如下集合,能準確刪除“三”的代碼是:NSMutableDictionary * peoples=NSMutableDictionary dictionaryWithObjectsAndKeys:" 三"," 左護法 "," 四"," 右使 "," 唐 sir"," 老大哥 ", nil;答案:( A)?A 、 peoples removeObjectForKey:"左護法 "B 、 peoples removeOb

7、ject:"三"C、 peoples removeObjectAtIndex:0;D、 peoples removeAllObjects;14、使用 Objective-C語言輸出“ This is a Objective- C program. ”正確的是:答案:( D)?A 、 NSLog("%s",This is a Objective-C program.);B 、 NSLog("%",This is a Objective-C program.);? C、 NSLog("This is a Objective-C

8、program.",%);? D、 NSLog("This is a Objective-C program.");15、下列說法中錯誤的是:答案:( C)?A 、 Objective-C不用 " 函數調用 ", 而用互相傳遞訊息 .B 、 Objective-C一個完整的類分為interface和 implementation兩塊?C、 Objective-C對象使用 new分配存 , 用 delete 釋放?D、 Objective-C協議分為非正式協議和正式協議?16、用哪個關鍵字定義協議中必須實現的方法:答案:( D)A 、 optio

9、nalB 、 protectedC、 privateD、不用寫關鍵字17、下面關于類概念的描述中, 錯誤的是:答案:( D)?A 、類是抽象數據類型的實現B 、類是具有共同行為的若干對象的統一描述體? C、類是創建對象的模板?D、類就是 C 語言中的結構體類型18、下面哪些選項是屬性的正確聲明方式:答案:( C)A 、 property(nonatomic,retain)NSString myString;B 、 property(nonatomic,assign)NSString * myString;C、 property(nonatomic,assign)int mynumber;D、

10、property(nonatomic,retain)int mynumber;19、NSString *name = NSString allocinitWithString:" 三" NSLog("%d",name retainCount);上述代碼打印結果是:答案:( A)A、-1B 、 0C、 1D、 220、不會立刻使引用計數器改變的是:答案:( C)A 、 releaseB 、 alloc? C、 autorelease?D、 retain21、OC中的委托最好聲明成:答案:( B)A 、 retainB 、 assignC、 copyD、 r

11、eadonly22、經過下列哪種操作后需要使用release方法。答案:( C)A 、 delegateB 、 assignC、 retainD、 dealloc23、在 OC中類的接口聲明關鍵字為:答案:( B)A 、 importB 、 interfaceC、 implemention? D、 protocol24、-(id)setName:(NSString *)name :(NSString *)sex age:(int)age的方法名是:答案:( C)?A 、-(id)setName:(NSString*)name :(NSString*)sex age:(int)ageB 、 -s

12、etName:name :sex age:ageC、 setName: : age:D、 setName:name:age:25、以下說法不正確的是:答案:( A)A 、nonatomic :提供多線程保護,提高性能,在沒有使用多線程的編程中可以選擇使用。? B 、assign: 屬性默認值。說明設置器直接進行賦值,針對基礎數據類型 ( NSInteger , CGFloat)和 C 數據類型( int,float,double,char )等等。?C、retain: 此屬性只用于 obj-c 的對象類型, 對參數進行 release 舊值,再 retain 新值。D、copy: 此屬性只對實

13、現 NSCopying協議的對象有效 (NSString) 。拷貝工作由 copy 方法執行。26、關于類和對象的概念,下列屬于對象的是:答案:( C)? A 、奧迪 A6? B 、保齡球?C、世界冠軍翔D、西紅柿27、Objective-C的代碼文件的后綴為:答案:( B)A 、 .cppB 、 .mC、 .plD、 .c28、Objective-C中包含一個自定義的頭文件應該使用:答案:( C)A 、 #include ""B 、 #include<>C、 #import ""D、 #import<>29、下列哪個選項不需要r

14、elease方法:答案:( C)?A 、 NSString allocinit;B 、 NSString alloc initWithString:” hehe” ;? C、 NSArray arrayWithArray: arr1;?D、 NSMutableDictionary alloc init;30、NSMutableString * str = NSMutableString alloc initWithFormat:"123"NSLog("str = %p",str);str appendFormat:"456"NSLog

15、("str = %p",str);上面代碼對字符串str進行拼接后, 2 次打印的地址是否相同:答案:( A)A 、相同B 、不同C、隨機打印D、有時相同,有時不同31、下面哪個選項對集合的描述是正確的:答案:( D)A 、集合不能存不同類型的對象B 、集合可以存整型的數C、字典鍵值可以相同,但是每個鍵值對應的對象必須不同D、集合只能存對象32、下面哪個選項無存問題的:答案:( C)?A 、-(NSString *)descriptionNSString * str = NSString allocinitWithFormat:"description"

16、return str;B 、-(NSString *)descriptionNSString * str = NSString allocinitWithFormat:"description"str release;return str;?C、-(NSString *)descriptionNSString * str = NSString allocinitWithFormat:"description"str autorelease;return str;D、?-(NSString *)descriptionNSString * str = NSS

17、tring stringWithFormat:"description" return str autorelease;33、關于 KVC的描述正確的是:答案:( B)A 、 KVC是指 "Key-Value Observing"B 、是一種間接訪問對象的屬性的機制。C、只能訪問對象的屬性。? D、當對象的屬性值改變時,我們能收到一個通知。?34、關于協議描述不正確的是:答案:( D)A 、協議分正式和非正式協議。B 、在要求確認協議的類必須實現協議中的方法時,可以使用required 。?C、一個協議可以被多個類確認。D、協議中聲明的方法,默認是opt

18、ional的。35、關于類目的說確的有:答案:( A)A 、類目可以為所有的類添加新方法。B 、類目中添加的方法比原類中定義的方法級別要低。C、定義類目需要使用關鍵字category 。D、類目可以隨意使用。36、下面描述正確的選項是:答案:( B)?A 、當計數器為 1 時 ,dealloc方法由系統自動調用B 、一個對象在引用計數變為0 時,會調用自己的dealloc方法? C、在 dealloc 方法里,應該在 super dealloc 后釋放本類所擁有的對象?D、開啟 ARC后,可以重載 dealloc ,必須在 dealloc里寫 superdealloc方法37、下面程序段的輸出

19、結果是什么:NSArray * arr1 = NSArray alloc initWithObjects:"1","2","3", nil;NSString *str;str = arr1 objectAtIndex:2;NSLog("%",str);答案:( C)A 、 1B 、 2C、 3D、程序崩潰38、interface Person : NSObjectproperty(nonatomic,retain)NSString * name;end上面聲明一個 Person 類Person * per = Pe

20、rson alloc init; = NSString alloc initWithFormat:"三"NSLog(" = %d", retainCount);答案:( D)A 、 = -1;B 、 = 0;C、 = 1;? D、 = 2;?39、以下說確的是:答案:( C)A 、求數組的容的個數用length方法B 、字典是根據其位置來索引數據的C、協議中定義的方法默認是必須實現的D、定義類目必須要拿到自己類的源代碼40、關于類目、延

21、展的描述錯誤的是:答案:( B)A 、延展主要為類提供“私有”方法B 、類目、延展不但能為類添加方法,而且都可以添加新的實例變量C、無論能否拿到類的源碼,類目都可以對其擴展D、類目和延展聲明語法不同41、Objective-C 語言中類的實例變量如果只可以被本類和其子類訪問, 需要下列哪個修飾符:答案:( C)A 、 publicB 、 privateC、 protected? D、 friendly?42、下列代碼:property(nonatomic,assign)id<Painting>myObject;答案:( C)A 、是說 myObject 是 Painting分類的一

22、部分B 、是說 myObject 遵從于 Painting分類C、是說 myObject 遵從于 Painting協議D、不是合法的 Objective-C語法格式43、在 OC中擴展類的方法的形式不包括:答案:( B)A 、繼承B 、多態C、類目D、延展44、下列代碼正確的輸出結果是:NSString * urlStr = ".lanou3g."NSRange range = NSMakeRange(4,7);NSString *prefix = urlStr substringWithRange:range;NSLog("%",prefix);答案:

23、( B)A 、 lanB 、 lanou3g? C、 .lan?D、 ou3g45、自定義一個 Person 類,下面哪個選項是規的便利構造器聲明方式:答案:( D)A 、 -(id)personWithName:(NSString *)theName;B 、 -(id)personwithName:(NSString *)theName;C、 +(id)personwithName:(NSString *)theName;D、 +(id)personWithName:(NSString *)theName;46、下面哪個選項是正確的:答案:( B)A 、用繼承可以擴展一個類,要調用擴展的方法

24、,既可以用父類,也可以用子類? B 、用類目可以擴展一個類,可以直接用該類或該類的實例對象,去調用該類目擴展的方法?C、延展就是類目D、可以在一個類的外部,調用這個類延展的方法47、現要求聲明一個集合, 并將字符串添加到集合中, 編寫了如下代碼, 其中錯誤的是第幾行:NSString * aString = NSString alloc initWithString:"iLanou"( 1)aString autorelease;( 2)NSArray * arr = NSArray array;(3)arr addObject:aString;(4)NSLog("

25、;string = %lu",aString retainCount);?答案:( C)A、(1)B、(2)C、(3)D、(4)48、關于 KVC的描述正確的是:答案:( A)A 、 KVC是指“鍵 - 值- 編碼”。B 、是一種直接訪問對象的屬性的機制。C、只能訪問對象的屬性。D、當對象的屬性值改變時,我們能收到一個通知。49、下面程序段的輸出結果是什么:NSMutableArray * arr1 = NSMutableArray allocinitWithObjects:"1","2","3", nil;arr1 add

26、Object:"0"arr1 replaceObjectAtIndex:2 withObject:"3"NSLog("%",arr1);答案:( B)A 、 0,1,2,3B 、 1,2,3,0C、 1,3,3,0? D、 0,3,2,350、協議與委托的描述不正確的是:答案:( C)?A 、委托是 iOS 的一種設計模式B 、協議里的方法默認是必須實現的C、類接受了多個協議,這些協議寫在父類后面的<>,多個協議之間用“、”隔開?D、定義協議使用protocol關鍵字51、下面程序段的輸出結果是什么:NSMutableDi

27、ctionary * dic = NSMutableDictionary alloc initWithObjectsAndKeys:"1","2","2","3","3","4", nil;dic removeObjectForKey:"3"NSLog("%",dic);答案:( C)A 、 1=2 3=4B 、 1=2 2=3C、 2=1 4=3D、 2=1 3=252、NSRange的成員變量有:答案:( A)A 、 locatio

28、n,lengthB 、 width,height? C、 location,height?D、 length,width53、NSDateFormatter * formatter = NSDateFormatter alloc init; formatter setAMSymbol:"AM"formatter setPMSymbol:"PM"formatter setDateFormat:"YY-MM-dd hh:mm:ss aaa"NSString * currentDate = formatter stringFromDate:

29、NSDate date; NSLog("%",currentDate);打印結果是:答案:( D)A 、 2012-05-31 17:45:04 PMB 、 12-05-31 17:45:04C、 2012-05-31 17:45:04D、 12-05-31 05:45:04 PM54、存管理的關鍵字描述錯誤的是:答案:( C)?A 、 retaincount是指對象的引用計數。B 、 retain關鍵字可以增大對象的引用計數。C、 release可以減小對象的引用計數,但autorelease不可以D、 dealloc方法不能直接調用55、以下對類的描述不正確的是:答案:

30、( C)? A 、類的接口部分可以包含實例變量、屬性和方法?B 、可以把聲明和實現都放到.h 文件中C、一對文件( Person.h Person.m )只能定義一個類D、類比較抽象,對象比較具體56、關于 NSSet 描述正確的有:答案:( B)A 、 NSSet可以存放任何數據類型的數據。B 、 NSSet存放數據是無序的。C、 NSSet可以通過下標獲取數據。D、 NSSet存放的數據是有序的。?57、簡單類型的成員比如 :int類型成員在使用property()時, 括號中應使用:答案:( A)A 、 assignB 、 copyC、 retainD、 auto58、有一個類 Stud

31、ent, 要現 : 定義一個實例初始化方法 , 初始化方法需要傳入名字和性別:答案:( B)A 、-(id)initWithName:(NSString *)name sex:(NSString *)sexif (self) = name;self.sex = sex;return self;? B 、-(id)initWithName:(NSString *)name sex:(NSString *)sex if (self = super init) = name;self.sex = sex;return self;? C、-(id)initWith

32、Name:(NSString *)name sex:(NSString *)sex if (!self) = name;self.sex = sex;return self;? D、-(id)initWithName:(NSString *)name sex:(NSString *)sex if (self = super init) = name;self.sex = sex;59、聲明一個返回值為NSArray,并且帶兩個字符串對象的BLOCK類型變量:答案:( D)? A 、 NSArray (*aBlock)(NSString * str,NSS

33、tring *str2)? B 、 NSArray (*aBlock)(NSString * str,NSString *str2)?C、 NSArray (aBlock)(NSString * str,NSString *str2)D、 NSArray *(aBlock)(NSString * str,NSString *str2)60、實例變量默認的訪問修飾符是:答案:( C)A 、 publicB 、 privateC、 protectedD、 package61、創建對象時 , 對象的存和指向對象的指針分別分配在哪里:答案:( A)A 、堆區,棧區B 、常量區,堆區C、全局區,棧區D、

34、棧區,堆區62、下列哪個選項不能作為property的可選屬性:答案:( A)A 、 allocB 、 retain? C、 atomic? D、 strong63、對于語句 NSString* testObject = NSData alloc init;關于testObject是什么類型對象 , 以下說確的是:答案:( A)?A 、編譯時, NSString 類型,運行時, NSData類型B 、編譯與運行時,都是NSData類型C、編譯與運行時,都是NSString 類型D、運行時, NSString 類型,編譯時, NSData類型64、現有自定義類 Student ,下列選項中 St

35、udent 類的便利構造器編寫正確的是:答案:( D)A 、-(id) initWithName:(NSString *) newNameStudent * stu = Student alloc init;stu.Name = newName;return stu;?B 、+(id) studentWithName:(NSString *) newName Student * stu = Student alloc init; stu.Name = newName;return stu;C、+(id) studentWithName:(NSString *) newName Student * stu = Student alloc init; stu.Name = newName;stu release;return stu;? D、?+(id) studentWithName:(NSString *) newName Stu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論