Cover letters are always surprisingly important, but especially in the case of entry-level applicants. Your cover letter should do two things: (1) Demonstrate that you understand what the job you are applying for is, i.e. that you know how to read a job listing and that you have in fact read the job listing and (2) Strongly imply that you have sincere enthusiasm for the job for which you are applying.
On resume format, it doesn't matter much. It needs to be readable and well-written. Find an elegant and simple template online and use that, or send raw text, which over the years has become increasingly common, even preferred, when applying for software jobs. As for file format, either PDF or, as I said, raw text. Don't get fancy -- you are not applying for a graphic design job. In fact, a super quirky resume, one with lots of graphics and fancy styling, may be a slight mark against you in that it will make you look unserious, childish, and/or trying to conceal a lack of substance.
As far as content goes, the main thing you would want on your resume for entry-level would be relevant professional experience, as always; however, if you are looking for your first software development job ever, it basically comes down to two things:
A bachelor's degree and decent grades.
The degree needs to be in Computer Science for it to matter or in a closely related field. "Closely related" fields include
mathematics, if you have taken a lot of Theory of Computation type classes.
physics, again with suitable emphasis on computation.
. 1point 3 acres
Some people will tell you that your "portfolio" is more important and that a college degree doesn't matter, etc. Don't listen to these people. Generally these kind of statements are a lot of posturing or are made by people who haven't actually had a serious software engineering position, don't know what they are talking about, and are exhibiting a Dunning-Kruger bias. Yes, it is possible to get a job without a college degree, but the traditional route is still much more common and much easier, and, further, serious -- meaning good -- software engineering positions generally always go to people with four year degrees, excluding rare exceptions.
Unprofessional experience
That is, school projects, independent projects, or contributions to open source projects that demonstrate higher than beginner level programming skills. In modern times, given global access to the internet and the abundance of avenues for these sorts of contributions at all skill levels, you really need to have something that you can show, even if it is just something prospective employers can download from your personal website.
Tailor your resume to each job you apply to by highlighting any projects you have completed that involve the technology that the particular job requires. For example, if you are applying for a web front-end position, list the jQuery plugin that you have up on GitHub as the first item on your resume after your education and GPA.
Generally speaking, companies that are willing to consider a fresh graduate will consider a fresh graduate who has no experience in a particular programming language or technology that will be used on the job, but they don't want to have to consider such a candidate, so you should try to be able to mention something that involves the relevant technology even if it is something small that you do specifically for applying to jobs.