D
分析:因为要求函数的最大值和最小值,先求出函数的导函数f′(x)=3x2-3,然后令f′(x)=3x2-3=0得x=±1,又因为函数在区间[0,3]取最值,所以要讨论x的两个范围0≤x<1和1≤x≤3时f′(x)的正与负,因为0≤x<1时,f′(x)<0;1≤x≤3时,f′(x)>0所以f(1)最小,最大值要看区间的两个端点即f(3)和f(0),判断其谁大谁就是最大值,则就求出了M和N,解出M-N即可.
解答:f′(x)=3x2-3,令f′(x)=0得x=±1.
当0≤x<1时,f′(x)<0;当1≤x≤3时,f′(x)>0.则f(1)最小,则N=f(1)
又f(0)=-a,f(3)=18-a,
又f(3)>f(0),∴最大值为f(3),即M=f(3),
所以M-N=f(3)-f(1)=(18-a)-(-2-a)=20.
故答案为D.
点评:考查学生利用导数求闭区间上函数的最值的能力.