身心障礙人員三等程式語言:110
鐵路特考高員三級程式語言:無
警察人員特種考試資訊管理人員三等物件導向程式設計:110
高考三級程式語言:110
檢察事務官三等程式語言:110
關務人員升官等薦任程式語言:110
資訊技師高等程式設計:110
地方特考三等程式設計:110
代號:30740 頁次:1-1 |
110年公務人員特種考試關務人員、身心障礙人員考試及 110年國軍上校以上軍官轉任公務人員考試試題 |
考 試 別:身心障礙人員考試
等 別:三等考試
類 科:資訊處理
科 目:程式語言
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞或數理公式外,應使用本國文字作答。
一、在程式語言中有所謂的早期繫結 (early binding) 和晚期繫結 (late binding),請詳述這兩個繫結的差異性和使用時機點,並以 C++ 程式語言說明如何達成晚期繫結的功能。(20分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、函式之間的呼叫,其參數的傳送可分為那幾種?請詳述之;並以任何一種程式語言撰寫兩個整數對調的情形,並加以說明最後處理的結果。需註明使用的程式語言。(20分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、程式語言中有一重要的主題是指標 (pointer)。何謂指標?其功用為何?int a = 100;並詳述(1)int *ptr = &a;(2)int *fn(int a);(3)int(*fn)(int a);(4)int *arr[3];(5)int(*arr)[3]。(30分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、程式語言中有一重要的主題是指標和參考 (reference),它們當用來撰寫鏈結串列或樹狀結構的問題。我們將它用來處理鏈結串列,假設有一單向鏈結串列 (singly linked list) 之節點中有三個項目,分別是 id (整數型態)、score (浮點數型態) 以及 next (指標或參考型態),如下圖所示:
id |
score |
next |
今有一節點名為 ptr,試分別撰寫將此 ptr 節點加入於已含有多個節點的單向鏈結串列之尾端,以及刪除鏈結串列尾端節點的片段程式。可以任何程式語言撰寫之,但請註明使用的程式語言。(30分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
[一一○年警察人員特種考試資訊管理人員三等物件導向程式設計]
代號:30450 頁次:2-1 |
110年公務人員特種考試警察人員、一般警察人員、國家安全局國家安全情報人員考試及110年特種考試交通事業鐵路人員、退除役軍人轉任公務人員考試試題 |
考 試 別:一般警察人員考試
等 別:三等考試
類科組別:警察資訊管理人員
科 目:物件導向程式設計
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞、數理公式或程式設計外,應使用本國文字作答。
註:下列題目作答時,程式部分可選用 C#、C++ 或 Java 撰寫
一、請寫出執行下列 Java 程式碼的輸出結果。(15分)
(一)public class Testa {
public static void main(String[ ] args) {
int [ ] a = {1, 2, 3, 4};
swap(a);
System.out.println("a[0] = " + a[0]);
}
public static void swap(int [ ] data) {
int temp = data[0];
data[0] = data [data.length-1];
data[data.length-1] = temp;
}
}
(二)public class Testb {
public static void main(String[ ] args) {
T t = new T( );
swap(t);
System.out.println("e1 = " + t.e1 + ", e2 = " + t.e2);
}
public static void swap(T t) {
int temp = t.e1;
t.e1 = t.e2;
t.e2 = temp;
}
}
class T {
int e1 = 1 ;
int e2 = 2 ;
}
(三)public class Testb {
public static void main(String[ ] args) {
T t = new T( );
swap(t.e1, t.e2);
System.out.println("e1 = " + t.e1 + ", e2 = " + t.e2);
}
public static void swap(int e1, int e2) {
int temp = e1;
e1 = e2;
e2 = temp;
}
}
class T {
int e1 = 1;
int e2 = 2;
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、請設計程式,定義一個名為 Flower 的類別 (class),該類別中每個物件有三個 private 實例變數 (instance variables),分別代表花的名稱 (name)、花瓣個數 (petal) 和價格 (price),其資料型態分別為 String, int 和 float。您的類別應包含相關資料宣告、建構函式 (constructor) 以及存取三個資料的 getter 和 setter 方法 (methods)。(30分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、Java 程式執行期間的錯誤會以例外 (Exception) 的形式被丟出。如果例外不作處理,程式便會終止執行。請列舉出任意三種執行期間例外(RuntimeException) 的子類別 (subclass) 名稱,並說明其發生原因。(15分)請說明在例外處理中使用 finally 子句 (clause) 的主要目的。(5分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、請分別說明 this 及 super 兩個關鍵字 (keyword) 的使用情境。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
五、請設計程式從檔案 (data.txt) 讀入整數資料。若其中有資料重複出現,僅保留首次出現者,去除第二次以及後續之重複資料。最後,按原順序將資料輸出至檔案 unique.txt。(25分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
代號:37940 頁次:4-1 |
110年公務人員高等考試三級考試試題 |
類 科:資訊處理
科 目:程式語言
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞或數理公式外,應使用本國文字作答。
一、語意分析 (Semantics Analysis) 對於程式語言的正確執行非常重要。
(一)以下是 Java 和 C++ 程式,請說明程式編譯、執行結果與其原因,以及程式指令之意義或影響。(18分)
(1)Java程式
static void test1( ) {
int n;
int [ ] x = new int[n];
}
(2)Java程式
static void test2( ) {
int n = 0;
int [ ] x = new int[n];
}
(3)Java程式
static void test3( ) {
int n = 0;
int [ ] x = new int[n];
x[0] = 0;
}
(4)C++程式
void test4( ) {
int n;
int x[n];
}
(5)C++程式
void test5( ) {
int n = 0;
int x[n];
x[0] =0;
}
(6)C++程式
void test6( ) {
int n = 0;
int *x = new int[n];
x[0] = 0;
}
(二)請說明 Java 與 C++ 語言在陣列宣告上的語意分析的方法,與其優缺點。(7分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、程式驗證的應用。
(一)請說明「測試驅動發展方法 (Test Driven Development, TDD)」的概念及優點。(7分)
(二)有一 MySort 類別的方法 int[ ] binarySort(int data[ ]),將陣列 data 內的資料由小到大排序後回傳,請依據 TDD 的概念設計測試案例。(10分)
(三)請以Java/JUnit 語言完成以下測試程式 (I)~(II)。(8分)
@Test
public void testBinarySort(MySort (I) ) {
int[ ] source = {2, 3, 5, 9, 12, 7};
int[ ] target = obj.binarySort(source);
for(int i = 0; i < source.length-1; i++) {
assertTrue(target[i] < (II) );
}
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、建構股票交易資料庫 (Stock),請寫出 SQL 指令。
客戶表格(Customer)
證券交易表格(StockTrade)
(一)造出 Customer, StockTrade 表格。(10分)
CREATE TABLE Customer ( _____________________ );
CREATE TABLE StockTrade ( _____________________ );
(二)查詢客戶姓名是 “Tom” 所有購買股票編號與購入總股數。(5分)
(三)撰寫 Store Procedure,造出一個暫時的資料表 Report,含兩個整數資料 欄位 (證券編號 sid, 證券價格 price);加入10筆資料,再根據證券價格由小到大排序,查詢列出此10筆資料。(10分)
delimiter $$
CREATE PROCEDURE x( )
BEGIN
DECLARE i INT DEFAULT 1;
____________________
END$$
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、程式例外處理的設計對於資訊系統的可靠性非常重要。
(一)請完成以下 C++ 程式 (I)~(V) 指令,處理兩數相除的例外狀況,使輸出為:(15分)
Exception:empty Exception:not a number Quotient:Exception:divided by zero Quotient:2.4 |
#include <iostream>
#include <exception>
#include <string.h>
#define N 10
using namespace std;
class EmptyException:public exception {
public:
virtual const char* what( ) const throw( ) {
(I) ;
}
};
class NotNumberException:public exception {
public:
virtual const char* what( ) const throw( ) {
(II) ;
}
};
class DividedByZeroException:public exception {
public:
virtual const char* what( ) const throw( ) {
(III) ;
}
};
int valid(const char x[N]) {
int result = 0;
if(strlen(x) == 0) throw EmptyException( );
for(int i = 0; i < strlen(x); i++) {
if(!isdigit(x[i]))
throw NotNumberException( );
result = (IV) ;
}
return result;
}
double quotient(int n1, int n2) {
if( (V) )
throw DividedByZeroException( );
return static_cast<double>(n1/n2);
}
void test(const char x1[N], const char x2[N]) {
int n1, n2;
try {
n1 = valid(x1);
n2 = valid(x2);
cout << "Quotient:" << quotient(n1, n2);
}
catch(EmptyException &e) {
cout << "Exception:" << e.what( );
}
catch(NotNumberException &e) {
cout << "Exception:" << e.what( );
}
catch(DividedByZeroException &e) {
cout << "Exception:" << e.what( );
}
cout << endl;
}
int main( ) {
test("", "");
test("a", "12");
test("10", "0");
test("12", "5");
return 0;
}
(二)請說明使用 try-catch 與 if-else,處理例外狀況的優缺點。(5分)
(三)請說明 C++ 與 Java 在 try-catch 中 finally 設計的異同與其理由。(5分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
代號:11080 頁次:3-1 |
110年公務人員特種考試司法人員、法務部調查局調查人員、海岸巡防人員、移民行政人員考試及110年未具擬任職務任用資格者取得法官遴選資格考試試題 |
考 試 別:司法人員
等 別:三等考試
類 科 組:檢察事務官電子資訊組
科 目:程式語言
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞、數理公式或程式碼外,應使用本國文字作答。
一、以下為 C++ 定義類別 Student 與 Class 的程式碼,請撰寫一「班級成績計算」的 C++ 程式,首先讓使用者輸入兩班學生 (每班各有3位學生) 的姓名與國文、英文、數學課的成績,並符合以下的要求:(25分)
● 為類別 Class 撰寫一建構元函式,將班上3位學生的國文、英文、數學的成績、該班學生成績的平均分數與最高總分設為0
● 為類別 Class 撰寫一方法 cal( ),計算該班學生的平均分數
● 為類別 Class 撰寫一方法 findTop( ),找出該班學生的最高總分與其所在位置
● 撰寫運算子 > 多載 (overloading) 功能,可以比較兩班的最高總分,並回傳是那一班的最高總分較高
● 撰寫主程式 main( ) 以驗證此程式的正確性
類別 Student 與 Class 的程式碼如下:
class Student { // 學生類別定義
public:
string name; // 學生姓名
int chn, eng, math; // 學生國英數成績
};
class Class { // 班級類別定義
public:
Student student[3]; // 每班3位學生
double avg; // 該班學生的平均分數
int top, top_index; // 該班學生的最高總分與其所在位置
public:
Class( ); // 建構元函式將類別內變數初值設為0
int operator > (Class &win); // 定義運算子 > 的多載,以回傳最高
// 總分班級
void cal(void); // 計算該班學生的平均分數
void findTop(void); // 找出該班學生的最高總分與其所在位置
};
程式執行範例如下:
第1班第1位學生名字:大明
請依序輸入他的國英數成績:85 66 92
第1班第2位學生名字:阿美
請依序輸入他的國英數成績:92 85 78
第1班第3位學生名字:小凱
請依序輸入他的國英數成績:96 92 90
第2班第1位學生名字:大雄
請依序輸入他的國英數成績:65 82 72
第2班第2位學生名字:阿吉
請依序輸入他的國英數成績:98 92 99
第2班第3位學生名字:小文
請依序輸入他的國英數成績:90 92 95
第1班平均成績:86.22
第2班平均成績:87.22
最高分在第2班是阿吉,總分為289分
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、(一)變數的種類可概分為區域變數 (Local Variable)、全域變數 (Global Variable) 與靜態變數 (Static Variable),請就宣告方式、有效範圍 (Scope)、程式碼維護比較其差異。(15分)
(二)遞迴函式 (Recursive Function) 通常也可以改用迴圈 (Loop) 方式來撰寫,請就程式碼撰寫難易度、理解性、執行效能、記憶體使用比較其差異。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、請使用 C/C++、Java 或 Python 任一程式語言撰寫一支加密演算法程式,讓使用者輸入一語句,然後將語句中的每個大小寫字母轉換成其反序的字母(A↔Z、B↔Y、C↔X、…、x↔c、y↔b、z↔a),若所輸入的語句中有不是英文字母的字元則以原字元輸出。例如:所輸入的語句為「abcd6ZYXW$」,則輸出應為「zyxw6ABCD$」;所輸入的語句為「R olev blf!」,則輸出應為「I love you!」。(25分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、中華民國的身分證字號共有10個字元,其編碼原則如下:第一個字元為大寫的英文字母,代表出生地區,其餘9個字元皆為數字。在套用編碼原則時,第一個大寫英文字母須先依下表轉換為數字:
轉換後的身分證字號共有11位數字,每一位數字均有固定的權重 (Weight),由左往右依序為1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1。判斷身分證字號是否正確的方法為:各位數字與其相對應的權重相乘後再加總,加總後的結果若為10的倍數,則該身分證字號即屬有效。請使用 C/C++、Java 或 Python 任一程式語言撰寫一支中華民國身分證字號的驗證程式。例如所輸入的身分證字號為「A123456789」,則輸出應為「A123456789 為有效的身分證字號」;所輸入的身分證字號為「Z987654321」,則輸出應為「Z987654321 為無效的身分證字號」。(25分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
代號:18150 頁次:4-1 |
110年公務、關務人員升官等考試、110年交通事業公路、港務人員升資考試試題 |
等 級:薦任
類科(別):資訊處理
科 目:程式語言
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞或數理公式外,應使用本國文字作答。
一、第5代行動通訊標準 (5G) 的網路架構包含終端設備、接取網路、邊緣運算、核心網路、外部服務等,其系統程式的開發需要許多軟體安全開發機制。
(一)為強化 5G 系統開發之安全性,可使用 SSDLC 和 DevSecOps 開發流程;請說明 DevSecOps 開發流程的要點。(15分)
(二)軟體安全開發機制,包含建立威脅模型與分析、設計威脅模型的緩解措施。請說明若威脅模型中有會話劫持 (Session hijacking) 攻擊、機敏資料洩漏、Cookie 操控 (Manipulation),其緩解措施分別如何設計。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、二元樹 (Binary tree) 可使用陣列 (Array) 和鏈結串列 (Linked list) 設計。
(一)以二元樹表達算術運算式 c * (d - e) + f / g,並寫出此運算式的後置表示法 (Postfix Expression)。(10分)
(二)以一維陣列設計二元樹,節點循序編號,從陣列1開始表達根節點,節點編號規則為:左子樹是父節點編號乘以2,右子樹是父節點編號乘以2加1,-1 表示沒有子節點。請填寫以下陣列表達題(一)算術運算式之二元樹。(10分)
(三)請根據右下圖完成下面 C 程式實作 (I)~(V) 之鏈結串列的表示,其中 btree 為指向一個二元樹的指標變數。(5分)
(I) node {
(II) ;
(III) ;
(IV) ;
} treeNode_t;
typedef (V) tree_t;
tree_t btree;
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、給定正整數二維陣列,起點為其中數值最大的點。從起點開始移動,求經過點的數值之加總。移動規則:(1)從相鄰的點 (上、下、左、右) 選擇一個最大的值移動;(2)走過的點不能重複。
(一)請完成遞迴程式與非遞迴程式 (I~XI) 空格,使以下 C 程式均能執行出下列結果。(22分)
path = 88, 42, 31, 18, 23, 21, 68, 36, 55, 77, 66, 63, 28, 33, 52, sum = 701 |
(二)請比較遞迴與非遞迴程式記憶體空間使用狀況。(3分)
#include <stdio.h> #define maxN 30 const int NV = -1; int max(int x, int y) { int r = x > y ? (I) ; return r; } int findR(int m[maxN][maxN], int x, int y, int sum) { int mi = max(max(m[x+1][y], m[x-1][y]), max(m[x][y+1], m[x][y-1])); sum += m[x][y]; printf("%d, ", m[x][y]); m[x][y] = NV; if (mi == NV) return (II) ; if (m[x+1][y] == mi) return findR(m, (III) , sum); if (m[x-1][y] == mi) return findR(m, (IV) , sum); if (m[x][y+1] == mi) return findR(m, (V) , sum); if (m[x][y-1] == mi) return findR(m, (VI) , sum); } int findI(int m[maxN][maxN], int x, int y, int sum) { while(1) { int mi = max(max(m[x+1][y], m[x-1][y]), max(m[x][y+1], m[x][y-1])); sum += m[x][y]; printf("%d, ", m[x][y]); m[x][y] = NV; if (mi == NV) (VII) ; else if (m[x+1][y] == mi) (VIII) ; else if (m[x-1][y] == mi) (IX) ; else if (m[x][y+1] == mi) (X) ; else (XI) ; } return sum; } int main( ) { int x = 0, y = 0, mi = NV, n = 5, m = 6; int map[maxN][maxN]={{NV, NV, NV, NV, NV, NV, NV}, {NV, 11, 15, 23, 18, 31, NV}, {NV, 31, 68, 21, 88, 42, NV}, {NV, 19, 36, 52, 33, 28, NV}, {NV, 12, 55, 77, 66, 63, NV}, {NV, NV, NV, NV, NV, NV, NV}}; // 邊界都是 NV for (int i = 1 ; i <= n ; i++) { for (int j = 1 ; j <= m ; j++) { if (mi < map[i][j]) { mi = map[i][j]; x = i; y = j; } } } printf("path = "); printf("sum = %d\n", findR(map, x, y, 0)); return 0; } |
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、敘述統計學上中位數和平均數均為數據資料的集中趨勢,中位數是將一組數值資料由小到大排列,最中間的數值為中位數。若有奇數個資料,則取最中間的數值為中位數,例如1, 2, 3, 3, 4, 6, 7, 7, 21 的中位數是4;若有偶數個資料,則取最中間兩個數值的平均為中位數,例如1, 2, 3, 3, 4, 6, 7, 7, 8, 21 的中位數是 (4+6)/2 = 5。算術平均數是將一組數值加總,除以這組數值的個數,例如1, 2, 3, 3, 4, 6, 7, 7, 21的算術平均數 = 54/9 = 6。以下 C++ 程式輸出:4, 6,
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#include <iostream> #include <algorithm> using namespace std; class Compute { public: void setData(int *, int); (I) = 0; protected: int *data, d_size; }; class ComputeMedian: public Compute { public: double getNum( ); }; class ComputeMean: public Compute { public: double getNum( ); }; void Compute::setData(int *d, int s) { data = d; d_size = s; sort(data, data+d_size); } double ComputeMedian::getNum( ) { if ( (II) == 1) return data[d_size/2]; else return (data[ (III) ]+data[1+d_size/2])/2.0; } double ComputeMean::getNum( ) { double sum = 0, avg = 0; for (int i = 0; i < d_size; i++) sum = sum+data[i]; return ( (IV) ); } class Report { public: Report(int *d, int s) { data = d; d_size = s; } void setCompute(Compute *c) { cp = c; } void report( ) { cp-> (V) ; cout << cp->getNum( ) << ", "; } private: int *data, d_size; Compute *cp; }; int main( ) { int data[10] ={6, 7, 1, 21, 2, 3, 4, 3, 7}; Report r(data, 9); Compute *cp1 = new ComputeMedian( ); Compute *cp2 = new ComputeMean( ); r.setCompute(cp1); r.report( ); r.setCompute(cp2); r.report( ); return 0; } |
(一)請完成程式碼 (I~V) 使程式正常運作。(15分)
(二)請根據程式碼完成下面 UML 類別圖的關係連線,並說明此設計對模組耦合性 (Coupling) 的影響。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
代號:01360 頁次:5-1 |
110年專門職業及技術人員高等考試建築師、24類科技師(含第二次食品技師)、大地工程技師考試分階段考試(第二階段考試)、公共衛生師考試暨普通考試不動產經紀人、記帳士考試試題 |
等 別:高等考試
類 科:資訊技師
科 目:程式設計
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞或數理公式外,應使用本國文字作答。
一、假設有一家新成立不久的 L 公司,欲進行員工基本資料的建立。其基本資料包括有 ID(所有員工一旦被招募進入公司的第一天,就會給予一個 ID (數字))、姓 (Last name)、名 (First name)、年齡和月薪。請利用 Java 或 C++實作一完整程式,可以在命令行 (command line) 依序傳入一系列的所有員工基本資料,並將其存入到一個文字檔中 (例如 “salary.txt”)。最後,也能夠求算印出當月所有員工薪水加總之後的總平均、最低薪水和最高薪水 (三者均為浮點數,取到小數第一位)。請適當地加入例外處理,讓使用者能夠依其需求,連續地在控制台輸入資料。亦即若其中有資料格式不符,可以印出例如 “Invalid input! Try again!” 或 “輸入資料格式不符,請重新輸入!” 的警示語,隨後程式還可以繼續進行到所有的資料輸入正確為止(例如使用者可以到最後打入結束指標 (end-of-file indicator) 結束繼續輸入)。一旦輸入結束,即提示或告知檔案已關閉 (File Close),並進行「總員工人數」、「總平均薪水」、「最低薪水」和「最高薪水」的印出顯示。以下是利用 Java 實作時的執行範例。請使用 Java 或 C++ 的語法撰寫程式碼。(20分)
假如未有任何的輸入:
Enter Employee ID, Last name, First name, and Monthly-salary (Enter end-of-file indicator (CTRL+Z) to end input.) ? close file Silly! Nothing input! 正確輸入及最後執行的結果: Enter Employee ID, Last name, First name, and Monthly-salary (Enter end-of-file indicator (CTRL+Z) to end input.) ? 羅 ○華 56789 Invalid input.Try again! ? 1 羅 ○華 56789 ? 2 林 ○曾 3456a Invalid input.Try again! ? 2 林 ○曾 34567 ? 3 劉 ○俊 23488 ? 4 林 ○君 56789 ? 5 方 ○滿 55555 ? close file There are 5 employees considered Average Salary in this month: 45437.6 Highest Salary in this month: 56789.0 Lowest Salary in this month: 23488.0 |
存到 “salary.txt” 裡的內容為
1 羅 ○華 56789.0 2 林 ○曾 34567.0 3 劉 ○俊 23488.0 4 林 ○君 56789.0 5 方 ○滿 55555.0 |
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、假設臺灣 XX 食品技師協會欲針對各類「生鮮食材新鮮度」的判定能夠依 據較科學性的方法,乃打算研發出一套能夠應用「色彩計畫」進行食材「自然顏色與光澤外觀」和「新鮮度」關係等級的對照表資料庫。為達到此目標,乃擬定先期先發展出一套色彩轉換雛型系統程式。此系統得符合下列幾項基本的使用要求和程序:
1.輸入所收集到─「用相機所拍攝到的食材的 RGB 值」(所使用的相機已被準確校正,其所拍攝到 RGB 即代表真實色);
2.RGB 的3個頻道值範圍均在0~255之間。
3.為了讓此系統的使用者能對色澤外觀有較直觀的感覺和判別,得將 RGB 值轉成和「人眼視覺三屬性 (Hue 色相、Saturation 飽和度、Value 明暗度)相關」的 HSV 色彩空間的表示法。
4.可以輸入每筆建築相關顏色 RGB;隨後,即進行計算轉換成 HSV 值後,再將相關的 RGB 和 HSV 值輸出顯示。
假設你就是此套系統的雛型開發師,請利用 Java 或 C++ 撰寫一個以「圖形使用者介面」(Graphical User Interface, GUI) 設計,並以 RGBbase 為超類別 (Superclass) 和 HSV_ColorSpace 為繼承的子類別之系統程式。(30分)
以下是利用 Java 和 JFrame 實作時的執行範例。
提示:1.在此作答中,RGB 轉換成 HSV 的方法 (Method) 或函式 (Function)不需要實踐,僅以黑箱的方式處理即可,例如:
Public void RGB_to_HSV(double rValue, double gValue, double bValue)
{ … }
2.Target Color 的顯示以及其他元件 (例如 labels 文字) 全部就用Default 的顏色 (或文字字型和大小) 設定,在此只是用來直觀視覺式的 Demo 輔助,你不需要實踐程式碼。
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、請使用 Java 或 C++ 語法撰寫「Switch 敘述流程控制」為主的水果超商計價程式碼。這個程式會列出四種 (例如蘋果、木瓜、香蕉和西瓜) 所銷售的水果名稱做選擇,並同時要求輸入其量秤所得到的磅重。每輸入一筆資料 (水果名稱代碼和量秤磅重) 後,即會印出該筆售價。隨後會再要求使用者繼續輸入下一筆不同的水果資料,直到此相關購買資料全部輸入完成。最後,再列出該交易的總售價金額。以下是利用 Java 實作時的執行範例。(25分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、請依據下列 Java 程式碼執行後,回答輸出結果為何?(25分)
public class CollectionArrayList4Colors { public static void main(String[ ] args) { String[ ] colors = { "RED", "Green","BLUE", "CYAN", "MAGENTA", "YELLOW","WHITE", "GRAY", "BLACK" }; List<String> list = new ArrayList<String>( ); for(String color:colors) { list.add(color); } System.out.println("ArrayList: "); for (int count = 0; count < list.size( ); count++) { System.out.printf("%s ", list.get(count)); } String[ ] removeNeutrals = { "GRAY", "BLACK", "WHITE" }; List<String> removeList = new ArrayList<String>( ); for (String color : removeNeutrals) { removeList.add(color); } removeColors(list, removeList); convertToLowercaseStrings(list); System.out.printf("%n%nArrayList after converting to Lowercase and calling removeColors:%n"); for (String color:list) { System.out.printf("%s ", color); } } // end main private static void removeColors(Collection<String> collection1, Collection<String> collection2) { Iterator<String> iterator = collection1.iterator( ); while (iterator.hasNext( )) { if (collection2.contains(iterator.next( ))) { iterator.remove( ); } } } // end removeColors private static void convertToLowercaseStrings(List<String> list) { ListIterator<String> iterator = list.listIterator( ); while (iterator.hasNext( )) { String color = iterator.next( ); iterator.set(color.toLowerCase( )); } } // end convertToLowercaseStrings } // end class CollectionArrayList4Colors |
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
代號:34260 頁次:2-1 |
110年特種考試地方政府公務人員考試試題 |
等 別:三等考試
類 科:資訊處理
科 目:程式設計
考試時間:2小時 座號:___________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(三)本科目除專門名詞或數理公式外,應使用本國文字作答。
一、請問下列程式碼之輸出結果為何?(25分)
#include <stdio.h>
#include <stdlib.h>
int function(int n)
{
if (n < 10)
return n;
int sum = 0;
while (n > 0)
{
sum += n % 10;
n /= 10;
}
return function(sum);
}
int main( )
{
int n = 12345;
int output;
output = function(n);
printf("output%d\n", output);
return 0;
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
二、假設一堆疊 (Stack) 的推入 (Push) 順序為:123、234、345、456、567,並且途中可以隨意彈出 (Pop) 取值,則下列彈出 (Pop) 取值之順序有無可能出現?
345、567、456、234、123
若有可能,請依序將推入 (Push) 與彈出 (Pop) 的步驟列出。若無可能,請解釋原因為何?(25分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
三、請問下列程式碼之輸出結果以及該程式碼的目的為何?(25分)
#include "stdio.h"
int f(int a, int b) {
if(a%b == 0) return b;
return f(b, a%b);
}
int main(void) {
printf("f(21, 9) = %d\n", f(21, 9));
printf("f(6, 44) = %d\n", f(6, 44));
return 0;
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
四、請問下列程式碼之輸出結果為何?(25分)
#include <stdio.h>
#include <stdlib.h>
void function(int a, int b)
{
printf("a=%d, b=%d\n", a, b);
for (i = 0; i < 8; i++)
{
if (!(a > 10 && b < 10) && (a <= 10 || b >= 10))
{
a = a+1;
b = b-1;
printf("a=%d, b=%d\n", a, b);
}
}
}
int main( )
{
int x = 5;
int y = 10;
function(x, y);
return 0;
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言分年題庫」詳解。
http://goods.ruten.com.tw/item/show?21632306984330
留言列表