有下列程序: main() {char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i<2;i++) { j=0; while(p[i][j]!=’\0’) { if

admin2012-12-03  26

问题 有下列程序:
main()
{char*p[]={"3697","2584"};
  int i,j;long num=0;
  for(i=0;i<2;i++)
  {  j=0;
     while(p[j]!=’\0’)
     {  if((p[j]-’\0’)%2)num=10*num+p[j][j]-’0’;
        j+=2:
    }
  }
printf("%d\n",num);
}
  程序执行后的输出结果是(    )。

选项 A、35
B、37
C、39
D、3975

答案D

解析 执行第一次for循环时.用表达式p[j]!=’\0’来到断字符串数组指针p是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[ij[j]-’\0’)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。
转载请注明原文地址:https://kaotiyun.com/show/i0Pp777K
0

最新回复(0)