perhaps :
echo "${cccccccc}"
echo
echo "${cccccccc}" \
\
| mawk -F. 'ORS=substr(";\n",_-(NR%_--),NF=_++)' \_=2 OFS= | ecp
A 25 27 50
B 35 37 75
C 75 78 80
D 99 88 76.
A 25 27 50;B 35 37 75
C 75 78 80;D 99 88 76
or even simpler - a solution that uses leverages lots of built-in variables to do the heavy lifting :
mawk -F. 'NF=sub(FS,(NR % _)?":" :"\n",ORS)' OFS='' \_=2
If you prefer a getline approach, then you don't even have to spend effort on calculating NR % 2 :
echo; echo "${cccccccc}"
echo; echo "${cccccccc}" \
\
| mawk -F. '$!_=$-_=sprintf("%s;%s",$( NF ^= !NF ),
$!(NF = getline))' OFS=''
A 25 27 50
B 35 37 75
C 75 78 80
D 99 88 76.
A 25 27 50;B 35 37 75
C 75 78 80;D 99 88 76