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

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

1、计算机三级数据库技术-20 及答案解析(总分:100.00,做题时间:90 分钟)一、B上机题/B(总题数:5,分数:100.00)1.请编写程序,从 in.dat文件中读取 200个整数至数组 xx中,求出奇数的个数 cnt1和偶数的个数 cnt2以及数组 xx下标为偶数的元素值的算术平均值 pj(保留 2位小数)。结果 cnt1、cnt2、pj 输出到 out.dat文件中。 注意:部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。 #include conio.h #include stdio.h #define N 200 void read dat(int

2、 xxN) int i,j; FILE *fp; fp=fopen(“in.dat“,“r“); for(i=0;i20;i+) for(j=0;j10;j+) fscanf(fp,“%d,“,printf(“%d“,xxi*10+j); printf(“/n“); fclose(fp); void main() int i; int cnt1,cnt2,xxN; long j=0; float pj; fw=fopen(“out.dat“,“w“); read dat(xx); printf(“/n/ncnt1=%d,cnt2=%d,pj=%6.2f/n“,cnt1,cnt2,pj); fp

3、rintf(fw,“%d/n%d/n%6.2f/n“,cnt1,cnt2,pj); fclose(fw); (分数:20.00)_2.请编写程序,从 IN.DAT文件中读取 200个整数至数组 xx中,求出最大数 max及最大数的个数 cnt和数组 xx中能被 3整除或能被 7整除的算术平均值 pj(保留 2位小数)。结果 max、cnt、pj 输出到 OUT.DAT文件中。 注意:部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。 #include conio.h #include stdio.h #define N 200 void read dat(int x

4、xN) int i,j; FILE *fp; fp=fopen(“IN.DAT“,“r“); for (i=0;i20;i+) for (j=0;j10;j+) fscanf(fp,“%d,“, printf(“%d“,xxi*10+j); printf(“/n“); fclose(fp); void main() int cnt,xxN,max; float pj; FILE *fw; int i,k; long j=0; fw=fopen(“OUT.DAT“,“w“); read dat(xx); /*/ /*/ printf(“/n/nmax=%d,cnt=%d,pj=%6.2f/n“,

5、max,cnt,pj); fprintf(fw,“%d/n%d/n%6.2f/n“,max,cnt,pj); fclose(fw); (分数:20.00)_3.函数 ReadDat()实现从 IN.DAT文件中读取 1000个十进制整数到数组 xx中。请编写函数 Compute()分别计算出 xx中奇数的个数 odd,偶数的个数 even,以及所有数的平均值 aver和方差 totfc的值,最后调用函数 WriteDat(),把结果输出到 OUT.DAT文件中。 计算方差的公式如下: (分数:20.00)_4.请编写程序,从 in.dat文件中读取 200个整数至数组 xx中,求出奇数的个数

6、cnt1和偶数的个数 cnt2以及数组 xx中下标为奇数的元素的算术平均值 pj(保留 2位小数)。结果 cnt1、cnt2、pj 输出到 out.dat文件中。 注意:部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。 #include conio.h #include stdio.h #define N 200 void read_dat(int xxN) int i,j; FILE *fp; fp=fopen(“in.dat“,“r“); for (i=0;i20;i+) for(j=0;j10;j+) fscanf(fp,“%d,“,printf(“ood“

7、,xxi*10+j); printf(“/n“); fclose(fp); void main() int i,j; long k; int cnt1,cnt2,xxN; float pj; fw=fopen(“out.dat“,“w“); read_dat(xx); printf(“/n/ncnt1=%d,cnt2=%d,pj=%6.2f/n“,cnt1,cnt2,pj); fprintf(fw,“%d/n%d/n%6.2f/n“,cnt1,cnt2,pj); fclose(fw);(分数:20.00)_5.函数 ReadDat()实现从 IN.DAT文件中读取一篇英文文章并存入到字符串数组

8、 xx中。请编写函数encryptChar(),按给定的替代关系对数组 xx中的所有字符进行替代后,仍存入数组 xx的对应位置上,最后调用函数 WriteDat(),把结果 xx输出到 OUT.DAT文件中。 替代关系:f(p)=p*11 mod 256(p 是数组中某一个字符的 ASCII值,f(p)是计算后新字符的 ASCII值),如果计算后 f(p)值小于等于 32或 f(p)对应的字符是大写字母,则该字符不变,否则将 f(p)所对应的字符进行替代。 原始数据文件存放的格式是:每行的宽度均小于 80个字符。 注意:部分源程序已经给出。 请勿改动主函数 main()、读数据函数ReadDa

