一个简单C语言选择题,答案是什么(怎么算?)

#include

main()

{ char s[]="012xy\08s34f4w2";

int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='0'&&s[i]<='9') n++;

printf("%d\n",n);

}

程序运行后的输出结果是

A)0 B)3 C)7 D)8

答案选B
就是寻找字符串中数字的个数
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-01
声明 char s[]="012xy\08s34f4w2"; 后字符串的值为
s[0]='0' s[1]='1' s[2]='2' s[3]='x' s[4]='y' s[5]=0 (s[5]='\0' 注意 \0 是一个字符) s[6]='8' ......
for(i=0;s[i]!=0;i++)

if(s[i]>='0'&&s[i]<='9') n++; 这一句中 当 i=5 时 s[i]=0 跳出循环 后面的数字字符不在计算
所以只计算到s[0]~s[4] 5个字符变量中的数字字符的个数 所以n=3
答案选B
第2个回答  2011-04-01
答案选B
就是寻找字符串中数字的个数。注意字符串"012xy\08s34f4w2"中,'\0'是字符串终止字符,因此实际字符串为"012xy"。有三个数字字符
第3个回答  2011-04-01
B)3 char s[]="012xy\08s34f4w2"; 字符数组以\0结尾,在xy之后\0已经标志字符数组结束啦。你可以strlen(s)看其结果。
第4个回答  2011-04-01
B程序就是找出字符串中位于/0前面的数字个数(/0 = 0 ) if(s[i]>='0'&&s[i]<='9') n++;
第5个回答  2011-04-01
当然是选B哦,ASCII码从0到9的你那些就是哪些··