《2021内蒙古软件水平考试考试模拟卷(5).docx》由会员分享,可在线阅读,更多相关《2021内蒙古软件水平考试考试模拟卷(5).docx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2021内蒙古软件水平考试考试模拟卷(5)本卷共分为2大题50小题,作答时间为180分钟,总分100分,60分及格。一、单项选择题(共25题,每题2分。每题的备选项中,只有一个最符合题意) 1.利用高速通信网络将多台高性能工作站或微型机互连构成机群系统,其系统结构形式属于()计算机。A单指令流单数据流(SISD)B多指令流单数据流(MISD)C单指令流多数据流(SIMD)D多指令流多数据流(MIMD)2.内存采用段式存储管理有许多优点,但“()”不是其优点。A分段是信息的逻辑单位,用户不可见B各段程序的修改互不影响C地址变换速度快、内存碎片少D便于多道程序共享主存的某些段3.在软件设计和编码过
2、程中,采取“()”的做法将使软件更加容易理解和维护。A良好的程序结构,有无文档均可B使用标准或规定之外的语句C编写详细正确的文档,采用良好的程序结构D尽量减少程序中的注释4.软件维护成本在软件成本中占较大比重。为降低维护的难度,可采取的措施有()。A设计并实现没有错误的软件B限制可修改的范围C增加维护人员数量D在开发过程中就采取有利于维护的措施,并加强维护管理5.软件文档按照其产生和使用的范围可分为开发文档、管理文档和用户文档。其中开发文档不包括()。A软件需求说明B可行性研究报告C维护修改建议D项目开发计划6.关于软件著作权产生的时间,表述正确的是()A自软件首次公开发表时B自开发者有开发意
3、图时C自软件得到国家著作权行政管理部门认可时D自软件完成创作之日起7.李某大学毕业后在M公司销售部门工作,后由于该公司软件开发部门人手较紧,李某被暂调到该公司软件开发部开发新产品,2周后,李某开发出一种新软件。该软件著作权应归()所有。A李某BM公司C李某和M公司D软件开发部8.()是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。A结构化开发方法BJackson系统开发方法CBooch方法DUML(统一建模语言)9.采用UML进行软件设计时,可用()关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部分关系。A依赖B聚集C泛化D实现10.关于汇编语言,以
4、下叙述中正确的是()A汇编语言源程序可以直接在计算机上运行B将汇编语言源程序转换成目标程序的软件称为解释程序C在汇编语言程序中,不能定义符号常量D将汇编语言源程序翻译成机器语言程序的软件称为汇编程序11.对高级语言源程序进行编译时,可发现源程序中的()错误。A堆栈溢出B变量未定义C指针异常D数组元素下标越界12.编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段,其中,()并不是每种编译器都必需的。A词法分析和语法分析B语义分析和中间代码生成C中间代码生成和代码优化D代码优化和目标代码生成13.下列叙述中错误的是()。A面向对
5、象程序设计语言可支持过程化的程序设计B给定算法的时间复杂性与实现该算法所采用的程序设计语言无关C与汇编语言相比,采用脚本语言编程可获得更高的运行效率D面向对象程序设计语言不支持对一个对象的成员变量进行直接访问14.某公司采用的软件开发过程通过了CMM2认证,表明该公司()。A开发项目成效不稳定,管理混乱B对软件过程和产品质量建立了定量的质量目标C建立了基本的项目级管理制度和规程,可对项目的成本、进度进行跟踪和控制D可集中精力采用新技术新方法,优化软件过程15.国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义,以下描述项中正确的有()。响应时间是指从按下传送
6、键到得到结果为止所需要的时间。处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间。周转时间是指从提出要求到得到结果所需要的时间。响应时间包括处理时间和传输时间。ABCD16.测试用例是测试使用的文档化的细则,其规定如何对软件某项功能或功能组合进行测试。测试用例应包括下列()内容的详细信息。测试目标和被测功能。测试环境和其他条件。测试数据和测试步骤。测试记录和测试结果。ABCD17.软件内部/外部质量模型中,()不是可移植性包括的子特性。A适应性B易改变性C共存性D易替换性18.评价规格说明中不包括()。A分析产品的描述B规定对产品及部件执行的测量C按照评价需求验证产生的规格说明D请求
7、者说明评价覆盖范围19.在进行产品评价时,评价者需要对产品部件进行管理和登记,其完整的登记内容应包括()。部件或文档的唯一标识符。部件的名称或文档标题。文档的状态,包括物理状态或变异方面的状态。请求者提供的版本、配置和日期信息。ABCD20.下面的描述中,不能体现前置测试模型要点的是()。A前置测试模型主张根据业务需求进行测试设计,认为需求分析阶段是进行测试计划和测试设计的最好时机B前置测试模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为,提出业务需求最好在设计和开发之前就被正确定义C前置测试将测试执行和开发结合在一起,并在开发阶段以编码-测试-编码-测试的方
8、式来体现,强调对每一个交付的开发结果都必须通过一定的方式进行测试D前置测试模型提出验收测试应该独立于技术测试,以保证设计及程序编码能够符合最终用户的需求21.在进行软件编码规范评测过程中需要围绕几个方面的内容展开,以下描述中不属于编码规范评测内容的有()。A源程序文档化检查,包括符号名的命名、程序的注释等规范性检查B数据说明检查,包括数据说明次序、语句中变量顺序检查C程序结构检查,程序应采用基本的控制结构、避免不必要的转移控制等D程序逻辑检查,阅读源代码,比较实际程序控制流与程序设计控制流的区别22.()属于概要设计说明书的评测内容。分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所
9、有已确定的软件需求,软件每一成分是否可追溯到某一项需求。系统定义的目标是否与用户的要求一致。从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护。是否所有界面与更高级别文档中的需求一致。ABCD23.关于确认测试,描述正确的是()。确认测试一般包括有效性测试与软件配置复查,采用黑盒测试为主,白盒测试为辅的测试方法进行测试。确认测试配置项复查时应当严格检查用户手册和操作手册中规定的使用步骤的完整性和正确性。确认测试需要检测与证实软件是否满足软件需求说明书中规定的要求。确认测试是保证软件正确实现特定功能的一系列活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标
10、。ABCD24.关于软件测试的说法,()是不正确的。A代码审查是代码检查的一种,是由程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程B软件测试的对象不仅仅是程序,文档、数据和规程都是软件测试的对象C白盒测试是通过对程序内部结构的分析、检测来寻找问题的测试方法D单元测试是针对软件设计的最小单位程序模块进行正确性检验的测试工作,它通常需要开发辅助的桩模块作为主程序调用被测模块来完成测试25.缺陷探测率DDP是衡量一个公司测试工作效率的软件质量成本的指标。在某公司开发一个软件产品的过程中,开发人员自行发现并修正的缺陷数量为80个,测试人员A发现的缺陷数量为50个,测试人
11、员B发现的缺陷数为50个,测试人员A和测试人员B发现的缺陷不重复,客户反馈缺陷数量为50个,则该公司针对本产品的缺陷探测率为()。A56.5%B78.3%C43.5%D34.8%二、多项选择题(共25题,每题2分。每题的备选项中,有多个符合题意) 1.问题1 请用400字以内文字对小张、老王、成都研发中心及上海总部在执行此项目过程中的行为进行点评。 2.问题1 请用450字以内文字简要说明王工提出的采用嵌入式实时操作系统的理由或优点,并说明选择操作系统产品时需要重点考虑其哪些功能与性能 3.问题2 李工和王工通过认真地对需求进行了分析,给出了时间性能评估报告,判定在上述硬件平台上可以满足系统要
12、求。请用300字以内文字简要说明嵌入式实时系统中时间性能评估中主要考虑哪几项因素;针对本课题的具体数据,叙述系统的工作时序关系。 4.问题3 请用350字以内文字对解决此问题提出建议。 5.问题2 请用200字以内文字从项目组织实施管理的角度,分析上述问题的原因。 6.问题3 根据系统需求,请设计出系统的处理流程(按时序),说明所有任务的优先级分配策略,422、接口、双口存储器、离散量接口和AD(DA)的数据输入输出方法(中断或查询驱动)及理由。请用350字以内文字简要说明。 7.问题1 如果前四天测试的astroinfo程序的四个模块是有代表性的,请估算在正式进行测试前,astroinfo程
13、序所具有的软件错误总数。请你用250字以内文字简要说明这样汁算的依据。 8.问题2 根据李工提供的上述统计数据和分析意见,企业主管认为李工不是一个称职的测试组织者,并提出了至少有4个方面的理由说明必须加强测试力量并完善测试工作,请你用300字以内文字简要说明李工的结论中存在的问题。 9.问题3 请用300字以内文字简要分析李工在软件测试的组织工作中存在什么问题,并简要叙述软件测试的一般步骤。 10.问题2 将GPS的定位数据传回总公司信息中心,可以采用GSM(全球移动通信)短信传输或GPRS(通用无线分组业务)网络传输两种方式。请确定采用哪种技术比较合适,并用150字以内文字分析采用该技术的原
14、因。 11.问题1 针对该公司的联网需求并结合公司具体情况,请用100字以内文字分析说明采用现有的通信网络比租用现有(建设)专用线路更为经济。现有的通信网络有公用电话线路和Internet宽带网络两种配置方案,请用200字以内文字简要描述这两种配置方案。 12.问题4 项目组成员遇到的一个问题是:利用GPS定位数据不能直接在GIS系统中显示车辆位置,请用100字以内文字简述原因。 13.问题5 有人认为该公司使用GPS设备随时定位车辆并实施调度既不可能,也没有必要。请用200字以内的文字支持上述观点。 14.问题3 根据该公司的业务特征和需求,你认为应该建立一个什么规模的GIS,主要需要哪些图
15、层请用150字以内文字分析说明。 15.用Word软件录入以下文字,按题目的要求完成排版后,用Word保存功能直接存盘。 宇宙中的一天 一个航天员曾经这样描述宇宙间的一天:早晨,计算机控制的钟唤醒我们起床。醒来拉开窗帘看宇宙空间,阳光灿烂,天色真美。可是不大一会儿,太阳没有了,天暗下来了,黑夜来临了,我们想又该睡觉了吧。真是有趣极了,一会儿是早晨,一会儿是黑夜 人们长期的生活习惯是“日出而作,日落而息”,睡眠一般都安排在夜晚。飞船在航天飞行中的昼夜周期和我们在地球上的昼夜周期是不同的。空间飞行时的一次日落日出,周期长短不一,因为它和飞船绕地球飞行的轨道高低相关。轨道高,昼夜周期就长:轨道低,昼
16、夜周期就短。飞船航天飞行期间的昼夜周期,白天和黑夜时间长短是不一致的,白天时间长,黑夜时间短,90分钟一个昼夜周期,最长的黑夜仅仅是37分钟。 要求: 1纸张大小设置为自定义、宽21厘米、高17厘米,页面垂直对齐方式为居中。 2段落标题设置为隶书、四号、加粗、居中;正文文字设置为仿宋、五号、行距为 1.25倍。 3将正文文字内容划分为三栏,每栏间设置分隔线。 4为文档添加页眉,内容为“宇宙探索系列丛书”,并将页眉的文字字体设置为宋体、小五号、斜体、淡紫色,文字效果为阳文。 16.在Word中绘制如图所示的课程表,按照题目要求完成后,用Word的保存功能直接存盘。 要求: 1绘制的课程表样式、线
17、条形状、线条颜色与所给图示一致。 2将表格外部边框线条粗细设置为3磅;内部线条粗细设置为0.5磅;表格底纹设置为灰色-20%。 3将“软件工程专业课程表”字体设置为宋体、24号。 4将课程列的文字字体设置为黑色、宋体、小五号、居中;时间列表示时间的字体设置为红色、Times New Roman、五号、居中,其他字体设置为黑色、宋体、五号、居中;日期行的文字字体设置为黑色、宋体、五号、居中。 17.利用系统提供的资料和图片素材(图片素材单击下面“天气预报”文件夹),按照题目要求用PowerPoint创意制作“天气预报”演示文稿,用PowerPoint的保存功能直接存盘。 资料: 资料一、城市天气
18、预报 资料二、今日生活指数 1晾晒指数:基本适宜 天气晴朗,午后温暖的阳光仍能满足你驱潮消霉杀菌的晾晒需求。 2运动指数:较适宜 明天白天天气较好,无雨水困扰,较适宜开展各种户内外运动,但因气温较低,在户外运动请注意增减衣物。 3雨伞指数:不带伞 为多云天气,但不会降水,因此您可放心出门,无须带雨伞。 参考图如下: 要求: 1第一页演示文稿:用资料一内容。 2第二页演示文稿:用资料二内容。 3演示文稿的模板等可自行选择。 4第一页演示文稿:文字设置为红色、华文新魏、60号、阴影;插入的图片设置为高度12厘米、宽度15厘米。文字和图片均设置为“百叶窗”动画效果:为演示文稿填充蓝色背景。 5第二页
19、演示文稿:插入组织结构图,将版式设置为右悬挂;为演示文稿插入页脚 (页脚内容为“2008-12-21 12:00发布”):将演示文稿放映方式设置为循环放映。 18.试题 论信息系统项目的需求管理和范围管理 在信息系统项目的开发过程中,人们越来越体会到需求管理和范围管理的重要性,含糊的需求和范围经常性的变化使信息系统项目的甲乙双方吃尽了苦头,这使得人们急于寻找良策以管理范围。请围绕“需求管理和范围管理”论题,分别从以下三个方面进行论述:1. 概要叙述你参与管理过的信息系统项目,以及该项目在需求管理和范围管理方面的情况。2. 论述需求开发、需求管理和范围管理的区别与联系。3. 详细论述在你参与管理
20、过的大型信息系统项目中具体采用的范围管理过程、方法、工具及其实际效果。 19.软件工程的目标是生产出高质量的软件。ANSI/IEEE Std 729-1983对软件质量的定义是“与软件产品满足规定的和隐含的需求能力有关的特征或特性的全体”,实际上反映了三方面的问题: (1)软件需求是度量软件质量的基础。 (2)只满足明确定义的需求,而没有满足应有的隐含需求,软件质量也无法保证。 (3)不遵循各种标准定义的开发规则,软件质量就得不到保证。 软件质量管理贯穿于软件生命周期,极为重要。软件质量管理过程包括软件项目质量计划、软件质量保证和软件质量控制。质量管理的关键是预防重于检查,应事前计划好质量,而
21、不只是事后检查,这有助于降低软件质量管理成本。 请围绕“软件项目质量管理及其应用”论题,依次从以下三个方面进行论述。 1概要叙述你参与管理和开发的软件项目以及你在其中担任的主要工作。 2详细论述在该项目中进行质量保证和质量控制时所实施的活动,并论述二者之间的关系。 3分析并讨论你所参与的项目中的质量管理成本,并给出评价。 20.项目风险管理应贯穿项目的整个过程,成功的风险管理会大大增加项目成功的概率。对信息系统项目进行有效的风险管理,使用合理的方法、工具,针对不同风险采取相应的防范、化解措施,及时有效地对风险进行跟踪与控制,是减少项目风险损失的重要手段。大型项目具有规模大、周期长、复杂度高等特
22、点,一旦出现问题,造成的损失更是难以预料,所以针对大型项目进行有效的风险管理尤为重要。 请围绕“大型信息系统项目的风险管理”论题,分别从以下三个方面进行论述: 1结合你参与管理过的大型信息系统项目,概要叙述项目的背景(发起单位、目的、项目周期、交付产品等)以及你在其中承担的工作。 2简要描述你承担的大型信息系统项目中可能存在的风险因素以及采取的应对措施。 3结合你所在组织的情况,论述组织应如何实施大型信息系统项目的风险管理。 21.函数sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值
23、。其中,head指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图4-1(a)的链表进行一趟冒泡排序后,得到图4-1(b)所示的链表。链表的结点类型定义如下:typedef struct Node int data;struct Node *next; NODE;void sort (NODE *head) NODE *ptr,*preptr, *endptr;int tempdata;ptr = head - next;while ( (1) ) /*查找表尾结点*/ptr = ptr - next;en
24、dptr = ptr; /*令endptr指向表尾结点*/ptr = (2) ;while(ptr != endptr) while( (3) ) if (ptr-data ptr-next-data)tempdata = ptr-data; /*交换相邻结点的数据*/ptr-data = ptr-next-data;ptr-next-data = tempdata;preptr = (4) ; ptr = ptr - next;endptr = (5) ; ptr = head-next;函数sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻
25、结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,head指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图4-1(a)的链表进行一趟冒泡排序后,得到图4-1(b)所示的链表。链表的结点类型定义如下:typedef struct Node int data;struct Node *next; NODE;void sort (NODE *head) NODE *ptr,*preptr, *endptr;int tempdata;ptr = head - next;while ( (1) )
26、 /*查找表尾结点*/ptr = ptr - next;endptr = ptr; /*令endptr指向表尾结点*/ptr = (2) ;while(ptr != endptr) while( (3) ) if (ptr-data ptr-next-data)tempdata = ptr-data; /*交换相邻结点的数据*/ptr-data = ptr-next-data;ptr-next-data = tempdata;preptr = (4) ; ptr = ptr - next;endptr = (5) ; ptr = head-next;22.函数count months(DATE
27、 start,DATE end)的功能是:计算两个给定日期之间所包含的完整月份数。该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。规定两个相邻年份的同月同日之间的间隔为1年。例如,2007.5.302008.5.30的间隔为1年。若相邻两年中前一年是闰年,并且日期是2月29日,则到下一年的2月28日为1年,即2008.2.292009.2.28的间隔为1年。规定两个相邻月份的相同日之间的间隔为1个月,但需要特别考虑月末的特殊情况。例如,2007.1.292007.2.28的间隔为1个月,同理,2007.1.302007.2.28、2007.1.312007.2.28的间隔都是1个
28、月。计算起止日期间隔不足一年的完整月份数时,分如下两种情况。(1)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为2008.3.312008.9.20,通过月号算出月份数为6。修正时,通过调用函数makevalid将2008.9.31改为2008.9.30,与终止日期2008.9.20比较后,将月份数修正为5。(2)起止日期跨年度。计算方法如下例所示:对于起止日期2008.7.252009.3.31,先计算2008.7.252008.12.25的月份数为5,再算出2008.12.252009.3.25的月份数为 3,因此2008.7.2
29、52009.3.31之间的完整月份数为8。日期数据类型定义如下:typedef structint year; int month; int day; /*日期的年号(4位)、月和口号*/DATE;程序中使用的函数cmp_date()、isLeap Year()和makevalid()说明如下。int count_months (DATE start,DATE end)int years = 0, months = 0;DATE r;if (cmp_date(start,end) 0) r = start; start = end; end = r;years = end.year - sta
30、rt.year; /*计算年数*/r = start;r.year = end.year;if (cmp_date(r, end) 0) /*修正年数*/(1) ;r.year-;if (r.year end.year) /*跨年度时,先计算到12月的月份数*/months = (2) ;r.month = 12;months += (end.month + 12 - r.month) % 12;r.year = end.year; r.month = end.month;makevalid ( (3) ); /*将日期r修正为有效日期*/if (cmp_date(r,end) 0) /*修正
31、月份数*/(4) ;months += (5) ; /*计算总月份数*/return months;函数count months(DATE start,DATE end)的功能是:计算两个给定日期之间所包含的完整月份数。该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。规定两个相邻年份的同月同日之间的间隔为1年。例如,2007.5.302008.5.30的间隔为1年。若相邻两年中前一年是闰年,并且日期是2月29日,则到下一年的2月28日为1年,即2008.2.292009.2.28的间隔为1年。规定两个相邻月份的相同日之间的间隔为1个月,但需要特别考虑月末的特殊情况。例如,2007
32、.1.292007.2.28的间隔为1个月,同理,2007.1.302007.2.28、2007.1.312007.2.28的间隔都是1个月。计算起止日期间隔不足一年的完整月份数时,分如下两种情况。(1)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为2008.3.312008.9.20,通过月号算出月份数为6。修正时,通过调用函数makevalid将2008.9.31改为2008.9.30,与终止日期2008.9.20比较后,将月份数修正为5。(2)起止日期跨年度。计算方法如下例所示:对于起止日期2008.7.252009.3.31,
33、先计算2008.7.252008.12.25的月份数为5,再算出2008.12.252009.3.25的月份数为 3,因此2008.7.252009.3.31之间的完整月份数为8。日期数据类型定义如下:typedef structint year; int month; int day; /*日期的年号(4位)、月和口号*/DATE;程序中使用的函数cmp_date()、isLeap Year()和makevalid()说明如下。int count_months (DATE start,DATE end)int years = 0, months = 0;DATE r;if (cmp_date
34、(start,end) 0) r = start; start = end; end = r;years = end.year - start.year; /*计算年数*/r = start;r.year = end.year;if (cmp_date(r, end) 0) /*修正年数*/(1) ;r.year-;if (r.year end.year) /*跨年度时,先计算到12月的月份数*/months = (2) ;r.month = 12;months += (end.month + 12 - r.month) % 12;r.year = end.year; r.month = en
35、d.month;makevalid ( (3) ); /*将日期r修正为有效日期*/if (cmp_date(r,end) 0) /*修正月份数*/(4) ;months += (5) ; /*计算总月份数*/return months;23.某应用的登录界面如下:登录界面中的文本框txtUserID和txtPassword分别用于接受用户输入的用户名和口令,命令按钮为确定(cmdOk)和取消(cmdCancel)。ADO数据控件Adodc1与数据库EmployeeData连接。在EmployeeData中,表Users的字段UserID和Pswd分别记录了所有的合法用户名和口令。在登录界面中
36、,输入正确的用户名和口令并单击确定按钮后,就会打开应用程序的主窗口fxmApp。用户名或密码输入错误时,给出提示信息并返回登录界面。Private Sub cmdOK Click()Adodcl.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:dataEmployeeData.mdb;Persist Security Info=FalseAdodcl.RecordSource = select * (1) Adodcl.RefreshDousrname = (2) pwd = Adodc1.Recordset(P
37、swd)Adodc1.Recordset.MoveNextLoop Until (usrname = (3) ) Or (Adodc1.Recordset.EOF)If usrname txtUserID.Text ThenMsgBox 无效的用户ID, 请重新输入!, , 提示信息ElseIf (4) ThenMsgBox 欢迎进入系统主界面!, , 提示信息Unload me(5) ElseMsgBox 无效的用户密码, 请重新输入!, , 提示信息End IfEnd IfEnd Sub登录界面中的文本框txtUserID和txtPassword分别用于接受用户输入的用户名和口令,命令按钮
38、为确定(cmdOk)和取消(cmdCancel)。ADO数据控件Adodc1与数据库EmployeeData连接。在EmployeeData中,表Users的字段UserID和Pswd分别记录了所有的合法用户名和口令。在登录界面中,输入正确的用户名和口令并单击确定按钮后,就会打开应用程序的主窗口fxmApp。用户名或密码输入错误时,给出提示信息并返回登录界面。Private Sub cmdOK Click()Adodcl.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:dataEmployeeData.mdb;P
39、ersist Security Info=FalseAdodcl.RecordSource = select * (1)Adodcl.RefreshDousrname = (2)pwd = Adodc1.Recordset(Pswd)Adodc1.Recordset.MoveNextLoop Until (usrname = (3) ) Or (Adodc1.Recordset.EOF)If usrname txtUserID.Text ThenMsgBox 无效的用户ID, 请重新输入!, , 提示信息ElseIf (4) ThenMsgBox 欢迎进入系统主界面!, , 提示信息Unloa
40、d me(5)ElseMsgBox 无效的用户密码, 请重新输入!, , 提示信息End IfEnd IfEnd Sub24. 下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。 下面给出的C程序代码中有五个错误,请指出所有的错误。01 #include stdio.h0203 int main()04 05 long n, num;06 int i;0708 do 09 printf(请输入一个正整数:);1
41、0 scanf(%ld, n);11 while(n = 0);12 k = 1;13 for (i = 1; n = 0; i+) 14 if (i % 2 = 1) 15 num= num+ (n % 10) * k;16 k = k * 10;17 18 n = n / 10;19 20 printf(新数据为: %d n,num);21 return 0;22 25.某交通灯演示程序启动后,其运行窗口中包括红绿灯标志以及当前红绿灯状态剩余秒数的动态显示(如下图)。红灯与绿灯持续的时间分别为30秒与40秒。持续时间结束时,立即变更红绿灯,并重新显示剩余秒数。在开发过程中,先在窗体内制作形
42、状红绿灯框架(长方形,透明),在该框架中,上部制作形状红灯(ShpRed,圆形),默认属性为透明;下部制作形状绿灯 (ShpGreen,圆形),初始设置其填充方式属性FillStyle为实心,填充颜色属性FillColor为绿色。再设置两个图像框(Image1在左,Image2在右),使其能分别装入数字图像文件,以显示当前红绿灯状态剩余的秒数。10个数字图像文件N0.bmpN9.bmp分别用于显示数字0、1、9,这些文件存放在该应用程序所在目录中,以便在程序运行时按需要选择装入这两个图像框。为使图像文件装入图像框时能自动改变大小以适应图像框,这些图像框的Stretch属性都应设置成 (1) 。
43、为使这些数字能每秒变化一次,开发窗体中设置了计时器Timcr1,其Enable属性设置成True,其Interval属性设置成1000。程序中,全局变量Light用以标志当前红灯(0)或绿灯状态(1),RedT和GreenT分别表示红灯或绿灯状态剩余的秒数。计时器Timer1的定时过程是在该程序启动1秒后首次执行的,以后每隔1秒执行1次。开发者应考虑对以下四种情况的处理:绿灯持续、绿灯转红灯、红灯持续、红灯转绿灯。过程LoadNumber的功能是:将红绿灯剩余秒数N(2位整数)分离出两个一位数i与i,再将其变换成字符,删除前面可能产生的空格,再将数字图像文件Ni.bmp与Nj.bmp装入两个图
44、像框(其中i与j应以相应的数字字符代替)。Public Light AS Integer, RedT As Integer, GreenT As IntegerPrivate Sub Form_Load()Light = 1 : GreenT = 40 : RedT - 0 ’初始化设置End SubPrivate Sub Timer1_Timer() ’计时器定时过程If Light = 1 Then ’绿灯状态时(2) If GreenT 0 Then ’绿灯持续时Call LoadNumber (GreenT) ’调用过程,显示
45、数字GreenTElse ’绿灯转红灯时ShpRed.FillStyle = 0 ’置红灯形状实心ShpRed.FillColor = vbRed ’为红灯形状填充红色ShpGreen.FillStyle = 1 ’置绿灯形状透明Call LoadNumber(30)Light = 0 : RedT = 30End IfElse ’红灯状态时RedT = RedT - 1If RedT 0 Then ’红灯持续时Call LoadNumber(RedT)Else ’红灯转绿灯时ShpRed.FillStyle = 1ShpGreen.FillStyle = 0ShpGreen.FillColor = vbGreen(3) Light = 1 : GreenT = 40End IfEnd IfEnd SubSub LoadXumber (N As Integer) ’根据剩余秒数N将数字图象装入图像框Dim i As Integer, j As Integeri = Int