请编写函数proc(),其功能是:计算并输出给定10个数的方差。
例如,给定的10个数为88.0,89.5,54.0,78.5,89.0,63.0,85.7,83.0,77.0,83.0,则输出为S=11.195271。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
【解析】题目要求求方差,因此首先我们应通过循环求得其平均数,然后通过循环来求其平方差,最后求其方差,把方差返回到主函数中。
第1题:
给定程序MODll.c中函数fun的功能是;由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。
例如,n=8时,输入:193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763
所得平均值为:195.838745,在平均值以上的实数个数应为:5
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
第2题:
数组xx[M]保存着一组3位数的无符号正整数,其元素的个数通过变量m传人函数proc()。请补充函数proc(),该函数的功能是:从数组xx中找出十位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。
例如,当xx[8]={234 339 666 850 220 448 528 440)时,bb[5]={339 666 220 448 440}。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
【解析】要找出数组xx中十位和百位数字相等的所有整数,首先要得到数组中每一个整数的十位和百位数字,因此,【1】处填“(xx[i]/10)%10”;如果十位和百位数字相等,则将该整数放在数组bbee,因此,【2】处填“bb[n++]=xx[i]”;符合条件的整数个数放在变量n中,返回给主函数,因此,【3】处填“n”。
第3题:
下列给定程序中,函数proc()的功能是:根据整型形参n,计算如下公式的值。
例如,若n=12,则应输出0.618026。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
(1)错误:intproc(intn)
正确:floatproc(intn)
(2)错误:for(i=2;i<n;i++)
正确:for(i=2;i<=n;i++)
【解析】由主函数中的调用以及函数proc()的返回值可知,函数proc()的返回值类型应为float型数据。因此,“intproc(intn)”应改为“floatproc(intn)”;由题目中所给公式可知,循环中应该包含n的值,因此,“for(i=2;i<n;i++)”应改为“for(i=2;i<=n;i++)”。
第4题:
请编写函数fun,其功能是:计算并输出给定10个数的方差:
例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
第5题:
数组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。