【喵呜刷题小喵解析】根据题目,c = a and b - 1。首先,我们需要明确"and"在编程中的含义。在大多数编程语言中,"and"是一个逻辑运算符,用于比较两个布尔值,并返回其中一个布尔值。但在赋值语句中,它并不表示逻辑"与"运算,而是表示位运算中的"与"运算。因此,c = a and b - 1并不表示"如果a为真且b-1为真,则c为真",而是表示"a的二进制表示与(b-1)的二进制表示的'与'运算结果赋给c"。题目中a=2,b=1,所以b-1=0。在二进制中,2表示为10,0表示为00。对10和00进行"与"运算,结果为00,即十进制中的0。因此,c的值为0。所以,c的值是0,选项D正确。