9、t()和输出数据函数 WriteDat()的内容。 #include stdio.h #include string.h #include conio.h #include ctype.h unsigned char xx5080; int maxline=0; /*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() void main() if (ReadDat() printf(“数据文件 IN.DAT不能打开! /n/007“); return; encryptChar(); WriteDat(); in

10、t ReadDat(void) FILE *fp; int i=0; unsigned char *p; if (fp=fopen(“IN.DAT“,“r“)=NULL) return 1; while (fgets(xxi,80,fp)!=NULL) p=strchr(xxi,/n); if(p) i+; maxline=i; fclose(fp); return 0; void WriteDat(void) FILE *fp; int i; fp=fopen(“OUT.DAT“,“w“); for(i=0;imaxline;i+) printf(“%s/n“,xxi); fprintf(f

11、p,“%s/n“,xxi); fclose(fp); (分数:20.00)_计算机三级数据库技术-20 答案解析(总分:100.00,做题时间:90 分钟)一、B上机题/B(总题数:5,分数:100.00)1.请编写程序,从 in.dat文件中读取 200个整数至数组 xx中,求出奇数的个数 cnt1和偶数的个数 cnt2以及数组 xx下标为偶数的元素值的算术平均值 pj(保留 2位小数)。结果 cnt1、cnt2、pj 输出到 out.dat文件中。 注意:部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。 #include conio.h #include st

12、dio.h #define N 200 void read dat(int xxN) int i,j; FILE *fp; fp=fopen(“in.dat“,“r“); for(i=0;i20;i+) for(j=0;j10;j+) fscanf(fp,“%d,“,printf(“%d“,xxi*10+j); printf(“/n“); fclose(fp); void main() int i; int cnt1,cnt2,xxN; long j=0; float pj; fw=fopen(“out.dat“,“w“); read dat(xx); printf(“/n/ncnt1=%d,

13、cnt2=%d,pj=%6.2f/n“,cnt1,cnt2,pj); fprintf(fw,“%d/n%d/n%6.2f/n“,cnt1,cnt2,pj); fclose(fw); (分数:20.00)_正确答案:(for (i=0,j=0,cnt1=0,cnt2=0;iN;i+) /*循环以遍历数组 xx中的所有数*/ if (xxi%2) cnt1+; /*若当前数为奇数,则让计数值 cnt1增 1*/ else cnt2+; /*否则让计数值 cnt2增 1*/ if (i%2=0) j+=xxi; /*当前数下标为偶数,将之累加到 j中*/ pj=(float)j/(N/2); /*求

14、下标为偶数的平均值*/)解析:2.请编写程序,从 IN.DAT文件中读取 200个整数至数组 xx中,求出最大数 max及最大数的个数 cnt和数组 xx中能被 3整除或能被 7整除的算术平均值 pj(保留 2位小数)。结果 max、cnt、pj 输出到 OUT.DAT文件中。 注意:部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。 #include conio.h #include stdio.h #define N 200 void read dat(int xxN) int i,j; FILE *fp; fp=fopen(“IN.DAT“,“r“); for

