
臺北捷運公司 108 年8月4日新進助理工程師(APP 開發類)
甄試試題-手機 APP 程式開發及應用
第 1 頁,共 3 頁
注意: 請務必填寫姓名:
1.以下題目應全部作答。 應考編號:
2.科目總分為 100 分。
3.作答時不須抄題目,但請標明題號,並請用藍(黑)色原子筆橫向書寫。
題目:
Android APP
(
35
)
(一) 請以流程圖說明 Android 程式設計中「服務(Service)」的生
命週期、相對應回呼方法,並請說明使用服務和單純使用多
執行緒使用時機的差異。(15 分)
(二) 請簡述 Android 使用 HttpURLConnection 等指令從網站透過
http 讀取資料的流程與注意事項?(10 分)
(三) 請說明 Android 應用程式宣示說明檔(AndroidManifest.xml)
的主要動作。(10 分)
iOS APP
(
35
)
(一) View Controller 是很常使用的視圖控制器,請畫出其狀態圖
(Valid State Transition) 並以此說明 viewDidLoad() 、
viewDidAppear(_:)、viewDidDisappear(_:)之呼叫時機。(10
分)
(二) 請說明以下程式執行結果。(10 分)
class Triangle{
var w=1.0
var h=2.0
func getArea()->Double{

臺北捷運公司 108 年8月4日新進助理工程師(APP 開發類)
甄試試題-手機 APP 程式開發及應用
第 2 頁,共 3 頁
return w*h
}
func setW(t:Double){
w=t
}
}
let testObject=Triangle()
testObject.setW(t:10)
let triangleArea=testObject.getArea()
print("test: (triangleArea)")
(三) 請說明以下程式碼片段執行結果。(15 分)
func toggleTorch(on: Bool) {
guard let device = AVCaptureDevice.default(for: .video) else
{ return }
if device.hasTorch {
do {
try dev ice.lock Fo rConfig u ration ()
if on == true {
device.torchMode = .on
} else {
device.torchMode = .off
}
device.unlockForConfiguration()
} catch {
}

臺北捷運公司 108 年8月4日新進助理工程師(APP 開發類)
甄試試題-手機 APP 程式開發及應用
第 3 頁,共 3 頁
} else {
}
}
SQL
(
30
)
(一) 請說明何謂 sql injection,並且提出對應方案。(8 分)
(二) 請寫出 SQL 指令以完成資料庫操作。
(1) 建立名為 testDB 之資料庫。(3 分)
(2) 於test 資料庫建立名為 testTable 之資料表,此資料表
包含 4個欄位,欄位名稱為 testID 、testName、
testDescribe,格式各為整數、長度為 25 之可變字元、
長度為 255 之可變字元。(3 分)
(3) 於testTable 插入 3筆資料,資料如下:(2 分)
1 testdata2 descript1
3 testdata2 descript3
(三) 現有兩個 table,名稱為 table1 與table 2,table1 欄位包含
Name、ID1,table2 欄位包含 data、ID1、data,請說明以
下查詢指令的執行結果:
SELECT table1.Name, COUNT(table2.data) AS Number F
ROM table2 LEFT JOIN table1 ON table2.ID1 = table1.ID1
GROUP BY Name; (7 分)
(四) 請說明 DROP TABLE 和TRUNCATE TABLE 的差別。(7 分)