日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试题分享【不断更新】

發(fā)布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试题分享【不断更新】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題1:求以下程序段的輸出

int test(int x, int y) {x = x + y;return x * y; }int main(int argc, const char * argv[]) {@autoreleasepool {int x = 3, y = 10, z = test(x, y);NSLog(@"%d%d", x++, ++z);}return 0; }

答案:3131


問題2:求以下程序段的輸出

int func(int x) {int countx = 0;while (x) {countx++;x = x&(x-1);}return countx; }int main(int argc, const char * argv[]) {@autoreleasepool {NSLog(@"%d", func(2013));}return 0; }

答案:9


?

問題3:簡述兩個for循環(huán)的優(yōu)缺點

for (i = 0; i < N; i++) {if (condition) {doSomeThing();} else {doOtherThing();} }if (condition) {for (i = 0; i < N; i++) {doSomeThing();} } else {for (i = 0; i < N; i++) {doOtherThing();} }

答案:無


?

問題4:請指出下面代碼的問題

UIView *tmpView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.view addSubview:tmpView];

答案:無


?

問題5:你所了解的單例有哪些?請寫了一個單例的示例代碼。

答案:

@interface Manager : NSObject + (id)sharedManager; @end static Manager *instance = nil;@implementation Manager+ (id)sharedManager {if (!instance) {instance = [[super allocWithZone:NULL] init];}return instance; }// 復(fù)寫allocWithZone和copyWithZone的目的是在外部多次調(diào)用alloc的時候,內(nèi)部能夠確保對象只創(chuàng)建了一次+ (id)allocWithZone:(NSZone *)zone {return [[self sharedManager] retain]; }- (id)copyWithZone:(NSZone *)zone {return self; }// 復(fù)寫retain、retainCount、release、autorelease避免單件對象被外部釋放 - (id)retain {return self; }- (NSUInteger)retainCount {return NSUIntegerMax; }- (void)release {}- (id)autorelease {return self; }

?


問題6:在你的日常開發(fā)過程中,是否遇到過崩潰問題?怎么解決?

答案:無


問題7:請寫出使用委托(代理)的示例代碼。

答案:

A委托B

A.h

@protocol ADelegate; @interface A : NSObject@property (nonatomic, assign) id<ADelegate> delegate;- (void)go;@end@protocol ADelegate <NSObject>- (void)doSomeThing;@end

A.m

@implementation A- (void)go {if ([_delegate respondsToSelector:@selector(doSomeThing)]) {[_delegate doSomeThing];} }@end

B.h

#import "A.h"@interface B : NSObject<ADelegate>@end

B.m

@implementation B- (void)doSomeThing {NSLog(@"do something..."); }@end

man.m

#import "A.h" #import "B.h"int main(int argc, const char * argv[]) {@autoreleasepool {A *a = [[A alloc] init];B *b = [[B alloc] init];a.delegate = b;[a go];[a release];[b release];return 0;} }

// 輸出

do something...


問題8:寫出控制器加載視圖的常規(guī)調(diào)用方法流程。

答案:

loadView

viewDidLoad

viewWillAppear

viewWillLayoutSubviews

viewDidLayoutSubviews

viewDidAppear


問題9:Objective-C有多重繼承么?不是的話,請以示例代碼說明。

答案:無


問題10:請寫出下面代碼的打印結(jié)果(默認(rèn)在32位機器下運行)。

char a[] = "hello world"; char *p = a;
NSLog(
@"%ld", sizeof(a)); NSLog(@"%ld", sizeof(p));

答案:

12

4

如果在64位機器上運行

12

8


問題11: 請完成下面的函數(shù)

@interface NSCustomArray : NSArray @property (nonatomic, retain) NSArray *targets; - (void)updateTargetsByArray:(NSArray *)newArray; // 將newArray賦值給targets @end @implementation NSCustomArray- (void)updateTargetsByArray:(NSArray *)newArray {NSArray *tmpArray = [[NSArray alloc] initWithArray:newArray];// 將tmpArray賦值給targets } @end

答案:無


?

問題12:檢查如下代碼是否有問題,如果有問題,正確的寫法是?

- (void)setTarget:(NSObject *)target {self.target = target; }

答案:無


?

問題13:指出下面代碼的問題

- (void)willEndStepOne:(NSObject *)userInfo {[NSThread detachNewThreadSelector:@selector(doSomeThing:) toTarget:self withObject:userInfo]; }- (void)doSomeThing:(NSObject *)userInfo {int max_loop_times = 999999;for (int i=0; i<max_loop_times; i++) {int randNum = rand();NSString *tmpString = [NSString stringWithFormat:@"%d", randNum];NSLog(@"%@", tmpString);} }

答案:無?

轉(zhuǎn)載于:https://www.cnblogs.com/and_he/archive/2013/02/20/2919235.html

總結(jié)

以上是生活随笔為你收集整理的面试题分享【不断更新】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。