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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Objective-C 面試題X選擇題(共80題,每題1分。)1、OC中與alloc相反的方法是: 答案:(C)A、release B、retain C、dealloc D、free2、必須實現(xiàn)的協(xié)議方法使用:關(guān)鍵字聲明 答案:(C)A、propertyB、interfaceC、requiredD、protocol3、NSArray *array = NSArray arrayWithObjects:"1","2","3","4","2", nil;NSMutableSet *set = NSM

2、utableSet allocinit;for(NSString *str in array)set addObject:str;NSLog("%lu",set count);set release;控制臺打印的結(jié)果是:答案:(A)A、4B、5C、6D、74、聲明一個方法:提供Student對象數(shù)組按照學(xué)號升序排列的判斷條件:答案:(A)A、-(NSComparisonResult)compareW1hNumberForAscendSort:(Student*)otherS tudentB> -(NSInteger)compareWithNumberForAscend

3、Sort:(Student*)otherStudentC、 - (BOOL)compareWithNumberForAscendSort:(Student*)otherStudentD、 +(int)compareWithNumberForAscendSort:(Student5、下列選項中全部屬于對象的是:答案:(C)A、我的白色 iPhone4s;Mac MiniB、狗老虎G鄰居家的貓咪 貝貝”我的弟弟 張三D、保時捷;犀利哥6、關(guān)于集合描述不正確的是:答案:(A)A、所有的集合都可以添加元素。B、集合分為可變集合、不可變集合。G數(shù)組、字典、NSSet這三種集合存儲數(shù)據(jù)的方式不同。D、所有

4、集合都能保存id類型數(shù)據(jù)。7、NSDictionary *dict = NSDictionary dictionaryWithObject:"a value forKey:"aKey"NSLog("%",dict objectForKey:"aKey");dict release;控制臺中打印的最后一條信息會是:答案:(C)A、a valueB、aKey : a valueC、崩潰信息D、a value : aKey8、向Xcode控制臺輸出一個字符串應(yīng)該用:答案:(A)A、NSLog()B、Printf()C、NSPrin

5、tf()D、scanf()9、名為print二的方法有幾個傳入?yún)?shù):答案:(C)A、0B、1C、2D、310、下列哪個選項與synthesize配合使用:答案:(D)A、endB、interfaceC、implementationD、property11、面向?qū)ο蟮奶匦圆话?答案:(D)A、封裝B、繼承C、多態(tài)D、構(gòu)造12、OC中,所有類的根類是:答案:(A)A、NSObjectB、NSDateC、NSCodingD、UlView13、現(xiàn)有如下集合,能準確刪除 張三”的代碼是:NSMutableDictionary * peoples=NSMutableDictionarydictionar

6、yWithObjectsAndKeys:"張三","左護法","李四","右使", 唐 sir","老大哥",nil;答案:(A)A、peoples removeObjectForKey:'左護法"B、peoples removeObject:"張三"C、peoples removeObjectAtIndex:0;D、peoples removeAllObjects;14、使用 Objective-C 語言輸出 “This is a Objecti

7、vC 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 program.",%);D、NSLog("This is a Objective-C program.");15、下列說法中錯誤的是:答案:(C)A、Objective-C不用"函數(shù)調(diào)用",而用互相傳遞訊息.B、

