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

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

1、三级数据库技术-521 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.函数 reaaDat()是从文件 in.dat中读取 20行数据存放到字符串数组 xx中(每行字符串长度均小于 80)。请编制函数 jsSort(),其函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx中,最后调用函数 writeDat()把结果 xx输出到文件 out.dat中。 条件:字符串从中间一分为二,左边部分按字符的 ASCII值升序排序,右边部分不变,左边经排序后再与右边部分进行交换。如果原字符串长度为

2、奇数,则最中间的字符不参加处理,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 d c b a h g f e 4 3 2 1 9 8 7 6 5 则处理后字符串 h g f e a b c d 8 7 6 5 9 1 2 3 4 请勿改动数据文件 in.dat中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include stdio.h #include string.h void readDat(); void writeDat(); char xx20 80; void jsSort() void ma

3、in() readDat (); jsSort (); writeDat (); /*从文件 in.dat中读取 20行数据存放到字符串数组 xx中*/ void readDat() FILE *in; int i=0; char *p; in=fopen(“in.dat“, “r“); while(i20 if(p) *p=0; i+; fclose (in); /*把结果 xx输出到文件 out.dat中*/ void writeDat() FILE *out; int i; out=fopen(“out.dat“, “w“); for(i=0; i20; i+) printf(“%sn“

4、 xxi); fprintf(out, “%sn“, xxi); fclose (out); (分数:100.00)_三级数据库技术-521 答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.函数 reaaDat()是从文件 in.dat中读取 20行数据存放到字符串数组 xx中(每行字符串长度均小于 80)。请编制函数 jsSort(),其函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx中,最后调用函数 writeDat()把结果 xx输出到文件 out.dat中。 条件:字符串从中

5、间一分为二,左边部分按字符的 ASCII值升序排序,右边部分不变,左边经排序后再与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 d c b a h g f e 4 3 2 1 9 8 7 6 5 则处理后字符串 h g f e a b c d 8 7 6 5 9 1 2 3 4 请勿改动数据文件 in.dat中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include stdio.h #include string.h void read

6、Dat(); void writeDat(); char xx20 80; void jsSort() void main() readDat (); jsSort (); writeDat (); /*从文件 in.dat中读取 20行数据存放到字符串数组 xx中*/ void readDat() FILE *in; int i=0; char *p; in=fopen(“in.dat“, “r“); while(i20 if(p) *p=0; i+; fclose (in); /*把结果 xx输出到文件 out.dat中*/ void writeDat() FILE *out; int i

7、 out=fopen(“out.dat“, “w“); for(i=0; i20; i+) printf(“%sn“, xxi); fprintf(out, “%sn“, xxi); fclose (out); (分数:100.00)_正确答案:()解析:char ch, str80; int i, j, k, len, p; for(i=0; i20; i+) len= (int) strlen(.xxi); p=len / 2; /*对文章第 i行左半部分的字符中进行升序排列*/ for(j=0; j(p-l); j+) for(k=j+i; kp; k+) /*如果字符 xxij的 A

8、SCII码大于 xxik的 ASCII码值,则两者进行互换*/ if(xxi jxxi k) ch=xxi k; xxi k=xxi j; xxi j=ch; if(len % 2) strcpy(str, xxi +p+1); strncat(str, xxi +p, i); strncat(str, xxi, p); else strcpy(str, xxi +p); strncat(str, xxi, p); strcpy(xxi, str); 解析 以行为单位从字符串左边部分升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理。 通过审题可以发现主要是对字符串左边部分排序时所采用的排序方式不同,参考答案的第 11行,修改 if条件语句的设置即可。

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

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

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