A-A+
有下列程序: main() { char*P[]={3697 2584); int
问题详情
有下列程序: 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((p[i][j]-t\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[i][J]!=\o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-\o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。