2017年上半年软考程序员考试复习真题(案例分析).pdf

2017年上半年软考程序员考试复习真题(案例分析).pdf

ID:56791555

大小:213.31 KB

页数:18页

时间:2020-07-11

2017年上半年软考程序员考试复习真题(案例分析).pdf_第1页
2017年上半年软考程序员考试复习真题(案例分析).pdf_第2页
2017年上半年软考程序员考试复习真题(案例分析).pdf_第3页
2017年上半年软考程序员考试复习真题(案例分析).pdf_第4页
2017年上半年软考程序员考试复习真题(案例分析).pdf_第5页
资源描述:

《2017年上半年软考程序员考试复习真题(案例分析).pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2017年上半年软考程序员考试真题(案例分析)下午试题试题一(共20分)阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左至右是递增的,每列元素从上到下是递增的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出“false”;只要找到一个(可能有多个)就输出“True”以及钙元素的下标i和j(注意数组元素的下标从1开始)。例如,在如下矩阵中查找整数8,则输出伟:True,4,1246945910671012891113流程图中采用的算法如下:从矩阵的右上角元素开始,按

2、照一定的路线逐个取元素与给定整数X进行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找不到)。【流程图】【问题】该算法的时间复杂数是()供选择答案:A.O(1)B.O(m+n)C.(m*n)D,O(m²+n²)试题二(共15分)阅读下列说明和C函数,填补函数中的空缺,将解答填入答案纸的对应栏目内。【说明】函数isLegal(char*ipaddr)的功能是判断以点分十进制数表示的iPV4地址是否合法。参数ipadddr给出表示iPV4地址的字符串的首地址,串中仅含数字字符和“.”。若iPV4地址合法则返回1,否则反馈0.判定伟合法

3、的条件是:每个十进制数的值位于整数区间[0,25],两个相邻的树之间用“.”分隔,共4个数、3个“.”。;例如,192.168.0.15、1.0.0.1是合法的,192.168.1.256、1.1..1是不合法的。【函数】intisLegal(char*ipaddr)﹛intflag;intcurVal;//curVal表示分析出的一个十进制数intdecNum=0,dotNum=0;//decNum用于记录十进制数的个数//dotNum用户记录点的个数Char*p=()for(;*p;p++)﹛curVal=0;flag=0While(isdigit(*p))﹛/

4、/判断是否伟数字字符CurVal=()+*p-′0′;()flag=1;﹜if(curVal>255)﹛return0;﹜if(flag)﹛()﹜if(*p=′.′﹛dotNum++;﹜﹜if()﹛return1;﹜return0;﹜【试题三】阅读下列说明和C函数,填补C函数中的空缺,将解答填入答案纸的对应栏目内。【说明】字符串是程序中常见的一种处理对象,在字符串中进行子串的定位、插入和删除是常见的运算。设存储字符串时不设置结束标志,而是另行说明串的长度,因此串类型定义如下:Typedefstruct﹛Char*str//字符串存储空间的起始地址intlehgth/

5、/字符串长intcapacity//存储空间的容量﹜SString;【函数1说明】函数indexStr(S,T,pos)的功能是:在S所表示的字符串中,从下标pos开始查找T所表示字符串首次出现的位置。方法是:第一趟从S中下标为pos、T中下标伟0的字符开始,从左往右逐个对于来比较S和T的字符,直到遇到不同的字符或者到达T的末尾。若到达T的末尾,则本趟匹配的起始下标pos为T出现的位置,结束查找;若遇到了不同的字符,则本趟匹配失效。下一趟从S中下标pos+1处的字符开始,重复以上过程。若在S中找到T,则返回其首次出现的位置,否则返回-1。例如,若S中的字符串伟″st

6、udentsents″,T中的字符串伟″ent″,pos=0,则T在S中首次出现的位置为4。【C函数1】intindexStr(SStringS,SStringT,intpos)﹛inti,j:i(S.length<1

7、

8、S.length

9、删除字符串S中所有与T相同的子串,其处理过程为:首先从字符串S的第一个字符(下标为0)开始查找子串T,若找到〈得到子串在S中的起始位置),则将串S中子串T之后的所有字符向前移动,将子串T覆盖,从而将其删除,然后重新开始查找下一个子串T,若找到就用后面的宇符序列进行覆盖,重复上述过程,直到将S中所有的子串T删除。例如,若字符串S为“12ab345abab678”、T为“ab”。第一次找到"ab"时(位置为(2),将"345abab678"前移,S中的串改为"12345abab678",第二次找到"ab"时(位置为5);将ab678前移,S中的串改为"12345ab

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。