全国计算机二级C语言 # (19)程序填空题:赋值语句

a全国计算机二级C语言 # 程序填空题:赋值语句


给定程序中,函数f血m的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整 数,然后输岀;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、
267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、 483、492。共有26个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得岀正确的结果。
注意:源程序存放在考生文件夹下的BLAK1.C中,并且,要先打开 BLANK1.SLN文件再操作。
不得增行或刪行,也不得更改程序的结构!
#include <stdio.h>
int fun(int x)
{ int n, s1, s2, s3, t;
/**********found**********/
n=__1__;
t=100;
/**********found**********/
while(t<=__2__)
{ s1=t%10; s2=(t/10)%10; s3=t/100;
if(s1+s2+s3==15)
{ printf(“%d “,t);
n++;
}
/**********found**********/
__3__;
}
return n;
}
main()
{ int x=-1;
while(x>999||x<0)
{ printf(“Please input(0<x<=999): “); scanf(“%d”,&x); }
printf(“\nThe result is: %d\n”,fun(x));
}
[codesyntax lang=”php”]

[微答案]
(1) 0 (2)X(3)t++
[微分析]
填空1:变量x用于存放符合条件的整数的个数,应赋初值为0。填空2:根据题目要求,确定循环变里t的取值范围t<= xo
填空3:循环变里t自增1操作。
#include
int fun(int  x)
{ int  n, s1, s2, s3, t;
/**********found**********/
  n=0;
  t=100;
/**********found**********/
  while(t<=x)
  { s1=t%10;  s2=(t/10)%10;  s3=t/100;
    if(s1+s2+s3==15)
    {  printf("%d ",t);
       n++;
    }
/**********found**********/
    t++;
  }
  return n;
}
main()
{ int  x=-1;
  while(x>999||x<0)
  {  printf("Please input(0<x<=999): ");="" scanf("%d",&x);="" }="" printf("\nthe="" result="" is:="" %d\n",fun(x));="" <="" pre="">[/codesyntax]</x<=999):>

 


41)
给定程序中,函数fm的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低
位的顺序组成一-个新的数,并作为函数值返回。
例如,从主函数输入一个整数: 27638496, 函数返回值为: 26846。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中,并且,要先打开BLANK1. SLN文件再操作。不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
unsigned long fun(unsigned long n)
{ unsigned long x=0, s, i; int t;
s=n;
/**********found**********/
i=__1__;
/**********found**********/
while(__2__)
{ t=s%10;
if(t%2==0){
/**********found**********/
x=x+t*i; i=__3__;
}
s=s/10;
}
return x;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf(“Please input(0<n<100000000): “); scanf(“%ld”,&n); }
printf(“\nThe result is: %ld\n”,fun(n));
}
[codesyntax lang=”php” strict=”no”]

[微答案]
(1) 1 (2) s>0 (3) i*10
[微分析]
填空1:变量i用来控制被取出的偶数在新数中的位置,应赋初值1。填空2: while语 句的循环条件是s>0。
填空3:变量i用来标识个位、百位和千位等。
#include
unsigned long fun(unsigned long  n)
{  unsigned long  x=0, s, i;   int  t;
   s=n;
/**********found**********/
   i=1;
/**********found**********/
   while(s>0)
   {  t=s%10;
      if(t%2==0){
/**********found**********/
         x=x+t*i;  i=i*10;
      }
       s=s/10;
   }
   return  x;
}
main()
{  unsigned long  n=-1;
   while(n>99999999||n<0)
  { printf("Please input(0<n<100000000): ");="" scanf("%ld",&n);="" }="" printf("\nthe="" result="" is:="" %ld\n",fun(n));="" <="" pre="">[/codesyntax]
</n<100000000):>


41)
给定程序中,函数fm的功能是:计算下式前N项的和作为函数值返回。

例如,当形参N的值为10时,函数返回:9.612558
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中,并且,要先打开BLANK1. SLN文件再操作。不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
double fun(int n)
{ int i; double s, t;
/**********found**********/
s=__1__;
/**********found**********/
for(i=1; i<=__2__; i++)
{ t=2.0*i;
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+1)/__3__;
}
return s;
}
main()
{ int n=-1;
while(n<0)
{ printf(“Please input(n>0): “); scanf(“%d”,&n); }
printf(“\nThe result is: %f\n”,fun(n));
}
[codesyntax lang=”php” strict=”yes”]

【微答案】
(1) 0  (2) n  (3) (t*t)
【微分析】
填空1:程序开始定义了变量s,但没有对其进行初始化,根据公式及后面的程序可知变量s用来存储公式的前n项和,因此该变量应初始化为0。
填空2:通过for循环语句将表达式各项进行累加,结果存于变量s中,循环变量i的取值范围为1~n。
填空3:根据题目要求确定表达式通项,前面已定义t=2.0*i,因此此空应填(t*t)。
#include
double fun(int  n)
{ int  i;    double  s, t;
/**********found**********/
  s=0;
/**********found**********/
  for(i=1; i<=n; i++)
  { t=2.0*i;
/**********found**********/
    s=s+(2.0*i-1)*(2.0*i+1)/(t*t);
  }
  return  s;
}
main()
{ int  n=-1;
  while(n<0)
  { printf("Please input(n>0): "); scanf("%d",&n);  }
  printf("\nThe result is: %f\n",fun(n));
}

[/codesyntax]


 

718 Views
分享你的喜爱
linwute
linwute

我要像梦一样自由,像大地一样宽容;
在艰辛放逐的路上,点亮生命的光芒;
我要像梦一样自由,像天空一样坚强;
在曲折蜿蜒的路上,体验生命的意义;

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注