niusouti.com

下面程序的输出结果是______。 unsigned fun(unsigned num) { unsigned k=1; do{ k*=num%10; num/=10; }while(num); return(k); } main() { unsigned n=26; printf("%d\n",fun(n)); }A.0B.4C.12D.无限次循环

题目

下面程序的输出结果是______。 unsigned fun(unsigned num) { unsigned k=1; do{ k*=num%10; num/=10; }while(num); return(k); } main() { unsigned n=26; printf("%d\n",fun(n)); }

A.0

B.4

C.12

D.无限次循环


相似考题
参考答案和解析
正确答案:C
解析:本题定义了—个fun函数,用于num求和,具体执行过程如下:num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0;num=0:while条件不成立,所以返回k的值12。
更多“下面程序的输出结果是______。unsigned fun(unsigned num){unsigned k=1; do{k*=num%10;num/=10; ”相关问题
  • 第1题:

    下面程序的输出结果是_______。 unsigned fun(unsigned num) { unsigned k=1; do { k*=num%10; num/=10; }while(num); return(k); } main() { unsigned n=26; printf("%d\n",fun(n)); }

    A.0

    B.4

    C.12

    D.无限次循环


    正确答案:C
    解析:本题定义了一个fun函数,用于num求和,具体执行过程如下:
      num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;
      num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);
      num=O:while条件不成立,所以返回k的值12。

  • 第2题:

    以下程序的输出结果是【】。include unsigned frn(ullsigned num) { unsi9ned k=1; do{

    以下程序的输出结果是【 】。

    include<iostream.h>

    unsigned frn(ullsigned num)

    { unsi9ned k=1;

    do{k*=num%10;num/=10;} while(num);

    return k;

    }

    void main()

    { unsigned n=26;

    cout<<fun(n) <<endl;

    }


    正确答案:12
    12 解析:函数有一个形参num,循环前变量k置1,循环中,表达式nora%10是取num的个位,将num的个位值累乘于k中,然后num除以10。循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回k。函数fun的功能是求整数的各位十进数字积。

  • 第3题:

    下面程序的输出结果是【 】。

    unsigned fun6(unsigned num)

    { unsigned k=1;

    do { k*=hum%10;

    num/=10;}while(num);

    return(k); }

    main()

    { unsigned n=26;

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


    正确答案:12
    12 解析:do…while循环的一个比较显著的特点是:先执行一次循环体然后再判断循环的条件是否满足,若满足则接着进入下一次循环,否则就退出循环。注意:3种循环结构的比较。

  • 第4题:

    运行下列程序时,若输入数据为“321”,则输出结果是( )。 main() {int num,i,j,k,s; scanf("%d",&num); if(num>99) s=3; else if(num>9) s=2; else s=1; i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch(s) {case 3:printf("%d%d%d\n",k,j,i); break; case 2:printf("%d%d\n",k,j); case 1:printf("%d\n",k); } }

    A.123

    B.1,2,3

    C.321

    D.3,2,1


    正确答案:A
    解析:本题考查if-else语句和switch语句。scan函数通过键盘读入nUm的值。因为num=321>99,所以s=3,i=3,i=2k=1。因为s=3,所以执行case 3,输出k,j,i的值,然后通过breed结束程序。

  • 第5题:

    以下程序的输出结果是unsigned fun6(unsigned num){ unsigned k=1; do{k *=num%10;num/=10;} while (num); return k;}main(){ unsigned n=26; printf("%d\n", fun6(n));}


    正确答案:12
    在本题中,程序首先定义了一个返回类型为无符号型的函数fun6,函数带有一个无符号型的变量num。在主函数中,首先定义一个无符号型的变量n,并初始化为26,然后执行输出语句,从输出语句的输出格式我们可以知道输出的是一个整数,从输出语句的输出列表我们可以知道,输出的是fun6函数的返回值,即调用fun6函数,其传递的参数是26。
    在fun6函数中,首先定义一个变量k,并初始化为1,然后执行do…while循环,循环结束的条件为形参变量num的值为0。
    第一次循环时,k *=num%10等于k=k*(num%10)=1*6=6,然后num的值被改变为26/10=2,由于此时num的值仍大于0,进行第二次循环。
    第二次循环时,变量k的值为6*(2%10)=12,然后num的值被改变为2/10=0,此时由于num的值为0,循环结束。然后返回变量k的值并输出。
    因此,程序最后的输出结果是12。