高考三級程式語言:98
檢察事務官三等程式語言:98
身心障礙人員三等程式語言:98
關務人員升官等薦任程式語言:98
資訊技師高等程式設計:98
地方特考三等程式語言:98
98年公務人員高等考試三級考試試題 代號:35640 全一張
類 科:資訊處理
科 目:程式語言
考試時間:2小時 座號:________________
※注意:(一)禁止使用電子計算器。
(二一)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
一、請回答下列的問題:
(一)解釋什麼是(1)強勢型態程式語言 (strongly-typed programming language)和(2)弱勢型態程式語言 (weakly-typed programming language)。(10分)
(二)列舉三個理由並舉例說明為何 C程式語言不是一個強勢型態程式語言。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
二、假設一個整數佔用四個位元組 (4 bytes),考慮一個 C 程式語言的整數陣列(integer array) int A[4][8][16],此陣列的起始位址 (starting address) 為0X22F760,以十六進位 (hexadecimal) 寫出下列四個printf敘述句 (statements) 的輸出值 (請寫出計算過程):(每小題5分共20分)
(一) printf(“%X\n”, &A[0][1][2]);
(二) printf(“%X\n”, &A[0][1][2]+1);
(三) printf(“%X\n”, &A[0][1]+2);
(四) printf(“%X\n”, &A[0]+3);
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
三、下圖是一個執行時堆疊 (run-time stack) 中之啟動紀錄 (activation record) 的示意圖:
Returned value |
|
Local variables |
|
Function parameters |
|
Dynamic link |
|
Static link |
|
Return address |
|
(一)說明如何使用啟動紀錄中的function parameters實作下列兩種副程式的參數傳遞 (parameter passing) 方法:call-by-value (或稱 pass-by-value) 和 call-by-address (或稱 pass-by-address, call-by-reference)。(10分)
(二)考慮下列的 C 程式語言的程式片段,說明當主程式 main呼叫副程式foo 之後,副程式 foo 的啟動紀錄之function parameters內容為何?並寫出主程式main的輸出值。(10分)
int c=5; void foo(int x, int* y) { int a=1, b=2; *y = a + b * x ; c = a + b + c; } |
int main (void) { int a=10, b=20; foo(b, &a); printf("%d, %d, %d\n", a, b, c); } |
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
四、考慮下列的 BNF 法則:
<conditional statement> ::= if <condition> then <statement>
| if <condition> then <statement> else <statement>
<statement> ::= <assignment statement> | <conditional statement>
(一)假設 C1 和 C2 是由 <condition> 展開的程式碼,S1和S2是由<statement> 展開的程式碼,畫出 <conditional statement>:
if C1 then if C2 then S1 else S2
的語法樹 (或稱剖析樹,parse tree),並解釋何謂「搖擺 else問題」 (dangling else problem)。(10分)
(二)舉出兩個方法,解釋程式語言如何在設計、實作、或使用時解決「搖擺else 問題」。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
五、考慮 C 程式語言的位元運算 (bitwise operation),變數m和陣列 (array) n的宣告如下:
unsigned int m;
unsigned char n[4];
假設 m 的二進位值 (binary value) 為:
b32b31b30b29b28b27b26b25b24b23b22b21b20b19b18b17b16b15b14b13b12b11b10b9b8b7b6b5b4b3b2b1
寫一個 C 語言的程式將陣列 n 的元素 (element) 設定為:
n[0]: b31b32b29b30b27b28b25b26
n[1]: b23b24b21b22b19b20b17b18
n[2]: b15b16b13b14b11b12b9b10
n[3]: b7b8b5b6b3b4b1b2
即是將 m 的二進位值,以每兩個位元一組,作位元調換 (bit swap),再切割成四個位元組。除了迴圈控制變數 (loop control variable) 外,程式中不可使用 +, -, *, /, % 的算術運算 (arithmetic operations) (可以宣告和使用其他變數)。(20分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
98年公務人員特種考試司法人員考試試題 代號:30980 全一頁
等 別:三等考試
類 科:檢察事務官電子資訊組
科 目:程式語言
考試時間:2小時 座號:_______________
※注意:(一)可以使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
一、(一)何謂類別化的程式語言 (Typed Programming Language)?(5分)
(二)在類別化的程式語言中,何謂動態的類別化 (Dynamic typing)?(5分)
(三)何謂強烈的類別化 (Strong typing)?(5分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
二、(一)在電腦中,程式碼 (source code) 的執行 (execution) 有那兩種方法?(4分)
(二)請說明它們各別的優缺點。(6分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
三、(一)在網頁的設計中,何謂一個動態的網頁文件?(5分)
(二)舉例說明動態網頁文件如何製作。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
四、假設 f 是一個函數,inarray 是一個一維的陣列 (array),定義 Map(f, inarray) 的功用是將 f 這個函數應用到 inarray 陣列的每個元素,然後輸出這個結果陣列。例如 Map(function(x){return x+1},[1, 2, 3, 4, 5]) 會得到 [2, 3, 4, 5, 6],Map(function(x){return 2x}, [1, 2, 3, 4, 5]) 會得到 [2, 4, 6, 8, 10]。假設 g 是一個有兩個輸入參數 (argument) 的函數,其結果為一個元素,例如 g(y, z){return (y+z)} 即是得到兩數的和。定義 Reduce(g, inarray) 為將 g 應用到陣列inarray的元素,由左至右,直到最後成為一個元素為止,例如利用上述的g,Reduce(g, [1, 2, 3, 4, 5]) 的結果為15,若g = g(y, z){return y*z},則Reduce(g, [1, 2, 3, 4, 5]) 的結果為120。
(一)請用虛擬指令 (pseudo code) 的方式,寫出 Map 函數的程式。(10分)
(二)請用虛擬指令 (pseudo code) 的方式,寫出 Reduce 函數的程式。(10分)
(三)請用 Map和 Reduce 兩個函數,說明如何計算 12 + 22 + 32 + 42 + 52。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
五、在下列的虛擬程式碼中:
Function f(x,y: integer)
{ x = 2*x; y = x + y; return (x+y)}
假設 a = 1,b = 2,請問
(一)若參數的傳遞是靠 call-by-value,請問 f(a, b) 的值是多少?執行完 f(a, b) 後,a =?,b =?(10分)
(二)若參數的傳遞是靠 call-by-reference,請問 f(a, b) 的值是多少?執行完f(a, b) 後,a =?,b =?(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
六、將下列的遞迴 (recursive) 程式改成非遞迴的版本:(10分)
long f(n: integer)
{ if (n<=1) return (1);
else return n*f(n-1); }
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
98年公務人員特種考試身心障礙人員考試試題 代號:31140 全一張
等 別:三等考試
類 科:資訊處理
科 目:程式語言
考試時間:2小時 座號:______________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
一、請解釋以下在程式語言撰寫時常用之專有名詞及其含意:(每小題4分,共20分)
(一) recursion 與 iteration
(二) call by reference
(三) null character
(四) static array
(五) dynamic memory allocation
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
二、下列以 C 語言撰寫之程式段原是可以執行的,請逐行找出所有語法錯誤之處,並更正之:(15分)
#include <stdio.h>
void function1(int, double)
void main()
{
int a = 1, b = 2;
float c[2] ={1.1, 2.2, 3.3};
double x = 2.1;
int y = 3;
a += x;
y -= c[1];
return 0;
}
void function1(int a; double b)
{
print("x=%3d, y=%4.2f\n", a,b;
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
三、請撰寫一段程式執行以下工作,不限程式語言:(20分)
輸入:字串
輸出:原字串順序顛倒
(例如,輸入:abcd 輸出:dcba)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
四、以下之程式段為簡單之遞迴函式 (recursive function),假設 a 與 b 皆為正整數,試問該程式段在執行什麼工作?(20分)
int function(int a, int b);
{
if(b == 1){
return a;
}
else {
return a + function(a, b-1);
}
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
五、桌上有 N 本書成一疊,當閱讀其中某本書的時候,會逐本將壓在該本書上的書照順序由上而下的移開,並且按照移開的順序先將它們放在旁邊,然後取走想要看的書;當閱讀完畢以後,會將剛才移開的書逐本逆向放回,並且將看完的書本放在最上面,例如桌上有五本書:
書本1
書本2
書本3
書本4
書本5
經過閱讀"書本3"後放回之最終書本狀態變成
書本3
書本2
書本1
書本4
書本5
請撰寫一段程式執行以上工作,不限程式語言:(25分)
輸入:一個初始書本序列和一個閱讀書之序列
輸出:最終的書本狀態
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
98年公務人員、關務人員升官等考試試題 代號:36150 全一張
等 別:薦任
類 科:資訊處理
科 目:程式語言
考試時間:2小時 座號:______________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
一、我們有下面的 BNF 文法。(15分)
S ::= NP AS
NP ::= NOUN PHRASES
NOUN ::= “a man” | “a lady” | “a dog” | “a cat”
PHRASES ::= | PROP NOUN PHRASES
PROP ::= “with” | “for” | “by”
AS ::= VERB NP | AS CONC AS
VERB ::= “likes” | “owns” | “catches”
CONC ::= “and”
請依據上述文法,畫出下面句子的 derivation tree。
“a man with a cat likes a lady by a dog and owns a dog for a lady”
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
二、(一)請問在第一題的 BNF 文法,是不是 ambiguous?(7分)
(二)請證明你的答案。(8分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
三、我們有下列 C/C++ 語言程序。
int f(int n) {
if (n = = 1 || n = = 2)
return(1);
else
return(f(n1)+f(n2));}
(一)請描述這個程序在算什麼?(5分)
(二)請把這個程序的計算目的的遞迴方程式寫出來,並且把對任意引數n的解,寫出來。(5分)
(三)請問這個程序的計算時間複雜度是多少?(5分)
(四)請問根據你的描述,這個程序有什麼錯誤?(5分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
四、假設我們可以在程式中宣告 semaphore 變數,而且我們有下列兩個系統程序。
sem_wait(semaphore s)
sem_signal(semaphore s)
(一)請問什麼是 semaphore 變數?(8分)
(二)請問這兩個程序的功能為何?(8分)
(三)請用 spinlock 的技術,寫出上述兩個程序的內容。(9分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
五、假設我們有下列程式片段,有六個指令,有 a, b, c, d, e, k 等六個變數。
1: b = a; // LSU 5 μs
2: b = b + 3; // ALU 10 μs
3: k = d; // LSU 5 μs
4: c = d + 5; // ALU 10 μs
5: e = c; // LSU 5 μs
6: a = b / k; // ALU 20 μs
假設這個程式,現在經過了 compiler 的分析,要在一個 single CPU上執行。在指令的左邊,我們寫上了指令的行號。指令的右邊,我們寫上了執行指令所需使用的硬體元件與時間 (以微秒 μs 為單位)。ALU 代表所用的硬體元件是 CPU 中唯一的算術邏輯單元。LSU 代表所用的硬體元件是CPU 中唯一的存取單元。我們假設這個 CPU,可以容許 LSU 與 ALU 同時執行不同的指令。
(一)請問這個程式片段,在 in-order execution 時,需要花多少時間?(7分)
(二)請畫出上述程式片段的 data-dependency graph。(6分)
(三)依照上述 data-dependency graph,這個程式片段,在我們的 single CPU假設下,做 out-of-order execution 時,請問最短可以用多少時間完成?(6分)
(四)在(三)的答案下,所需的 out-of-order execution 是什麼?(6分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
98年專門職業及技術人員高等考試建築師、技師、消
防設備師考試、普通考試不動產經紀人、記帳士、第 代號:01340 全一張
二次消防設備士考試暨特種考試語言治療師考試試題
等 別:高等考試
類 科:資訊技師
科 目:程式設計(C++或 Java)
考試時間:2小時 座號:______________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
一、n 階乘 (n!, factorial) 的定義有下列兩種方式:
1.疊代 (iterative) 定義:
2.遞迴 (recursive) 定義:
(一)試寫出 n 階乘的疊代函式 (iterative function) 如下:(10分)
int fact1(int n) // 假設 n 的值 ≥ 0
{
... ...
}
(二)試寫出 n 階乘的遞迴函式 (recursive function) 如下:(10分)
int fact2(int n) // 假設 n 的值 ≥ 0
{
... ...
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
二、利用巴比倫法 (Babylonian method) 計算平方根的方法如下:欲計算一數值c ≥ 0的平方根 x = ,可利用 xk+1 = 來逼近求解,其中 x0 為一初始估計值 (initial guess),如此反覆逼近,直到 |xk+1 - xk| < tol (某個容忍誤差值,例如:10-4)。試寫出計算 c 的平方根的函數如下:(20分)
double SquareRoot(double c, double x0, double tol) // 假設 c 的值 ≥ 0
{
... ...
}
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
三、假設灰階影像的灰階值為 0~255 (可用 unsigned char表示),其寬為 width像素 (pixels),高為 height 像素,其類別 image 如下,其中 pixel為指標指向二維影像的像素值:
class image {
private:
int width, height;
unsigned char **pixel;
public:
image(int w, int h);
...
}
試寫出 image 的建構子 (constructor) image(int w, int h),其中參數 w 為影像寬度,而 h 為影像高度,配置記憶體使得每個像素 pixel[r][c] 皆初始為0 (0 ≤ r ≤ h–1,0 ≤ c ≤ w–1)。(20分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
四、假設有下列 Java Thread 程式碼:
public class ClassA
{ private bank B = new bank();
private Thread[] thread = new Thread[10];
public static void main(String[] args)
{ ClassA test = new ClassA();
System.out.println(“What is the result? ” + test.B.getValue());
}
public ClassA()
{ ThreadGroup g = new ThreadGroup(“group”);
boolean done = false;
// Create an launch 10 threads
for (int i = 0; i < 10; i++) {
thread[i] = new Thread(g, new AddThread(), “t”);
thread[i].start();
}
// Check if all the threads are finished
while (!done)
if (g.activeCount() = = 0) done = true;
}
// A thread for adding 1 to the bank
class AddThread extends Thread
{ public void run()
{ int newValue = B.getValue() + 1;
try { Thread.sleep(5); }
catch (InterruptedException ex)
{ System.out.println(ex); }
B.setValue(newValue);
}
}
}
// A class for bank
class bank
{ private int value = 0;
public int getValue() { return value; }
public void setValue(int value) { this.value = value; }
}
(一)試問程式執行後,會列印什麼結果?為什麼?(10分)
(二)結果是否有錯誤?若有錯誤,是何原因?該如何解決?(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
五、Java 提供網路程式設計所需的 sockets。
(一) Java 提供何種類別 (class) 作為 TCP 資料傳輸,以及何種類別作為UDP 資料傳輸?(10分)
(二)試寫一 Java 的 TCP 日期伺服程式 (date server),其 port number 為6013,當 client 連上來時,將目前伺服器的時間送回給 client。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
98年特種考試地方政府公務人員考試試題 代號:33960 全一張
等 別:三等考試
類 科:資訊處理
科 目:程式語言
考試時間:2小時 座號:_______________
※注意:(一)禁止使用電子計算器。
(二)不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
一、繪表依時序比較說明 C、C++、Java 程式語言的主要差異和當時時代需求。(15分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
二、變數、繫結、和資料型態(20分)
Void sub() {
int count;
count = 7;
while ( … ) {
int count;
count += 1;…
}
sum = count * 5;…
}
(一)說明在 C++ 和 Java 語言中,上列敘述是否合法及其原因。
(二)請討論其中變數 count 的記憶體配置的繫結 (binding) 以及有效範圍(scoping)。
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
三、物件導向程式語言
Java 使用關鍵字 extends 來表達繼承觀念:
public class Animal {
public String moveMethod() {
return "Unspecified";
}
}
public class Bird extends Animal {
public String moveMethod() {
return “fly”;
}
}
public class Dog extends Animal {
public String moveMethod() {
return “run”;
}
}
public class Fish extends Animal {
public String moveMethod() {
return “swim”;
}
}
(一)繪出物件類別繼承圖。(7分)
(二)充分利用多型 (polymorphism) 特性寫一主程式 (語意表達清楚),宣告一陣列 (array) 中有 3 Bird,2 Fish,1 Dog,該程式以一簡單迴圈以亂數隨機印出這六隻動物其中之一的動作1000次,如 Fish(4) swim …(18分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
四、給定文法(15分)
<start>::= <stmt>
<stmt>::= <if-stmt> | <assign>
<if-stmt>::= if <expr> then<stmt>
| if <expr> then <stmt> else <stmt>
<assign>::= <ident> := <digit>
<expr>::= <ident> = <digit>
<digit>::= 0 | 1 | …| 9
<ident>::= a | b | …| z
(一)剖析輸入 “if x = 0 then if y = 1 then z := 2 else w := 3”
(二)繪出完整剖析樹之一,並說明另一可能之問題。
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
http://goods.ruten.com.tw/item/show?21406178496277
五、RSS (Really Simple Syndication) 為 XML 語言的應用,被使用於網站最新頭條訊息,並提供給需求者參考。
(一)說明何謂 XML。(5分)
(二)試以 RSS 提供者角度說明程式的功能與程式重點。(10分)
(三)試以 RSS 引用者角度說明程式的功能與程式重點。(10分)
答:
請到「露天拍賣」購買 Jacksaleok 親自編寫的「程式語言筆記」。
留言列表