[计算机类试卷]国家三级(数据库技术)机试模拟试卷110及答案与解析.doc

上传人:terrorscript155 文档编号:495253 上传时间:2018-11-28 格式:DOC 页数:3 大小:27KB
下载 相关 举报
[计算机类试卷]国家三级(数据库技术)机试模拟试卷110及答案与解析.doc_第1页
第1页 / 共3页
[计算机类试卷]国家三级(数据库技术)机试模拟试卷110及答案与解析.doc_第2页
第2页 / 共3页
[计算机类试卷]国家三级(数据库技术)机试模拟试卷110及答案与解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家三级(数据库技术)机试模拟试卷 110及答案与解析 一、程序设计题 1 已知在文件 IN.dat中存有若干个 (少于 200个 )四位数字的正整数,函数 ReadDat()读取这若干个正整数并存入数组 number中。请编写函数 CalValue(),其功能要求是: 求出文件中共有的正整数个数 totNum; 求这些数右移 1位后,产生的新数是奇数的数的个数 totCnt以及满足此条件的这些数 (右移前的值 )的算术平均值totAve。最后调用函数 writeDat()把所求的结果输出到 OUT.dat文件中。 注意:部 分源程序已经给出。请勿改动主函数 main()、读函数 ReadDa

2、t()和写函数 writeDat()的内容。 #include stdio.h #include conio. h #define MAXNUM 200 int number MAXNUM; int totNum = 0; /* 文件 IN.dst 中共有的正整数个数 */ int totCnt = 0; /* 符合条件的正整数的个数 */ double totAve = 0.0; /* 平均值 */ int ReadDat (void); void writeDat(void); void CalValue(void) void main () int i; for (i=0; i MAXN

3、UM; i+) number i = 0; if (ReadDat() printf (“ 数据文件 IN.dst 不能打开 ! 007n“); return; CalValue (); printf(“ 文件 IN.dst 中共有的正整数个数 =%d个 n“, totNum); printf (“ 符合条件的正整数的个数 =%d个 n“, totCnt); printf(“平均值 =%.2fn“, totAve); writeDat (); int ReadDat (void) FILE *fp; int i = 0; if (fp = fopen(“IN.dat“, “r“) = NULL

4、) return 1; while (!feof(fp) fscanf(fp, “%d,“, fclose (fp); return 0; void writeDat (void) FILE *fp; fp = fopen(“OUT.dat“, “w“); fprintf(fp, “%dn%dn%6.2fn“, totNum, totCnt, totAve); fclose (fp); 国家三级(数据库技术)机试模拟试卷 110答案与解析 一、程序设计题 1 【正确答案】 void CalValue(void) int i, data; for (i=0; i MAXNUM; i+) if (

5、!numberi) break; if (numberi 0) totNum+; data = numberi 1; if (data%2) totCnt+; totAve += numberi; totAve /= totCnt; 解题思路 在 for循环语句中,自变量 i从 0递增到 MAXNUM对数组 number中的每个数进行判断,如果 numberi的值大于 0,说明 numberi的值为正整数,统计正整数个数的变量 totNum加 1;然后 numberi右移 1位得到 data的值;再对 data的值除 2求余数,如果其值为 1,则统计变量 totCnt加 1,同时把 numberi的值加到 totAve上,得到这些数的和。退出循环后,用 totAve的值除以 totCnt,就得到了这些数的算术平均值 totAve。 【知识模块】 三级数据库技 术机试模拟

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

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

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