填空题
1. 从键盘输入一组无符号整数并保存在数组xx[M]中,以整数0结束输入,即第(M+1)个数是0(共M个数据),数与数之间以Enter键分隔,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入函数proe()。请补充函数proc(),该函数的功能是:从数组xx中找出十位和百位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。
例如,当xx[8]={3 637 369 421 35 7334 54 67}时,bb[4]={637 369 421 7334 67}。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序: #include <stdio.h>
#define M 1000
int proc(int xx[], int bb[], int num)
{
int i, n=0;
int g, s;
for(i=0; i<num; i++)
{
g=______;
s=xx[i]/10%10;
if((g+s)>5)
______;
}
return ______;
}
void main()
{
int xx[M];
int yy[M];
int nun=0,n=0,i=0;
printf("Input number:<n");
do
{
scanf("%u",&xx[num]);
}
while(xx[num++]!=0);
n=proc(xx,yy,nun);
printf("<nyy=");
for(i=0;i<n;i++)
printf("%u",yy[i]);
}
【正确答案】
1、xx[i]/100
bb[n++]=xx[i]
n
【答案解析】 从数组xx中找出十位和百位的数字之和大于5的所有无符号整数,首先要得到每一个整数十位和百位的数字。要得到一个整数十位和百位的数字,可以通过取余来实现,因此,第一空填“xx[i]/100”;每得到一个符合要求的整数,放在数组bb中,因此,第二空填“bb[n++]=xx[i]”;变量n中存放的是符合要求的个数,最后返回给主函数,因此第三空填“n”。