全国计算机三级网络机试题及答案分析..doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全国计算机三级网络机试题及答案分析.

第一题: 已知数据文件IN1.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal( ),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT1.DAT文件。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 )和写函数writeDat()的内容。 试题程序: #include stdio.h #define MAX 200 int a[MAX],b[MAX],cnt=0; void writeDat(); void jsVal( ) { { int i; FILE *fp; fp=fopen(IN1.DAT,r); for(i=0;iMAX;i++) fscanf(fp,%d,a[i]); fclose(fp); } void main() { int i; readDat(); jsVal(); printf(满足条件的数=%d\n,cnt); for(i=0;icnt;i++) printf(%d\n,b[i]); printf(\n); writeDat(); } void writeDat() { FILE *fp; int i; fp=fopen(out1.dat,w); fprintf(fp,%d\n,cnt); for(i=0;icnt;i++) fprintf(fp,%d\n,b[i]); fclose(fp); } 【答案】 void jsVal( ) { int i,j; /*定义循环控制变量*/ int a1,a2,a3,a4; /*定义变量保存4位数的每位数字*/ int temp;/*定义数据交换时的暂存变量*/ for(i=0;i200;i++) /*逐个取每一个4位数*/ { a4=a[i]/1000; /*求4位数的千位数字*/ a3=a[i]%1000/100;/*求4位数的百位数字*/ a2=a[i] %100/10; /*求4位数的十位数字*/ a1=a[i] %10; /*求4位数的个位数字*/ if(a4%2!=0 a3%2!=0 a2%2!=0 a1%2!=0) /*如果4位数各位上的数字均是奇数*/ { b[cnt]=a[i]; /*将满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ }} for(i=0;icnt-1;i++) /*将数组b中的数按从大到小的顺序排列*/ for(j=i+1;jcnt;j++) if(b[i]b[j]) { temp=b[i]; b[i]=b[j]; b[j]=temp; } }请勿改动主函数main()、读函数readDat( 【解析】根据题意可知,函数jsVal()要实现两个功能:一是找出满足条件的那些数,并将其存放在数组b中;二是对数组b中的数进行从大到小的排序。 首先要找出满足条件的数,其关键在于判断每个数的每一位对应的数是否奇数,即判断是否能被2整除。 其次,将满足条件的数存入数组b中,并用变量cnt来统计数组b中元素的个数。 最后,将所有满足条件的数取出后利用选择法对其进行排序,即用当前元素依次同它后面的元素进行比较,发现有大于该数的数,就进行交换。 第二题: 已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数 jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat() 把结果cnt及数组b中符合条件的4位数输出到 OUT2.DAT文件中。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include stdio.h #define MAX 200 int a[MAX], b[MAX], cnt = 0; void writeDat(); void jsVal() { } void readDat() { int i; FILE *fp; fp=fopen(IN2.DAT,r); for(i=0;iMAX;i++) fscanf(fp, %d, a[i]); fclose(fp); } void main() {

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档