全国计算机等级考试三级上机试题(C) 联系客服

发布时间 : 星期一 文章全国计算机等级考试三级上机试题(C)更新完毕开始阅读5c3638f8f705cc17552709eb

答案见后面

1. 已知在文件IN.DAT中存在有100个产品销售记录,请编

制函数SortDat(),其功能:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT.DAT中。 2. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列。

3. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列。

4. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列。

5. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列。

6. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按金额从大到小进行排列,若金额相同,则按产品名称从小到大进行排列。

7. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列。

8. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列。

9. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按金额从小到大进行排列,若金额相等,则按产品代码从大到小进行排列。

10. 已知在文件IN.DAT中存在有100个产品销售记录,其功

能:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列。

11. 已知数据文件IN.DAT中存有300个四位数,并以调用读

函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排列。最后main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT中。

12. 已知数据文件IN.DAT中存有200个四位数,其功能是:

1

如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入,最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到文件OUT.DAT中。 13. 已知数据文件IN.DAT中存有300个四位数,其功能是:

求出千位数上的数加百位数上的数等于十位加个位,对数组按从大到小的顺序进行排序。

14. 已知数据文件IN1.DAT和IN2.DAT中分别存有100个两

位十进制数,并以调用读函数readDat()把这两个文件中的数存入数组a和b中,实现的功能是依次对数组a和b中的数按条件重新组成一个新数并存入c中,并按从小到大的顺序进行排序。组成新数据的条件:如果a和b中相同下标位置的数必须要符合一个是偶数,一个奇数,则数组a中的数按二进制数左移八位后再加数组b对应位置上的数,把这样的新数存入c中。

15. 已知数据文件IN.DAT中存有300个四位数,其功能是:

求出千位数减百位数减十位数减个位数大于零的个数cnt,存入b中,按小到大的顺序排序。

16.程序PROG1.C的功能是:选出1000至9999范围内的所

有素数,且符合下面条件:千位与百位之和等于十位与个位数字之和,且千位数字与百位之和等于个位与十位之差的正10陪。计算并输出这些数的个数cnt以及和sum。 17. 已知数据文件IN.DAT中存有200个四位数,其功能是:

如果四位数各位上的数字均为0或2或4或6或8中的一个数字,则统计出个数cnt,并按从大到小的顺序存入。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到文件OUT.DAT中。 18. 已知数据文件IN.DAT中存有300个四位数,其功能是:

求出个位数减千位数减百位数减十位数大于零的个数cnt,存入b中,按从大到小的顺序排列。

19. 已知数据文件IN.DAT中存有200个四位数,其功能是:

把一个四位数的千位数位置上的值减去百位数位置上的值再减去十位数位置上的值最后减去个位数位置上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到文件OUT.DAT中。 20.已知数据文件IN.DAT中存有200个四位数,其功能是:若

一个四位数的千位数位置上的值大于等于百位数位置上的值,百位数位置上的值大于等于十位数位置上的值,以及十位数位置上的值大于等于个位数位置上的值,且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入b中。

21. 其功能是:把一个四位数的千位数位置上的值加个位数

位置上的值恰好等于百位数位置上的值加十位数位置上的值,且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入b中。 22. 其功能是:把一个四位数的千位数位置上的值加上十位

数位置上的值恰好等于百位数位置上的值加个位数位置上的值,且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入b中。 23. 已知数据文件IN.DAT中存有300个四位数,其功能是:

求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2. 最后main()函数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到OUT.DAT文件。

24.其功能是:求出个位数上的数减千位数上的数减百位数

上的数减十位数上的数大于零的个数cnt, 再求出满足此条件的四位数平均值pjz1, 以及所有不满足此条件的四位数平均值pjz2.

25. 其功能是:求出千位数上的数加个位数上的数等于百位

数上的数加十位数上的数的个数cnt, 再求出满足此条件的四位数平均值pjz1, 以及所有不满足此条件的四位数平均值pjz2.

26. 其功能是:求出千位数上的数减百位数上的数减十位数

上的数减个位数上的数大于0的个数cnt, 再求出满足此条件的四位数平均值pjz1, 以及所有不满足此条件的四位数平均值pjz2.

27. 已知数据文件IN.DAT中存有200个四位数,其功能是:

