初级程序员2017年上半年下午真题
试题一
阅读下列说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。
【说明】
设有二维整数数组(矩阵)A[1:m,1:n],其每行元素从左到右是递增的,每列元素从上到下是递增
的。以下流程图旨在该矩阵中需找与给定整数X相等的数。如果找不到则输出“false”;只要找到一
个(可能有多个)就输出“True”以及该元素的下标i和j(注意数组元素的下标从1开始)。
例如,在如下矩阵中查找整数8,则输出伟:True,4,1
2 4 6 9
4 5 9 10
6 7 10 12
8 9 11 13
流程图中采用的算法如下:从矩阵的右上角元素开始,按照一定的路线逐个取元素与给定整数X进
行比较(必要时向左走一步或向下走一步取下一个元素),直到找到相等的数或超出矩阵范围(找
不到)。
【流程图】
图1
问题:1.1 该算法的时间复杂数是()
供选择答案:A.O(1) B.O(m+n) C.O(m*n) D,O(m²+n²)
试题二
阅读下列说明和C函数,填补函数中的空缺,将解答填入答案纸的对应栏目内。
【说明】
函数isLegal(char*ipaddr)的功能是判断以点分十进制数表示的IPV4地址是否合法。参数
ipadddr 给出表示IPV4地址的字符串的首地址,串中仅含数字字符和“.”。若IPV4地址合法则返回
1,否则返回0。判定为合法的条件是:每个十进制数的值位于整数区间[0,255],两个相邻的树之
间用“.”分隔,共4个数、3个“.”。例如,192.168.0.15、1.0.0.1是合法的,
192.168.1.256、1.1..1是不合法的。
问题:2.1 【函数】