2022年软考-程序员考前模拟强化练习题76(附答案详解)

上传人:住在****她 文档编号:109012127 上传时间:2022-06-16 格式:DOCX 页数:21 大小:331.22KB
返回 下载 相关 举报
2022年软考-程序员考前模拟强化练习题76(附答案详解)_第1页
第1页 / 共21页
2022年软考-程序员考前模拟强化练习题76(附答案详解)_第2页
第2页 / 共21页
2022年软考-程序员考前模拟强化练习题76(附答案详解)_第3页
第3页 / 共21页
点击查看更多>>
资源描述
2022年软考-程序员考前模拟强化练习题(附答案详解)1. 单选题画数据流图时,需要用( )对数据流图中各个元素进行定义。问题1选项A.数据说明B.数据定义C.数据字典D.数据模型【答案】C【解析】本题考查软件工程的基础知识。信息系统设计过程中需要画数据流图,其中包括四类元素:外部实体、输入流、处理加工和输出流,还需要用数据字典来定义各个元素及其内含的诸多参数。2. 单选题某高校教学管理系统中的院系关系Department和学生关系Students的模式分别 为:Department (院系号,院系名,负责人,办公电话),学生关系Students (学号,姓名,身份证号,院系号,联系电话,家庭住址)。Department中的“院系号”唯一标识 一个院系,Students中的“学号”能唯一标识一名学生,“家庭住址”可进一步分为邮编、 省、市、街道。根据以上描述可知,关系Students的候选键为( ), “家庭住址” 为( )。创建Students的SQL语句如下,请填补其中的空缺。CREATE TABLE Students(学号 CHAR(8) PRIMARY KEY,姓名 CHAR(16), 身份证号CHAR(18),院系号CHAR(4), 联系电话CHAR(13),家庭住址CHAR(30) FOREIGN KEY ( );问题1选项A.学号B.身份证号和院系号C.学号和身份证号D.学号和院系号问题2选项A.简单属性B.复合属性C.多值属性D.派生属性问题3选项A.(联系电话)REFERENCES Department (办公电话)B.(院系号)REFERENCES Department (院系号)C.(院系号)REFERENCES Students (院系号)D.(负责人号)REFERENCES Students (学号)【答案】第1题:C第2题:B第3题:B【解析】本题考查数据库基础知识。在关系模型中,候选键又称候选码(英语:candidate key),是某个关系变量的一组属性所组成的集合,它需要同时满足下列两个条件:1.这个属性集合始终能够确保在关系中能唯一标识元组。2.在这个属性集合中找不出合适的真子集能够满足条件。在这里,学生的候选键有身份证号和学号。家庭住址是复合属性。该题为外键的考查,院系号作为院系关系的主键,所以在学生关系中院系号是外键。3. 单选题假设事务T1对数据D1加了共享锁,事务T2对数据D2加了排它锁,那么( )。问题1选项A.事务T2对数据D1加排它锁成功B.事务T1对数据D2加共享锁成功,加排它锁失败C.事务T1对数据D2加排它锁或共享锁都成功D.事务T1对数据D2加排它锁和共享锁都失败【答案】D【解析】本题考查数据库控制功能基础知识。事务并发处理时,如果对数据读写不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁(Exclusive Locks ,简称X锁)和共享锁(Share Locks,简称S锁)。排它锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁 。共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁读取而不能加X锁修改。4. 单选题在软件开发的各个阶段,不同层次的人员参与程度并不一样。下图大致描述了某软件开发公司高级技术人员、管理人员和初级技术人员在各个阶段参与的程度,其中,曲 线、分别对应( )。问题1选项A.高级技术人员、管理人员、初级技术人员B.管理人员、高级技术人员、初级技术人员C.高级技术人员、初级技术人员、管理人员D.管理人员、初级技术人员、高级技术人员【答案】A【解析】本题考查软件工程基础知识。图中的直线表示总体来说各类人员参与程度的概况,当某个阶段人员参与度高的时候,对应的Y值越大。软件开发的最初阶段是管理人员接到项目,然后着手和安排人员等,随即高级技术人员参与需求分析和总体设计,在详细设计阶段初级技术人员才逐步参与。编码阶段工作量最大的是程序员(初级技术人员),但需要得到高级技术人员的指导和把控。测试阶段初期(单元测试)也是程序员为主,系统测试后则以高级技术人员为主。测试过程中还可能出现反复。整个过程中管理人员需要控制进度、质量、资源的分配使用等,在编码阶段管理人员参与度最低。5. 单选题CPU执行指令时,先要根据程序计数器将指令从内存读取出并送入( ),然后译码并执行。问题1选项A.数据寄存器B.累加寄存器C.地址寄存器D.指令寄存器【答案】D【解析】本题考查计算机系统基础知识。CPU执行指令时,先要根据程序计数器将指令从内存读取出并送入指令寄存器,然后译码并执行。程序计数器和指令寄存器都属于控制器的主要部件,程序计数器用于存放下一条指令所在单元的地址的地方,指令寄存器用于存放当前正在执行的指令。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过启动指令译码器对指令进行分析,最后发出相应的控制信号和定时信息,控制和协调计算机的各个部件有条不紊地工作,以完成指令所规定的操作。完成第一条指令的执行,而后根据程序计数器取出第二条指令的地址,如此循环,执行每一条指令。6. 单选题在某C程序中有下面的类型和变量定义(设字符型数据占1字节,整型数据占4字节),则运行时系统为变量rec分配的空间大小为( )。问题1选项A.1字节B.4字节C.5字节D.8字节【答案】B【解析】本题考查程序语言的基础知识。共用体变量的大小取决于其所需存储空间最大的成员,最大的整形字符4字节。7. 单选题在Excel的A1单元格中输入公式“=MIN (SUM(5,4),AVERAGE(5,11,8)”,按回车键后,A1单元格中显示的值为( )。问题1选项A.4B.5C.8D.9【答案】C【解析】本题考查Excel基础知识。sum函数表示求和,average函数表示求平均值,min函数表示求最小值。函数SUM(5,4)的结果为9,函数AVERAGE(5,11,8)的结果为8,而函数MIN(SUM(5,4),AVERAGE(5,11,8)的含义是从SUM(5,4)和AVERAGE(5,11,8)中选一个较小的,结果为8。8. 单选题在面向对象方法中,( )机制将数据和行为包装为一个单元。一个类定义一组大体上相似的对象,有些类之间存在一般和特殊的层次关系,如( )之间就是这种关系。问题1选项A.封装B.抽象C.数据隐蔽D.多态问题2选项A.卡车和轿车B.客机和货机C.学生和博士D.通识课和专业课【答案】第1题:A第2题:C【解析】本题考查面向对象基础知识。在面向对象系统中,最基本的运行时实体是对象,如现实世界中的考生、试卷、老师、书本等。对象既包括数据,也包括作用于数据的操作,即将数据和操作封装为一个整体,作为一个单元。一组大体相似的对象定义为类,把对象的共同特征加以抽象并存储在一个类中。一个类所包含的操作和数据描述了一组对象的共同行为和属性,类是对象之上的抽象。有些类之间存在一般和特殊的层次关系,一些类是某个类的特殊情况,某个类是一些类的一般情况,即特殊类是一般类的子类,一般类是特殊类的父类。例如,“汽车”类、“轮船”类、“飞机”类都是一种“交通工具”类。同样,“汽车”类还可以有更特殊的子类,如“轿车”类、“卡车”类、“客车”类等;“飞机”类也有更特殊的子类,如“客机”类和“货机”类等。“通识课”类和“专业课”类都是“课程”类,“博士”类和“硕士”类、“中学生”类都是“学生”类等。在这种关系下形成一种层次的关联。9. 单选题The anti-virus software protects your computer from virus by( )your computers memory and disk devices.问题1选项A.scanningB.deletingC.replacingD.changing【答案】A【解析】杀毒软件通过扫描计算机内存和磁盘保护计算机,防止被病毒感染。10. 单选题CPU主要由运算器、控制器组成,下列不属于运算器的部件是( )。问题1选项A.算术逻运算单元B.程序计数器C.累加器D.状态寄存器【答案】B【解析】CPU主要由运算器、控制器(Control Unit,CU)、寄存器组和内部总线组成。运算器(ALU)主要完成算术运算和逻辑运算,实现对数据的加工与处理。包括算术和逻辑运算单元(ALU)、累加器(AC)、状态字寄存器(PSW)、寄存器组及多路转换器等逻辑部件。控制器的主要功能是从内存中取出指令,并指出下一条指令在内存中的位置,将取出的指令送入指令寄存器,启动指令译码器对指令进行分析,最后发出相应的控制信号和定时信息,控制和协调计算机的各个部件有条不紊地工作,以完成指令所规定的操作。控制器主要由程序计数器(PC)、 指令寄存器(IR)、 指令译码器、状态字寄存器(PSW)、时序产生器和微操作信号发生器等组成。11. 单选题5G网络技术具有( )的特点。问题1选项A.低带宽、低时延B.低带宽、高时延C.高带宽、低时延D.高带宽、高时延【答案】C【解析】5G技术(第五代移动通信技术)具有高带宽、低时延的特点,可用于大数据量高速传输,实时响应以满足远程医疗、自动驾驶等需要。12. 单选题单向循环链表如下图所示,以下关于单向循环链表的叙述中,正确的是( )。问题1选项A.仅设头指针时,遍历单向循环链表的时间复杂度是O(1)B.仅设尾指针时,遍历单向循环链表的时间复杂度是O(1)C.仅设头指针时,在表尾插入一个新元素的时间复杂度是O(n)D.仅设尾指针时,在表头插入一个新元素的时间复杂度是O(n)【答案】C【解析】本题考查数据结构链表的基础知识。在单链表存储结构中,不管是有头指针还是有尾指针,其实现遍历(即遍访表中的所有元素)的时间复杂度都是O(n)。在单链表任何位置插入或删除结点,首先需要找到插入位置(该算法的时间复杂度不确定),然后修改指针即可实现(该时间复杂度为O(1)。循环链表仅设头指针时,在表尾插入一个新元素时,因为要找到表尾位置,需从头结点遍历到尾结点,因此其时间复杂度是O(n)。循环链表仅设尾指针时,在表头插入一个新元素时,因为有尾指针且是循环链表,因此尾指针所指向结点的下一个结点就是头结点,进行在表头插入的时间复杂度是O(1)。13. 单选题函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(call by value) 方式,第二个参数采用传引用(call by reference)方式,main()执行后输出的值为( )。问题1选项A.2B.3C.8D.10【答案】C【解析】本题考查程序语言基础知识。调用函数时,传值调用是将实参的值传递给形参,在被调用函数中对形参的修改不会影响到实参。引用调用(或传址调用)的实质是将实参的地址传给形参,在被调用函数中修改形参的实质是修改实参变量,因此形参改变时,会引起实参发生变化。函数f()执行时,其第一个参数x得到值5,其第二个参数a是main()函数中x的引用,即在f中对a的修改就是对main()函数中x的修改。在函数f()中,x的初始值为5,a的初始值为2,运算“x=2*a-1”(x=2*2-1) 的结果是将f的x的值修改为3,运算“a=x+5”即“a=3+5”将a的值修改为8,也就是将main()函数中x的值修改为8,因此输出的值为8。14. 案例题阅读以下说明和C代码,填写程序中的空缺,将解答写入答题纸的对应栏内。【说明】规定整型数组a中的元素取值范围为0,N),函数usrSort( int n, int a )对非负整型数组a的前n个元素进行计数排序。排序时,用temp_arri表示i在数组a中出现的次数, 因此可以从0开始按顺序统计每个非负整数在a中的出现次数,然后对这些非负整数按照从小到大的顺序,结合其出现次数依次排列。例如,对含有10个元素0,8,5,2,0,1,4,2,0,1的数组a排序时,先计算出有3个0、2 个1、2个2、1个4、1个5和1个8,然后可确定排序后a的内容为0,0,0,1,1,2,2,4,5,8。下面代码中用到的memset函数的原型如下,其功能是将p所指内存区的n个字节都设置为ch的值。void*memset (void *p, int ch, size_t n);【C代码】#include#include#include#define N 101void printArr(int a,int n);void usrSort(int n,int a);int main() int a10=0,8,5,2,0,1,4,2,0,1; printArr (a,sizeof(a)/sizeof(int); ( 1 ) _; /调用usrSort()对数组a进行升序排序printArr ( a,sizeof(a)/sizeof(int) );return 0;void printArr (int a,int n) int i; for(i=0;ivoid usrSort(int n, int a) int i,k; int *temp_arr; /用temp_arri表示i在a中出现的次数 temp_arr=(int *)malloc(N*sizeof(int) ); if(!temp_arr) return; /将所申请并由temp_arr指向的内存区域清零 memset(_ (2) _); for(i=0;i_( 3 ) +; k=0; for(i=0;i ( 4 ) ; while(cnt0) ak=i; /将i放入数组a的适当位置 ( 5 ) ; cnt-; free(temp_arr);【答案】(1) usrSort(10,a)或等效形式,a可替换为&a,&a0。(2) temp_arr,0,N*sizeof(int)或等效形式,其中N和sizeof(int)可替换为101、4。(3) ai或*(a+i)或等效形式(4) cnt = temp_arri或cnt= *(temp_arr+i)或等效形式(5)k+或+k或k=k+1或k+=1或等效形式【解析】本题考查考生对C程序基本结构、函数定义及调用和运算逻辑的理解和应用。根据空(1)所在语句的注释,明确是对函数usrSort进行调用。usrSort的原型声明为“void usrSort(int n, int a),第一个参数表示需要排序的元素个数,第二个参数表示对哪个数组进行排序,题目中,需要对含有10个元素的数组进行排序,因此空(1)应填入“usrSort(10,a)” 或其等效形式。注意:第二个参数需要传入的数组(数组首地址),用数组名数组名或下标为0的数组元素取地址都可以,因此。空(2)所在语句是调用memset对申请的存储区域进行初始化。根据注释,要求将 temp_arr指向的内存区域清零,根据声明memset时的定义,void*memset (void *p, int ch, size_t n); ,此处需要对temp_arr所指向的空间区域的元素值都设置为0,而总king就可以结合语句:temp_arr=(int *)malloc(N*sizeof(int) );,表示temp_arr占用空间为N*sizeof(int),可知函数调用为memset ( temp_arr , 0 , N * sizeof ( int ) ) 。空(3)所在的循环语句遍历数组a的所有元素,将元素ai作为temp_arr的下标, 从而使得temp_arrai表示了ai表示的值在数组a中出现的次数。例如:数组a中函数元素1,则需要temp_arr1的值+1,数组a中函数元素5,则需要temp_arr5的值+1。空(4)、(5)主要是通过temp_arr中的元素取值情况来对数组a中元素进行重排,假设tem_arr0=3,则表示0元素出现了3次。首先用cnt保留元素出现的次数,可知空(4)处应设置cnt的初始值,为“temp_arri”。 当cnt0时,表示元素i出现的次数超过了1次,需要进行循环填入,每在数组中放入1个i元素后,cnt自减(表明还需要放置的次数要减1),而k需要自增(表明元素放置位置要往后一个),以给出下一个i要放入的数组位置,因此空(5)处应填入“k+”或其等效形式。15. 单选题从对信息的破坏性上看,网络攻击可以分为被动攻击和主动攻击。以下属于被动攻击的是( )。问题1选项A.伪造B.流量分析C.拒绝服务D.中间人攻击【答案】B【解析】网络攻击是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的,任何类型的进攻动作。对于计算机和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问计算机系统的数据,都会被视为对计算机和计算机网络的攻击。主动攻击会导致某些数据流的篡改和虚假数据流的产生。这类攻击可分为篡改、伪造消息数据和终端(拒绝服务)。被动攻击中的攻击者不对数据信息做任何修改,而是在未经用户同意和认可的情况下,攻击者获得了信息或相关数据。通常包括窃听、流量分析、破解弱加密的数据流等攻击方式。16. 单选题某计算机系统页面大小为4K,进程P的页面变换表如下表所示。若中某数据的逻辑地址为十六进制2C18H,则该地址的页号和页内地址分别为( );经过地址变换后,其物理地址应为十六进制( )。问题1选项A.2和518HB.2和C18HC.5和518HD.5和C18H问题2选项A.2C18HB.4C18HC.5C18HD.8C18H【答案】第1题:B第2题:C【解析】本题考查分页存储管理的内容。根据题意,计算机的系统页面大小为4K,即212,表示需要用12位二进制(3位十六进制)来表示页面大小,所以在逻辑地址(4位十六进制表示下)中:后3位为页内地址,前1位为页号。因此:逻辑地址为十六进制2C18H,其页号为2,页内地址为 C18H。查页表后可知:页号为2的页会存储到物理块号为5的页内,所以该地址经过变换后,其物理地址应为物理块号5拼上页内地址C18H,即十六进制5C18H。17. 案例题阅读以下说明和C代码,填写程序中的空缺,将解答写入答题纸的对应栏内。【说明】某市根据每天早上5点测得的雾霾指数(pm2.5值)决定是否对车辆进行限行。规则 如下:(1)限行时间为周内(即周一到周五),周六周日不限行;(2)根据车牌号的尾号(最后1位数字)设置限行车辆(车牌号由英文字母和十进制数字构成,长度为6位,至少包含1位数字);(3)雾霾指数低于200时,不限行;(4)雾霾指数在区间200,400)时,周内每天限行两个尾号的汽车:周一限行1和6,周二限行2和7,周三限行3和8,周四限行4和9,周五限行5和0,即尾号除以5的 余数相同者在同一天限行;(5)雾霾指数大于等于400时,周内每天限行五个尾号的汽车:周一、周三和周五限行1,3,5,7,9,周二和周四限行0,2,4,6,8,即尾号除以2的余数相同者在同一天限行;下面程序运行时,输入雾霾指数、星期(数字1表示星期一,数字2表示星期二, 数字7表示星期日)和车牌号,输出该车牌号是否限行的信息。【C代码】#include#define PM25_L1 200#define PM25_L2 400typedef enum YES,NO MARKTAG;int isDigit(char ch)/判断ch是否为十进制数字字符,是则返回1,否则返回0 return (ch=0 & chint isMatched(int weekday, int t, int d) /判断是否符合限行规则,是则返回1,否则返回0 return (weekday%d = t%d); void proc(int pm25, int weekday, char *licence) int i,lastd; if (weekday = 6 | weekday = 7 | (1) ) prt_msg(licence, NO); else for( i=5; i=0; i- ) if (isDigit(licencei) lastd= (2) ; /获取车牌号的尾号 break; if(pm25= PM25_L2 ) /限行5个尾号的汽车 if (isMatched( (3) ) prt_msg(licence, YES); else prt_msg(licence, NO); else /限行2个尾号的汽车 if (isMatched( (4) ) prt_msg(licence, YES); else prt_msg(licence, NO); int main() int weekday=0, pm25=0; char licence7; scanf(%d %d %s,&pm25, &weekday, licence); /输入数据的有效性检测略,下面假设输入数据有效、正确 proc( (5) ); return 0;【答案】(1)pm25(1)表示什么时候不限行,按照题意,周六周日不限行,雾霾指数低于200以下也不限行;所以这里填pm25200或pm25PM25_L1。(2)该处获取车牌号的尾号,从后向前依次查找,只要找到一个数字字符就结束,并将这个数字字符转化为数字赋值给lastd,所以填的是licencei-0,这里有同学可能会直接写licencei,注意字符0的ASCII码对应的是48(3)此处填的是当雾霾指数大于等于400时,周内每天限行五个尾号的汽车,算法是尾号除以2的余数相同者在同一天限行,这里是尾号lastd和weekday和2进行分别取余,得到值相同的时候就是要限行,使用函数isMatched,填的是weekday,lastd,2。(4)此处填的是当雾霾指数小于400大于等于200时,周内每天限行两个个尾号的汽车,算法是尾号除以5的余数相同者在同一天限行,这里是尾号lastd和weekday和5进行分别取余,得到值相同的时候就是要限行,使用函数isMatched,填的是weekday,lastd,5。(5)此处填调用proc函数的实参,查看proc的函数定义部分,实参应该填入pm25,weekday,licence。18. 单选题嵌入式操作系统的特点之一是可定制,这里的可定制是指( )。问题1选项A.系统构件、模块和体系结构必须达到应有的可靠性B.对过程控制、数据采集、传输等需要迅速响应C.在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置D.采用硬件抽象层和板级支撑包的底层设计技术【答案】C【解析】本题考查嵌入式操作系统的基本概念。嵌入式操作系统的主要特点包括微型化、可定制、实时性、可靠性和易移植性。其中,可定制是指从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用需要。19. 单选题C语言程序中如果定义了名字都为a的全局变量和局部变量,则( )。问题1选项A.编译时报告名字a重复定义错误B.对a的引用固定指向全局变量C.对a的引用固定指向局部变量D.在局部变量a的作用域内屏蔽全局变量a【答案】D【解析】本题考查程序语言的基础知识。通常来说,一段程序代码中所用到的名字并不总是有效可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域,包括静态作用域原则和最近嵌套原则。静态作用域原则是指编译时就可以确定名字的作用域,也可以说,仅从静态读程序可确定名字的作用域。当作用域形成嵌套关系时,如块包含在函数中,函数包含在文件中,则最接近引用处定义的名字有效。从名字被定义的代码位置开始,局部变量若是定义在复合语句中,则仅在其所定义的复合语句中可引用;若是定义在函数中,则在其所定义的函数中可引用。而全局变量则可在多个函数或多个程序语言中被引用。如果有相同名字的全局变量和局部变量a,则在引用名字a的代码所在作用域中,局部变量a的作用域内屏蔽全局变量a。20. 单选题以下关于信息的描述,错误的是( )。问题1选项A.信息具有时效性和可共享性B.信息必须依附于某种载体进行传输C.信息可反映客观事物的运动状态和方式D.无法从数据中抽象出信息【答案】D【解析】本题考查信息化基础知识。信息的主要特征包括:可识别性、时效性、动态性、普遍性、可存储性、可压缩性、可转换性、可度量性和可共享性。可识别性是信息主要特征之一,不同的信息源有不同的识别方法,并从数据中抽象出信息。会通过数据收集、处理和分析,从而从数据中获取信息,进行有效决策。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!