试题与答案

有以下程序: #include <stdio.h> main( ) char *

题型:单项选择题

题目:

有以下程序:
#include <stdio.h>
main( )
char * p[ ] = "3697" ,"2548" ;
int i,j; long num =0;
for(i =0;i<2;i ++ )
j =0;
while(p[i][j]! =’\0’)
if((p[i][j]-’0’)%2) num=10*num+p[i][j]-’0’;
j+ =2;

printf( "%d \n" ,num);程序执行后的输出结果是( )。

A.35

B.37

C.39

D.3975

答案:

参考答案:C

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

试题推荐
微信公众账号搜索答案