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

题目
如下程序:includevoid main(){char str[2][5]={"1234","5678"),*p[2];int i,j,s=0;

如下程序: #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;i2;i++)p[i]=str[i];”语句将str中的值赋值给指针数组p。在接下来的二重for循环中,跳取“j+=2”,p指针指向的值即“1”,“3”,“5”,“7”。在分别对字符到整型的转换,即减去字符‘0’,然后依次转换为千位,百位,十位,个位“10%”操作输出接型s,即“1357”。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序的输出结果是()。includemain(){ char ch[2][5]={"1234","5678"},*p[2];int i,

下列程序的输出结果是( )。 #include<stdio.h> main() { char ch[2][5]={"1234","5678"},*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=p[i][j]-'0'; printf("%d",s);) }

A.6357

B.6135

C.1357

D.691357


正确答案:C
解析:本题先将指针p指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的十进制数。

第2题:

下列程序的输出结果是()。 inClude main() {charch[2][5]={"1234","5678"},*p[2]; int

下列程序的输出结果是( )。

#inClude<stdio.h>

main()

{ charch[2][5]={"1234","5678"},*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=p[i][j]-'0';

printf("%d",s);}

}

A.6357

B.6135

C.1357

D.691357


正确答案:C
解析:本题先将指针p指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的+进制数。

第3题:

有如下程序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。

第4题:

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

有如下程序 #include<iostream.h> void 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'; cout<<s; return 0; } 该程序的输出结果是( )。

A.69825

B.63825

C.6385

D.693825


正确答案:C

第5题:

下列程序的输出结果是()。includemain() {char ch[2][5]={"1234","5678"},*p[2];int i,

下列程序的输出结果是( )。 #include<stdio.h> main() { char ch[2][5]={"1234","5678"},*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=p[i][j]-'0'; printf("%d",s);} }

A.6357

B.6135

C.1357

D.691357


正确答案:C
解析:本题先将指针P指向二维数组ch[2][5],相当于p[0]="1234",p[1]="5678",通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-'0'这条语句是将所要输出的字符转换成相应的十进制数。

第6题:

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

有如下程序 #include<iostream.h> void 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'; 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]元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[l]中的内容为字符串“8254”。③程序中第二个循环中的循环体s=s*10+p[i][j]-'0';的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个o),再将当前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。

第7题:

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

有如下程序 #include<iostream.h> void 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';

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]元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式: ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[l]中的内容为字符串“8254”。③程序中第二个循环中的循环体s=s*10+p[i][j]-'0';的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个o),再将当前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。

第8题:

下列程序的输出结果是()。inCludemain(){char ch[2][5]={"1234","5678,},*p[2];int i,j

下列程序的输出结果是( )。 #inClude<stdio.h> main() { char ch[2][5]={"1234","5678,},*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=p[i][j]-'0';

A.8

B.7

C.12

D.9


正确答案:B
解析: 第1次执行for循环,p[1][0]=p[1][0]-1=3;第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

第9题:

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

有如下程序 #include<iostream.h> void 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'; cout<<s;} 该程序的输出结果是( )。

A.69825

B.63825

C.6385

D.693825


正确答案:C
解析: 该题主要要搞清楚以下几点:①定义了一个指针数组char *p[2]后,程序中第一个循环{or(i=o;i2,i++)p[i]=ch[i];的作用是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,井使指针数组的p[1]元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数蛆ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式;ch[i][j]或P[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串"6937",第二