题目要求

下面程序的运行结果为             

#include <stdio.h>

main()

{

char ch[7]={"65ab21"};

  int   i,s =0;

  for(i=0;ch[i]>=0&&ch[i]<9;i+=2)

    s=10*s+ch[i]-'0';

 printf("%d\n",s);

}

思路分析 

这个题还是蛮有代表性的,基础不好就难做了,底子好的人一眼就看出来了里面的猫腻,看这个for循环

突破点在于ch[i]>='0'&&ch[i]<'9';观察数组ch[7],它里面的元素为什么不是"654321",而是"65ab21",就明显暗示了,到ch[2]=a的时候退出不满足for循环条件退出了for循环

运行代码,进入到for循环,执行 s = 10*s + ch[0]-'0' = 10* 0+ 6 -'0' ,所以s=6,然后i+2=2,ch[2]=a,不满足for循环,退出for循环,然后打印s,s=6

验证结果

题目直接把代码都给了,验证结果就行了 s=6

编程小白C语言练习24

相关文章:

  • 2021-05-19
  • 2021-07-02
  • 2021-09-19
  • 2021-06-11
  • 2022-12-23
  • 2021-12-02
  • 2021-10-25
  • 2022-03-06
猜你喜欢
  • 2021-11-28
  • 2021-10-11
  • 2021-09-07
  • 2022-01-21
  • 2021-08-04
  • 2021-06-20
  • 2021-09-07
相关资源
相似解决方案