有以下程序 #include main() { char c[2][5]={ "6934", "8254" },*p[2] ; int i, j, s=0; for( i=0; i

admin2019-05-17  19

问题 有以下程序
#include
main()
{ char c[2][5]={ "6934", "8254" },*p[2] ;
int i, j, s=0;
for( i=0; i<2; i++ ) p=c;
for( i=0; i<2; i++ )
for( j=0; p[j]>´0´ && p[j]<=’9’; j+=2 )
s = 10*s + p[j] - ’0’;
printf( "%d\n" ,s );
}
程序的输出结果是( )。

选项 A、6385
B、69825
C、63825
D、693825

答案A

解析 第一个for循环将数组中每个字符串的首地址赋值给了指针数组p的元素,所以p[j]与c[j]等价。第二个嵌套for循环中外层循环i从0到1,内层循环j为偶数且从0递增,语句"s=10*s+p[j]- ?0?;"用一个整数s记录数组c中列下标为偶数的所有数字,并按照其先后顺序放置于整数s的不同位上,所以计算得到的结果为6385,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/0PRp777K
0

最新回复(0)