[f(2) 1回目]
auto int u; //u=0
auto int v = 1; //v=1
v = 1 + 2; //v=3
return v; //3を返す
[f(2) 2回目]
1回目と同じです。
auto int u; //u=0
auto int v = 1; //v=1
v = 1 + 2; //v=3
return v; //3を返す
つまりメインプログラムの xは 3 + 3 = 6となります。
[g(2) 1回目]
auto int u; //u=0
static int v = 1; //v=1
v = 1 + 2; //v=3
return v; //3を返す
[g(2) 2回目]
auto int u; //u=0
static int v = 1; //vはすでに確保済みなので3のまま
v = 3 + 2; //v=5
return v; //5を返す
つまりメインプログラムの yは 3 + 5 = 8となります。