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

admin2020-05-19  30

问题 有以下程序
#include
main()
{ char c[2][5]={"6938","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 ; j+=2 )
s=10*s+p[j]-’0’;
printf("%d\n",s);
}
程序运行后的输出结果是( )。

选项 A、6385
B、9824
C、6982
D、9284

答案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/BwCp777K
0

最新回复(0)