2011年软考程序员模拟试题及答案(8)

来源:微学教育网发布时间:2011-05-21

  6. main()

  { int i,a[5];

  for(i=0;i<<5;i++)

  a[i]=9*(i-2+4*(i>2))%5;

  for(i=4;i>=0;i--)

  printf("=",a[i]);

  }

  【分析】我们可以按照程序中语句执行的顺序,记录各个变量及数组元素值的方法来解决这种阅读程序写运行结果的问题。首先执行第1个for循环。

  i=0, i<5的条件成立,执行循环体。

  a[0]=9*(0-2+4*(0>2))%5=9*(-2)%5=-18%5=-3

  i=1,1<5的条件成立,执行循环体。

  a[1]=9*(1-2十4*(1>2))%5=9*(-1)%5=-9%5=-4

  1=2,i<5的条件成立,执行循环体。

  a[2]=9*(2-2十4*(2>2))%5=9*(0)%5=0%5=0

  i=3,i<5的条件成立,执行循环体。

  a[3]=9*(3-2+4*(3>2))%5=9*(5)%5=45%5=0

  1=4,1<5的条件成立,执行循环体。

  a[4]=9*(4-2+4*(4>2))%5=9*(6)%5=54%5=4

  i=5,1<5的条件不成立,退出第1个for循环。

  注意,计算中的“i>2”是关系运算,结果只能为1或0;“x%5”是模运算,结果是x除5的余数,且余数的符号和x符号相同。

  再执行第2个for循环。

  i=4,i>=0的条件成立,执行循环体。输出数组元素a[4]的值,等于4

  i=3,i>=0的条件成立,执行循环体。输出数组元素a[3」的值,等于0

  i=2,1>=0的条件成立,执行循环体。输出数组元素a[2」的位,等于0

  i=1,i>=0的条件成立,执行循环体。输出数组元素a[1]的值,等于-4

  i=0,1>=0的条件成立,执行循环体。输出数组元素a[0]的值,等于-3

  i=-1,i>=0的条件不成立,退出第2个for循环。

  【参考答案】 4 0 0 -4 -3