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. cba
B. abc
C. acb
D. bca
(B)
2、下面四種內部排序算法中哪一種在最差情況下時間複雜度最高?
A. 快速排序
B. 冒泡排序
C. 堆排序
D. 歸併排序
(B)
3、Shell中,將command1的輸出作爲command2的輸入應該使用的命令是
A. command1 && command2
B. command1 > command2
C. command1 & command2
D. command1 | command2
(D)
4、下面的數據結構中不屬於線性結構的是
A. 棧
B. 鏈表
C. 二叉樹
D. 線性表
(C)
5、在一個二叉樹上,第5層最多可以有的節點數是 A. 2
B. 8
C. 16
D. 32
(C)
6、在長度爲n的線性表上進行順序查找,在最糟糕的情況下需要的比較次數是
A. n
B. 2n-1
C. 2n
D. n^2
(A)
7、下面那項不是動態語言的特性
A. 在運行時替換一個類
B. 在運行時動態加載lib文件
C. 在運行時修改對象中的方法
D. 在運行時增加對象的方法
(B)
8、已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
A. cedba
B. acbed
C. decab
D. deabc
(A)
9、以下多線程對int型變量x的操作,哪個不需要進行同步:
A. x=y
B. x++
C. ++x
D. x=1
(D)
10、多線程中棧與堆是公有的還是私有的
A. 棧公有, 堆私有
B. 棧公有,堆公有
C. 棧私有, 堆公有
D. 棧私有,堆私有
(C)
11-20 Objective-C & Xcode
11、在Xcode中,需要編譯混合Objective-C和C++的源碼文件,需要將文件格式的後綴改爲
A. .c
B. .cpp
C. .mm
D. .m
(C)
12、Objective-C聲明一個類所要用到的編譯指令是
A. @interface SomeClass
B. @protocol SomeClass
C. @implementation SomeClass
D. @autorelease SomeClass
(A)
13、使用Xcode創建工程時,支持同時創建的版本管理庫是
A. Subversion
B. Mercurial
C. Git
D. Concurrent Versions System
(C)
14、下面那個方法不屬於NSObject的內省(Introspection)方法
A. init
B. isKindOfClass
C. responseToSelector
D. isMemberOfClass
(A)
15、使用protocol時,聲明一組可選擇實現與否的函數,需要在聲明的前一行加上:
A. @required
B. @optional
C. @interface
D. @protocol
(B)
16、需要在手動管理內存分配和釋放的Xcode項目中引入和編譯用ARC風格編寫的文件,需要在文件的Compiler Flags上添加參數:
A. -shared
B. -fno-objc-arc
C. -fobjc-arc
D. -dynamic
(C)
17、下面關於Objective-C內存管理的描述錯誤的是
A. 當使用ARC來管理內存時,代碼中不可以出現autorelease
B. autoreleasepool 在 drain 的時候會釋放在其中分配的對象
C. 當使用ARC來管理內存時,在線程中大量分配對象而不用autoreleasepool則可能會造成內存泄露
D. 在使用ARC的項目中不能使用NSZone
(A)
18、下面關於#import和#include的描述正確的是 A. #import 是 #include 的替代指令,防止重複引用
B. #import 和 #include 不可以混合使用
C. #import 只用於引用 Objective-C的文件, #include 只用於引用C和C++的文件
D. #import 和 #include 的使用效果完全相同
(A)
19、下面的代碼問題在哪?
@implementation xxx
…
…
- (void) setVar:(int)i {
self.var = i;
}
A. 應該將var synthesize
B. 調用會出現死循環
C. 正常
D. 返回值錯誤
(B)
20、下面那個方法可以比較兩個NSString *str1, *str2 的異同
A. if(str1 = str2) xxx ;
B. if([str1 isEqualToString:str2]) xxx ;
C. if(str1 && str2) xxx ;
D. if([str1 length] == [str2 length]) xxx;
(B)
21-30 iOS
21、下面哪個不屬於對象數據序列化方法 A. JSON
B. Property List
C. XML
D. HTTP
(D)
22、在UIKit中,frame與bounds的區別是
A. frame 是 bounds 的別名
B. frame 是 bounds 的繼承類
C. frame 的參考系是父視圖座標,bounds 的參考系是自身的座標
D. frame 的參考系是自身座標,bounds 的參考系是父視圖的座標
(C)
23、Objective-C有私有方法嗎?有私有變量嗎?
A. 有私有方法和私有變量
B. 沒有私有方法也沒有私有變量
C. 沒有私有方法,有私有變量
D. 有私有方法,沒有私有變量
(C)
24、下面關於線程管理錯誤的是
A. GCD所用的開銷要比NSThread大
B. 可以在子線程中修改UI元素
C. NSOperationQueue是比NSthread更高層的封裝
D. GCD可以根據不同優先級分配線程
(B)
25、下面代碼的作用是讓doSomeThing函數每隔1秒被調用1次。請問哪裏有問題
NSTimer *myTimer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(doSomeThing:) userInfo:nil repeats:YES];
[myTimer fire]
A. 沒有將timer加入runloop
B. doSomeThing缺少參數
C. 忘記傳遞數據給userInfo
D. myTimer對象未通過[[myTimer alloc] init]方法初始化
(A)
26、UIViewController在顯示過程中,各個方法的調用順序是
A. init -> viewDidLoad -> viewDidAppear -> viewDidUnload
B. init -> viewDidAppear -> viewDidLoad -> viewDidUnload
C. init -> viewDidLoad -> viewDidUnload -> viewDidAppear
D. init -> viewDidAppear -> viewDidUnload -> viewDidLoad
(A)
27、使用imageNamed方法創建UIImage對象時,與普通的init方法有什麼區別?
A. 沒有區別,只是爲了方便
B. imageNamed方法只是創建了一個指針,沒有分配其他內存
C. imageNamed方法將圖片加載到內存中後不再釋放
D. imageNamed方法將使用完圖片後立即釋放
(C)
28、一個類的delegate(代理)的作用不正確的是
A. delegate中的函數在其他類中實現
B. 主要用於不同類型的對象之間一對一傳遞消息
C. 沒有指派則不會觸發
D. 可以一個對象的delegate指派給多個其他類型的對象
(D)
29、在沒有navigationController的情況下,要從一個ViewController切換到另一個ViewController應該
A. [self.navigationController pushViewController:nextViewController animated:YES];
B. [self.view addSubview:nextViewController.view];
C. [self pushViewController:nextViewController animated:YES];
D. [self presentModalViewController:nextViewController animated:YES];
(D)
30、什麼是key window?
A. App中唯一的那個UIWindow對象
B. 可以指定一個key的UIWindow
C. 可接收到鍵盤輸入等事件的UIWindow
D. 不可以隱藏的那個UIWindow對象
(C)