- 10月 07 週六 202318:12
112年檢察事務官三等程式語言第三題
- 7月 19 週三 202323:42
112年高考三級程式設計第一題
一、關於以下 C 程式碼:
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 | #include<stdio.h> #define SIZE 10 #define THREE 3 unsigned int f1(unsigned int a, unsigned int b) { return (a&&!b); } unsigned int f2(unsigned int a, unsigned int b) { return (a<<b); } unsigned int f3(unsigned int a, unsigned int b) { return (a&~b); } int f4(int a, int b) { return a*b+a-b; } int f5(int a, int b) { int data[SIZE]; for (int i = 1, k = 0; i < a; i++) { if (i%3 == 0) data[k++] = f4(i, i+1); } return data[b]; } int f6(int a, int b) { int data[ ][THREE] = {{4, 3, 2}, {3, 4, 2}, {2, 3, 3}}; for (int i = 0; i < THREE; i++) { for (int j = 0; j < THREE; j++) { if (i > a || j > b) data[i][j] = data[j][i]+b; } } return data[a][b]; } int main( ) { printf("%u\n", f1(6, 2)); printf("%u\n", f2(6, 2)); printf("%u\n", f3(7, 2)); printf("%d\n", f4(3, 12)); printf("%d\n", f5(15, 3)); printf("%d\n", f5(3, 15)); printf("%d\n", f6(1, 1)); printf("%d\n", f6(3, 2)); return 0; } |
請說明程式執行後,程式碼編號26~33的輸出,以及其運算邏輯。(25分)
- 12月 24 週六 202218:49
111年地方特考三等程式設計第一題
- 12月 10 週六 202222:08
111年資訊技師高等程式設計第四題
四、現在有二維矩陣 float[ ][ ] map 存放著一張解析度 M×N 的 24Bits 彩色影像資料,以 Y, I, Q 顏色編碼,其資料存放方式是依像素(Pixel)循序存放,如下圖所示。
請以 Java 或 C++ 撰寫一函式 int[ ][ ] YIQ2RGB(float[ ][ ] map) { .. },對其傳入 map 矩陣後,可傳回一轉成 RGB (R, G, B 各範圍皆是0~255 整數) 的二維整數矩陣,排列方式如同 YIQ 矩陣。像素的 YIQ 轉 RGB 公式如下圖所示,轉換時小數部分四捨五入,但不可低於0或超過255。
接著請再撰寫一函式 void Floodfill(int[ ][ ] m , int x, int y, int r1, int r2) { .. },此函式以水流填充演算法 (flood fill),由上題所得的二維 RGB 矩陣 m,以指定的 (X, Y) 座標為起點沿上下左右四個方向,持續的水流填充 (搜尋) 鄰近點中 (R, G, B) 值範圍符合 r1 ≤ R 且 R ≤ r2 條件的點。最後,將這些符合點的 (R, G, B) 值皆改為 (127, 127, 127)。如下圖所示,假設 (X, Y) 點本身符合條件,則向四個方向水流填充,假設 (X-1, Y) 點也符合條件,則繼續針對 (X-1, Y) 點的週邊水流填充。此題需用遞迴 (Recursion) 方式處理。(25分)
- 12月 10 週六 202222:04
111年資訊技師高等程式設計第二題
二、請結合 HTML、JavaScript 及 PHP,撰寫一人事資料庫管理程式有關人事基本資料新增功能的網頁,其網頁畫面如圖所示 (HTML 只需寫出此畫面的部分即可,寬度及字形大小自訂),當操作者填入資料後,按下提交鍵時,網頁的 JavaScript 程式必須自動檢查員工年齡欄輸入的是數字,且範圍必須在1~150之間,並檢查每個欄位均有填寫。若前述檢查有誤,則必須使用跳出式視窗提出警告。
若提交成功時,對應的 PHP 程式會確認資料表中員工編號欄資料沒有重複後,再將這些資料加入人事基本資料表。若重複,則在網頁顯示資料重複訊息即可。假定資料庫伺服器 IP 是110.23.43.104,資料庫名稱是 PERSON,人事基本資料表名稱是 PBASIC,資料表內的欄位名稱依序是 PNO、NAME、AGE、TEL 及 ADDR。資料庫管理帳號是 sa,密碼是 admin。連結資料庫指令是 mysqli_connect (資料庫主機,登入帳號,登入密碼,資料庫名稱),傳送 SQL 指令是 mysqli_query (連結資料庫,SQL)。(25分)
- 12月 10 週六 202221:53
111年資訊技師高等程式設計第一題
一、請用 Java 或 C++ 實作一個資料結構堆疊 (stack) 的泛型 (Generics) 物件, 此 stack 物件必須有下列函式 (Method):
a.建構子 (Constructor) 及解構子 (Destructor),若以 Java 撰寫,不必解構子。
b.void push( {datatype} a ) { .. },可以加資料入 stack 頂端。
c.{datatype} pop( ) { .. },可以取出 stack 頂端資料。
d.int length( ) { .. },傳回 stack 內資料的數量。
e.void clear( ),清除 stack 物件內資料。
f.void inverse( ) { .. },可以將 stack 內的資料存放順序顛倒放置。
因為是泛型物件,上述之 {datatype} 是指使用者使用此物件時才會決定其資料型態。必須注意,此題的資料儲存空間必須使用動態矩陣,不能使用其他物件。另外也必須對物件進行封裝以及處理記憶空間不足時,動態增加空間的應變問題。(25分)
- 10月 12 週三 202218:28
111年檢察事務官三等程式語言第四題
四、若有一個二維陣列宣告為 A[1..3, 1..5] 且已知其 A[1, 1] 的位址為100,試以列為主及以行為主的表示法,求 A[2, 4] 之位址為何?(25分)
- 10月 11 週二 202220:22
111年檢察事務官三等程式語言第三題

