Well if your computer is idle about 3-7% is normal. But, it should not be at 100% for extended times.
You should definitely scan for spyware to make sure your computer is not infested. This can cause mutiple programs and process to be loaded into CPU access and RAM thus making your CPU usage high. However, you should monitor it to make sure that the spikes in usage are temporary or constant. Constant would indicate a virus. Monitor it by pressing Ctrl-Alt-Del. This brings up the task manager. Check out the link below to see visuals.
Here are some ways to cut down down on CPU access
Disable the amount of services running in the background-- You can do this by altering your computer configuration. Here is how:
1. Open your Start menu.
2. Click Run
3. In the command screen type "msconfig.exe"
4. In the "system configuration utility",click either "service" or "startup" tab
5. Uncheck all programs that your are no longer using.
6. Click "OK"
If you haven't cleaned your registry in a while. This is necessary. Your registry holds all the information regarding updates, installs, un-installs etc. Each one of those events has
a key. and that key need your PC's resources. So, if you should clean this up. Do a registry scan if you got more than 20 errors you should clean it. Also your Operating System will constantly try to fix these errors which cause spikes in CPU access.
http://www.delete-computer-history.com/what-is-the-best-registry-cleaner.html
You should also check to see what programs are running in your task manager. If you see a program like svchost.exe. You may need to clear this program in order to return your computer back to normal CPU access time. There are several ways to do this. Here is one of them.
1. Click Start | Run (type) "services.msc" (no quotes)
2. Scroll down to "DNS Client", Right-click and select: Properties
3. Click the drop-down arrow for "Startup type"
4. Select: Manual, click Apply/Ok and restart.
(IF you are the only PC user, and not part of a domain.)
That also eliminates one SVCHOST process in Task Manager
Hope this helps!