有如下程序: #include<iostream.h> void main() { char str[2][5]={’’1234’’,’’5678’’},*p[2]; int i,j,s=0; for(i=0

admin2020-11-11  23

问题 有如下程序:
    #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=str
    for(i=0;i<2;i++)
    for(j=0;p[j]>’\0’;j+=2)
    s=10*s+p[j]-’0’;
    cout<<s;
    }
    该程序的输出结果是(    )。

选项 A、1357
B、2468
C、3556
D、23678

答案A

解析 程序中的“for(i=0;i<2;i++)p=str;”语句将str中的值赋值给指针数组p。在接下来的二重for循环中,跳取“j+=2”,p指针指向的值即“1”,“3”,“5”,“7”。在分别对字符到整型的转换,即减去字符’0’,然后依次转换为千位,百位,十位,个位“10*s”操作输出整型s,即“1357”。
转载请注明原文地址:https://jikaoti.com/ti/p1l0FFFM
0

最新回复(0)