试题

3月计算机三级上机题库及答案

时间:2025-06-01 13:28:24 试题 我要投稿

2016年3月计算机三级上机题库及答案

  1.已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

  注意: 部分源程序存在文件PROG1.C文件中。

  程序中已定义数组: a[200], b[200], 已定义变量: cnt

  请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

  -------------------------

  PROG1.C

  #include

  #define MAX 200

  int a[MAX], b[MAX], cnt = 0;

  void jsVal()

  {int I,thou,hun,ten,data,j;

  int ab,cd;

  for(I=0;I<200;I++)

  {thou=a[I]/1000; hun=a[I]%1000/100;

  ten=a[I]%100/10; data=a[I]%10;

  ab=10*thou+ten; cd=10*data+hun;

  if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)

  {b[cnt]=a[I];cnt++;}

  }

  for(I=0;I

  for(j=I+1;j

  if(b[I]

  {data=b[I]; b[I]=b[j];b[j]=data;}

  }

  void readDat()

  { int i ;

  FILE *fp ;

  fp = fopen("in.dat", "r") ;

  for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;

  fclose(fp) ;

  }

  void main()

  { int i ;

  readDat() ;

  jsVal() ;

  printf("满足条件的数=%d\n", cnt) ;

  for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;

  printf("\n") ;

  writeDat() ;

  system("pause");

  }

  writeDat()

  { FILE *fp ;

  int i ;

  fp = fopen("out.dat", "w") ;

  fprintf(fp, "%d\n", cnt) ;

  for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;

  fclose(fp) ;

  }

  IN.DAT

  7153 8129 5795 2896 3019 7747 7607 8145 7090 4140

  8626 7905 3735 9620 8714 9496 3640 5249 7671 5925

  4687 2982 9387 6478 2638 2793 8298 8246 5892 9861

  9110 2269 6951 9800 2439 5339 1064 9994 6762 5752

  1001 1030 7989 2845 2958 3820 3010 9486 9798 4014

  2783 1604 1628 6466 4101 4128 7127 3262 6332 2076

  1860 5834 4580 9057 2614 7852 3789 2897 9194 6317

  6276 4285 5610 6945 9137 8348 5434 9162 4303 6779

  5025 5137 4630 3535 4048 2697 2438 9791 3903 3650

  4899 1557 4745 2573 6288 5421 1563 9385 6545 5061

  3905 1074 7840 4596 7537 5961 8327 2104 1055 8317

  1282 5368 6571 5440 8274 1919 6789 4542 3570 1500

  7044 9288 5302 7577 4018 4619 4922 2076 3297 5898

  1699 9276 4439 2729 8725 7507 2729 6736 2566 3227

  7901 2973 2353 4805 2546 3406 4824 2060 8645 5886

  7549 9279 3310 5429 6344 4100 9604 1146 9234 6202

  3477 1492 4800 2194 9937 1304 3454 5477 9230 5382

  4064 8472 8262 6724 7219 9968 3398 4952 4130 6953

  1791 4229 5432 8147 5409 4275 5091 2278 6192 4898

  6808 8866 3705 3025 2929 1503 5298 2233 5483 3635

  OUT.DAT

  4

  9288

  8866

  8626

  3262

  2.已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字), 如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数, 同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中, 并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

  注意: 部分源程序存在文件PROG1.C文件中。

  程序中已定义数组: a[200], b[200], 已定义变量: cnt

  请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

  -------------------------

  PROG1.C

  #include

  #define MAX 200

  int a[MAX], b[MAX], cnt = 0;

  void jsVal()

  {int I,thou,hun,ten,data,j;

  int ab,cd;

  for(I=0;I<200;I++)

  {thou=a[I]/1000; hun=a[I]%1000/100;

  ten=a[I]%100/10; data=a[I]%10;

  ab=10*thou+ten; cd=10*data+hun;

  if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)

  {b[cnt]=a[I];cnt++;}

  }

  for(I=0;I

  for(j=I+1;j

  if(b[I]

  {data=b[I]; b[I]=b[j];b[j]=data;}

  }

  void readDat()

  { int i ;

  FILE *fp ;

  fp = fopen("in.dat", "r") ;

  for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;

  fclose(fp) ;

  }

  void main()

  { int i ;

  readDat() ;

  jsVal() ;

  printf("满足条件的数=%d\n", cnt) ;

  for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;

  printf("\n") ;

  writeDat() ;

  system("pause");

  }

  writeDat()

  { FILE *fp ;

  int i ;

  fp = fopen("out.dat", "w") ;

  fprintf(fp, "%d\n", cnt) ;

  for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;

  fclose(fp) ;

  }

  IN.DAT

  7153 8129 5795 2896 3019 7747 7607 8145 7090 4140

  8626 7905 3735 9620 8714 9496 3640 5249 7671 5925

  4687 2982 9387 6478 2638 2793 8298 8246 5892 9861

  9110 2269 6951 9800 2439 5339 1064 9994 6762 5752

  1001 1030 7989 2845 2958 3820 3010 9486 9798 4014

  2783 1604 1628 6466 4101 4128 7127 3262 6332 2076

  1860 5834 4580 9057 2614 7852 3789 2897 9194 6317

  6276 4285 5610 6945 9137 8348 5434 9162 4303 6779

  5025 5137 4630 3535 4048 2697 2438 9791 3903 3650

  4899 1557 4745 2573 6288 5421 1563 9385 6545 5061

  3905 1074 7840 4596 7537 5961 8327 2104 1055 8317

  1282 5368 6571 5440 8274 1919 6789 4542 3570 1500

  7044 9288 5302 7577 4018 4619 4922 2076 3297 5898

  1699 9276 4439 2729 8725 7507 2729 6736 2566 3227

  7901 2973 2353 4805 2546 3406 4824 2060 8645 5886

  7549 9279 3310 5429 6344 4100 9604 1146 9234 6202

  3477 1492 4800 2194 9937 1304 3454 5477 9230 5382

  4064 8472 8262 6724 7219 9968 3398 4952 4130 6953

  1791 4229 5432 8147 5409 4275 5091 2278 6192 4898

  6808 8866 3705 3025 2929 1503 5298 2233 5483 3635

  OUT.DAT

  4

  8317

  7577

  5795

  1791

【3月计算机三级上机题库及答案】相关文章:

2016年3月计算机三级《数据库技术》上机题库及答案08-16

计算机三级网络技术上机题库及答案05-13

计算机三级《数据库技术》上机题库及答案08-25

3月计算机三级信息安全技术上机试题及答案08-06

2016计算机三级数据库上机题库及答案08-21

计算机三级数据库上机题库及答案201605-06

2016年计算机三级上机题库08-31

2016年9月计算机二级《C++》上机题库及答案09-01

2016年3月计算机三级网络技术上机题及答案09-19