问题 单项选择题

有如下程序:
#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]>’\0’;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”。

单项选择题
多项选择题