模擬試題(下載)
技術型高級中等學校 電機與電子群實作評量
第2-1站 程式設計基礎實作試題解
第2-1站 程式設計基礎實作試題解
一.(一)及(二) 十進制整數轉成二進制數值 (單次/連續執行)
1
|
int num;
|
宣告整數型態變數num
|
2
|
int temp;
|
宣告整數型態變數temp存放計算num的數
|
3
|
int s[10];
|
宣告整數型態陣列s,陣列空間大小10。
|
4
|
void H2B(int num){
|
定義H2B的副程式,傳入值為整數型態,並放入num變數中
|
5
|
int i=0;
|
宣告整數型態變數i,值為0。
|
6
|
int j=0;
|
宣告整數型態變數j,值為0。
|
7
|
cout<<num<<"轉成2進制=";
|
依題目要求輸出提示字句
|
8
|
while(num!=0){
|
當num不為0時執行迴圈,一直執行到迴圈條件不成立時結束
|
9
|
temp=num%2;
|
將num變數取餘數2後,結果存放至temp變數
|
10
|
s[i]=temp;
|
將temp變數存放室s陣列
|
11
|
i++;
|
i=i+1 , 累加i變數,作為s陣列存放的的順序,如 s[1],
s[2], …
|
12
|
num/=2;
|
num=num/2 , 將num變數除2
|
13
|
}
|
迴圈結尾,重新至開頭判斷
|
14
|
for (int
j=i-1;j>=0;j--){
|
執行迴圈, j初值為i-1, 終止條件為j<0,
迴圈每執行一次j值加1
|
15
|
cout<<s[j];
|
輸出s[j] 陣列內容
|
16
|
}
|
迴圈結尾,重新至開頭判斷
|
17
|
cout<<"\n";
|
輸出一行段落
|
18
|
}
|
副程式結束
|
19
|
int
main(){
|
整數型態
主程式
|
20
|
cout<<"請輸入十進制整數(1000以內),並將之轉換為二進制數值。\n";
|
|
21
|
while(true){
|
判斷若條件成立,則執行迴圈
|
22
|
cout<<"請輸入十進制整數:";
|
輸出字串
|
23
|
cin>>num;
|
將使用者輸入鍵盤值放入num變數中「>>」是將輸入的資料放入
|
24
|
if(num>0)
|
判斷若num大於0條件成立則繼續往下執行
|
25
|
H2B(num);
|
執行H2B副程式,並帶入num變數值
|
26
|
else
|
條件不成立時執行
|
27
|
break;
|
中斷程式
|
28
|
}
|
迴圈結尾,重新至開頭判斷
|
29
|
}
|
主程式結束
|
灰底:第(二)題使用
一.(三) 連續十進制整數轉成二或八進制數值
1
|
int num,trn;
|
宣告整數型態變數num,trn
|
|
2
|
int temp;
|
宣告整數型態變數temp
|
|
3
|
int s[10];
|
宣告整數型態陣列s,陣列空間大小10。
|
|
4
|
void H2B(int num,int
trn){
|
定義H2B的副程式,傳入num、trn值為整數型態
|
|
5
|
int i=0;
|
宣告整數型態變數i,值為0。
|
|
6
|
int j=0;
|
宣告整數型態變數j,值為0。
|
|
7
|
cout<<num<<"轉成"
<< trn << "進制=";
|
輸出num變數、字串”轉成”、trn變數、”進制”
|
|
8
|
while(num!=0){
|
當num不為0時執行迴圈,一直執行到迴圈條件不成立時結束
|
|
9
|
temp=num%trn;
|
將num變數取餘數trn變數後,結果存放至temp變數
|
|
10
|
s[i]=temp;
|
將temp變數存放室s陣列
|
|
11
|
i++;
|
i=i+1 , 累加i變數,作為s陣列存放的的順序,如 s[1],
s[2], …
|
|
12
|
num/=trn;
|
num=num/trn , 將num變數除trn變數
|
|
13
|
}
|
迴圈結尾,重新至開頭判斷
|
|
14
|
for (int j=i-1;j>=0;j--){
|
執行迴圈, j初值為i-1, 終止條件為j<0,
迴圈每執行一次j值加1
|
|
15
|
cout<<s[j];
|
輸出s[j] 陣列內容
|
|
16
|
}
|
迴圈結尾,重新至開頭判斷
|
|
17
|
cout<<"\n";
|
輸出一行段落
|
|
18
|
}
|
副程式結束
|
|
19
|
int main(){
|
整數型態
主程式
|
|
20
|
cout<<"請輸入十進制整數(1000以內),並將之轉換為二進制或八進制數值。\n";
|
||
21
|
while(true){
|
判斷若條件成立,則執行迴圈
|
|
22
|
cout<<"請輸入十進制整數:";
|
輸出字串
|
|
23
|
cin>>num;
|
將使用者輸入鍵盤值放入num變數中「>>」是將輸入的資料放入
|
|
24
|
if(num>0){
|
判斷若num大於0條件成立則繼續往下執行
|
|
25
|
cout<<"請輸入2(表示二進制)或8(表示八進制):";
|
||
26
|
cin>>trn;
|
將使用者輸輸入值放入trn變數中
|
|
27
|
H2B(num,trn);
|
執行H2B副程式,並帶入num、trn變數值
|
|
28
|
}else
|
條件不成立時執行
|
|
29
|
break;
|
中斷程式
|
|
30
|
}
|
迴圈結尾,重新至開頭判斷
|
|
31
|
}
|
主程式結束
|
|
一.(四) 具選單功能的連續十進制整數轉成二或八進制數值
int num,trn;
|
宣告整數型態變數num,trn
|
int temp;
|
宣告整數型態變數temp
|
int s[10];
|
宣告整數型態陣列s,陣列空間大小10。
|
string corq;
|
宣告字串型態變數corq
|
void H2B(int num,int
trn){
|
定義H2B的副程式,傳入num、trn值為整數型態
|
int i=0;
|
宣告整數型態變數i,值為0。
|
int j=0;
|
宣告整數型態變數j,值為0。
|
cout<<num<<"轉成"
<< trn << "進制=";
|
輸出num變數、字串”轉成”、trn變數、”進制”
|
while(num!=0){
|
當num不為0時執行迴圈,一直執行到迴圈條件不成立時結束
|
temp=num%trn;
|
將num變數取餘數trn變數後,結果存放至temp變數
|
s[i]=temp;
|
將temp變數存放室s陣列
|
i++;
|
i=i+1 , 累加i變數,作為s陣列存放的的順序,如 s[1],
s[2], …
|
num/=trn;
|
num=num/trn , 將num變數除trn變數
|
}
|
迴圈結尾,重新至開頭判斷
|
for (int j=i-1;j>=0;j--){
|
執行迴圈, j初值為i-1, 終止條件為j<0,
迴圈每執行一次j值加1
|
cout<<s[j];
|
輸出s[j] 陣列內容
|
}
|
迴圈結尾,重新至開頭判斷
|
cout<<"\n";
|
輸出一行段落
|
}
|
副程式結束
|
int main(){
|
整數型態
主程式
|
while(true){
|
|
cout<<"請輸入c執行轉換程式或q離開轉換程式:\n";
|
|
cin>>corq;
|
判斷若條件成立,則執行迴圈
|
if(corq=="q")
|
輸出字串
|
break;
|
將使用者輸入鍵盤值放入num變數中「>>」是將輸入的資料放入
|
else
|
判斷若num大於0條件成立則繼續往下執行
|
cout<<"請輸入十進制整數:";
|
|
cin>>num;
|
|
cout<<"請輸入2(表示二進制)或8(表示八進制):";
|
|
cin>>trn;
|
將使用者輸輸入值放入trn變數中
|
if(num>0)
|
|
H2B(num,trn);
|
執行H2B副程式,並帶入num、trn變數值
|
else
|
條件不成立時執行
|
break;
|
中斷程式
|
}
|
迴圈結尾,重新至開頭判斷
|
}
|
主程式結束
|
沒有留言:
張貼留言