在主函数中,从键盘输入若干个数放入数组x中,用0结束输入但不计入数组。下列给定程序中,函数fun()的功能是:输出数组元素中小于平均值的元素。请补充函数fun()。
例如:数组中元素的值依次为1,2,2,12,5,15,则程序的运行结果为1,2,2,5。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
void fun( 【 】,int n)
{
double sum=0.0;
double average=0.0;
int i=0;
for(i=0;i<n;i++)
【 】;
average= 【 】;
for(i=0;i<n;i++)
if(x[i]<average)
{
if(i%5==0)
printf("\n");
printf("%d/",x[i]);
}
}
main()
{
int x[1000];
int i=0;
clrscr();
printf("\nPlease enter some data(end with 0):");
do
{
scanf("%d",&x[i]);
}
while(x[i++]!=0);
fun(x,i-1);
}
第1题:
程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:使数组右上三角元素中的值乘以m。
例如:若m的值为2,a数组中的值为:
注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
第2题:
请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
第3题:
请补充函数proc(),该函数的功能是把数组num中的数按从小到大的顺序排列(数组元素个数及值从主函数中输入)。
例如,输入n=5,num[0]~num[4]依次为5 7 2 8 0,结果为0 2 5 7 8。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【l】i<n【2】j%n-1
【解析】由函数proc()可知,该程序选用的是冒泡法来进行排序,变量i为循环次数,因此,【1】处填“i<n”;变量J用来判断第j个元素和第j+1个元素顺序是否正确,因此,【2】处填“j<n-1”。
第4题:
程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。
例如:a数组中的值为:
则返回主程序后s的值应为:3.375。
注意:部分源程序存在文件PROGl.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
第5题:
从键盘输入一组无符号整数并保存在数组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。