First off, || doesn't remove blanks and the new variables are not long enough to store the entire new string. The catx function might be a better way to go.
data test;
input (var1-var8) ($);
cards;
a a b b c c d d
;
run;
Data test2;
set test;
length newvar1-newvar4 $20;
array intermediate[8] $ var1-var8;
array newvar(4) $;
array newvarA(4) $;
do i=1 to 4;
newvar(i)= intermediate[2*i-1]||"/"||intermediate[2*i];
newvarA(i)=catx("/",intermediate[2*i-1],intermediate[2*i]);
end;
keep newvar1-newvar4 newvarA1-newvarA4;
run;