scanf(\ total=s*(1+i);
printf(\}
(4)解:略
常见错误和难点分析
1. 注意数据的取值范围
计算机上使用的C语言编译系统,对一个字符型数据分配一个字节的内存空间,因此字符型数据的取值范围是0~28-1,即0~255。如有下列程序段:
int a=285; char ch=a;
printf(\
运行程序得到的结果确是29,原因是285已经超过255。一个字节容纳不了285,需要将高位截去。
285:00000001 00011101 29:00011101
2. 自增、自减运算的难点分析
自增,自减表达式的计算方法一般分为两种情况:
(1)自增、自减表达式作为void main()的一般语句出现。例如: #include
j=(i++)+(++i)+(++i)+(i++)+(--i); printf(\}
运行结果:i=5,j=17
(2)自增、自减表达式作为printf函数的输出表项出现。例如: #include
printf(\}
运行结果:i=5,j=17
上述两种情况在不同的编译环境下会有不同的结果,计算方法也不相同,请重点理解和掌握自增自减表达式的计算方法。 int i=2,j;
j=(i++)+(i++)+(i++);应理解为三个i相加,故j值为6。然后i再自增三次相当于加3故i的最后值为5
j=(++i)+(++i)+(++i); i先自增1,再参与运算,由于i自增1三次后值为5
26