填空题 下列给定程序中,函数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<=______) { /**********found********** / s1=t% 10; s2=(______)% 10; s3=t/100; /**********found********** / if(s1+s2+s3==______) { 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、
【正确答案】 1、999 t/10 x    
【答案解析】[考点] 本题考查:while循环语句,数n各个位数值的表示方法,if语句条件表达式。 填空1:题目要求找出100~999符合要求的数,所以while语句的循环条件是t<=999。 填空2:变量s2存放三位数的十位,取出三位数十位数值的方法为s2=(t/10)%10;。 填空3:题目需要判断各位上数字之和是否为x,所以if语句条件表达式是s1+s2+s3==x。 三位数n各位数值的表示方法,个位表示为n%10,十位表示为n/10%10,百位表示为n/100。