请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
例如,输入6和21,则输出为:7 11 13 17 19 21。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio. h>
include<stdio. h>
define N 1000
int fun (int n, int m, int bb [N])
{
int i, j, k=0, flag;
for (j=n; j<=m; j++)
{
【 】;
for (i=2; i<j; i++)
if(【 】)
{
flag=0;
break;
}
if(【 】)
bb [k++] =j
}
return k;
}
main ()
{
int n=0,m=0, i, k;
int bb[N];
clrscr ();
printf ("Input n\n");
scanf ("%d", &n);
printf ("Input m\n");
scanf ("%d", &m);
for (i=0; i<m-n; i++)
bb[i]=0;
k=fun (n, m, bb);
for (i=0; i<k; i++)
printf ("%4d",bb [i]);
}
第1题:
从键盘输入一组无符号整数并保存在数组arr[N]中,以整数0结束输入,即第N+1个数是0,要求这些数的最大位数不超过4位,其元素的个数通过变量num传人函数proc()。请补充函数proc(),其功能是:从数组arr中找出个位和十位的数字之和大于5的所有无符号整数,结果保存在数组yy中,其个数由函数proc返回。
例如,当arr[8]={13,1,205,252,2,333,4444,21)时实际输人时,数与数之间用Enter键分开,bb[4]={252,333,4444)。
注意:部分源程序给出如下。
请勿改动函数main()和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【1】arr[i]%10【2】bb[m++]=arr[i]【3】m
【解析】将一个整数对l0取余,则得到该整数的个位数,将一个整数除以10再对10取余。则得到该整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存在变量g中;根据题意,当整数的个位与十位的数字之和大于5时,则将该整数保存到数组bb中;变量m记录了满足条件的无符号整数的个数,题目要求将满足条件的无符号整数的个数由proc()函数返回,所以函数返回m。
第2题:
编写程序实现以下功能:输入若干整数(输入0结束),每个整数输入完毕后,马上输出该整数是否为素数。要求判断一个整数是否为素数的功能用一个函数实现。
第3题:
9、请编写程序实现以下功能:用户输入两个数据,如果两个数据都是整数(即都由数字组成),则输出其减法运算结果;如果两个数据都不是整数,则将这两个数据作为两个字符串、输出这两个字符串连接的结果;如果一个数据不是整数、另一个数据是整数,则将不是整数的数据作为字符串、输出字符串和整数重复运算的结果。要求判断一个输入数据是否是整数的功能用函数实现。
第4题:
数组xx[M]保存着一组4位无符号整数,其元素的个数通过变量num传人函数proc()。请补充函数proc(),该函数的功能是:从数组XX中找出个位和百位上的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。
例如,当xx[8]={1111 2413 2321 2222 4245 3333 14145335)时,yy[6]={1111 2222 3333 1414}。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
【1】xx[i]%101【2】yy[n++]=xx[i]【3】n
【解析】要找出个位和百位上的数字相等的所有无符号整数,首先要得到数组xx中每一个元素的个位和百位数字,然后进行比较。因此,【1】处填xx[i]%10。当个位和百位相等时,把数组xx中的该元素放到数组yy中。因此,【2】处填yy[n++]=xx[i]。由函数proc()可知,数组yy的个数存放在变量n中,最后返回到主函数当中。因此,【3】处填n。
第5题:
设计函数,判断整数n是不是素数,是则返回该素数,否则返回0。在主函数里调用该函数,该整数是在主函数中通过键盘输入的。