when fork is execute the child process has same virtual address space or physical address space ?
It is virtual address space.
when we print address of a variable in c ..what is it :->virtual address or physical address?
For second part:
It is virtual address.
It depends on what runs your code. If your code is loaded as a regular application on a operating system, then it will be a virtual address (what you refer to as a 'logical address').
If your code is loaded on plain hardware, without any OS then it may be a physical address -- but only if your operating system is running on a physical machine. If your operating system is running on a virtual machine, it will always be a virtual address.