a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 65|回复: 0

[数据库] 2011年计算机等级三级数据库上机题及答案(1)

[复制链接]
发表于 2012-7-31 21:12:12 | 显示全部楼层 |阅读模式
 1.调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。最后把结果输出到文件OUT.dat中。  例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。
! c0 z( x+ Z* N8 K. F! h3 Z- _: T" f. g  注意:部分程序已经给出。请勿改动主函数main()和输出数据函数rwdata()的内容。( r& z/ I0 s1 q- W. S$ _
  【答案】
3 M* C$ @8 l( A  void primenum(int m, int k, int array[])
) i4 N0 i+ a* v  { int value = m+1;# Q2 j! R, C; [2 i  X
  int half, n = 0, i;2 g" L6 |3 F# F% }5 n9 K
  while(1)
* z2 I1 i( `! r( F  { half = value/2;
1 K) V4 i& C4 Q  for (i=2; i half)
0 A* A, s1 E$ d  i: v2 U0 ?# a  { array[n] = value;1 V% @- N) i0 h! m* `4 ?
  n++;& \! a% {2 e# O( w8 ^  Q% p
  }4 b6 p% W3 V  w6 _/ I4 p4 ?
  if (n >= k)
8 B1 c; q7 ]0 x  break;
+ ]9 O2 i9 h. v* l8 a  value++;
2 s( T* M: ?8 v3 J: U/ i  }
: o' Z3 q+ p$ b3 ~$ Z, I5 ?  }
# r+ l# X) \6 [! L7 H$ E  Z$ V  2.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。函数RData()读取这200个数存放到数组original中。请编写函数numAscend(),其功能是:要求按每个数的后3位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行降序排列。最后调用函数WData(),把结果result输出到文件OUT.dat中。  M) K# W6 [  d4 t( A# N* Y' A
  例如,处理前:6012 5099 9012 7025 8088
' D2 ?9 z/ J- A; k3 f& j# L0 K, N  处理后:9012 6012 7025 8088 5099  H$ F2 U* ], `8 ^: A# g: K* }8 Q
  【答案】
0 d) `. M% a. Z8 n  void numascend()4 I# y2 I" O8 ]0 q+ _
  { int i, j, data;
5 P7 q' N$ w# Y. m5 [4 v* m6 z4 b$ @+ [; ?0 m8 t
  for (i=0; i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-25 09:43 , Processed in 0.333240 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表