There are plenty of examples of C code, but I'm afraid I don't have personal experience with many of the tutorials.
This section "C Tutorial - C Made Easy" looks to be fairly decent from this site: http://www.cprogramming.com/tutorial.html
It looks like it talks about code and show examples, but also has a little "self-guided" quiz. I list other sites that might help in the "sources" section.
If you know Java, then you shouldn't have too much difficulty in picking up the syntax - an `if` statement in Java is basically the same as in C++ and basically the same as in C. However, while learning C, I would caution you to not skip over, or just "skim" when a tutorial or book covers these concepts. While similar, and probably easy to "read", each language has it's own nuances. Additionally, the tutorial might introduce a new concept while talking about such concepts. For example, in C and C++, an if statement doesn't use boolean, it uses integers. In fact, C does not have a boolean type at all! The `if` statement is considered "false" if the expression is equal to zero, and "true" if the expression is non-zero. Carefully learn about each concept, even if they appear to be "the same as in Java". Some differences are incredibly subtle, but will cause you grief if not learned properly.
The major difficulties will probably be as follows:
* Pointers - Java doesn't have them. Well, it does, but you probably didn't recognize them because the language insists on taking care of it for you. Did you ever really think about what a "NullPointerException" was? Pointers exist in Java, but aren't really used by the programmer. In C, the opposite approach is used - pointers are everywhere, and usually because you, the programmer, put them there.
* Reference/Dereference - this is basically the same idea as pointers. Still, these operators are something to look out for.
* Error handling - Java Virtual Machine catches exceptions and errors (like NullPointerException) and is incredibly helpful in attempting to debug a program. C and C++ is much more difficult to debug, especially when attempting to debug anything with a pointer - you will learn to hate the term "seg fault".
* Garbage collection - Java has its own garbage collection mechanism. You call "new Object()" all the time in Java, but you never actually "delete" it - Java does that for you. C and C++ will not "delete" or "free" anything unless you, the programmer, explicitly tell it to do so.
* Strings, data types - Java has the String object. C++ has something similar in one of it's libraries. C does not. It uses arrays of characters to accomplish anything like a "string". As mentioned before, C does not even have a boolean type - it uses integers to achieve the same effect.
* Low level - C is much more low level than Java is, and will probably frustrate you at the beginning. "I can do this in one line in Java, but I have to take ten to do the equivalent in C!" More lines of code means more lines you have to introduce a bug, and because debugging is more difficult in C, you will find it takes much more time to write a program in C, especially when starting out.
My suggestion for you is this: take it slow. You know how to program, but you don't know how to program in C. Take care in writing the code. Use a good IDE, if you can - it will help you catch errors and save you time in the long run.
By comparison, it's much easier for people to go from C to C++ or from C++ to Java, but going back down the ladder is difficult, because it requires relearning concepts you didn't fully understand, concepts you didn't even realize you had missed.
Good luck!