出題者がものをよく分かっていないんでしょうね。
pが定義域X, 値域Vpの関数であり、qが定義域Dq, 値域Xの関数である、という条件が成立つとき、(p○q)とは定義域Dq, 値域Vpである関数p(q(x))を指し、これをpとqの合成関数と言う。
というのが合成関数の定義。(もちろん、条件が成立たない場合には(p○q)は何も意味しない。)
さて、ご質問にはfとgに関する式が書いてある。しかし、これだけじゃひとつのf、ひとつのgを指定したことにはなっていないという点にご注意。というのは、
f(x)=x-1 (x>3)
という式は、「fが
∀x(x∈(fの定義域) ∧ x>3 ⇒ f(x)=x-1)
という性質を満たす」というだけの意味。(∧は and、⇒ は 「ならば」、∀x Pは 「任意のxについてPである」ということを表す記号。知ってますよね?)
この条件を満たす関数fはいくらでもある。たとえば、
定義域がD={ x | x∈実数} 、値域がV={ y | y∈複素数}であって、∀x(x∈D ⇒ f(x) = x-1) である関数f。
定義域がD={ x | x∈実数 ∧ x>0} 、値域がV={ y | y∈実数 ∧ y > -100}であって、∀x(x∈D ⇒ f(x) = x-1) である関数f。
定義域がD={ x | x∈実数 ∧ x>0} 、値域がV={ y | y∈実数 ∧ y > -99}であって、∀x(x∈D ⇒ f(x) = x-1) である関数f。
定義域がD={ x | x∈実数 } 、値域がV={ y | y∈実数}であって、∀x(x∈D ⇒ f(x) = |x-1|) である関数f。
定義域がD={ x | x∈実数 } 、値域がV={ y | y∈複素数}であって、∀x(x∈D ⇒ f(x) = max(x-1, 2)) である関数f。
などなど。大抵の場合はこれらを「{ x | x∈実数 ∧ x>3}の範囲でなら同じものだ」として扱えば済んじゃうけれど、定義域・値域を意識しなくてはならない時には、当然区別すべきです。
ではご質問の問題に取りかかりましょ。
そもそもfが関数だとは書いてない。さらにfの定義域Dfが明示されておらず、ただ(x>3)と書いてある。xが何者なのかも分からない。これじゃ問題文として落第だが、ま、うんとオマケして強いて好意的に解釈すれば、fは関数であって、定義域Dfが
{ x | x∈実数 ∧ x>3} ⊂Df
を満たす、という積もりなのだろうなと。ま、そういうことだとしましょう。
で、fの値域Vfも書いてないが、fが関数であるのなら、少なくとも
f(Df)⊂Vf
でなくてはならないので、Vfは
f(Df) = { f(x) | x∈Df }
を部分集合として含む。
gが関数だとは書いてないが、ま、オマケして関数だと思ってあげよう。gの定義域Dgと値域Vgについては何も書いてない。つまり、いろんな関数がgになりうる。
上記の定義により、fとgが関数であるとき、(g○f)が合成関数であるためには、gの定義域Dgとfの値域Vfとが一致(Dg = Vf)していさえすれば良い。
なので「関数gの定義域Dgが
f(Df)⊂Dg
を満たす」ということが「合成関数(g○f)が存在する」ことの十分条件である。そして、このような関数f, gは実際に存在する。(たとえば、
Df={ x | x∈実数} ∧ Vf={ y | y∈実数} ∧ ∀x(x∈Df ⇒ f(x) = |x-1|)
Dg=Vf ∧ Vg=複素数 ∧ ∀x(x∈Dg ⇒ g(x) = x^2)
でも良い。)だから「合成関数(g○f)が存在する」と言える。
一方(f○g)はどうか。fの定義域Dfとgの値域Vgとが Vg = Df を満たせば、(f○g)は合成関数になる。だから、gの定義域Dgが
∀x(x∈Dg ⇒ g(x)∈Vg)
を満たしていれば、(f○g)は合成関数になる。条件を満たすf, gはもちろん存在するんで、「合成関数(f○g)(x)は存在しない」は偽である。
fとして、最もせせこましい
定義域がD={ x | x∈実数 ∧ x>3} 、値域がV={ y | y∈実数 ∧ y > 2}であって、∀x(x∈D ⇒ f(x) = x-1) である関数f
を選んだ場合でさえ、関数gの定義域が
Dg⊂ { x | x∈実数 ∧ (x>√3 ∨ x<-√3)}
を満たせば合成関数(f○g)が存在するわけで、たとえば
定義域がD={ x | x∈自然数 ∧ x>1} 、値域がV=複素数であって、∀x(x∈D ⇒ g(x) = x^2) である関数g
でも良い。