105年 銀行招考、金融雇員 七職等 臺灣銀行-海外或大陸地區資訊人員 程式設計 試卷

pdf
273.19 KB
4 頁
Guest
侵權投訴
加載中. ..
PDF
【請接續背面】
臺灣銀行 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 學分數");
課程編號
課程名稱
學分數
課程編號
課程名稱
學分數
C0001
數學
2
C0002
美術應用
3
C0003
英文
2
C0004
鋼琴課
1
C0005
機器人初階
3
C0006
英文會話
3
C0007
國文
2
(1)
【請接續下頁】
rs.close();
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
C# 程式語言
using System;
using System.Data;
using System.Data.SqlClient;
namespace test5
{
class Program
{
static void Main(string[] args)
{
string connectionString =
"Data Source=(local);Initial Catalog=test;User ID=sa;” +
“Password=sa;Integrated Security=true";
string queryString =
Console.WriteLine("課程編號t 課程名稱t 學分數t 課程編號t 課程名稱t 學分數");
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}
}
第三題:
請擇一語言(Java C#程式語言)作答,並註明於答案卷上。分數評閱僅針對擇定語言
計分,額外作答不予評閱計分,本題合計 20 分。
依據第一題的資料首先抓取「修課資料表」中課程編號為 C0002 的所有 r_result(
)並依據 r_result 從大到小排序然後計算前 3名平均成績和最後 3名平均成績的差距
(假設篩選出來的資料筆數一定大於 6筆)
Java 程式
import java.sql.*;
class test3 {
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);
rs.close();
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
15 分】
5分】
15分】
5分】
15 分】
(2)
(2)
(1)
(2)
(1)
【請接續背面】
C#程式語言
using System;
using System.Data;
using System.Data.SqlClient;
namespace test6
{
class Program
{
static void Main(string[] args)
{
string connectionString =
"Data Source=(local);Initial Catalog=test;User ID=sa;” +
“Password=sa;Integrated Security=true";
string queryString =
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}
}
第四題:
以下為部門(departments)及員工(employees)資料表之說明
departments(d_id, dname, m_id) //部門資料表
d_id 表示部門編號、dname 表示部門名稱、m_id 表示表示部門主管員工編
employees(e_id, name, rank, salary, d_id) //員工資料表
e_id 表示員工編號、name 表示員工姓名、rank 表示業績排行、salary 表示薪資
d_id 表示員工所屬部門編號
請完成下列 Java 程式,首先抓取「業務部」部門的所有員工的 name salary,並依
rank 從小到大排序。然後依據以下規則顯示員工的姓名及年終獎金,rank 在前 3名的年
終獎金為薪水 3倍,rank 46 名的年終獎金為薪水的 2倍,其餘的年終獎金 1
月薪水。
import java.sql.*;
class test1 {
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 年終");
rs.close();
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
5分】
15分】
(1)
(2)
5分】
15 分】
(1)
(2)
第五題:
(一)以下一段 C#程式是用來建立一個 SQL 資料庫,請完成下列空格。8分】
public static string DB_NAME = "yourdb";
public static string DB_PATH = "C:data";
public bool CreateDatabase()
{
bool stat=true;
string sqlCreateDBQuery;
SqlConnection myConn = new
SqlConnection("Server=localhostSQLEXPRESS;Integrated
security=SSPI;database=master;");
sqlCreateDBQuery = " CREATE DATABASE "
+ DB_NAME
+ " ON PRIMARY "
+ " (NAME = " + DB_NAME + "_Data, "
+ " FILENAME = '" + DB_PATH + DB_NAME + ".mdf', "
+ " SIZE = 2MB,"
+ ; //節省空間, 以下省略
SqlCommand myCommand = new (1) ;
try
{
(2) ;
(3) ;
}
catch (System.Exception)
{
stat=false;
}
finally
{
if (myConn.State == (4) )
{
myConn.Close();
}
myConn.Dispose();
}
return stat;
}
(二)以下 C#的程式片段是利用 SQL DataAdapter DataSet 物件去執行資料的
詢及處理,請完成下列空格。12 分】
string connetionString = null;
SqlConnection sqlCnn ;
SqlCommand sqlCmd ;
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet ds = new DataSet();
int i = 0;
string sql = null;
connetionString = "Data Source=ServerName;Initial
Catalog=DatabaseName;User ID=UserName;Password=Password";
sql = "Select * from Sale";
sqlCnn = new SqlConnection(connetionString);
try
{
sqlCnn.Open(); //開啟 SQL 連線
(1) ; //New SQL 命令的物件
(2) ; //設定 DataAdapter Select Command
(3) ; //結合 DataSet 物件, 將命令執行的結果填入 DataSet 物件中
//下列程式片段是 DataSet 中第一個表單的每一筆資料的第一個資料項目及
//第二個資料項目印出.
for (i = 0; i <= ds. (4) ; i++)
{
MessageBox.Show(ds. (5) + " -- " +
ds. (6) );
}
adapter.Dispose();
sqlCmd.Dispose();
sqlCnn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Can not open connection ! ");
}
收藏 ⬇️ 下載