


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2017年上半年软测试程序员考试问题(案例研究) 2017年上半年软测试程序员考试问题(案例研究)下午问题下午问题问题1 (共20分钟)阅读以下的说明和图,从问题1到问题3回答,并在答卷的对应栏中填写答案。 有二维整数阵列(矩阵) A1:m,1:n,每行元素从左向右增加,各列元素从上向下增加。 以下流程图的目的是在矩阵中找到等于指定整数x的数。 如果找不到,则输出“false”。如果找到一个(可能有多个),则输出“True”和钙元素的后缀I和j (请注意数组元素的后缀从1开始) 。 例如,当查找下一个矩阵中的整数8时,真,4,1246945910671012流程图中所采用的算法从矩阵右上角的元素中提取一个元素,并将其与给定的整数x进行比较(如果需要,可以将元素向左或向下移动一个元素,以查看相同的数字) 【流程图】 【问题】该算法的时间复杂数是() 选项的答案: A.O(1)B.O(m n)C.(m*n)D,O(m n )问题2 (共15点)读取以下说明和c函数,填补函数的差距,并在答案纸的对应栏中填写答案【说明】函数islegal(char*ipath )的功能判定由点十进制数所表示的iPV4地址是否正当。 参数ipadddr提供表示iPV4地址的字符串的开头地址,字符串仅包含数字和“.”。 如果iPV4地址合法则返回1,否则判定反馈0 .是合法的条件是,各十进制的值在整数区间 0,25 ,相邻的两个树之间被“.”分隔,共计4个、3个“.”。 例如,192.168.0.15、1.0.0.1是合法的,192.168.1.256、1.1.1是不合法的。 【函数】intislegal(char*ipath )埃; 信息标志; int cur Val; /curVal表示解析的十进制int decNum=0,dotnum=0/de cnum表示十进制的个数/dotNum用户记录点的个数Char*p=() for (; *p; p)1航空航空航空航空flag=0while(isdigit(*p)0/伟大数字字符curve al=() * p -0() flag=1; PS (PS 255 ) K; 返回0; PS (PS )喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀喀地6、if (); 返回1; return 0; 阅读以下说明和c函数,填补c函数的差距,在答题纸上的对应栏中填写答案。 【说明】字符串是程序中常见的处理对象,用字符串进行子串的对位、插入、删除是一般的运算。 为了在存储字符串时不设置结束标志,另外说明字符串的长度,字符串类型定义如下: Typedef struct Char*str/字符串存储空间的开头地址int lehgth/字符串长度int capacity/存储空间【函数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中的字符串伟“students”、t中的字符串伟“ent”、pos=0,则t在s中第一次出现的位置是4。【c函数1】 int index Str(SString S,SString T,intpos)10000000航空航空航空航空以/s表示的列的长度,更新问题4 (合计15分),阅读以下的说明和c函数,填补函数中的间隙,在答题纸的对应栏上填写答案。 【说明】简单队列是遵循先进先出规则的数据结构,以下用不包含开头节点的单向链表来表示简单队列。 函数enqueue(queue *q,KeyType new_elem )的功能是将元素new_elem添加到队列的末尾。 函数Dnqueue(queue *q,KeyType *elem )的功能从队列中删除非空队列的队列标头元素,并使用该参数带走刚进入队列的元素。 以单向链表表示的队列如图4-1所示。 图4-1单向循环链表中显示的队列图像队列、链表节点等相关类型为: enum errOr,OK; typedef int KeyType; typedefstructqmode#typedata; 结构qnode * next; qNode、*Linkqueue; 类型结构intsize; 链路:队列区域; queue; 【c函数】输入函数(queue * q,KeyType new_elem) /元素new_elem进入队列qNode*p的p=(qNode*p * ) malloc (大小(qnode ) ); PS (! p )返回错误; P-data=new_elem; if(q-rear) P-next=q-rear-next; (); AAAR p-next=p; 0航空航空航空航空653 q-size; 返回确认; intDequeue(queue*q、KeyType*elem) /输出队列qNode*p; if(0=q-size)/是空队列返回错误; P=(); /p指向开头元素节点* elem=p-data q-rear-next=(); /从链表中删除队列元素节点的if() )/已删除队列的第一个节点是队列中唯一的节点q-rear=NULL/空队列free(p ); q-size-; 返回确认; 问题5 (共计15分)请阅读以下说明和Java程序,填补代码差距,并在答题纸上的对应栏中填写答案。 【说明】以下的Jave代码是简单的客户关系管理系统(CrM ),实现了从工厂(Customerrfactory )对象创建客户(Customer )对象的功能。 客户有成功的客户(realCustomer )和空客户(NullCustomer )。 空客户对象是在不满足特定条件时创建或检索的对象。 类之间的关系如图5-1所示。 【Java代码】abstractclasscustomer执行protectedstringname ()布尔is nil () () string getname (); classrealcustomer()customer是publicrealcustomer(stringname )和返回false; classnullcustomer()customer是公共字符串getname (); return notavailableinkcustomerdatabase ;publicbooleanisnil (); 返回真;classcustomerfactory public string names= rob , Joe , Julie publiccustomergetcustomer (string name ) for (inti=0; IIS客户(); Crs-getCustomer (); 删除CRS; return ();/*程序的输出是customerrobtonavailityincustomerdataberdatabercommenterdatabaterco【说明】以下c代码是实现从“工厂”(Customerfactory )对象创建“客户”(Customer )对象的功能。 客户有成功的客户(realCustomer )和空客户(NullCustomer )。 空客户对象是在不满足特定条件时创建或检索的对象。 类之间的关系如图6-1所示。【c代码】# include # includeusingnamespacestd; 等级客户保护的:字符串名称; 公共: (1)球is nil ()=0; (2)串getname ()=0;等级srealcustomer (3) public : real customer (string name ) this-name=name; bool is nil () 返回假; string getName() return name; 等等classnullcustomer (4) public : booleisnil () return true; 字符串getname () return notavailableinkdatabase ; 等等classcustomerfactory p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论