A-A+
如下程序: #include<iostream.h> void main() { char
问题详情
如下程序: #include<iostream.h> void main() { char str[2][5]={"1234","5678"),*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=str[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>"";j+=2) s=10*s+p[i][j]-"0"; cout<<s; } 该程序的输出结果是()。
A.1357
B.2468
C.3556
D.23678请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
解析:程序中的“for(i=0;i<2;i++)p[i]=str[i];”语句将str中的值赋值给指针数组p。在接下来的二重for循环中,跳取“j+=2”,p指针指向的值即“1”,“3”,“5”,“7”。在分别对字符到整型的转换,即减去字符‘0’,然后依次转换为千位,百位,十位,个位“10%”操作输出接型s,即“1357”。