下列给定程序中,函数fun的功能是:找出100—999(含100和999)所有整数中各位上数字之和为X(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。 例如,当x值为5时,100—999各位上数字之和为5的整数有:104,113,1

admin2015-11-24  2

问题 下列给定程序中,函数fun的功能是:找出100—999(含100和999)所有整数中各位上数字之和为X(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。
    例如,当x值为5时,100—999各位上数字之和为5的整数有:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500,共有15个。当x值为27时,各位数字之和为27的整数是:999,只有1个。
    请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
#include<stdio.h>
int fun(int X)
{    int n,s1,s2,s3,t;
    n=0:
    t=100;
/**********found***********/
  while(t<=【1】){
/**********found***********/
  s1=t%10,s2=(【2】)%10;
  s3=t/100;
/**********found***********/
  if(sl+s2+s3==【3】)
  {printf(“%d”,t);
    n++;
    }
    t++;
    }
    return n;
}
main()
{  int x=一1;
    while(x<0)
    {printf(“Please input(X>0):”);
    scanf(“%d”,&x);}
    printf(“\nThe result is:%d\n”,
fun(X));
}

选项

答案(1)999 (2)t/10 (3)x

解析 填空1:题目要求找出100~999符合要求的数,所以while语句的循环条件是t<=999。
    填空2:变量s2存放三位数的十位,取出三位数十位数值的方法为s2=(t/10)%10;。
    填空3:题目需要判断各位上数字之和是否为x,所以if语句条件表达式是s1+s2+s3==x。
转载请注明原文地址:https://jikaoti.com/ti/YdkiFFFM
0

最新回复(0)