15、 (i=0;i20;i+) for (j=0;j10;j+) fscanf(fp,“%d,“, printf(“%d“,xxi*10+j); printf(“/n“); fclose(fp); void main() int cnt,xxN,max; float pj; FILE *fw; int i,k; long j=0; fw=fopen(“OUT.DAT“,“w“); read dat(xx); /*/ /*/ printf(“/n/nmax=%d,cnt=%d,pj=%6.2f/n“,max,cnt,pj); fprintf(fw,“%d/n%d/n%6.2f/n“,max,cnt,

16、pj); fclose(fw); (分数:20.00)_正确答案:(max=xx0; /*令 max等于数组 xx的第 1个数*/ for (i=1,k=0;iN;i+) /*循环从第 2个数开始遍历数组 xx中的所有数*/ if (xximax) max=xxi; /*若当前数比 max大,则把它赋给max */ if (xxi%3=0 | xxi%7=0) /*若当前数能被 3或 7整除,则将其累加至 j中,并让计数值 k增 1 */ j+=xxi; k+; /*再次循环遍历整个数组 xx,统计其中等于 max的数的个数*/ for (i=0,cnt=0;iN;i+) if (xxi=ma

17、x) cnt+; pj=(float)(j*100/k)/100; /*计算平均值(保留 2位小数)*/)解析:3.函数 ReadDat()实现从 IN.DAT文件中读取 1000个十进制整数到数组 xx中。请编写函数 Compute()分别计算出 xx中奇数的个数 odd,偶数的个数 even,以及所有数的平均值 aver和方差 totfc的值,最后调用函数 WriteDat(),把结果输出到 OUT.DAT文件中。 计算方差的公式如下: (分数:20.00)_正确答案:(void Compute(void) int i; for (i=0;i1000;i+) /*循环以遍历数组 xx的所有

18、 1000个数*/ if (xxi%2) odd+; /*如果当前数为奇数,则让计数值 odd增 1 */ else even+; /*否则让计数值 even增 1 */ aver=aver+xxi; /*将当前数累加到 aver中*/ aver /=MAX; /*计算所有数的平均值*/ for (i=0;i1000;i+) /*循环以求所有数的方差*/ totfc +=(xxi-aver)*(xxi-aver)/MAX; )解析:4.请编写程序,从 in.dat文件中读取 200个整数至数组 xx中,求出奇数的个数 cnt1和偶数的个数 cnt2以及数组 xx中下标为奇数的元素的算术平均值

19、pj(保留 2位小数)。结果 cnt1、cnt2、pj 输出到 out.dat文件中。 注意:部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。 #include conio.h #include stdio.h #define N 200 void read_dat(int xxN) int i,j; FILE *fp; fp=fopen(“in.dat“,“r“); for (i=0;i20;i+) for(j=0;j10;j+) fscanf(fp,“%d,“,printf(“ood“,xxi*10+j); printf(“/n“); fclose(fp);

20、void main() int i,j; long k; int cnt1,cnt2,xxN; float pj; fw=fopen(“out.dat“,“w“); read_dat(xx); printf(“/n/ncnt1=%d,cnt2=%d,pj=%6.2f/n“,cnt1,cnt2,pj); fprintf(fw,“%d/n%d/n%6.2f/n“,cnt1,cnt2,pj); fclose(fw);(分数:20.00)_正确答案:(i=j=k=cnt1=cnt2=0; pj=0.0; for (i=0;iN;i+) /*循环以遍历整个数组 xx */ if (xxi%2) cnt1

21、+; /*若当前数为奇数,则让 cnt1增 1 */ else cnt2+; /*否则让计数值 cnt2增 1*/ if (i%2) /*若当前数下标为奇数*/ k +=xxi; /*将该数累加到 k中*/ j+; /*计数值 j增 1*/ pj=(float)k/j; /*计算所有下标为奇数的数的平均值*/)解析:5.函数 ReadDat()实现从 IN.DAT文件中读取一篇英文文章并存入到字符串数组 xx中。请编写函数encryptChar(),按给定的替代关系对数组 xx中的所有字符进行替代后,仍存入数组 xx的对应位置上,最后调用函数 WriteDat(),把结果 xx输出到 OUT.

22、DAT文件中。 替代关系:f(p)=p*11 mod 256(p 是数组中某一个字符的 ASCII值,f(p)是计算后新字符的 ASCII值),如果计算后 f(p)值小于等于 32或 f(p)对应的字符是大写字母,则该字符不变,否则将 f(p)所对应的字符进行替代。 原始数据文件存放的格式是:每行的宽度均小于 80个字符。 注意:部分源程序已经给出。 请勿改动主函数 main()、读数据函数ReadDat()和输出数据函数 WriteDat()的内容。 #include stdio.h #include string.h #include conio.h #include ctype.h un

23、signed char xx5080; int maxline=0; /*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() void main() if (ReadDat() printf(“数据文件 IN.DAT不能打开! /n/007“); return; encryptChar(); WriteDat(); int ReadDat(void) FILE *fp; int i=0; unsigned char *p; if (fp=fopen(“IN.DAT“,“r“)=NULL) return 1; w

24、hile (fgets(xxi,80,fp)!=NULL) p=strchr(xxi,/n); if(p) i+; maxline=i; fclose(fp); return 0; void WriteDat(void) FILE *fp; int i; fp=fopen(“OUT.DAT“,“w“); for(i=0;imaxline;i+) printf(“%s/n“,xxi); fprintf(fp,“%s/n“,xxi); fclose(fp); (分数:20.00)_正确答案:(void encryptChar() int i; char *pf; /*循环以遍历英文文章的每一行*/ for (i=0;imaxline;i+) pf=xxi; /*以字符指针指向当前行行首*/ while(*pf !=0) /*若所指字符不为 0(即字符串结束标志)则循环*/ if (*pf*11%256=A /*指向下一字符*/ continue; /*继续循环*/ *pf=*pf*11%256; /*否则以计算结果替换该字符*/ pf+; /*指向下一字符,准备继续循环*/ )解析:

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

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

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