问答题
下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#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-az*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写成字母O。 (2)根据题意,要返回能被3整除的数的个数,从循环体中可以知道其个数是由i来计算的,所以返回的是i。