
臺灣銀行 105 年新進人員甄試試題
甄試類別【代碼】:七職等/海外或大陸地區資訊人員【J1101】、程式設計人員(1)【J1102】、
五職等/程式設計人員(2)【J1103】
科目三:程式設計【解答方式以 JAVA+SQL、.NET+SQL 二擇一】
*請填寫入場通知書編號:________________
注意:作答前先檢查答案卷,測驗入場通知書號碼、座位標籤號碼是否相符,如有不同應立即請監試人
員處理。使用非本人答案卷作答者,不予計分。
本試卷為二張雙面,共有五大題之非選擇題,各題配分均為 20 分。
非選擇題限以藍、黑色鋼筆或原子筆於答案卷上採橫式作答,並請依標題指示之題號於各題指定
作答區內作答。
請勿於答案卷書寫應考人姓名、入場通知書號碼或與答案無關之任何文字或符號。
本項測驗僅得使用簡易型電子計算器(不具任何財務函數、工程函數功能、儲存程式功能),但不
得發出聲響;若應考人於測驗時將不符規定之電子計算器放置於桌面或使用,經勸阻無效,仍執
意使用者,該科扣 10 分;該電子計算器並由監試人員保管至該節測驗結束後歸還。
答案卷務必繳回,未繳回者該科以零分計算。
第一題:
以下有三個資料表(tables),分別名為 student(學生)、curriculum(課程)及results(修課)。
各資料表欄位之順序及定義如下:
student (學生資料表)
s_no 字串(長度為 10、主鍵) --學生編號
s_name 字串(長度為 10) --學生姓名
s_sex 字串(長度為 1) --學生性別(F 表示女、M表示男)
s_ birthday 日期 --學生生日
s_phone 字串(長度為 10) --學生電話
s_address 字串(長度 100) --學生住址
curriculum (課程資料表)
c_no 字串(長度為 5、主鍵) --課程編號
c_name 字串(長度為 24) --課程名稱
c_points 整數 --課程學分
c_time 整數 --課程時數
c_cost 整數 --課程費用
c_bdate 日期 --開課日期
results (修課資料表)
id 整數(identity, 主鍵) --成績編號
s_no 字串(長度為 10) --學生編號
c_no 字串(長度為 5) --課程編號
r_result 浮點數 --成績
r_date 日期 --考試日期
請寫出下列問題的 SQL 語法(欄位名稱請用英文名稱):
(1) 列出每門課程的修課人數,欄位顯示 c_name(課程名稱)和count(修課人數)。【4分】
(2) 列出性別是’M’(男)的學生,欄位顯示 s_name(學生姓名)、s_birthday(學生生日),資
料依學生生日由遠到近排序。【4分】
(3) 列出每位學生修課所需繳的課程費用,欄位顯示 s_no(學生編號)、s_name(學生姓
名)及c-cost(課程費用)。【4分】
(4) 列出課程費用最貴的課程,欄位顯示 c_no(課程編號)、c_name(課程名稱) 和
c_cost(課程費用)。【4分】
(5) 列出「數學」課男生和女生的平均成績各多少,欄位顯示 s_sex(姓別)、avg(平均成
績)。【4分】
第二題:
請擇一語言(Java 或C#程式語言)作答,並註明於答案卷上。分數評閱僅針對擇定語言
計分,額外作答不予評閱計分,本題合計 20 分。
依據第一題的資料庫,首先抓取「課程資料表」中所有課程的 c_no、 c_name 及
c_points,並依據 c_no 從小到大排序,然後以兩欄的方式來呈現資料,如下所示:
Java 程式
import java.sql.*;
class test2 {
public static void main(String[] args) {
String conUrl = "jdbc:sqlserver://loalhost;databaseName=test;user=sa;password=sa;";
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(conUrl);
String SQL =
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
System.out.println("課程編號t 課程名稱t 學分數t 課程編號t 課程名稱t 學分數");