?ContourPlot3D

(*  a  *)
ContourPlot3D[{x^2+y^2+z^2==4,z==0},{x,-2,2},{y,-2,2},{z,0,2},ContourStyle->Opacity[.5],RegionFunction->Function[{x,y,z},x^2+y^2+z^2≤4],ViewPoint->{100,20,20},BoxRatios->Automatic]

(*  b  *)
ContourPlot3D[{z==Sqrt[x^2+y^2],z==0,x^2+y^2==1},{x,-1,1},{y,-1,1},{z,0,1},ContourStyle->Opacity[.5],RegionFunction->Function[{x,y,z},x^2+y^2≤1],ViewPoint->{100,20,20}]

(*  1  *)
ContourPlot3D[{z==Sqrt[1-x^2-y^2],z==0,z==0,y==0},{x,-1,1},{y,0,1},{z,0,1},ContourStyle->Opacity[.5],RegionFunction->Function[{x,y,z},x^2+y^2+z^2≤1 ],ViewPoint->{100,20,20}]

(*  2  *)
ContourPlot3D[{z==-Sqrt[3*x^2+3*y^2],x^2+y^2+z^2==4},{x,-2,2},{y,-2,2},{z,-2,2},ContourStyle->{Opacity[.9],Opacity[.2]},RegionFunction->Function[{x,y,z},-Sqrt[3*x^2+3*y^2]≤z +.01],ViewPoint->{100,20,20}]