1中的问题就是你说的,除非用大括号括起来,要不然else总与离他最近的未匹配的if匹配; 2中4e1.5我觉得不对,你有听过10的1.5次方吗?我觉得e后面不能跟小数; 3中%m.ns 输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格; 4中C语言里面,取余符号的数据只能是整形的(int short long char这几种),所以x%2是不合法的; 5中||有这样的特性,只要||左边的是真,那么就不会计算||右边的值,就相当与c=x++,而x++又是先使用后自加,也就相当与c=x;x=x+1;所以,最后x=2,y=1,c=1; 6中与5中关于x++的说法一样,先使用,后自加,也就是先判断0<=2,后0自加,k为1,再执行printf语句,输出1;再判断1<=2,后1自加,k=2,再执行printf语句,输出2;再判断2<=2,后2自加,k=3,再执行printf语句,输出3