以下程序的输出结果是______。 main() { char*s="121"; int k=0,a=0,b=0; do {k++; if(k%2==0){a=a+s[k]-’\0’;cont

admin2009-02-15  19

问题 以下程序的输出结果是______。    main()    {  char*s="121";       int k=0,a=0,b=0;       do       {k++;        if(k%2==0){a=a+s[k]-’\0’;continue;}        b=b+s[k]-’\0’;a=a+s[k]-’\0’;       }while(s[k+1]);       printf("k=%d a=%d b=%d\n",k,a,b);    }

选项 A、k=3 a=98 b=49
B、k=3 a=99 b=50
C、k=2 a=99 b=50
D、k=2 a=98 b=49

答案4

解析 第1次循环中,k=1,不执行if分支,s[k]=‘2’,因此b=2,a=2  因s[k+1]=‘1’进入第2次循环,k=2,执行if分支,s[k]=‘1’,使a=3,进而提前结束本次循环,s[k+1]=‘\0’,则退出循环,所以k=2,a=3,b=2。
转载请注明原文地址:https://kaotiyun.com/show/eCXp777K
0

最新回复(0)