有以下程序: #include <stdio.h> main( ) char * p[ ] = {"3697" ,"2548" }; int i,j; long num =0; for(i =0;i<2;i ++ ) {

admin2009-01-15  23

问题 有以下程序:  #include <stdio.h> main( )     char * p[ ] = {"3697" ,"2548" };     int i,j;  long num =0;     for(i =0;i<2;i ++ )     {  j =0;         while(p[j]! =’\0’)          {  if((p[j]-’0’)%2) num=10*num+p[j]-’0’;             j+ =2;       }     printf( "%d \n" ,num);}程序执行后的输出结果是(    )。

选项 A、35
B、37
C、39
D、3975

答案4

解析 执行main函数中的for语句,当i=0,j=0时,p[j]=p[0)[0]=’3’,满足while循环条件,执行循环体中的if语句得num=3,j=2,此时p[j]=p[0][2]=’9’,满足循环条件,执行while循环体得num=39,j=4,判断while条件,不满足并退出while循环;再次执行for语句,当i=1,j=0,p[j]=p[1][0]=2,满足while条件,执行循环体中的if语句,但不符合if条件,所以num不进行运算,j进行加2运算j=2,此时p[j]=p[1][2]=4,if条件为假,num不进行运算,j进行加2运算j=4,再执行while语句,条件不符合退出循环。所以结果为39。
转载请注明原文地址:https://kaotiyun.com/show/o2Xp777K
0

最新回复(0)