三级数据库技术机试-232

上传人:pu****.1 文档编号:487137169 上传时间:2023-06-08 格式:DOC 页数:8 大小:55KB
返回 下载 相关 举报
三级数据库技术机试-232_第1页
第1页 / 共8页
三级数据库技术机试-232_第2页
第2页 / 共8页
三级数据库技术机试-232_第3页
第3页 / 共8页
三级数据库技术机试-232_第4页
第4页 / 共8页
三级数据库技术机试-232_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《三级数据库技术机试-232》由会员分享,可在线阅读,更多相关《三级数据库技术机试-232(8页珍藏版)》请在金锄头文库上搜索。

1、三级数据库技术机试 -232( 总分: 100.00 ,做题时间: 90 分钟 )一、上机题( 总题数: 5,分数: 100.00)1. 已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat() 把这些数存入数组 a 中。请编写 函数 jsVal() ,其功能是: 把千位数字和十位数字重新组成一个新的十位数 ab( 新十位数的十位数字是原四 位数的千位数字, 新十位数的个位数字是原四位数的十位数字 ) ,以及把个位数字和百位数字组成另一个新 的十位数 cd( 新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字 ) , 如果abcd ,

2、 ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满 足此条件的四位数按从大到小的顺序存入数组 b 中,并计算满足上述条件的四位数的个数 cnt 。最后 main() 函数调用写函数 writeDat(),把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序已经给出。程序中已定义数组: a200 , b200 ;已定义变量: cnt。请勿改动数据文件 IN.DAT 中的任何数据及主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。 #include #define MAX 200int aM

3、AX,bMAX,cnt=0;void jsVal() void readDat()int i;FILE *fp; fp=fopen(IN.DAT,r); for(i=0;i MAX;i+) fscanf(fp,%d, ai); fclose(fp);void writeDat()FILE *fp;int i;fp=fopen(OUT.DAT,w); fprintf(fp,%d/n,cnt);for(i=0;i cnt;i+)fprintf(fp,%d/n,bi);fclose(fp);void main()int i;readDat(); jsVal();printf(:满足条件的数 =%d/

4、n,cnt);for(i=0; i cnt;i+)printf(%d,bi);printf(/n); writeDat();分数: 20.00 ) 正确答案: (void jsVal()int i,thou,hun,ten,data,j;int ab.cd;for(i=0;i cd & ab%2=0& & ab%5=Qk & cd%2!=0) /*若新组成的两个数 ab cd且ab为偶数并能被5整除并且cd是奇数的话*/bcnt=ai; /* 将此数存入数组 b*/cnt+; /* 让计数值 cnt 增 1*/* 对数组 b 的前 cnt 个数进行选择排序 */for(i=0;i cnt-1;

5、i+)for(j=i+1;j cnt;j+)if(bi bj) /* 前面的数小于后面的数则交换 ,即降序排列 */data=bi;bi=bj;bj=data;)解析:2. 已知数据文件in.dat中存有300个四位数,并已调用读函数 readDat()把这些数存入数组 a中。请编写 函数jsValue(),其功能是:求出干位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt ,再求出所有满足此条件的四位数平均值 pjz1 ,以及不满足此条件的四位数平均值 pjz2 ,最后调用写函数 writeDat() ,把结果输出到 out.dat 文件中。例如: 6712, 6+2=7+1,则该

6、数满足条件计算平均值 pjz1 ,且个数 cnt=cnt+1 。8129, 8+9 1+2,则该数不满足条件计算平均值pjz2 。注意:部分源程序已经给出。程序中已定义数组: a300 ;已定义变量: cnt 、pjz1 、pjz2 。请勿改动主函数 main() 、读函数 readDat() 和写函数 writeDat() 的内容。#include int a300,cnt=0;double pjz1=0.0,pjz2=0.0;void jsValue()void readDat()FILE *fp;int i; fp=fopen(in.dat,r);for(i=0;i v 300;i+)f

7、scanf(fp,%d,ai);fclose(fp);void writeDat()FILE *fp; fp=fopen(out.dat,w);fprintf(fp,%d/n%7.2f/n%7.2f/n,cnt,pjz1,pjz2);fclose(fp);main()readDat();jsValue();writeDat();printf(cnt=%d/n 满足条件的平均值 pzj1=%7.2f/n 不满足条件的平均值 pzj2=%7.2f/n,cnt,pjz1,pjz2);分数: 20.00 ) 正确答案: (void jsVahe ()int i,n=0,thou,hun,ten,dat

8、a;for(i=0;i v 300;i+) /*循环以遍历数组 a中的所有300个四位数*/thou=ai/1000; /* 取当前数的千位数字 */hun=ai%1000/100; /* 取当前数的百位数字 */ ten=ai%100/10; /* 取当前数的十位数字 */ data=ai%10; /* 取当前数的个位数字 */if(thou+data=hun+ten) /* 如果千位加个位等于百位加十位的话 */ cnt+; /* 让计数值 cnt 增 1*/ pjz1+=ai; /* 将此数累加到 pjz1 中*/ else /* 否则让计数值 n 增 1, 将此数累加 Npjz2 中

9、*/n+;pjz2+=ai;pjz1/=cnt; /* 计算符合条件的数的平均值 */pjz2/=n; /* 计算不符合条件的数的平均值 */)解析:3. 函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入字符串数组xx中。请编写函数SortCharA() ,其功能是: 以行为单位对字符按从小到大的顺序进行排序, 排序后的结果仍按行重新存入字 符串数组xx中,最后调用函数 WriteDat(),把结果xx输出到OUT.DAT文件中。例如,原文: dAe, BfCCCbbAA结果: ,.ABCdefAACCbb原始数据文件存放的格式是:每行的宽度均小于 80 个字符 ( 含标点

10、符号和空格 )。 注意:部分源程序已经给出。请勿改动主函数 main() 、读数据函数 ReadDat() 和输出数据函数 WriteDat() 的内容。#include stdio.h #include string.h#include conio.h文章的总行数 */char xx5080; int maxline=0; /* int ReadDat(void); void WriteDat(void); void SortCharA(void) void main()if(ReadDat()printf( 数据文件 IN.DAT 不能打开 !/n/007);return;SortChar

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

12、se(fp);分数: 20.00 ) 正确答案: (void SortCharA(void)int i,j,k,Strl;char eh;/* 循环以遍历英文文章的每一行 */for(i=0;i maxline;i+)strl=strlen(xxi);/* 用选择排序法对当前行进行排序 */for(j=0;j strl-1;j+)for(k=j+1;k xx【i【k) /* 前面的字符大于后面的字符则交换两者 , 所以此排序是升序排序 */ch=xxij;xxij=xxik;xxik=ch;)解析:4. 已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()

13、把这些数存入数组 a 中。请编写 函数 jsVal() ,其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值 加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt 并把这些四位数按从小到大的顺序存入数组 b 中,最后调用写函数 writeDat() ,把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT文件中。注意:部分源程序已经给出。程序中已定义数组: a200 ,b200 ;已定义变量: cnt 。请勿改动数据文件IN . DAT中的任何数据及主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int aMAX,bMAX,cnt=0;void jsVal()void readDat()int i;FILE *fp; fp=fopen(IN.DAT,r);for(i=0;i v MAX; i+)fscanf(fp,%d,ai);f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号