问题 问答题

下列给定程序中函数fun的功能是:从整数1~55,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
int fun(int *b)
int k, a1, a2, i=0;
for(k=10; k<=55; k++)

/******************found*******************/
a2=k/10;
a1=k-a2*10;
if((k%3==0&& a2==5)||(k%3==0&&
a1==5))

b[i]=k; i++;


/******************found*******************/
return k;

main()
int a[100], k, m;
m=fun(a);
printf("The result is:\n");
for(k=0; k<m; k++)
printf("%4d", a[k]);
printf("\n");

答案

参考答案:(1) a2=k/10;
(2) return (i);

解析: (1)a2存放十位数,所以a2=k/10,其中0书写错误。
(2)要返回满足条件的个数,即数组b的元素个数,所以返回的是i。

不定项选择
单项选择题