111年檢察事務官三等程式語言
三、若有一個遞迴函數如下:
Procedure FIB(n)
if n = 0, FIB = 0;
if n = 1, FIB = 1;
else FIB(n-1)+FIB(n-2)
end if
end
試問 FIB(4) 之值為多少?在計算 FIB(4) 值時,需要呼叫此 FIB(n) 函數多少次。(25分)
- 10月 10 週一 202219:45
111年高考三級程式設計第二題
二、資料庫是企業組織或政府部門中用以保存大量資料的機制。下圖為資料表的結構,請回答以下各小題。(每小題10分,共20分)
(一)請以 SQL 列出某一個人的年度薪資總額,必須顯示 id, first_name, last_name 及總額。
(二)現在的資料查詢服務常見於網頁系統,而 SQL Injection 是最常見的資料庫攻擊方式。請問下列查詢語句是否會有被攻擊的疑慮?若有的話該如何改善?程式碼可以使用 PHP 或 ASP.NET。
SELECT first_name, last_name FROM employee WHERE id = 'A001'
- 10月 07 週五 202218:09
111年高考三級程式設計第一題
一、請問以下三小題 C 程式執行的結果為何?請注意須說明答案是如何產生的,否則不給分。
(一)(5分)
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int x;
float y;
for (x = 0, y = 50; x < 25; x += 5, y /= 2)
printf("x = %d, y = %4.2f\n", x, y);
return 0;
}
(二)(5分)
#include <stdio.h>
#include <stdlib.h>
int a = 10, fun(int);
int main(void) {
int b = 6;
printf("a = %d, b = %d, fun(a) = %d\n", a, b, fun(a));
return 0;
}
int fun(int b) {
a -= 5; b /= 2;
return(a+b);
}
(三)(10分)
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
void fun(int *, int);
int main(void) {
int x[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
fun(x, SIZE);
printf("\n");
return 0;
}
void fun(int *a, int size) {
if (size > 0) {
fun(a+3, size-3);
printf("*(a+%d) = %d\n", SIZE-size, *a);
}
}








