问答题
编写函数fun,其功能是:将1-m(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。例如,若传给m的值为50,则程序输出:
7 11 14 21 22 28 33 35 42 44 49
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#define M 100
void fun(int m, int *a, int *n)
{
}
void main()
{
int aa[M],n,k;
system("CLS");
fun(50,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)
/*每行输出20个数*/
{printf("%4d",aa[k]);
printf("/n");
}
else
printf("%4d",aa[k]);
printf("/n");
}
【正确答案】
【答案解析】void fun (int m, int *a , int *n)
{
int i,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0) /*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/
a[j++]=i;
*n=j; /*返回这些数的个数*/
}
[解析] 本题应使用循环判断语句实现,首先要确定循环变量的取值范围,题且要求找到1~m之间附合要求的数,所以循环变量的取值范围为1~m。if条件语句用来对每一个数进行判断,注意题目要求能被7或11整除,因此条件表达式中应使用逻辑或"||"运算符。