C语言 求解答

如题所述

答案

26题,A) k=2

27题, C) a=3  b=2

程序如下:

#include <stdio.h>
 
void 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\n", k);
printf("a=%d b=%d\n", a,b);
}

在Visual C++6.0 中运行结果如下:

分析过程如下,请按照程序执行顺序一行一行仔细体会各数值的变化:

其中有一步比较关键,就是当k=2时,进入if,最后continue是提前结束本次循环,直接进入while()条件中判断是否执行下一次循环,这时候条件中s[k+1]是'\0',‘\0’的值是0,代表“假”,循环条件为假,所以结束循环,到后面去printf输出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-10
26-8:k=2
a=98 b=100
相似回答