1、第七十一套【解题思路】 本题属于数学类问题,主要考查的是奇偶数的判断和方差的求法。解本题的思路为:用循环控制取每一个数进行判断,若一个数除以2取余得0,则该数是偶数,否则为奇数。分别统计奇数和偶数的个数、总和,并且保存所有满足条件的偶数。最后由方差公式可知,这是求一些连续的数的表达式的和,所以可以使用循环求得方差。【参考答案】 void Compute(void) int i,ttMAX; /*定义数组tt计算总和*/for(i=0;ibj)temp=bi;bi=bj;bj=temp;第七十四套【解题思路】 本题属于数学类题。本题思路为:首先利用一个 for循环来依次从数组中取得满足条件的数,
2、由于题目要求求数组中正整数的个数,只要某个整数大于零,则该数即是正整数,通过变量totNum来统计正整数的个数。然后求出该数的每位数字,并判断是否满足条件“各位数字之和是奇数“,用变量totCnt和totPjz分别计算出满足条件的数的个数和这些数的和sum。最后求出这些数的平均值。【参考答案】 void CalValue() int i; /*定义的循环控制变量 */int a1,a2,a3,a4; /*用来存储正整数的每一位的数字*/for(i=0;i0) /*判断是否正整数*/totNum+; /*统计正整数的个数*/a4=xxi/1000; /*求正整数的千位数*/a3=xxi%1000
3、/100; /*求正整数的百位数*/a2=xxi%100/10; /*求正整数的十位数*/a1=xxi%10; /*求正整数的个位数*/if(a4+a3+a2+a1)%2=1) /*如果各位数字之和是奇数*/ /*计算满足条件的数的个数totCnt和这些数的总和sum*/totCnt+;totPjz+=xxi;totPjz/=totCnt; /*求这些数的算术平均值totPjz*/第七十五套【解题思路】 本题要求先实现CalValue()函数的功能 ,再进一步分析,可以归纳出3个关键点: 关键点1如何取得4位数的各个数位数字;关键点2如何通过条件(各个数位数字的和是偶数)来筛选出满足条件的数;
4、关键点3如何统计满足条件的数的个数 ,并计算其平均值。 关键点1通过算术运算取余和除法可以分解得到4位数各个数位的数字;关键点2通过if判断语句和逻辑表达式可以实现;关键点3先计算满足条件的数的总和,再除以它们的数目即可求得平均值。 【参考答案】 void CalValue() int i; /*定义循环控制变量*/int a4,a3,a2,a1; /*用来存储正整数的每一位的数字*/for(i=0;i0) /*判断是否正整数*/totNum+; /*统计正整数的个数*/a4=xxi/1000; /*求正整数的千位数*/a3=xxi%1000/100; /*求正整数的百位数*/a2=xxi%1
5、00/10; /*求正整数的十位数*/a1=xxi%10; /*求正整数的个位数*/if(a4+a3+a2+a1)%2=0) /*如果各位数字之和是偶数*/ /*计算满足条件的数的个数totCnt和这些数的总和sum*/totCnt+;totPjz+=xxi;totPjz/=totCnt; /*求这些数的算术平均值totPjz*/第七十六套【解题思路】 此题属于销售记录类题型;此类题型主要考查对结构体数组的排序。解题时,应注意3个关键点:关键点1本题为按产品金额从大到小排序;关键点2本题为如果产品金额相同;关键点3本题为按产品名称从小到大排列。本题在每次记录比较时,首先比较两个产品的金额,如果
6、前一个产品的金额小于后一个产品的金额,则这两个产品进行数据交换;若产品的金额相等,则用字符串比较函数strcmp比较两个产品的名称,如果返回的值大于0,则这两个产品进行数据交换。【参考答案】 void SortDat() int i,j; /*定义循环控制变量*/PRO temp; /*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i0)temp=selli;selli=sellj;sellj=temp;第七十七套【解题思路】 此题属于销售记录类题型;此类题型主要考查对结构体数组的排序。解题时,应注意3个关键点:关键点1本题为按产品代码从大到小排序;关键点2本题为
7、如果产品代码相同;关键点3本题为按产品金额从大到小排列。本题在每次记录比较时,首先用字符串比较函数strcmp比较两个产品的代码,如果返回的值小于0,则这两个产品进行数据交换;如果返回值等于0,再比较两个产品的金额,如果前一个产品的金额小于后一个产品的金额,则这两个产品进行数据交换。【参考答案】 void SortDat() int i,j; /*定义循环控制变量*/PRO temp; /*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i0) /*按产品代码从小到大进行排列*/temp=selli;selli=sellj;sellj=temp; else if (
8、strcmp(selli.mc,sellj.mc)=0) /*若产品代码相同*/if (selli.jesellj.je) /*按金额从小到大进行排列*/ temp=selli;selli=sellj;sellj=temp;else if (selli.je=sellj.je) /*若金额相同*/if (strcmp(selli.dm,sellj.dm)sellj.je) /*按金额从小到大进行排列*/temp=selli;selli=sellj;sellj=temp; else if (selli.je=sellj.je) /*若金额相同*/if (strcmp(selli.dm,sellj.dm)0) /*则按产品代码从小到大进行排列*/temp=selli;selli=sellj;sellj=temp;