有以下程序: #include main() {char*S="120119110"; int n0,n1,n2,nn,i; n0=n1=n2=nn=i=0: do{ switch(s[i++])

admin2017-01-11  13

问题 有以下程序:
    #include
    main()
    {char*S="120119110";
    int n0,n1,n2,nn,i;
    n0=n1=n2=nn=i=0:
    do{
    switch(s[i++])
    {default:nn++;
    case’0’:n0++:
    case’1’:n1++:
    case’2’:n2++:
    }
    }while(s);
    printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);
    }
程序的运行结果是(    )。

选项 A、n0=3,n1=8,n2=9,nn=1
B、n0=2,n1=5,n2=1,nn=1
C、n0=2,n1=7,n2=10,nn=1
D、n0=4,n1=8,n2=9,nn=1

答案A

解析 case语句中没有break语句,如果匹配case’0’,则变量n0、n1、n2的值都会加一。因此,变量no统计的是字符串s中非1非2的字符个数,n0=3;变量n1统计的是字符串s中非2的字符个数,n1=8;变量n2统计的是字符串s中所有字符的个数,n2=9;变量nn统计的是字符串s中非0非1非2的字符的个数,nn=1。
转载请注明原文地址:https://www.kaotiyun.com/show/9rID777K
0

相关试题推荐
最新回复(0)