把千位数字和十位数字重新组成一个新的含有两位数字的数ab(新数的十位数字是四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果新组成的两个数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数字的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入b中,并要计算满足条件的四位数的个数cnt。最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到文件OUT.DAT中。

28. 其功能是:把千位数字和个位数字重新组成一个新的含

有两位数字的数(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的个位数字),以及把百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成的数均是奇数并且至少有一个数能被5整除,同时两个新数

2

的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入b中,并要计算满足条件的四位数的个数cnt。

29. 其功能是:把千位数字和十位数字重新组成一个含有两

位数字的数ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果新组成的两个数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入b中,并要计算满足条件的四位数的个数cnt。

30. 其功能是:把千位数字和十位数字重新组成一个新的含

有两位数字的数(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的是为十字),以及把个位数字和百位数字组成另一个两位数字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果两个新组成的数均是素数且新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入b中,并要计算满足条件的四位数的个数cnt。

31. 已知数据文件IN1.DAT和IN2.DAT中分别存有100个两

位十进制数,并以调用读函数readDat()把这两个文件中的数存入数组a和b中,实现的功能是依次对数组a和b中的数按条件重新组成一个新数并存入c中,并按从小到大的顺序进行排序。组成新数据的条件:如果a和b中相同下标位置的数均是奇数,则数组a中十位数字为新数的千位数字,个位数字依为新数的个位数字,数组b中的十位数字为新的百位数字,个位数字为新的十位数字,这样组成新的数并存入数组c中。

32.已知数据文件IN.DAT中存有200个四位数,其功能是:

把千位数字和十位数字重组成新的含有两位数字的数ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个数ab

33. 已知数据文件IN.DAT中存有200个四位数,其功能是:

把个位数字和千位数字重新组成一个新的含有两位数

字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成的数均是偶数并且至少有一个数能被9整除,同时两个新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入b中,并要计算满足条件的四位数的个数cnt。 34. 其功能是:从数组a中一次取出一个四位数,对每一个

四位数做如下处理:把个位数字和千位数字重新组成一个新的含有两位数字的数(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的含有两位数字的数(新数的十位数字是原四位数的百位数字,新数的个位数字是原四位数的十位数字),如果两个新组成数:一个是奇数,另一个是偶数,并且至少有一个数能被17整除,同时两个新数的十位数字均不为0,则将满足此条件的四位数存入b中,并要计算满足条件的四位数的个数cnt,而后对数组b进行降序排序。 35. 其功能是:把千位数字和十位数字重新组成一个新的含

有两位数字的数ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数字是原四位数的百位数字),如果组成的两个数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入b中,并要计算满足条件的四位数的个数cnt。

36. 其功能是:依次从数组a中取出一个四位数,如果该四

位数小于该四位数以后的连续五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt,并存入数组b中且做升序排序,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到文件OUT.DAT中。

37. 其功能是:依次从数组a中取出一个四位数,如果该四

位数均大于该四位数以前的连续五个数且该数是偶数(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后同上。

38. 其功能是:依次从数组a中取出一个四位数,如果该四

位数大于该四位数以前的连续五个数且该数是奇数,且该数必须能被7整除(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并按大到小的

3

顺序存入数组b中。

39. 其功能是:依次从数组a中取出一个四位数,如果该四

位数大于该四位数以后的连续五个数且该数是奇数,则统计出满足此条件的个数cnt并按小到大的顺序存入数组b中。

40. 在文件IN.DAT中已存有200个正整数,且每个数均在

1000至9999之间。函数readDat()是读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行升序排列,将排序后的前10个数存入数组bb中。最后调用函数writeDat()把结果输出到文件OUT.DAT中。 41. 在文件IN.DAT中已存有200个正整数,且每个数均在

1000至9999之间。函数readDat()是读取这200个数存放到数组aa中。请编制函数jsSort(),其函数功能是:要求按每个数的后三位的大小进行升序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列,将排序后的前十个数存入数组bb中。 42.已知在文件IN.DAT中存有200组数据,每组有3个数,

每个数均是三位数。函数read.dat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和,满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个数之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后结果存入bb中,最后输出。

43. 其功能是:要求在200组数据中找出条件为每组数据中

的第一个数大于第二个数与第三个数之和,满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数与第三个数之和的大小进行升序排列(和均不相等)。

44. 程序PROG1.C的功能是:利用一下所示的简单迭代方法

求方程cos(x)-x=0一个实根。Xn+1=cos(xn),步骤:(1)取x1初值为0.0;(2)x0=x1,把x1的初值赋给x0;(3)x1=cos(x0),求出一新的x1(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。编制函数countValue()实现程序的功能,最后main()函数调用函数writeDat()把结果输出到文件OUT.DAT中。 45. 编写函数jsValue(int t),它的功能是:求Fibonacci数列中

最接近t的数,结果由函数返回。其中Fibonacci数列F

(n)的定义为:F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2)(n>=2)最后调用函数writeDat()读取10个数据t,分别得出结果且把结果输出到文件OUT.DAT中。

46. 某级数的前两项A1=1,A2=1,以后各项具有如下关系:

An=An-2+2An-1。程序PROG1.C的功能是:要求依次对于整数M=100,1000,10000求出对应的n值,使其满足:Sn=M,这里Sn=A1+A2+……+An,并依次把n值存入数组单元b[0],b[1],b[2]中,请编制函数jsValue()函数来实现此功能,最后调用函数writeDate()把数组b[]中的值输出到OUT.DAT文件中。

47. 程序PROG1.C的功能是:选出大于100小于1000范围

之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的所有素数。计算并输出这些素数的个数cnt以及这些素数值的和sum.编写函数countValue()实现要求,最后调用函数writeDate()把结果cnt和sum输出到文件OUT.DAT中。

48. 程序PROG1.C的功能是:计算500~800区间内苏数的个

数cnt,并按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第1个素数-第2个素数-第4+第5个素数….的值sum。

49. 程序PROG1.C的功能是:将大于整数m且紧靠m的k

个素数存入数组xx。编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数readwriteDat()把结果输出到OUT.DAT文件中。

50.已知文件IN.DAT中存有300个四位数,并以调用读函数

readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2.最后把cnt,pjz1,pjz2输出。

51. 程序PROG1.C的功能是:计算100以内满足一下条件所

有整数I的个数cnt以及这些I之和sum。条件I,I+4,I+10都是素数,同时I+10小于100。最后把结果cnt和sum输出。

52. 已知文件IN.DAT中存有300个四位数,其功能是:求出

所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数一次存入数组b中,按小到大的顺序排序。最后main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT中。

53. 已知在IN.DAT中存有若干个(个数<200)四位十进制数

字组成的正整数,函数RreadDat()读取这若干个正整数并存入数组xx中。其功能是:1.求出这文件中共有多少个正整数totNum;2.求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条

4

件的这些正整数(右移前的值)的算术平均值totpjz。最后main()函数调用写函数writeDat()把结果输出到文件OUT.DAT中。

54. 已知在IN.DAT中存有若干个(个数<200)四位数字的正

整数,其功能是:1.求出这文件中共有多少个正整数totNum;2.求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totpjz。 55. 将文件IN.DAT中的200个整数读至数组xx中。要求:

求出数组xx中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为0的元素)的元素值的算术平均值pj。结果cnt1, cnt2,pj输出到文件OUT.DAT中。

56. 要求:求出数组xx中的数值为奇数的个数cnt1和数值

为偶数的个数cnt2以及数组xx下标为奇数的元素值的算术平均值pj。

57. 已知在IN.DAT中存有N个实数(N<200),函数ReadDat()

读取这N个实数并存入数组xx中。其功能是:(1)求出这N个实数的平均值aver.(2)分别求出这N个实数的整数部分值之和sumdec,最后把结果输出到OUT.DAT。 58. 已知在IN.DAT中存有若干个(个数<200)四位数字的正

整数,其功能是:1.求出这文件中共有多少个正整数totNum;2.求出这些正整数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totpjz。

59. 其功能要求是:1. 求出这文件中共有多少个正整数

totNum;2.求出这些正整数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totpjz。

60. 函数ReadDat()实现从文件IN.DAT中读取1000个十进

制整数到数组xx中,请编制函数Compute()分别计算出xx中数值为奇数的个数odd,xx中所有奇数的平均值ave1,并求出xx中数值为偶数的平均值ave2以及所有奇数的方差totfc的值,计算方差公式

N-1totfc?1N?(xx[i]?ave1)2i?0

设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(没个数均大于0且小于等于2000)

61. 请编制函数Compute()分别计算出xx中数值为奇数的个

数odd,偶数的个数为even,平均值aver以及方差totfc的值。