Esatto, è anche una questione di convertire la stringa in numero

parseInt o parseFloat (se lavori coi decimali)

Poi c'era anche un errore nella lettura del valore della select,
che non si legge come un campo di testo ma come una array di valori
il cui indice è dato dall'option selezionata.
Qui sotto puoi vederne il meccanismo.

ciao

<script language="JavaScript">
function yeah()
{
x=parseInt(document.frm.d1.options[document.frm.d1.selectedIndex].value);
document.frm.d2.value=x+7;
}
</script>


<form name="frm">
<select name="d1" onchange="yeah()">
<option value=1>01</option>
<option value=2>02</option>
</selecT>
<input name="d2">
</form>