niusouti.com

有如下程序 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+(p[i][j]-'0'); printf("%d\n",s); } 该程序的输出结果是_____。A.69825B.63825C.6385D.693825

题目

有如下程序 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+(p[i][j]-'0'); printf("%d\n",s); } 该程序的输出结果是_____。

A.69825

B.63825

C.6385

D.693825


相似考题
更多“有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=c ”相关问题
  • 第1题:

    有如下程序 main() { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>,'\0';j+=2) s=10*s+(p[i][j]-'0'); printf("%d\n",s); } 该程序的输出结果是______。

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    解析:本题“ch[2][5]={"6937","8254"}"用于2行5列的二维数组初始化,ch[0][0]-ch[0][4]的值分别为:6,9,3,7,\0;ch[1][0]-ch[1][4]的值分别为:8,2,5,4,\0;第一个for循环用于将数组指针分别指向二给数组的第一行和第二行;第二个for嵌套循环用于取出p[0][0],p[0][2],p[1][0],p[1][2]四个存储单元的数组成一个四位数进行输出。

  • 第2题:

    有如下程序: main() {char ch[2][5]={"6937","8254"},*p[2]; int i,j,S=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",S); } 该程序的输出结果是( )。

    A.69825

    B.63825

    C.693825

    D.6385


    正确答案:D
    解析:“for(i=0;i2;i++)p[i]=ch[i];”是将字符串"6937"和"8254"的首地址分别赋给指针数组p的两个元素。下面的for循环嵌套是取二维字符数组ch偶数列上的数字字符,将它们组成一个数。所以选项D符合题意。

  • 第3题:

    有如下程序 main( ) { char ch[2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0'; j+=2) s=10*s+(p[i][j]-'0'); printf("%d\n",s); } 该程序的输出结果是______。

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    解析:本题“ch[2][5]={"6937","8254"}”用于2行5列的二维数组初始化,ch[0][0]-ch[0][4]的值分别为:6,9,3,7,\0;ch[1][0]-ch[1][4]的值分别为:8,2,5,4,\0;第一个for循环用于将数组指针分别指向二给数组的第一行和第二行:第二个for嵌套循环用于取出p[0][0],p[0][2],p[1][0],p[1][2]四个存储单元的数组成一个四位数进行输出。

  • 第4题:

    如下程序的输出结果是includemain(){ char ch[2)[5]={"6937","8254"},*p[2];int i,j,s

    如下程序的输出结果是 #include<stdio.h> main() { char ch[2)[5]={"6937","8254"},*p[2]; int i,j,s=0; for (i=0;i<2;i++) p[i]=ch[i]; for (i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s);}

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    解析:通过行指针p来实现数组元素的引用。注意:用格式说明符%s进行整串输入与输出。

  • 第5题:

    有如下程序includevoid main(){charch [2][5]={"6937","8254"},*p[2]; int i,j,s=0

    有如下程序 #include<iostream.h> void main() { charch [2][5]={"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;<2;i++) for(j=0;p[i][j]>‘\0’;j+=2) s=10*s+p[i][j]-’0’; cout<<s;} 该程序的输出结果是

    A.69825

    B.63825

    C.6385

    D.693825


    正确答案:C
    解析:该题主要要搞清楚以下几点:①定义了一个指针数组char*P[2]后,程序中第一个循环for(i=0;i2;i++)P[i]=ch[i];的作用是使指针数组的P[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指引数组的P[1]元素指向了二维数组汕的第二行字符中。这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串"6937’’,第二行ch[1]中的内容为字符串“8254”。③程序中第二个循环中的循环体s=s*10+p[i][j]-’0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前P[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上④注意到内层循环的循环条件P[i][j]>’\0’,是指p[i][j]中的字符只要不是字符串结束标志’\0’就继续循环,语句。j+2;是使下标.j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从P[0]所指向的字符申“6937’’中一个隔一个地取出字符,分别是“6”和“3”,然后从p[1]所指向的字符串“8254’’中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是6385。