《2023年河南软件水平考试考试考前冲刺卷(8).docx》由会员分享,可在线阅读,更多相关《2023年河南软件水平考试考试考前冲刺卷(8).docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年河南软件水平考试考试考前冲刺卷(8)本卷共分为2大题50小题,作答时间为180分钟,总分100分,60分及格。一、单项选择题(共25题,每题2分。每题的备选项中,只有一个最符合题意) 1.常见的软件开发模型有瀑布模型、演化模型、螺旋模型和喷泉模型等。其中, (11) 适用于需求明确或很少变更的项目。A瀑布模型B迭代模型C螺旋模型D喷泉模型 2. (71) means that every project has a definite beginning and a definite end.AProject phaseBUniqueCClosureDTemporary 3.当评估项目
2、的成本绩效数据时,根据数据与基线的偏差程度将做出不同的反应。例如,10%的偏差可能不需立即做出反应,而100%的偏差将需要进行调查,对成本偏差的判断会使用 (45) 。A变更管理计划B偏差管理计划C绩效衡量计划D成本基准计划 4.在通常情况下,项目利益相关者的不同意见会在 (27) 那里解决。A项目经理B项目发起人C执行组织D客户 5.在面向对象分析的过程中,通常用概念模型来详细描述系统的问题域,而用 (15) 来表示概念模型。A类图B序列图C用例图D构件图 6. (60) 时,组织通常会外购产品或服务。A为了稳定现有人力资源B需要保密C需要加强对产品质量的控制D技术能力匮乏 7.项目范围变更
3、控制,包括 (36) 。A一系列正规的证明文件,用于定义正规项目文件的变更步骤B用于项目需求获取的一些措施,如果没有执行这些措施就不能被变更C审批项目范围变更的一系列过程,包括书面文件、跟踪系统和授权变更所必需的批准级别D一系列文档程序,用于实施技术和管理的指导和监督,以确定和记录项目条款的功能和物理特征、记录和报告变更、控制变更、审核条款和系统,由此来检验其与要求的一致性 8.以下关于信息系统集成的描述中,错误的是 (2) 。A系统集成包括技术、管理和商务等各项工作,管理和商务活动是系统集成工作的核心B计算机网络系统集成实现的关键在于解决系统之间的互连和互操作问题C应用系统集成又称为行业信息
4、化解决方案集成,独立的应用软件供应商成为其中的核心D系统集成的最终交付物是一个完整的系统而不是一个分立的产品 9.以下关于成本估算的描述中,错误的是 (46) 。A一般不考虑关于风险应对方面的信息B针对项目使用的所有资源来估算计划活动成本C成本一般用货币单位(人民币、美元、欧元、日元)来表示D估算完成每项计划活动所需资源的近似成本 10.项目范围确认的依据(输入)不包括 (30) 。A项目管理计划B项目范围说明书C里程碑清单D工作分解结构(WBS)和WBS字典 11.使用因果分析图有助于 (47) 。A探究项目过去的成果B确定项目过程是否失控C对质量问题进行排序D逐步深入研究和讨论质量问题 1
5、2. (69) 不属于项目收尾的工具与技术。A专家判断B转移C项目管理信息系统D项目管理方法论 13.通常,变更控制系统将对 (65) 执行自动批准。A客户提出的建议B突发事件的结果C项目发起人提出的建议D由新规则决定的命令 14. (44) 不是引起项目成本预算变更的直接原因。A项目人员变动B客户对项目需求的新变化C技术的不确定D相关法律、法规的变化 15.若项目变更导致已批准的成本基准计划也发生了变更,则下一步应该 (64) 。A估算范围变更的大小B以文件的形式记录教训C实施批准的范围计划D进行预算更新 16.进行风险监控一般会 (68) 。A制订应急响应策略B进行项目可能性分析C制订风险
6、管理计划D进行预留管理 17.评价一个信息系统时,通常使用 (10) 来衡量系统的可靠性。A平均响应时间B平均修复时间C数据处理速率D平均故障间隔时间 18.在以下RAID技术中,磁盘容量利用率最高的是 (24) 。ARAID0BRAID1CRAID3DRAID5 19.运用关键线路法对项目进度计划进行分析的前提是 (39) 。A每项活动的进行都有足够的资源B网络中只能有一条关键线路C网络中不能存在虚任务D每项工作的持续时间都是明确的、肯定的 20.以下关于信息的描述中,正确的是 (1) 。A信息是一种能源,也是一种物质B信息可以脱离载体独立地传输C信息可以表示事物的特征和运动变化,也可以反映
7、事物之间的联系D信息是对客观事物的性质、状态及相互关系等进行记载的符号 21.某系统集成项目的目标是使人们能往某城市各个超市方便地使用QS银行的信用卡,PH公司负责开发该项目适用的软件,但需要向其他公司购买相应的银行前置终端硬件设备。PH公司负责外包管理的项目经理首先应准备的文件被称为 (37) 。A外包合同B项目范围说明书C项目章程D工作说明书 22.我国计算机软件保护条例中所称的“发表”的含义是指将软件作品 (7) 。A在版权局登记B出版发行C公之于众D以某种物质形式固定下来 23.在合同协议书内应明确注明开工日期、竣工日期和合同工期总日历天数。其中,工期总日历天数应为 (58) 。A招标
8、文件要求的天数B经政府主管部门认可的天数C工程实际需要施工的天数D投标书内投标人承诺的天数 24. (72) from one phase are usually reviewed for completeness and accuracy and approved before work starts on the next phase.ADeliverablesBMilestoneCWorkDProcess 25.以下关于项目干系人管理的描述中,错误的是 (56) 。A项目干系人管理加强了人员的协调行动能力B项目干系人管理提高了干系人的满意度C项目干系人管理帮助解决与干系人相关的事宜D对项
9、目干系人的管理,由项目团队每个成员分别负责 二、多项选择题(共25题,每题2分。每题的备选项中,有多个符合题意) 1. 定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为0时,链表创建结束。(3)编写一个函数disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法
10、释放数据的内存单元。 #include iostxeam. h #include iomanip. h stmct polygon int n; int *x; int *y; polygon *next; ; void Push(polygon*& head, int n) polygon* newNode = new polygon; newNode = new polygon; newNode-next= (1) ; newNode-x = new intn; newNode-y = new intn; newNode-n= (2) ; for(int i=0; i= (3) ; i+)
11、 cout请输入多边形各顶点x、y坐标, 坐标值之间用空格分隔: ; cinnewNode-xinewNode-yi; (4) = head; /在head前不需要额外的* head = newNode; polygon *create() polygon* head = NULL; polygon* tail; int n; cout请输入多边形顶点的个数(顶点个数为0时结束): ; cinn; if(n=O) return (5) ; Push(head, (6) ); tail = head; cout请输入多边形顶点的个数(顶点个数为0时结束): ; cinn; while(n!=0)
12、 Push(tail-next, (7) ); / 在tail-next增加结点 tail = tail-next; /advance tail to point to last node cout请输入多边形顶点的个数(顶点个数为0时结束): ; cinn; remm head; void disp(polygon *head) inti, No=l; eoutsetw( 10)xsetw(6)yendl; while(head !=NULL) cout第No结点: endl; for(i=0;i=head-n-1;i+) coutsetw(10)head-x i setw(6)head-y
13、iendl; (8) ; he ad= (9) ; /Match while statement void del(polygon *head) polygon *p; while(head!=NIILL p= (10) ; head=head-next; delete p-x; delete p-y; delete p; /Match while statement void main() polygon *head; head=create(); disp(head); del(head); 2.说明 以下C程序实现了将字符串转化为浮点数的功能。例如字符串“1234567”转化为浮点数12
14、34567;字符串“100.02035”转化为浮点数100.02035;字符串“-100.02035”转化为浮点数-100.02035。程序中的部分变量的含义如表9-5。 表9-5变量名含义intpart字符串转化为浮点数后的整数部分doublepart字符串转化为浮点数后的小数部分kdouble记录小数部分的阶次resoult字符串转化为浮点数后的结果psign字符串转化为浮点数后的符号标识 C程序 double StrToDouble(char*s) char hexch=0123456789; int i,j,psign=1; DWORD n,k,intpart=0; double do
15、ublepart=0,kdouble,resoult; char ch; if (*s=. (1) ; (2) ; char*s1=s,*temp=NULL; temp=strrchr ( s1,. ); if (!temp) k=1; intpart=0; for (i=strlen (s); i0;i-) ch=si-1; if (ch0x3f) ch&=0xDF; n=0; for (j=0; j10; j+) if ( ch=hexchj) n=j; intpart+= (n*k); k*=10; else s1=temp+1; kdouble=0.1; doublepart=0; f
16、or (3) ) ch=s1i-1; if (ch0x3f) ch&=0xDF; n=0; for (j=0; j10; j+ ) if (ch=hexchj) n=j; doublepart+= (n*kdouble); (4) ; *temp=NULL; k=1; intpart=0; for (5) ;) ch=si-1; if (ch0x3f) ch&=0xDF; n=0; for (j=0; j10; j+) if (ch=hexchj) n=j; intpart+= (n*k); k*=10; /end else (6) ; return resoult; 3.说明 以下C+代码使
17、用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将 (n) 处语句补充完整。 代码5-1#includeiostream.h #define PI 3.14159 class shape /基类 protected: (1) ; public: (2) ; (3) ; ; 代码5-2 class rectangle: public shape public: rectangle (int x2,int y2,int r2): (4) ; double area_ r
18、eturn x*y; ; ; class circle: public shape public: circle (int x3,int y3,int r3): (5) ; double area_ return r*r*PI; ; ; 代码5-3 void main_ rectangle r (10,20,0); circle c (0,0,30); shape (6) ; cout长方形面积=s1-area_ endl; cout圆形面积=s2-area_ endl; 运行结果 长方形面积=200 圆形面积=2827.43 4.说明 以下JAVA程序实现了在接口interface iSha
19、pe2D的定义和应用,仔细阅读代码和相关注释,将程序补充完整。 代码6-1 interface iShape2D /定义接口 (1) (2) (3) /实现CRectangle类 int width, height; (4) CRectangle (int w,int h) width=w; height=h; public void area_ /定义area_的处理方式 System. out.println (area=+width*height); (5) /实现CCircle类 double radius; (6) CCircle (double r) radius=r; publi
20、c void area_ /定义area_的处理方式 System.out.println (area=+pi*radius*radius); 代码6-2 public class app10_4 public static void main(String args) CRectangle rect=new CRectangle (5,10); rect.area_; /调用CRectangle类里的area_ method CCircle cir=new CCircle (2.0); cir.area_; /调用CCircl类里的area_ method 5.说明 以下Visual Bas
21、ic代码实现了系统登录时对用户进行合法性检查。界面如图9-6所示。阅读下面代码,将 (n) 处代码补充完整。 代码7-1 Begin VB.Form form1 BackColor = &H00808080& Caption = 系统登录 /.窗体描述(略) Begin VB.Labe1 Labe12 Backstyle = 0 Transparent Caption = 密 码: /窗体描述(略) End Begin VB.Labe1 Labe11 Backstyle = 0 Transparent Caption = 操作员: /.窗体描述(略) End /.窗体描述(略) End 代码7
22、-2 Dim TIM As Integer Dim mydb As Database Dim myrs As Recordset Dim sq1 As String Private Sub Form ACdvate_ Set mydb=Workspaces (0).OpenDatabase (App.Path&CIUID.mdb) 打开数据库 sq1=select操作员from qxsz Set myrs=mydb.OpenRecordset (sq1) If (1) Then myrs.MoveLast If (2) Then myrs.MoveFirst For i=0 TO myrs.R
23、ecordCount-1 (3) (4) Next i If (5) Then master.Listlndex=0 myrs.Close mydb.Close master.SetFocus End Sub 代码7-3 Private Sub Cmdok_Click_ 确认操作员和密码 Dim MESSAGE As String If master.TextThen Set mydb=Workspaces (0) .OpenDatabase (App.Path&CIUID.mdb) Set myrs=mydb.OpenRecordset (qxsz, dbOpenDynaset) myrs.
24、Findfirst操作员=+Chr(34) +master.Text+Chr(34) + 查找操作员 If (6) Then MsgBox (无此操作员!) Else If password.Text=myrs.Fields(密码) Then 确认密码 MsgBox系统登录成功! 系统登录成功 Else If TIM=3 Then MESSAGE=MsgBox (密码输入错误,请向系统管理员查询!,0,) If MESSAGE=vbOK Then End End If MsgBox (密码错误,请重新输入密码!) TIM=TIM+1 密码输入错误次数 password.SetFocus End
25、 If End If End If End Sub 6. 为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R1.n进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置。(假设R中的元素互不相同) 算法 1变量声明 X: Data Type i,j,low, high,mid,r:0.n 2每循环一次插入一个Ri 循环:i以1为步长,从2到n,反复执行。 (1)准备 XRi; (1) ; highi-1; (2)找插入位置 循环:当 (2) 时,反复执行。 (3) 若X.keyRmid.key 则highmid
26、-1; 否则 (4) (3)后移 循环:j以-1为步长,从 (5) ,反复执行。 Rj+1Rj (4)插入 RlowX 3算法结束 7. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 Fun1 (int n) int i; for(i=2;i=n;i+) while ( (1) ) if (n%i=0) printf(%d*,i); (2) ; else break; printf(%d,n); 下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多
27、了一个,它同样把多的一个扔入海中,拿走了一份。第 3、4、5只猴子都是这样做的,问海滩上原来最少有多少个猴子 main() int i,m,j,k,count; for(i=4;i10000;i+=4) count=0; (3) ;for(k=0;k5;k+) (4) ; i=j; if(j%4=0) (5) ; else break; i=m; if(count=4) printf(%dn,count); break; 8. 本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉
28、树存储这些单词及其出现的次数,边读入边建立,然后中序遍历该二叉树,将遍历经过的二叉树上的结点内容输出。 # include stdio.h # include malloc.h # include ctype.h # include string.h # define INF text.in # define OUTF word.our typedef struct treenode char *word; int count; struct treenode *left, *right; BNODE; int getword(FILE *fpt, char *word) char c; c=
29、fgetc(tpt); if (c=EOF) return 0; while(!(tolower(c)= a & tolower(c)= z) c=fgetc(fpt); if (c=EOF) return 0; /* 跳过单词间的所有非字母字符 */ while(tolower(c)= a & tolower(c)= z) *word+=c; c=fgetc(fpt); *word=0; return 1; void binary_tree(BNODE *t, char *word) BNODE *ptr, *p; int compres; p=NULL; (1) ; while (ptr)
30、 /* 寻找插入位置 */ compres=strcmp(word, ptr-word);/* 保存当前比较结果 */ if (!compres) (2) ; return; else p=ptr; ptr=compres0 ptr-right: ptr-left; ptr=(BNODE *)malloc(sizeof(BNODE); ptr-left=ptr-right=NULL; ptr-word=(char *)malloc(strlen(word)+1); strcpy(ptr-word, word); (3) ; if (p=NULL) *t=ptr; else if (compre
31、s0) p-right=ptr; else p-left=ptr; void midorder(FILE *fpt, BNODE *t) if (t=NULL) return; midorder(fpt, (4) ); fprintf(fpt, %s %dn, t-word, t-count); midorder(fpt, t-right); void main() FILE *fpt; char word40; BNODE *root=NULL; if (fpt=fopen(INF, r)=NULL) printf(Cant open file %sn, INF); return; whil
32、e(getword(fpt, word)=1) binary_tree( (5) ); fclose(fpt); fpt=fopen(OUTF, w); if (fpt=NULL) printf(Cant open fife %sn, OUTF); return; midorder(fpt, root); fclose(fpt); 9. 下面的程序构造一棵以二叉链表为存储结构的二叉树。 BitTree *createbt(BitTree *bt) BitTree *q; struct node *s30; int j,i; char x; printf(i,x=); scant(%d,%c,&
33、i,&x); while(i!=0 & x!=$) q=(BitTree *malloc(sizeof(BitTree);/生成一个结点 (1) ; q-lchild=NULL; q-rchild=NULL; (2) ; if ( (3) ) j=i/2; / j为i的双亲结点 if(i%2=0) (4) ; /i为j的左孩子 else (5) ; /i为j的右孩子 printf(i,x=); scanf(%d,%c,&i,&x); return si; 10. 本程序的功能是根据矩形左上角和右下角顶点坐标生成一个矩形对象,然后输出该矩形4个顶点的坐标,计算并输出该矩形的面积。 #includ
34、eiostream using namespace std; class MyPoint( /表示平面坐标系中的点的类 double x; double y; public: MyPoint (double x,double y)this-x=x;this-y=y; double getX()const (1) ; double getY()const return y; void show()const cout(x,y); ; class MyRectangle /表示矩形的类 MyPoint upleft; /矩形的左上角顶点 MyPoint down right; /矩形的右下角顶点
35、public: MyRectangle(MyPoint upleft,MyPoint downright); MyPoint getUpLeft()constreturn up_left; /返回左上角坐标 MyPoint getDownRight()constreturn down_right; /返回右下角坐标 MyPoint getUpRight()const; /返回右上角坐标 MyPoint getDownLeft()const; /返回左下角坐标 double area()const; /返回矩形的面积 ; MyRectangle: MyRectangle( (2) ): up l
36、eft(p1),down_right(p2) MyPoint MyRectangle:getUpRight()const return MyPoint(down_right.getX(),up_left.getY(); MyPoint MyRectangle:getDownLeft()const return MyPeint( (3) ); double (4) :area()const return (getUpLeft(),getX()-getDownRight().getX()* (getDownRight().getY()-getUpLeft().getY(); int main_ M
37、yRectangle r(MyPoint(0,2),MyPoint(2,0); r.getUpLeft(),show(); r.getUpRight().show(); r.getDown Right().show(); (5) ; coutr.area()end1; return 0; 11. 进行两个整数之间的比较,由考生通过输入窗口分别输入两个整数,程序比较出结果。例如:先后输入的两个数分别为25和36。 比较结果显示: 25!=36 2536 25=36 import javax.swing.JOptionPane; public class Java3 public static v
38、oid main(String args) String (1) / 用户输入第1个字符串 secondNumber, / 用户输入第2个字符串 result; / 包含输出 int number1, / 比较的第1个数 number2; / 比较的第2个数 / 用户输入的第1个字符串 firstNumber = JOptionPane. (2) (Enter first integer:); /读用户输入的第2个字符串 secondNumber = JOptionPane.showlnputDialog(Enter second integer:); 将字符串类型转换成整数类型 number
39、1= Integer. (3) (firstNumber); number2= Integer.parselnt(secondNumber); result= : if ( (4) ) result=number1+=+number2; if (number1 != number2) result=number1+!=+number2; if (number1number2) result=result+n+number1+ number2; if (number1number2) result=result+n+number1+number2; if (number1=number2) result=result+n+number1+=+number2;