109年 地方特考 四等 資訊處理 程式設計概要 試卷

pdf
133.98 KB
5 頁
windows10
侵權投訴
加載中. ..
PDF
109年特種考試地方政府公務人員考試試題
別:四等考試
科:資訊處理
目:程式設計概要
考試時間:1小時30 座號:
禁止使用電子計算器。
本科目除專門名詞、數理公式或程式碼外,應使用本國文字作答。
代號
43960
頁次
5
1
一、下 C程式的執行結果為何?(15分)
#include <stdio.h>
#include <stdlib.h>
#define X 3
#define Y 4
void funA(int *, int, int), funB(int *, int, int);
int main(void){
int arr[X][Y] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
printf("輸出1n");
funA(*arr,X,Y);
funB(*arr,X,Y);
printf("輸出2n");
funA(*arr,X,Y);
system("pause");
return 0;
}
void funA(int *ptr,int x,int y){
int i,j;
for (i=0;i<x;i++){
for(j=0;j<y;j++)
printf("%3d ", *(ptr+i*y+j));
printf("n");
}
}
void funB(int *ptr,int x, int y){
int i,j;
int arr[x][y];
for (i=0;i<x;i++)
for(j=0;j<y;j++)
arr[x-i-1][y-j-1] = *(ptr+i*y+j);
for (i=0;i<x;i++)
for(j=0;j<y;j++)
*(ptr+i*y+j) = arr[i][j];
}
代號
43960
頁次
5
2
二、請依行號解說下列 Python 式碼與說明此程式的功能為何15分)
01 while(True):
02 number=input("請輸入至少三位數的整數值或輸入&apos;q&apos;&apos;Q&apos;結束程式:")
03 if(number.upper()!=&apos;Q&apos;):
04 while(len(number)<3):
05 number=input("輸入值至少須為三位數,請重新輸入:")
06 listA = []
07 for x in number:
08 listA.append(int(x))
09
10 var=0
11 for y in listA[0:len(listA)-1]:
12 var+=y
13 if (var%10==listA[-1]):
14 print(var%10, listA[-1], number, ”is acceptable”)
15 else:
16 print(var%10, listA[-1], number, ”is unacceptable”)
17 else:
18 break
代號
43960
頁次
5
3
三、請使用 C程式語言撰寫一猜數字遊戲程式,此程式必須滿足下列規
定:25分)
撰寫一函 int Randomize(int n),可回傳一個隨機產生
介於 1n間(包含 1n的正整數,此正整數即為此遊
的答案。
利用上述函式實作一猜數字遊戲,此遊戲開始時先讓使用者輸
入此猜數字遊戲的最大值,程式須確認使用者所輸入的數值必
須大於 20
使用者每次猜答時,程式必須顯示出是第幾次的猜答。
使用者每次輸入後程式必須顯示結果如果猜錯時式必須
依使用者的輸入值縮小範圍;當猜對時,就顯示『恭喜你猜對
!
當使用者猜答次數超過 10 次仍未猜中答案時程式就必須結束
使用者的猜答,並顯示出正確答案
程式執行範例如下:
請輸入答案的可能最大值(至少必須大於20)15
輸入錯誤15沒有大於20,請重新輸入!
請輸入答案的可能最大值(至少必須大於20)30
1次猜答:15
結果為:猜錯了,答案介於 15 30 之間!
2次猜答:23
結果為:猜錯了,答案介於 15 23 之間!
3次猜答:19
結果為:猜錯了,答案介於 15 19 之間!
4次猜答:17
結果為:猜錯了,答案介於 17 19 之間!
5次猜答:18
結果為:恭喜你猜對了!
請按任意鍵繼續 . . .
代號
43960
頁次
5
4
四、下 C程式的執行結果為何?(20分)
#include<stdio.h>
#include<stdlib.h>
int funA(int x), funB(int y);
int main(void){
printf("funA(5)=%d, funB(5)=%dn", funA(5), funB(5));
return 0;
}
int funA(int x){
int i, answer=1;
if(x<1)
return -1;
for(i=1;i<=x;i++)
answer*=(i*2);
return answer;
}
int funB(int y){
if(y<1)
return -1;
else if(y==1)
return 3;
else
return 3*y + funB(y-1);
}
代號
43960
頁次
5
5
五、請使用 C++,Java Python 式語言為三角形面積計算公式設計一個
名為 HeronFormula 類別,並撰寫一測試程式驗證此類別程式碼的正
確性。此類別須包含:25分)
三邊長的私有資料 a,b,c
三邊長 a,b,c 的初始化設定或建構元方法。
inputSide( )公有方法:讓使用者輸入三邊長 a,b,c。此方
法須能確認使用者所輸入的三邊長皆須大於 0另此方法不須回
傳值。
getAssessResult( )公有方法:判斷三邊長 a,b,c 是否可
以構成三角形。如果可以的話則回傳布林型別
(Boolean)如果不可以的話則回傳
getPerimeter( )公有方法回傳三角形的周長此方法須呼
getAssessResult( )方法,如果回傳值為則回傳三
角形的周長,如果回傳值為則回傳-1
getArea( )
getAssessResult( )回傳三角
形的面積如果回傳值為則回傳-1三角形面積的 Heron
計算公式為:
s(s a)(s b)(s c)
其中
s (a b c) / 2
程式執行範例如下:
請輸入大0的三邊長:-3,6,9
輸入錯誤,請重新輸入大於0的三邊長:3,6,9
所輸入的三個整數無法構成三角形
繼續玩嗎?若想繼續玩,請按&apos;y&apos;&apos;Y&apos;y
請輸入大0的三邊長:3,4,5
周長等於12
面積等於6.0
繼續玩嗎?若想繼續玩,請按&apos;y&apos;&apos;Y&apos;n
收藏 ⬇️ 下載