问答题
1. 请编写函数proc(),它的功能是:求出1~1000中能被5或13整除,但不能同时被5和13整除的所有整数,并将它们放在arr所指的数组中,通过n返回这些数。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void proc(int*arr,int*n)
{
}
void main()
{
int arr[1000],n,k;
system("CLS");
proc(arr,&n);
for(k=0;k<n;k++)
if((k+1)%10==0)
{
printf("%5d",arr[k]);
printf("\n");//一行写10个数
}
else
printf("%5d",arr[k]);
}
【正确答案】void proc(int *arr,int *n)
{
int i,j=0;
for(i=1;i<=1000;i++)
if((i%5==0||i%13==0)&&i%65!=0)
//1~1000中能被5或13整除,但不能同时被5和13整除的所有整数
arr[j++]=i; //把符合条件的放到数组arr中,
*n=j; //最后把其个数通过形参中的指针变量返回给主函数
}
【答案解析】 题目要求求出1~1000中能被5或13整除,但不能同时被5和13整除的所有整数。首先,应判断1~1000的每一个整数是否符合要求,将符合要求的每一个整数放入数组arr中;最后,将整数的个数作为形参返回给主函数。