填空题
1. 从键盘输入一组无符号整数并保存在数组arr[N]中,以整数0结束输入,即第(N+1)个数是0,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入函数proc()。请补充函数proc(),其功能是:从数组arr中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。
例如,当arr[8]={13,1,205,252,2,333,4444,21}时(实际输入时,数与数之间用Enter键分开),bb[4]={252,333,4444}。
注意:部分源程序给出如下。
请勿改动函数main()和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序: #include <stdio.h>
#define M 1000
int proc(int arr[],int bb[],int num)
{
int i,m=0;
int g,s;
for(i=0;i<num;i++)
{
g=______;
s=arr[i]/10%10;
if((g+s)>5)
______;
}
return______;
}
void main()
{
int arr[M];
int yy[M];
int num=0,m=0,i=0;
printf("Input number:<n");
do
{
scanf("%u",&arr[num]);
}
while(arr[num++]!=0);
m=proc(arr,yy,num);
printf("<nyy=");
for(i=0;i<m;i++)
printf("%u",yy[i]);
}
【正确答案】
1、arr[i]%10
bb[m++]=arr[i]
m
【答案解析】 将一个整数对10取余,则得到该整数的个位数,将一个整数除以10再对10取余,则得到该整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存在变量g中。根据题意,当整数的个位与十位的数字之和大于5时,则将该整数保存到数组bb中;变量m记录了满足条件的无符号整数的个数,题目要求将满足条件的无符号整数的个数由proc()函数返回,所以函数返回m。