My org wide setting for Account is private and for contact is controlled by parent. Also, there is a account sharing rule in place which gives Read/Write access for accounts to users of specific profile. So will the contacts be also shared in this scenario or do I need to share contacts specifically again?
Let me guide you to a great SFDC document across contact sharing. https://help.salesforce.com/apex/HTViewHelpDoc?id=contacts_sharing.htm
Now whats important there is the 'considerations' section which says -
If your organization-wide default for contacts is set to Controlled by Parent, the Contact Access options are not available when sharing related records like accounts; instead, all access to contacts is determined by the user's access to the contact's account.
If your organization-wide default for contacts is Controlled by Parent and your organization-wide default for accounts is Private, you can’t view contacts for accounts you don’t own even if you have the View All permission on the account object. However, if you own a contact on an account, you can view other contacts on the same account since access to a parent account always gives you access to the associated child records.
I guess the second point is pretty much resolution to your query :)
You need not to share contacts again. Master detail relation ship is between Account and Contacts so if user have access on master then we would have access on detail implicitly.