考试网 >> IT认证 >> 等级 >> 三级考试 >> 全国计算机等级三级C语言上机试题逐题解析

全国计算机等级三级C语言上机试题逐题解析

发布时间:2006-07-25 12:12     点击:
分页:上一页  1 2 3 [4] 5 6  下一页

  }PRO;

  PRO sell[MAX];

  解题:这类题一律用冒泡法排序,但要注意(1)冒泡法排序要使用交换变量,这里的交换变量类型应和被排序的数组的类型一致,本类题中应使用结构体类型的变量。(2)本题中的产品名称和产品代码都为字符串,对其进行比较时,应使用strcmp函数。(3)本类题的排序都是用两个关键字排序的,分为第一关键字(如上题中的“产品名称”)和第二关键字(如上题中的“金额”),这种排序都是先按第一关键字排序,如果第一关键字相同,再按第二关键字排序,这时即可以写成两个排序过程,也可以写在一起,我们为了简略,把两个排序写成一个排序过程,不过这时排序的条件稍有写复杂,应该注意。

  (4)排序条件由两部分构成,请注意看代码中的括号。

  (5)题目说明中斜体部分就是本类题经常变化的地方。

  好了,排序的代码如下:

  void SortDat()

  {int i,j;

  PRO t;

  for(i=0;i<100;i++) /* 这里的100也可以写成MAX */

  for(j=i;j<100;j++)

  if( strcmp(sell[i].mc,sell[j].mc)>0||( strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je

  {t=sell[i];sell[i]=sell[j];sell[j]=t;} /* 交换sell[i]和sell[j] */

  }

  好了,再说一道难一些的题,本题是100道题中的第57题,俗称“猴子选王”的题,但“猴子选王”注重于结果,即最后出圈的是谁,而这道题注重于过程,即要将出圈的顺序放在一个指定的数组中。虽然要点不同,但编程的思路和方法确是相同的。

  本题的说明如下:

  设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求出圈次序,每10人为一组,给出这n个人的顺序表。请编制函数Josegh()实现此功能并调用函数Writedat()把编号按照出圈的顺序输出到文件OUT.DAT中。

  设n=100,s=1,m=10进行编程。

  注意:部份源程序已在程序PROG1.C中给出。
分页:上一页  1 2 3 [4] 5 6  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有