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

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

1、三级数据库技术机试-196 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.函数 Rdata()实现从文件 IN.dat 中读取一篇英文文章存入字符串数组 string 中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组 string 中。最后调用函数 Wdata(),把结果 string 输出到 OUT.dat 文件中。例如,原文:dAe, BfC.CcbbAA结果:,. ABCdefAACbbc原始数据文件存放的格式是:每行的宽度均小于 80 个字符(含标点符号

2、和空格)。注意:部分源程序已经给出。请勿改动主函数 main()、读数据函数 Rdata()和输出数据函数 Wdata()的内容。#include stdio.h#include string.h#include conio.hchar string 50 80;int maxline = 0; /* 文章的总行数 */int Rdata (void);void Wdata (void);void SortCharA(void)void main ()if (Rdata ()printf(“数据文件 IN. dat 不能打开! /n/007“);return;SortCharA ();Wdat

3、a ( );int Rdata (void)FILE *fp;int i = 0;char *p;if (fp = fopen(“IN. dat“, “r“) = NULL)return 1;while (fgets(stringi, 80, fp) != NULL)p = strchr(stringi, /n);if (p)*p = 0;i+;maxline = i;fclose (fp);return 0;void Wdata (void)FILE *fp;int i;fp = fopen(“OUT. dat“, “w“);for (i=0; imaxline; i+)printf(“%s

4、/n“, stringi);fprintf(fp, “%s/n“, stringi);fclose (fp);(分数:100.00)_三级数据库技术机试-196 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.函数 Rdata()实现从文件 IN.dat 中读取一篇英文文章存入字符串数组 string 中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组 string 中。最后调用函数 Wdata(),把结果 string 输出到 OUT.dat 文件中。例如,原文:d

5、Ae, BfC.CcbbAA结果:,. ABCdefAACbbc原始数据文件存放的格式是:每行的宽度均小于 80 个字符(含标点符号和空格)。注意:部分源程序已经给出。请勿改动主函数 main()、读数据函数 Rdata()和输出数据函数 Wdata()的内容。#include stdio.h#include string.h#include conio.hchar string 50 80;int maxline = 0; /* 文章的总行数 */int Rdata (void);void Wdata (void);void SortCharA(void)void main ()if (Rd

6、ata ()printf(“数据文件 IN. dat 不能打开! /n/007“);return;SortCharA ();Wdata ( );int Rdata (void)FILE *fp;int i = 0;char *p;if (fp = fopen(“IN. dat“, “r“) = NULL)return 1;while (fgets(stringi, 80, fp) != NULL)p = strchr(stringi, /n);if (p)*p = 0;i+;maxline = i;fclose (fp);return 0;void Wdata (void)FILE *fp;i

7、nt i;fp = fopen(“OUT. dat“, “w“);for (i=0; imaxline; i+)printf(“%s/n“, stringi);fprintf(fp, “%s/n“, stringi);fclose (fp);(分数:100.00)_正确答案:(void SortCharA (void) int i, j, k, str1;char ch;for (i=0; imaxline; i+) str1 = strlen(stringi);for (j=0; jstr1-1; j+)for (k=j+1; kstr1; k+)if (stringi j string i k) ch = stringi j;stringi j = stringi k;stringi k = ch;解题思路 这里采用 strlen 字符函数获取字符串的长度;对文章中的每一行的字符利用双重循环进行两两比较,较小的字符往行前放,较大的字符往行后放,这样就实现了以行为单位对字符从小到大的排序。在程序中的语句是 if(stringijstringik)成立,stringij和 stringik就交换数据。)解析:

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

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

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