In this paper, we jointly consider communication, caching and computation in a multi-user cache-assisted mobile edge computing (MEC) system, consisting of one base station (BS) of caching and computing capabilities and multiple users with computation-intensive and latency-sensitive applications. We propose a joint caching and offloading mechanism which involves task uploading and executing for tasks with uncached computation results as well as computation result downloading for all tasks at the BS, and efficiently utilizes multi-user diversity and multicasting opportunities. Then, we formulate the average total energy minimization problem subject to the caching and deadline constraints to optimally allocate the storage resource at the BS for caching computation results as well as the uploading and downloading time durations. The problem is a challenging mixed discrete-continuous optimization problem. We show that strong duality holds, and obtain an optimal solution using a dual method. To reduce the computational complexity, we further propose a low-complexity suboptimal solution. Finally, numerical results show that the proposed suboptimal solution outperforms existing comparison schemes.