I was exactly the same as you: graduating with a CS degree with no real experience programming. About a semester before I graduated, I got a local job as a software developer having never worked on a software development project outside of school. I learned a ton from the job -- more than I ever learned in school (however, I think this would apply to any job).
Don't be discouraged about your supposed inability to program; if you're smart enough to get a CS degree, you're smart enough to learn it. Your knowledge will prove to be helpful .. perhaps even invaluable .. in your new job. You'll be thankful that you know all the data structures, design patterns, computational time calculations, etc. that you've learned because you will be able to apply them to your work. (Even if you don't remember specifics, at least you know what to look up!) If you can write a simple program in your given language of choice, you're probably ahead of the curve.
If you're graduating from a good school with a good GPA, I don't think you'll have any problem landing a good entry-level job. You will pick up programming really quickly after that. It's worth noting that you will learn to program differently at every job -- at least a little bit. Every workplace has their own set of rules, standards, and preferences. You will probably end up working with people who are brilliant programmers and people who can't even as program as well as you can now, but who have been there for years.
An important part of your question is why do you want to learn to program? I think there are two possibilities in your case:
- You enjoy it as a hobby and want to improve for your own sake
- You want to make it your career
I'm willing to guess that both probably apply to you. Other answers are suggesting that you pick up an open source project to work on, but I think this applies more to #1 than #2. I certainly encourage it, but without professional experience (and years of it) you will probably not land higher than an entry level position. #1 can certainly feed into #2, though. If #2 applies, my suggestion is to find work quickly! You don't want to explain gaps of unemployment on your resume.
You also have to realize that for #2 (and even #1, especially if you want to work on a team) there is a lot more to it than programming. I do spend a lot of time programming, but a lot of my job also consists of designing, communicating, writing documentation, reviewing code, and a lot of other stuff I don't necessarily want to do besides program. I picked up all those skills (to the extent that I have them) on the job too. Your main goal is to solve problems, and school should have given you a good basis for that.
Don't expect to "get good" at programming. I've been working for four years now and all my current code looks brilliant to me while all the code I wrote in the past year looks like it was written by a blind monkey (this has been ongoing for me). There are such a vast number of concepts and possibilities that it's impossible for one person to learn them all. Heck, I don't even know what STL and "templated code" mean!