免費開始練習
普考申論題 107年 [資訊處理] 程式設計概要

第 三 題

三、請問以下程式輸出的結果為何?(10 分)
#include
#include
using namespace std;
void fun1(int, int);
void fun2(int *, int *);
void fun3(int *, int, int);
int main(void){
int a[]={1, 2, 3, 4, 5}, i;
fun1(a[1], a[3]);
fun2(a, a+2);
fun3(a, 5, 0);
cout<< "執行所有函數後,陣列的內容為:" << endl;
for(i=0; i<5; i++)
cout<< “a[” << i << “]=” << a[i] <
return 0;
}
void fun1(int x, int y){
int tmp;
tmp=y;
y=x;
x=tmp;
}
void fun2(int *x, int *y){
int tmp;
tmp=*y;
*y=*x;
*x=tmp;
}

void fun3(int *ptr, int n, int num){
*(ptr+n-1) = num;
}
📝 此題為申論題

思路引導 VIP

本題重點在於「傳值呼叫 (Call by Value)」與「傳址呼叫 (Call by Pointer)」的影響範圍:

  1. fun1:傳值呼叫。函數內部的交換不會影響 main 的陣列。
🤖
AI 詳解 AI 專屬家教

【考點分析】參數傳遞方式(傳值 vs 傳址)、指標運算、陣列操作。 【理論/法規依據】傳值呼叫僅複製數值,不影響原始變數;傳址呼叫透過指標操作,會直接修改原始變數。 【分析與論述】

▼ 還有更多解析內容

🏷️ 相關主題

程式設計基礎概念與實作演練
查看更多「[資訊處理] 程式設計概要」的主題分類考古題