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

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

1、三级数据库技术-534 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.函数 Rdata()实现从文件 in.dat 中读取一篇英文文章存入到字符串数组 string 中,请编写函数CharLeft(),其功能是:以行为单位把字符串中的所有字符的 ASCII 值左移 4 位,如果左移后,其字符的ASCII 值小于等于 32 或大于 100,则原字符保持不变,否则就把左移后的字符 ASCII 值再加上原字符ASCII 值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组 string 中,最后调用函数

2、 Wdata(),把结果 string 输出到文件 out.dat 中。 原始数据文件存放的格式是:每行的宽度均小于 80 个字符(含标点符号和空格)。 请勿改动主函数 main()、读数据函数 Rdata()和输出数据函数 Wdata()的内容。 #include stdio.h #include string.h #include conio.h char string50 80; int maxline=0; int Rdata (void); void Wdata(void); void CharLeft() void main() if (Rdata () printf(“数据文件

3、in.dat 不能打开! n007“; return; CharLeft (); Wdata (); /*从文件 in.dat 中读取一篇英文文章存入到字符串数组 string 中*/ 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; /*把结果

4、 string 输出到文件 out.dat 中*/ void Wdata() FILE *fp; int i; fp=fopen(“out.dat“, “w“); for (i=0; imaxline; i+) printf(“%sn“, stringi); fprintf(fp, “%sn“, stringi fclose(fp); (分数:100.00)_三级数据库技术-534 答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.函数 Rdata()实现从文件 in.dat 中读取一篇英文文章存入到字符串数组 string 中,请编写函

5、数CharLeft(),其功能是:以行为单位把字符串中的所有字符的 ASCII 值左移 4 位,如果左移后,其字符的ASCII 值小于等于 32 或大于 100,则原字符保持不变,否则就把左移后的字符 ASCII 值再加上原字符ASCII 值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组 string 中,最后调用函数 Wdata(),把结果 string 输出到文件 out.dat 中。 原始数据文件存放的格式是:每行的宽度均小于 80 个字符(含标点符号和空格)。 请勿改动主函数 main()、读数据函数 Rdata()和输出数据函数 Wdata()

6、的内容。 #include stdio.h #include string.h #include conio.h char string50 80; int maxline=0; int Rdata (void); void Wdata(void); void CharLeft() void main() if (Rdata () printf(“数据文件 in.dat 不能打开! n007“; return; CharLeft (); Wdata (); /*从文件 in.dat 中读取一篇英文文章存入到字符串数组 string 中*/ int Rdata(void) FILE *fp; i

7、nt 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; /*把结果 string 输出到文件 out.dat 中*/ void Wdata() FILE *fp; int i; fp=fopen(“out.dat“, “w“); for (i=0; imaxline; i+) printf(“%sn“,

8、stringi); fprintf(fp, “%sn“, stringi fclose(fp); (分数:100.00)_正确答案:()解析:int i,j,str; char ch; for(i=0; imaxline; i+) str=strlen(stringi); /计算文章第 i 行的长度 /*以行为单位把字符串中的所有字符的 ASCII 值左移 4 位,如果左移后,其字符的 ASCII 值大于 32 且小于等于 100,就把左移后的字符 ASCII 值再加上原字符 ASCII 值,得到新的字符仍存入原字符串对应的位置上*/ for(j=0; jstr; j+) ch=stringi

9、j4; /字符 stringij的 ASCII 值左移 4 位,得到新的字符赋给 ch if(ch32 解析 以行为单位把字符串中的所有字符的 ASCII 值左移 4 位,如果左移后,其字符的 ASCII 值小于等于 32 或大于 100,则原字符保持不变,否则就把左移后的字符 ASCII 值再加上原字符 ASCII 值,得到新的字符仍存入原字符串对应的位置上。 首先定义整型循环变量 i、j 和表示字符串长度的变量 str,以及字符局部变量 ch。 在第一层 for 循环语句中,循环变量 i 从 0 开始,依次递增直到其值等于 maxline,在循环体中,首先对字符串 stringi利用库函数 strlen()求其长度,把此值赋给变量 str。在第二层 for 循环语句中,循环变量 j 开始 0,依次递增直到其值等于 str,把字符 stringij的 ASCII 值左移 4 位后所得到字符赋给变量 ch,再用 if 语句判断 ch 的值是否大于 32 并且小于等于 100,如果成立,则把 ch 的值与stringij的值相加,所得的新值保存在 stringij中。

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

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

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