關於以下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分)