Ele mostra 0, 1, 2, 3... pq o selectedIndex pega o numero da ordem que as opções estão no select.. (iniciando em 0)..
para vc pegar o value, vc usa this.value ou this.options[selectedIndex].value no onchange do select
. . onchange="alterar(this.selectedIndex)">. .
os options eu não sei se a ideia era para deixar aberto mesmo ou era para fechar...
<option></option>
<option value="R$ 5,00">R$ 5,00</option>
<option value="R$ 10,00">R$ 10,00</option>
Sobre a sua duvida, eu não entendi muito bem, vc quer deixar os valores em branco para pegar eles nos registros do banco de dados? se for, é só vc fazer com a mesma sintaxe que foi postada pelo Balala e adicionar os valores nos values com a linguagem que vc está usando..