8、Objective-C一個完整的類分為 inteface 和 implementation 兩塊C、Objective-C對象使用new分配內(nèi)存,用delete釋放D、Objective-C協(xié)議分為非正式協(xié)議和正式協(xié)議16、用哪個關(guān)鍵字定義協(xié)議中必須實現(xiàn)的方法:答案:(D)A、optionalB、protectedC、privateD、不用寫關(guān)鍵字17、下面關(guān)于類概念的描述中,錯誤的是:答案:(D)A、類是抽象數(shù)據(jù)類型的實現(xiàn)B、類是具有共同行為的若干對象的統(tǒng)一描述體G類是創(chuàng)建對象的模板D、類就是C語言中的結(jié)構(gòu)體類型18、下面哪些選項是屬性的正確聲明方式:答案:(C)A、property(non

9、atomic,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 allocinitWithString:"K 三"NSLog(%d”,name retainCount);上述代碼打印結(jié)果是:答案:(A)A、-1B、0C、1D、220、不會立刻使引用計數(shù)器改變的是

10、:答案:(C)A、releaseB、allocC、autoreleaseD、 retain21、OC中的委托最好聲明成: 答案:(B)A、retainB、assignC、copyD、readonly22、經(jīng)過下列哪種操作后需要使用release方法。答案:(C)A、delegateB、assignC、retainD、dealloc23、在OC中類的接口聲明關(guān)鍵字為:答案:(B)A、importB、interfaceC、implementionD、protocol-(id)setName:(NSString *)name :(NSString *)sex age:(int)age勺方法名是:24

11、、答案:(C)A、-(id)setName:(NSString *)name :(NSString *)sex age:(int)ageB、-setName:name :sex age:ageC、setName: : age:D、setName:name:age:25、以下說法不正確的是:答案:(A)A、nonatomic:提供多線程保護,提高性能,在沒有使用多線程的編程 中可以選擇使用。B、assign屬性默認值。說明設(shè)置器直接進行賦值,針對基礎(chǔ)數(shù)據(jù)類型(NSInteger, CGFloat 和 C數(shù)據(jù)類型(int, float, double, char)等等。G retain:此屬性只用

12、于obj-c的對象類型,對參數(shù)進行release舊值,再 retain 新值。D、copy:此屬性只對實現(xiàn)NSCopying協(xié)議的對象有效(NSString'拷貝工 作由copy方法執(zhí)行。26、關(guān)于類和對象的概念,下列屬于對象的是:答案:(C)A、奧迪A6B、保齡球G世界冠軍劉翔D、西紅柿27、Objective-C的代碼文件的后綴為:答案:(B)A、 .cppB、 .mC、 .plD、 .cObjective-C中包含一個自定義的頭文件應(yīng)該使用: 答案:(C)A、#include "" B、#include<> C、#import""

13、; D、#import<>29、下列哪個選項不需要release方法:答案:(C)A、NSString allocinit;B、NSString alloc nitWithString: " hehe" ;C、NSArray arrayW讓hArray: arr1;D、NSMutableDictionary alloc init;30、NSMutableString * str = NSMutableString alloc initWithFormat:"123"NSLog("str = %p",str);str app

14、endFormat:"456"NSLog("str = %p",str);上面代碼對字符串str進行拼接后,2次打印的地址是否相同:答案:(A)A、相同B、不同G隨機打印D、有時相同,有時不同31、下面哪個選項對集合的描述是正確的:答案:(D)A、集合內(nèi)不能存不同類型的對象B、集合內(nèi)可以存整型的數(shù)G字典內(nèi)鍵值可以相同,但是每個鍵值對應(yīng)的對象必須不同D、集合內(nèi)只能存對象32、下面哪個選項無內(nèi)存問題的:答案:(C)A、-(NSString *)descriptionNSString * str = NSString alloc initW讓hFormat:&

15、quot;description" return str;B、-(NSString *)descriptionNSString * str = NSString alloc initWithFormat:"description"str release;return str;C、-(NSString *)descriptionNSString * str = NSString alloc initWithFormat:"description"str autorelease;return str;D、-(NSString *)descripti

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

17、默認是 optional的。35、關(guān)于類目的說法正確的有:答案:(A)A、類目可以為所有的類添加新方法。B、類目中添加的方法比原類中定義的方法級別要低。G定義類目需要使用關(guān)鍵字 category。D、類目可以隨意使用。36、下面描述正確的選項是:答案:(B)A、當(dāng)計數(shù)器為1時,dealloc方法由系統(tǒng)自動調(diào)用B、一個對象在引用計數(shù)變?yōu)?時,會調(diào)用自己的dealloc方法G在dealloc方法里,應(yīng)該在super dealloc后釋放本類所擁有的對象D、開啟ARC后,可以重載dealloc,必須在dealloc里寫super dealloc 方法37、下面程序段的輸出結(jié)果是什么:NSArray

18、* arrl = NSArray alloc initWithObjects:"1","2","3", nil;NSString *str;str = arrl objectAtIndex:2;NSLog("%",str);答案:(C)A、1B、2C、3D、程序崩潰38、interface Person : NSObjectproperty(nonatomic,retain)NSString * name;end上面聲明一個 Person類Person * per = Person alloc init;=NSSt

19、ring alloc initW1hFormat:"張三"NSLog(" = %d", retainCount);答案:(D)A、 = -1;B、 = 0;G= 1;D、= 2;39、以下說法正確的是:答案:(C)A、求數(shù)組的內(nèi)容的個數(shù)用length方法B、字典是根據(jù)其位置來索引數(shù)據(jù)的G協(xié)議中定義的方法默認是必須實現(xiàn)的D、定義類目必須要拿到自己類的源代碼40、關(guān)于類目、延展的描述錯誤的是:答案:(B)A、延展主要為類提供私有”方法B、類目、延展不但能為類添加方法,而且都可以添加新的實例變量G無論能否拿到類的源碼,類目都可以對其擴展D、類目和延展聲明語法不

20、同41、Objective-C語言中類的實例變量如果只可以被本類和其子類訪問,需要 下列哪個修飾符:答案:(C)A、publicB、privateG protectedD、friendly42、下列代碼:property(nonatomic,assign)id<Painting>myObject;答案:(C)A、是說myObject是Painting分類的一部分B、是說myObject遵從于Painting分類C、是說myObject遵從于Painting協(xié)議D、不是合法的Objective-C語法格式43、在OC中擴展類的方法的形式不包括:答案:(B)A、繼承B、多態(tài)G類目D、延

21、展44、下列代碼正確的輸出結(jié)果是:NSString * urlStr = ""NSRange range = NSMakeRange(4,7);NSString *prefix = urlStr substringWithRange:range;NSLog("%",prefix);答案:(B)A、lanB、lanou3gC、D、 ou3g自定義一個Person類,下面哪個選項是規(guī)范的便利構(gòu)造器聲明方式:45、答案:(D)A、-(id)personWithName:(NSString *)theName;B、-(id)personwithName:(NSS

22、tring *)theName;G +(id)personwithName:(NSString *)theName;D、+(id)personWithName:(NSString *)theName;46、下面哪個選項是正確的:答案:(B)A、用繼承可以擴展一個類,要調(diào)用擴展的方法,既可以用父類,也可 以用子類B、用類目可以擴展一個類,可以直接用該類或該類的實例對象, 去調(diào)用 該類目擴展的方法C、延展就是類目D、可以在一個類的外部,調(diào)用這個類延展的方法47、現(xiàn)要求聲明一個集合,并將字符串添加到集合中,編寫了如下代碼,其中 錯誤的是第幾行:NSString * aString = NSStrin

23、g alloc initWithString:"iLanou" (1)aString autorelease; (2)NSArray * arr = NSArray array; (3)arr addObject:aString; (4)NSLog("string = %lu",aString retainCount);答案:(C)A、(1)B、C、D、(4)48、關(guān)于KVC的描述正確的是:答案:(A)A、KVC是指鍵-值-編碼”。B、是一種直接訪問對象的屬性的機制C、只能訪問對象的屬性。D、當(dāng)對象的屬性值改變時,我們能收到一個通知49、下面程序段的輸出

24、結(jié)果是什么:NSMutableArray * arrl = NSMutableArray alloc initWithObjects:"1","2","3", nil;arrl addObject:"0"arrl replaceObjectAtIndex:2 withObject:"3"NSLog("%",arr1);答案:(B)A、0,1,2,3B、1,2,3,0C、1,3,3,0D、0,3,2,350、協(xié)議與委托的描述不正確的是:答案:(C)a、委才e是iOS的一種設(shè)計模

25、式B、協(xié)議里的方法默認是必須實現(xiàn)的C、類接受了多個協(xié)議,這些協(xié)議寫在父類后面的。內(nèi),多個協(xié)議之間用:'”隔開D、定義協(xié)議使用protocol關(guān)鍵字51、下面程序段的輸出結(jié)果是什么:NSMutableDictionary * dic = NSMutableDictionary allociritWithObjectsAndKeys:"T',"2","2","3""3""4", nil;dic removeObjectForKey:"3"NSLog(&q

26、uot;%",dic);答案:(C)A、1=2 3=4B、1=2 2=3C、2=1 4=3D、2=1 3=252、NSRange勺成員變量有:答案:(A)A、location,lengthB、width,heightC、location,heightD、length,width53、NSDateFormatter * formatter = NSDateFormatter alloc init;formatter setAMSymbol:"AM"formatter setPMSymbol:"PM"formatter setDateFormat:

27、"YY-MM-dd hh:mm:ss aaa"NSString * currentDate = formatter stringFromDate:NSDate date;NSLog("%",currentDate);打印結(jié)果是:答案:(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、A、retaincount是指對象的引用計數(shù)。B、retain關(guān)鍵字可以增大對象的引用計數(shù)。G release可以減小對象的引用計數(shù),但aut

28、orelease不可以D、dealloc方法不能直接調(diào)用55、以下對類的描述不正確的是:答案:(C)A、類的接口部分可以包含實例變量、屬性和方法B、可以把聲明和實現(xiàn)都放到.h文件中C、一對文件()只能定義一個類D、類比較抽象,對象比較具體56、關(guān)于NSSet描述正確的有:答案:(B)A、NSSet可以存放任何數(shù)據(jù)類型的數(shù)據(jù)。B、NSSet存放數(shù)據(jù)是無序的。C、NSSet可以通過下標獲取數(shù)據(jù)。D、NSSet存放的數(shù)據(jù)是有序的。57、簡單類型的成員比如:int類型成員在使用property()時,括號中應(yīng)使用: 答案:(A)A、assign8、 copyC、retainD、auto58、有一個類S

29、tudent,要求實現(xiàn):定義一個實例初始化方法,初始化方法需要傳 入名字和性別:答案:(B)A、-(id)initWithName:(NSString *)name sex:(NSString *)sexif (self)=name;=sex;return self;B、-(id)initWithName:(NSString *)name sex:(NSString *)sexif (self = super init) =name;=sex;return self;C、-(id)initWithName:(NSString *)name sex:(NSString *)sex if (!se

30、lf) =name;=sex;return self;D、-(id)initWithName:(NSString *)name sex:(NSString *)sex if (self = super init) =name;=sex;59、聲明一個返回值為NSArray,并且?guī)蓚€字符串對象的BLOCKS型變量: 答案:(D)A、NSArray (*aBlock)(NSString * str,NSString *str2)B、NSArray A(*aBlock)(NSString * str,NSString *str2)C、NSArray (AaBlock)(NSString * str

31、,NSString *str2)D、NSArray *(AaBlock)(NSString * str,NSString *str2)60、實例變量默認的訪問修飾符是:答案:(C)A、publicB、privateG protectedD、package61、創(chuàng)建對象時,對象的內(nèi)存和指向?qū)ο蟮闹羔樂謩e分配在哪里:答案:(A)A堆區(qū),棧區(qū)B、常量區(qū),堆區(qū)C、全局區(qū),棧區(qū)D、棧區(qū),堆區(qū)62、下列哪個選項不能作為property的可選屬性: 答案:(A)A、allocB、retainG atomicD、strong63、對于語句 NSString* testObject = NSData alloc

32、 init關(guān)于 testObject 是什么 類型對象,以下說法正確的是:答案:(A)A、編譯時,NSString類型,運行時,NSData類型B、編譯與運行時,都是 NSData類型C、編譯與運彳T時,都是 NSString類型D、運行時,NSString類型,編譯時,NSData類型64、現(xiàn)有自定義類Student,下列選項中Student類的便利構(gòu)造器編寫正確的是:答案:(D)A、-(id) initWithName:(NSString *) newNameStudent * stu = Student alloc init;=newName;return stu;B、+(id) stu

33、dentWithName:(NSString *) newName Student * stu = Student alloc init;=newName;return stu;C、+(id) studentWithName:(NSString *) newName Student * stu = Student alloc init;=newName;stu release;return stu;D、+(id) studentWithName:(NSString *) newName Student * stu = Student alloc init;=newName;stu autore

34、lease;return stu;65、讀代碼:NSString *str="hello"NSMutableSet *mt=NSMutableSet setWithObjects:str, nil;mt addObject:str;NSLog("%lu",;結(jié)果是:答案:(A)A、1B、2C、3D、466、下面程序段的輸出結(jié)果是什么:NSString * aString = NSString alloc initWithFormat:"123"NSLog("%d",;aString = "456"

35、;NSLog("%d",;aString release; aString = "789" NSLog("%d",;答案:(D)A、1,2,1B、 1,1,0C、1,-1,0D、1,-1,-167、NSAutoreleasePool *pool = NSAutoreleasePool alloc init;NSString *str = NSString stringW讓hFormat:" abc” ;NSString *str2 = str retain;pool release;NSLog( str retainCoun

36、t = %d,str2 retainCount = %d",str retainCount,str2retainCount);上述代碼打印結(jié)果正確的是:答案:(C)A、str retainCount = 2,str2 retainCount = 2B、str retainCount = 0,str2 retainCount = 1C、str retainCount = 1,str2 retainCount = 1D、str retainCount = 2,str2 retainCount = 068、查看下列代碼,能正確輸出number的選項是:interface MyClass :

37、 NSObjectint number;+(void) printNumber;endimplementation MyClass+(void) printNumbernumber =10;NSLog(""%d"",number);end答案:(D)A、MyClass printNumber;B、MyClass * obj = MyClass alloc init; obj printNumber;G printNumber();D、編譯錯誤,無法執(zhí)行。69、下面程序段的輸出結(jié)果是什么:NSMutableDictionary * dic = NSMuta

38、bleDictionary alloc initWithObjectsAndKeys:"T',"2","2","3","3""4", nil;dic setObject:"1" forKey:"3"dic removeObjectForKey:"1"NSLog("%",dic);答案:(C)A、1=3 2=3 3=4B、1=2 1=3 3=4G 2=1 3=1 4=3D、3=1 3=2 4=370、

39、下面程序段的輸出結(jié)果是什么:NSMutableDictionary * dic = NSMutableDictionary alloc initWithObjectsAndKeys:"1","2","1","3","1","4", nil; NSArray *arr1 = NSArray alloc initWithArray:dic allKeys;NSArray *arr2 = NSArray alloc initWithArray:dic allValues;NSMut

40、ableDictionary *dic2 = NSMutableDictionary alloc initWithObjects:arr1 forKeys:arr2;NSLog("%",dic2);答案:(C)A、1=2 1=3 1=4B、2=1 3=1 4=1G 1=4D、4=171、下面程序段的輸出結(jié)果是什么:NSString * aString = NSString alloc initWithString:"hehe"aString autorelease;NSMutableArray *arr = NSMutableArray array;ar

41、r addObject:aString;NSLog("string = %d",aString retainCount);答案:(A)A、string = -1B、string = 0C、string = 1D、string = 272、將 2B青年”替換成文藝青年”的代碼是:答案:(B)A、" 2前年" stringByAppendingOfString: " 2B” withStnng:”B、NSRange range = 0,2; 青'年2BstringByReplacingCharactersInRange:range with

42、String:t藝"”C、NSRange range = 1,2; 青短BstringByReplacingCharactersInRange:range withString:t藝"”D、" 2前年" stringByReplacingOccurrencesOfString:藝” ” withString: " 2B” ;73、下面程序段的輸出結(jié)果是什么:int a = 10;NSNumber *b = NSNumber alloc initWithInt:a;NSLog("%d”, a+b);答案:(D)A、21B、20C、30D

43、、編譯錯誤74、下列選項中不能正常為emp的name屬性賦值的代碼有: 答案:(B)A、二"李嘉誠";B、emp->name="李開復(fù)";C emp setValue:"柳傳志"forKey:"name"D、emp setName:"黃光裕"75、下面程序段的輸出結(jié)果是什么:NSMutableDictionary * dic = NSMutableDictionary allocinitWithObjectsAndKeys:"T',"2","

44、2","3","3""4", nil;NSString *str = "3"int a = 3;dic setObject:a forKey:str;NSLog("%",dic);答案:(D)A、2=1 3=3 4=3B、1=2 3=3 3=4C、1=2 3=3 3=3D、程序崩潰76、讀代碼NSString * str =NSString allocinitWithFormat:"%","iLanou123ios"NSString * str1=str substringToIndex:3;NSS

溫馨提示

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

評論

0/150

提交評論