【计算机类职业资格】三级数据库技术-502及答案解析.doc

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

1、三级数据库技术-502 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.在文件 in.dat中存有若干个(个数200)四位数字的正整数,函数 ReadDat()读取这若干个正整数并存入数组 xx中。请编制函数 CalValue(),其功能要求:1求出该文件中共有多少个正整数 totNum;2求出这些正整数中的各位数字之和是偶数的数的个数 totCnt,以及满足此条件的这些正整数的算术平均值totPjz。最后 main()函数调用函数 WriteDat()把所求的结果输出到 out.dat文件中。 请勿改动数据文件 in.dat中的任何

2、数据,主函数 main()、读函数 ReadDat()和输出函数 WriteDat()的内容。 #include stdio.h #define MAXNUM 200 int xxMAXNUM; int totNum=0; /文件 in.dat中共有多少个正整数 int totCnt=0; /符合条件的正整数的个数 double totPjz=0.0; /平均值 int ReadDat(void); void WriteDat(void); void CalValue(void) void main() int i; for(i=0; iMAXNUM; i+) xxi=0; if(ReadDa

3、t() printf(“数据文件 in.dat不能打开!007n“); return; CalValue(); printf(“文件 in.dat中共有正整数=%d 个n“, totNum); printf(“符合条件的正整数的个数=%d 个n“, totCnt); printf(“平均值=%.2lfn“, totPjz); WriteDat(); /*读取这若干个正整数并存入数组 xx中*/ int ReadDat(void) FILE *fp; int i=0; if(fp=fopen(“in.dat“, “r“)=NULL) return 1; while(!feof(fp) fscan

4、f(fp, “%d, “, fclose(fp); return 0; /*把计算结果存入文件 out.dat中*/ void WriteDat(void) FILE *fp; fp=fopen(“out.dat“, “w“); fprintf(fp, “%dn%dn%.2lfn“, totNum, totCnt, totPjz); fclose(fp); (分数:100.00)_三级数据库技术-502 答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.在文件 in.dat中存有若干个(个数200)四位数字的正整数,函数 ReadDat(

5、)读取这若干个正整数并存入数组 xx中。请编制函数 CalValue(),其功能要求:1求出该文件中共有多少个正整数 totNum;2求出这些正整数中的各位数字之和是偶数的数的个数 totCnt,以及满足此条件的这些正整数的算术平均值totPjz。最后 main()函数调用函数 WriteDat()把所求的结果输出到 out.dat文件中。 请勿改动数据文件 in.dat中的任何数据,主函数 main()、读函数 ReadDat()和输出函数 WriteDat()的内容。 #include stdio.h #define MAXNUM 200 int xxMAXNUM; int totNum=

6、0; /文件 in.dat中共有多少个正整数 int totCnt=0; /符合条件的正整数的个数 double totPjz=0.0; /平均值 int ReadDat(void); void WriteDat(void); void CalValue(void) void main() int i; for(i=0; iMAXNUM; i+) xxi=0; if(ReadDat() printf(“数据文件 in.dat不能打开!007n“); return; CalValue(); printf(“文件 in.dat中共有正整数=%d 个n“, totNum); printf(“符合条件

7、的正整数的个数=%d 个n“, totCnt); printf(“平均值=%.2lfn“, totPjz); WriteDat(); /*读取这若干个正整数并存入数组 xx中*/ int ReadDat(void) FILE *fp; int i=0; if(fp=fopen(“in.dat“, “r“)=NULL) return 1; while(!feof(fp) fscanf(fp, “%d, “, fclose(fp); return 0; /*把计算结果存入文件 out.dat中*/ void WriteDat(void) FILE *fp; fp=fopen(“out.dat“,

8、“w“); fprintf(fp, “%dn%dn%.2lfn“, totNum, totCnt, totPjz); fclose(fp); (分数:100.00)_正确答案:()解析:int i, j; long he=0; char num5; for(i=0; i5; i+) numi=0; for(i=0; iMAXNUM; i+) if(xxi) totNum+; for(i=0; itotNum; i+) sprintf(num, “%04d“, xxi); /把 xxi以 4个字符宽度形式输出到字符数组 num中 /*因为 0的 ASCII码值等于 48,所以 num0-48的差

9、就是 xxi的第一位数字,num1-48 的差就是 xxi的第二位数字,num2-48 的差就是 xxi的第三位数字,num3-48 的差就是 xxi的第四位数字*/ j=num0-48+num1-48+num2-48+num3-48; /xxi的各位数字之和赋给 j if(j%2=0) /如果 xxi的各位数字之和是偶数 totCnt+; /totCnt加 1 he+=xxi; /数组元素 xxi累加到变量 he totPjz=(double)he/totCnt; /变量 he除以 totCnt得到符合条件的数的算术平均值 totPjz 解析 读取正数,统计个数,各位数字之和为偶数的数的个数

10、及平均值。 定义整型循环变量 i、j,表示各位数字之和的长整型变量 he以及存储一个四位数的字符数组 num5。 循环变量 i从 0开始,依次递增到 4,对字符数组 num5的每个元素赋初值 0。 循环变量 i从 0开始,依次递增到 MAXNUM-1,对每个数组元素 xxi进行判断,如果 xxi的值非零,则变量 totNum加 1,退出循环时,totNum 的值就是文件 in.dat中存有的四位正整数的个数。 循环变量 i从 0开始,依次递增到 totNum-1,对于每个数组元素 xxi调用库函数 spnnff()以 4个字符宽度形式输出到字符数组 num中,用字符数组 num中的每个元素减去 0的 ASCII码 48,就分别得到xxi这个四位数每位上的数字,并把这四个数字相加赋给变量 j。再对变量 j对 2求余数进行判断其值是否等于 0,如果等于 0,则说明 j是偶数,变量 totCnt加 1,并把 xxi的值累加到变量 he。 退出循环后,把变量 he的类型转换成双精度型再除以 totCnt得到符合条件的数的算术平均值totPjz。

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

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

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