计算机二级C语言,程序运行得3,为什么,看不懂,,,

如题所述

字符串第一个字符是数字0,第二个是1,第三个是2,n自加1了三次为3,到了第四个字符就跳出循环了追问

后面的0和9是指数字还是ASC码

追答

ASCII码,是字符

追问

那前面S那一串也是字符吗 它们怎么比较的呢

追答

定义的是char型数组,里面当然存的是字符。字符间比较,先把字符按ascII表换算成数字,然后就能进行比较了。因为ascII码表里字符0~9都是按顺序指出的,所以字符0~9的比较还是有意义的,但是如果比较a和9的大小,这样的话虽然有结果但是没意义,可能在特定场合有用而已。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-25
亲,由于'\0'在c语言中是结束符起到结束的作用,故s[]="012xy\0"
由于判断语句if(s[i]>='0'&&s[i]<='9')表示当s[i]里面的内容是'0'-'9'的范围的话,就执行n++;故n=3;追问

0到底是哪个意思

?求解

第2个回答  2014-03-25
s[]="012xy\08s34......."
s[5]='\0',此时循环结束。之前数字共3个,所以结果为3。
第3个回答  2014-03-25
#include "stdio.h"
int main()
{
char s[16]="012sy/08s34f4w2";
int i,n=0;
for(i=0;s[i]!='\0';i++)
if((s[i]-'0')>=0 && (s[i]-'0')<=9)
n++;
printf("%d\n",n);
return 0;
}
相似回答