How to make user profiles of specific role as public in drupal 7?
You are looking for Profile2 module.


  
  With profile2 user account settings and user profiles are conceptually
  different things, e.g. with the "Profile pages" module enabled users
  get two separate menu links "My account" and "My profile".
  Profile2 allows for creating multiple profile types, which may be
  assigned to roles via permissions (e.g. a general profile + a customer
  profile)
  Profile2 supports private profile fields, which are only shown to the
  user owning the profile and to administrators
  


Check out this Demo video.