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

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

1、三级数据库技术机试-226 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.编写一个函数 findStr(),该函数的功能是:统计一个以单词组成的字符串中(各单词之间以空格隔开)所含指定长度单词的个数。例如,输入字符串为“you are very good you“,指定要查找的单词的长度为3,则函数返回值是 3。函数 readWriteData()的功能是从 IN.DAT中读取字符串和子字符串,并把统计结果输出到屏幕和文件OUT.DAT中。注意:部分源程序已给出。请勿改动主函数 main()和函数 WriteData(int n)中的内容

2、试题程序:#includestdio.h#includestring.h#includestdlib.hvoid readWriteData();int findStr(char*str,int find_len)void main()char str81;int find_len;int n;system(“CLS“);printf(“input the strings:“);gets(str);printf(“input the length:“);seanf(“%d“,find_len);puts(str);printf(“length=%d“,find_len);n=findStr(

3、str,find_len);printf(“n=%d“,n);readWriteData();void readWriteData()char str81,substr11;int n,len,i=0;FILE*rf,*wf;rf=fopen(“IN.DAT“,“r“);wf=fopen(“OUT.DAT“,“W“);while(i3)fgets(str,80,rf);fgets(substr,10,rf);len=substr0-0;n=findStr(str,len);fprintf(wf,“%d“,n);i+:fclose(rf);felose(wf);(分数:100.00)_三级数据库

4、技术机试-226 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.编写一个函数 findStr(),该函数的功能是:统计一个以单词组成的字符串中(各单词之间以空格隔开)所含指定长度单词的个数。例如,输入字符串为“you are very good you“,指定要查找的单词的长度为3,则函数返回值是 3。函数 readWriteData()的功能是从 IN.DAT中读取字符串和子字符串,并把统计结果输出到屏幕和文件OUT.DAT中。注意:部分源程序已给出。请勿改动主函数 main()和函数 WriteData(int n)中的内容。试题程序:

5、includestdio.h#includestring.h#includestdlib.hvoid readWriteData();int findStr(char*str,int find_len)void main()char str81;int find_len;int n;system(“CLS“);printf(“input the strings:“);gets(str);printf(“input the length:“);seanf(“%d“,find_len);puts(str);printf(“length=%d“,find_len);n=findStr(str,fi

6、nd_len);printf(“n=%d“,n);readWriteData();void readWriteData()char str81,substr11;int n,len,i=0;FILE*rf,*wf;rf=fopen(“IN.DAT“,“r“);wf=fopen(“OUT.DAT“,“W“);while(i3)fgets(str,80,rf);fgets(substr,10,rf);len=substr0-0;n=findStr(str,len);fprintf(wf,“%d“,n);i+:fclose(rf);felose(wf);(分数:100.00)_正确答案:(int f

7、indStr(char*str,int find len)int str_len,i,count=0,mark=-1;str_len=strlen(str);/*求出字符串的长度*/for(i=0;istr_len;i+)if(*(str+i)z|*(str+i)A|(*(str+i)Z*(str+i)a)/*如果是非字母符号*/if(i-mark=find_len+1)count+;/*如果两个非字母符号当中的字母个数等于所要查找的长度,则将计数器加 1*/mark=i;/*将 i记成标记*/if(markstr_len-1str_len-1-mark=find_len)count+;/*如果是最后一个单词,当其长度等于所要查找的长度时就将计数器加 1*/return count;)解析:解析 本题主要考查如何在字符串中找单词。本程序将单词界定为,两个相邻的非字母符号间的字母为一个单词。所以在程序中通过找两个非字母符号之间字母的个数来确定单词的长度。如果单词长度等于要求查找的长度,则将计数器加 1。在查找时应注意一行中的第一个单词和最后一个单词的特殊性,它们只有一侧有非字母符号,故要将其单独处理。

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

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

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