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

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

1、三级数据库技术-522 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.函数 readDat()是从文件 in.dat中读取 20行数据存放到字符串数组 xx中(每行字符串长度均小于 80)。请编制函数 jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的位置上的字符按其ASCII值从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来位置存放,排序后的结果仍按行重新存入字符串数组 xx中,最后调用函数 writeDat()把结果 xx输出到 out.dat文件中。 例如:位置 0 1 2 3 4 5 6 7 源字

2、符串 h g f e d c b a 则处理后字符串 h a f c d e b g 请勿改动数据文件 in.dat中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include stdio.h #include string.h void readDat(); void writeDat(); char xx20 80; void jsSort() void main () readDat (); jsSort (); writeDat (); /*从文件 in.dat中读取 20行数据存放到字符串数组 xx中*/ void readDa

3、t() 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“, xxi); fprintf(out, “%sn“, xxi); fclose (out); (分数:100.00)_三级数据库技术-522 答案解析(总分:100.00,做题

4、时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.函数 readDat()是从文件 in.dat中读取 20行数据存放到字符串数组 xx中(每行字符串长度均小于 80)。请编制函数 jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的位置上的字符按其ASCII值从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来位置存放,排序后的结果仍按行重新存入字符串数组 xx中,最后调用函数 writeDat()把结果 xx输出到 out.dat文件中。 例如:位置 0 1 2 3 4 5 6 7 源字符串 h g f e d c b a 则处理后字符串 h a

5、 f c d e b g 请勿改动数据文件 in.dat中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include stdio.h #include string.h void readDat(); 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

6、 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“, xxi); fprintf(out, “%sn“, xxi); fclose (out); (分数:100.00)_正确答案:()解析:char ch; int i, j, k; for(i=0; i20; i+) /*对文章第 i行

7、的字符串变量的下标为奇数的位置上的字符按其 ASCII值从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来位置存放*/ for(j=1; j (int) strlen(xxi); j+=2) for(k=j+2; k(int) strlen(xxi); k+=2) /*如果字符 xxij的 ASCII码值大于 xxik的 ASCII码值,则两者进行互换*/ if(xxijxxik) ch=xxik; xxik=xxij; xxij=ch; 解析 以行为单位对字符串变量的下标为奇数的字符按从小到大排序,结果仍按行重新存入字符串数组中。 因为要进行字符之间的互换,所以定义局部字符变量 ch。定义循环变量 i、j、k。 在第一层 for循环中,循环变量 i从 0开始,依次递增直到其值等于或大于 20,在循环体中实现对每行字符串的处理。在循环体中执行第二层 for循环,循环变量 j从 1开始,依次递增 2直到其值等于(int)strlen(xxi),在第三层 for循环中,循环变量 k从 j+2开始,依次递增 2,直到其值等于(int)strlen(xxi),如果字符 xxij的 ASCII码值大于 xxik的 ASCII码值,则两者进行互换,实现字符串 xxi中下标为奇数的位置上的字符按其 ASCII值从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来位置存放的功能。

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

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

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