B
解:框图首先给循环变量i赋值1,给累积变量S赋值1.
执行S=1×1=1,i=1+1=2;
判断2=8不成立,执行,S=1×2,i=2+1=3;
判断3=8不成立,执行,S=1×2×3,i=3+1=4;
判断4=8不成立,执行,S=1×2×3×4,i=4+1=5;
判断5=8不成立,执行,S=1×2×3×4×5,i=5+1=6;
判断6=8不成立,执行,S=1×2×3×4×5×6,i=6+1=7;
判断7=8不成立,执行,S=1×2×3×4×5×6×7,i=7+1=8;
判断8=8成立,跳出循环,输出S的值为7!.
故选B.