设等差数列的公差为d,∵a1+a3+a8=99,a5=31,∴3a1+9d=99,a1+4d=31,∴a1=39,d=-2要使?k∈N*,使得对于?n∈N*,总有Sn≤Sk,则(Sn)max=Sk,∵Sn=39n-n(n-1)=40n-n2,∴n=20时,Sn取得最大值∴k=20故选B.