【计算机类职业资格】三级网络技术机试-155及答案解析.doc

上传人:registerpick115 文档编号:1321869 上传时间:2019-10-17 格式:DOC 页数:3 大小:28KB
下载 相关 举报
【计算机类职业资格】三级网络技术机试-155及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】三级网络技术机试-155及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】三级网络技术机试-155及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、三级网络技术机试-155 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN.DAT中存有 200个四位数,并已调用读函数 ReadDat()把这些数存入数组 a中。请编制函数 jsVal(),其功能是:如果四位数各位上的数均是奇数,则统计出满足此条件的数的个数 cnt,并把这些四位数按从大到小的顺序存入数组 b中。最后,函数 main()调用写函数 writeDat()把结果 cnt及数组 b中符合条件的四位数输出到文件 OUT.DAT中。注意:部分源程序已经给出。程序中已定义数组 a200、b200,已定义变量 cnt。

2、请勿改动数据文件 IN.DAT中的任何数据,以及主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题源程序#includeStdio.h#defime MAX 200int aMAX,bMAX,cnt=0;void WriteDat();void jsVal()void readDat()int i;FILE *fp;fp=fopen(“in.dat“,“r“);for(i=0;iMAX;i+) fscanf(fp,“%d“,fclose(fp);void main()int i;readDat();jsVal();printf(“满足条件的数=%d/n“

3、,cnt);for(i=0;icnt;i+) printf(“%d“,bi);printf(“/n“);writeDat()void writeDat()FILE *fp;int i;fp=fopen(“out.dat“,“w“);fprintf(fp,“%d/n“,cnt);for(i=0;icnt;i+) fprintf(fp,“%d/n“,bi);fclose(fp);(分数:100.00)_三级网络技术机试-155 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN.DAT中存有 200个四位数,并已调用读函数 Rea

4、dDat()把这些数存入数组 a中。请编制函数 jsVal(),其功能是:如果四位数各位上的数均是奇数,则统计出满足此条件的数的个数 cnt,并把这些四位数按从大到小的顺序存入数组 b中。最后,函数 main()调用写函数 writeDat()把结果 cnt及数组 b中符合条件的四位数输出到文件 OUT.DAT中。注意:部分源程序已经给出。程序中已定义数组 a200、b200,已定义变量 cnt。请勿改动数据文件 IN.DAT中的任何数据,以及主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题源程序#includeStdio.h#defime MAX 2

5、00int aMAX,bMAX,cnt=0;void WriteDat();void jsVal()void readDat()int i;FILE *fp;fp=fopen(“in.dat“,“r“);for(i=0;iMAX;i+) fscanf(fp,“%d“,fclose(fp);void main()int i;readDat();jsVal();printf(“满足条件的数=%d/n“,cnt);for(i=0;icnt;i+) printf(“%d“,bi);printf(“/n“);writeDat()void writeDat()FILE *fp;int i;fp=fopen

6、(“out.dat“,“w“);fprintf(fp,“%d/n“,cnt);for(i=0;icnt;i+) fprintf(fp,“%d/n“,bi);fclose(fp);(分数:100.00)_正确答案:(Void jsVal()int i,j,k,flag;int ss4;for(i=0;i200;i+) /*遍历数组 a的所有元素*/ss0=ai/1000; /*分离出元素 ai的千位*/ss1=ai%1000/100;/*分离出元素 ai的百位*/ss2=ai%100/10; /*分离出元素 ai的十位*/ss3=ai%10; /*分离出元素 ai的个位*/for(j=0;j4j

7、;+)if(ss1%2) /*若元素 ai的各个位都不能被 2整除*/flaq=1; /*给标志变量赋 1*/else flag=0;break; /*否则,给标志变量赋 0,并跳出本次循环*/if(flag=1) /*若标志变量为 1,说明数据 ai满足条件*/bcnt=ai;cnt+; /*将 ai保存到数组 b中,统计变量值增加 1*/for(i=O;icnt-1;i+) /*给数组 b中的元素排序*/for(j=i+1;jcnt;j+)if(bibj)k=bi;bi=bj;bj=k;)解析:解析本题主要考查的是数位分解问题。本题主要考查的知识点包括:C 语言循环结构,if 判断语句和逻辑表达式,以及分解多位整数的算术运算。首先用 for循环和变量 f遍历数组的每个元素,对于某一元素 ai用“%”和“/”运算将各个位数分解出来,存放到数组 ss中;使用 for循环和变量 j判断数组 ss中的各个数是否都是奇数,如果是则将标志flag置为 1,如果有一个是偶数则置为 0并跳出循环。如果 flag为 1,则说明满足都是奇数的条件,将该数 ai存入数组 b中,统计变量 cnt的值增加 1。当所有元素遍历完后,对数组 b中的元素使用冒泡排序法进行排序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1