单选题有以下程序 #include main() {  charc[2][5]={6938,8254},*p[2];  inti,j,s=0;  for(i=0;i2;i++)   p[i]=c[i];  for(i=0;i2;i++)   for(j=0;p[i][j]0;j+=2)    s=10*s+p[i][j]-'0';  printf(%d,s); } 程序运行后的输出结果是(  )。A 9284B 9824C 6982D 6385

题目
单选题
有以下程序 #include  main() {  char c[2][5]={6938,8254},*p[2];  int i,j,s=0;  for(i=0;i<2;i++)   p[i]=c[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,s); } 程序运行后的输出结果是(  )。
A

9284

B

9824

C

6982

D

6385

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

如下程序的输出结果是

#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进行整串输入与输出。

第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.6385

D.693825


正确答案:C
解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char.p[2]后,程序中第一个循环for(i=0;i2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p11)元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串"6937",第二行ch[1]中的内容为字符串"8254"。③程序中第二个循环中的循环体s=e*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,所以,正确答案是C)。

第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

第4题:

有如下程序 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]四个存储单元的数组成一个四位数进行输出。

第5题:

下列程序的输出结果是( ) main() { char ch [2][5]={"6934","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'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); }

A.6385

B.69825

C.63825

D.693825


正确答案:A

第6题:

以下程序的输出是()。main(){chara[2][5]={“6937”,”8254”};inti,j,s=0;for(i=0;i2;i++)for(j=0;a[i][j]'0'a[i][j]='9';j+=2)s=10*s+a[i][j]-‘0’;printf(“s=%d”,s);}

A.6385

B.69825

C.63825

D.693825


正确答案:A

第7题:

下列程序的输出结果是______。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

第8题:

有如下程序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",第二

第9题:

有如下程序 #include(iostream.h> voidmain( ) {charch[2][5]={"6937","8254"),*p[2]; inti,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
C。【解析】该题主要要搞清楚以下几点:①定义了一个指针数组char*p[2]后,程序中第一个循环“for(i=0;i(2;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[1]中的内容为字符串“8254”。③程序中第二个循环中的循环体“s=s*10+p[i][j]-0”的功能是这样的,每执行一次,将s中的值乘以10(即将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][3]>\0是指p[i][j]中的字符只要不是字符串结束标志\0就继续循环,语句j+=2;是使下标j每次增加2,即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从p[1]所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是6385。

第10题:

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

如下程序的输出结果是 #include<stdio.h> main() { chsr 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

更多相关问题