When running top -b -n 1, the command always returns the same CPU values. Consider the following test run 5 times in succession:
[user@server ~]$ top -b -n
CPU utilisation figures are calculated as an average over a time interval. For the first iteration, that time interval is "from system boot until now"; for subsequent iterations, the time interval is "from the last iteration until now".