有以下程序#include <stdio.h>int fun(char s[]){ int n=0;while(*s<=′9′&&*s>=′0′) {n=10*n+*s-′0′;s++;}return(n);}main(){ char s[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′};printf("%d\n",fun(s));}程序的运行结果是A.9B.61490C.61D.5

题目

有以下程序

#include <stdio.h>

int fun(char s[])

{ int n=0;

while(*s<=′9′&&*s>=′0′) {n=10*n+*s-′0′;s++;}

return(n);

}

main()

{ char s[10]={′6′,′1′,′*′,′4′,′*′,′9′,′*′,′0′,′*′};

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

}

程序的运行结果是

A.9

B.61490

C.61

D.5


相似考题
参考答案和解析
正确答案:C
解析:在fun函数中,while循环的功能是:逐个取字符数组s的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个10进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n 的值,输出n的值为61。
更多“有以下程序 #include&lt;stdio.h&gt; intfun(chars[]) { intn=0; while(*s&lt;=′9′&amp;&amp;*s& ”相关问题
  • 第1题:

    有以下程序 main(int arge,char *argv[] ) int n,i=0; while(argv[1] [i] !='\0') { n-fun(); i++;} printf ( "%d\n" , n*argc); int fun ( ) { static int s=0; s+=1; return s; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令 exam 123 <回车>

    A.6

    B.8

    C.3

    D.4


    正确答案:A
    解析:主函数的第一个参数alzc为整形参数,记下从命令行输入的参数的个数;笫二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为2,argv[0]指向字符串“exam”,argv[1]指向参数字符串“123”。在main()函数中,while循环执行了3次,调用了3次fun()函数;第一次调用了fun()函数时,定义了一个静态变量s并赋初值0,加1后作为函数值返回,n的值为1;第二次调用ram()函数时,静态变量s的值将保留上一次退出时的值1,再加1为2,作为函数值返回,n的值为2;同理第三次调用返回后,n的值为3。输出n*argc的值为6所以,A选项为所选。

  • 第2题:

    有以下程序 include int fun(char s[ ]) { int n=0; while(*s<='9'&&*s>='0

    有以下程序

    #include <stdio.h>

    int fun(char s[ ])

    { int n=0;

    while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s++;}

    retum(n);

    }

    main( )

    { char s[10]={'6','1','*','4','*','9','*','0','*'};

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

    }

    程序的运行结果是

    A.9

    B.61490

    C.61

    D.5


    正确答案:C
    解析:在fin函数中,while循环的功能是:逐个取字符数组s的字符判断其是否是数字。若是则将其作为个位数字保存到变量n中,n的原数据的各个数位将相应左移一个十进制位。当指针s指向数组的第3位时,循环条件不成立,循环结束,返回n的值,输出n的值为61。

  • 第3题:

    有以下程序 include<stdio.h>intfun(chars[]){intn=0;while(*s<=’9’&&

    有以下程序

    #include<stdio.h>

    int fun(char s[])

    {

    int n=0;

    while(*s<=’9’&&*s>=’0’) { n=10*n+*s-‘0’;s++; }

    return(n);

    }

    main()

    {

    char s[10]={‘6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};

    printf(“%d\n”,fun(s));

    }

    程序的运行结果是( )。

    A.9

    B.61490

    C.61

    D.5


    正确答案:C

  • 第4题:

    有以下程序 #include<stdio.h> int fun(char s[]) {int n=0; while(*s<=9&&*s>=0){n=10*n+*s-o;s++;) return(n); } main {char s[10]={6,1,*,4,*,9,*, 0,*); printf("%d",fun(s)); } 程序运行的结果是( )。

    A.9

    B.61490

    C.61

    D.5


    正确答案:C
    在fun函数中,while循环的功能是逐个取字符数组s的字符判断其是否是数字。若是则将这些数字组成一个数保存到变量n中,并返回变量n的值。

  • 第5题:

    有以下程序:includeint fun(char s[]){ intn=0;while(*s<='9'&&*s>='0'){n=10

    有以下程序: #include <stdio.h> int fun(char s[]) { int n=0; while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s++;} return(n); } main() { char s[10]={'6','1','*','4','*','9','*','0','*'}; printf("%d\n",fun(s)); } 程序的运行结果是( )。

    A.9

    B.61490

    C.61

    D.5


    正确答案:C
    解析:题目fun()函数中while循环的意思是:判断s所指内容是否为数字字符,如果是数字字符,则计算表达式n=10*n+*s-'0';。其中*s-'0'的作用是将相应的数字字符转换为数值,例如字符'8'减去字符'0'后,得到的结果就是数值8了。n=10*n+的作用是将累计变量n中原来内容乘以10,然后再加上刚转换的数字字符的数值,例如原来n的值为1,*s现在的内容为'2',那么执行了n=10*n+*s-'0';语句后,n的值变为12,如果接下来再来一个'8'字符,执行n=10*n+*s-'O';语句后,n的值就是128了。故不难看出fun()函数的作用是“将数字字符串转换为相应的十进制数值,碰到非数字字符时结束”。从主函数中定义的字符数组s的初始化内容可以看出,fun()函数返回值应该是61。故应该选择C。