问答题 1.  编写函数int proc(int lim,int aa[M]),该函数的功能是:求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数。
    例如,若输入12时,则输出“2 3 5 7 11”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
    试题程序:
    #include<stdlib.h>
    #include<conio.h>
    #include<stdio.h>
    #define M 100
    int proc(int lim,int aa[M])
    {
    }
    void main()
    {
    int limit,i,sum;
    int arr[M];
    system("CLS");
    printf("输入一个整数");
    scanf("%d",&limit);
    sum=proc(1imit,arr);
    for(i=0;i<sum;i++)
    {
    if(i%10==0&&i!=0)  //每行输出10个数
    printf("\n");
    printf("%5d",arr[i]);
    }
    }
【正确答案】int proc(int lim,int aa[M])
   {
   int i,j,k=0;
   for(i=2;i<=lim;i++)   //小于或等于lim的数
   {  for(j=2;j<=i;j++)  //判断其是否为素数
   if(i%j==0)break;
   if(j>=i)
   aa[k++]=i;    //如果是,则把其放到数组aa中
   }
   return k;    //最后把数组的长度返回给主函数
   }
【答案解析】 首先,判断小于等于整数lim的所有整数是否为素数;然后,将一个素数放入数组aa中;最后,将素数的个数返回给主函数。