填空题 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、
【正确答案】 1、arr[i]%10
bb[m++]=arr[i]
m    
【答案解析】 将一个整数对10取余,则得到该整数的个位数,将一个整数除以10再对10取余,则得到该整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存在变量g中。根据题意,当整数的个位与十位的数字之和大于5时,则将该整数保存到数组bb中;变量m记录了满足条件的无符号整数的个数,题目要求将满足条件的无符号整数的个数由proc()函数返回,所以函数返回m。