2022年职业考证-软考-程序员考试名师押题精选卷I(带答案详解)试卷号86_第1页
2022年职业考证-软考-程序员考试名师押题精选卷I(带答案详解)试卷号86_第2页
2022年职业考证-软考-程序员考试名师押题精选卷I(带答案详解)试卷号86_第3页
2022年职业考证-软考-程序员考试名师押题精选卷I(带答案详解)试卷号86_第4页
2022年职业考证-软考-程序员考试名师押题精选卷I(带答案详解)试卷号86_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

住在富人区的她2022年职业考证-软考-程序员考试名师押题精选卷I(带答案详解)(图片可根据实际调整大小)题型12345总分得分一.综合题(共50题)1.单选题

C语言程序中如果定义了名字都为a的全局变量和局部变量,则()。

问题1选项

A.编译时报告名字a重复定义错误

B.对a的引用固定指向全局变量

C.对a的引用固定指向局部变量

D.在局部变量a的作用域内屏蔽全局变量a

【答案】D

【解析】本题考查程序语言的基础知识。

通常来说,一段程序代码中所用到的名字并不总是有效可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域,包括静态作用域原则和最近嵌套原则。静态作用域原则是指编译时就可以确定名字的作用域,也可以说,仅从静态读程序可确定名字的作用域。当作用域形成嵌套关系时,如块包含在函数中,函数包含在文件中,则最接近引用处定义的名字有效。从名字被定义的代码位置开始,局部变量若是定义在复合语句中,则仅在其所定义的复合语句中可引用;若是定义在函数中,则在其所定义的函数中可引用。而全局变量则可在多个函数或多个程序语言中被引用。

如果有相同名字的全局变量和局部变量a,则在引用名字a的代码所在作用域中,局部变量a的作用域内屏蔽全局变量a。

2.单选题

在以用户界面(UI)层、系统交互(SI)层、问题领域(PD)层和数据管理(DM)层构成的软件架构中,业务实体和业务逻辑属于()层。

问题1选项

A.UI

B.SI

C.PD

D.DM

【答案】C

【解析】本题考查软件工程的基础知识。

业务实体和业务逻辑属于企业需要解决的实际问题的领域。

3.单选题

(

)istheprocessoftransforminginformationsoitisunintelligibletoanyonebuttheintendedrecipient.

问题1选项

A.Encryption

B.Decryption

C.Security

D.Protection

【答案】A

【解析】本题考查计算机专业英语知识。

()是对信息进行转换的过程,除预期的接收者外,任何人都无法理解。

A.加密

B.解密

C.安全性

D.保护

4.单选题

现有员工工资关系定义为(员工号,姓名,部门,基本工资,岗位工资,全勤奖,应发工资,扣款,实发工资)。如下SQL语句用于查询“部门人数大于2的部门员工平均工资”:

问题1选项

A.ORDERBY姓名

B.ORDERBY部门

C.GROUPBY姓名

D.GROUPBY部门

问题2选项

A.WHERECOUNT(姓名)>2

B.WHERECOUNT(DISTINCT(部门))>2

C.HAVINGCOUNT(员工号)>2

D.HAVINGCOUNT(DISTINCT(部门))>2

【答案】第1题:D

第2题:C

【解析】第1题:

第2题:试题(1)的正确答案为选项D。因为,本题是按部门进行分组,ORDERBY子句的含义是对其后跟着的属性进行排序,故选项A和B均是错误的;GROUPBY子句就是对元组进行分组,保留字GROUPBY后面跟着一个分组属性列表。根据题意,要查询部门员工的平均工资,选项C显然是错误的,正确答案为选项D。

试题(2)的正确答案为选项C。因为WHERE语句是对表进行条件限定,所以选项A和B均是错误的。在GROUPBY子句后面跟一个HAVING子句可以对元组在分组前按照某种方式加上限制。COUNT(*)是某个关系中所有元组数目之和,但COUNT(A)却是A属性非空的元组个数之和。COUNT(DISTINCT(部门))的含义是对部门属性值相同的只统计1次。HAVINGCOUNT(DISTINCT(部门))语句分类统计的结果均为1,故选项D是错误的;HAVINGCOUNT(员工号)语句是分类统计各部门员工,故正确答案为选项C。

5.单选题

将操作数包含在指令中的寻址方式称为()。

问题1选项

A.直接寻址

B.相对寻址

C.间接寻址

D.立即寻址

【答案】D

【解析】若操作数就包含在指令中,则是立即寻址。

若操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址,则是直接寻址。

间接寻址是相对于直接寻址而言的,指令地址字段的形式地址D不是操作数的真正地址,而是操作数地址的指示器。

若操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名,则是寄存器寻址。

若操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中,则是寄存器间接寻址。

6.单选题

(

)canhelporganizationstobetterunderstandtheinformationcontainedwithinthedataandwillalsohelpidentifythedatathatismostimportanttothebusinessandfuturebusinessdecisions.

问题1选项

A.Dataprocessingsystem

B.BigDataanalytics

C.Cloudcomputing

D.Databasemanagement

【答案】B

【解析】本题考查计算机专业英语知识。

()可以帮助组织更好地了解数据中包含的信息,还可以帮助识别对业务和未来业务决策最重要的数据。

A.数据处理系统

B.大数据分析

C.云计算

D.数据库管理

7.单选题

在某C程序中有下面的类型和变量定义(设字符型数据占1字节,整型数据占4字节),则运行时系统为变量rec分配的空间大小为()。

问题1选项

A.1字节

B.4字节

C.5字节

D.8字节

【答案】B

【解析】本题考查程序语言的基础知识。

共用体变量的大小取决于其所需存储空间最大的成员,最大的整形字符4字节。

8.单选题

某绿化队分派甲、乙、丙三人合作栽种一批树苗。最开始,甲、乙两人合作种了其中的1/6,后来乙、丙两人合作种了余下的2/5,最后由甲、乙、丙三人合作全部完成任务。若合作种树时各人的工作量是平均计算的,则甲、乙、丙三人的工作量之比为()。

问题1选项

A.2:3:3

B.3:4:3

C.3:5:4

D.4:6:5

【答案】C

【解析】本题考查应用数学的基础知识。

前几天,甲、乙合作种了1/6,甲和乙的工作量都为1/12;后来,乙、丙合作种了余下5/6的2/5,即1/3,因此乙和丙的工作量都为1/6;最后,由甲、乙、丙三人完成了其余的1-1/6-1/3=1/2,甲、乙、丙三人的工作量都为1/6。综上,甲的工作量为1/12+1/6=3/12;乙的工作量为1/12+1/6+1/6=5/12;丙的工作量为1/6+1/6=4/12,因此,甲、乙、丙三人工作量之比为3:5:4。

9.单选题

在(

)中,要按照确定的计算关系来找到给定关键码的存储位置。

问题1选项

A.顺序表

B.哈希表

C.单向链表

D.双向链表

【答案】B

【解析】本题考查数据结构——哈希查找基础知识。

在哈希表(散列表)中,通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫作散列函数,存放记录的数组叫作哈希表(散列表)。

哈希查找的操作步骤:

(1)用给定的哈希函数构造哈希表;

(2)根据选择的冲突处理方法解决地址冲突;

(3)在哈希表的基础上执行哈希查找。

10.案例题

阅读下列说明和C++代码,填写代码中的空缺,将解答写入答题纸的对应栏内。

【说明】

球类比赛记分系统中,每场有两支球队(Team)进行比赛(Game),分别记录各自的得分。图6-1所示为记分系统的类图。

【C++代码】

【答案】(1)intgoals或intgoals=0

(2)this->name

(3)goals++或++goals或等价表示

(4)Team*

(5)newGame(t1,t2)

【解析】本题考查考生应用C++语言进行程序设计的能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,阅读并完成程序填空。

本题中涉及比赛和球队。根据说明进行设计,题目给出了类图(图6-1类图所示)。

图中类Game和Team之间是聚合关系。Game类有两个public的函数:getResults()和incrementGoal:分别表示获取比赛结果和某支球队进1球后增加比分;private属性就是参加比赛的两支球队。Team类中有3个public函数,分别为本球队进1球后增加得分、获得本队得分和获得球队名称;private的属性为球队名称和得分。球队名采用string类型,得分信息从上下文可知是goals,用int类型。

在Team对象创建时,初始化球队名称和得分。C++11标准之后,对象的属性定义时才可显式初始化;对象的属性name类型为string,需要在构造器中对球队名称加以显式初始化。其构造器接收球队名称,参数名称与对象的属性名均为name,用this关键字加以区分。其中this关键字用来引用当前对象或类实例,可以用->取属性或行为,即:

this->name=name;

this->goals=0;

注:没有同名时是否有this->都表示名称所表示的对象属性。

从函数getGoals()中的returngoals判断,缺少属性goals来表示得分。再从上下文判断,函数increamentGoal()中,表示在比赛中某球队进1球,即goals的值增加1。

创建Game对象表示两支球队的一场比赛。构造器参数为两支球队,用以初始化Game对象的两个属性。函数getResults()用于输出当前比分。函数incrementGoal()用于表示一支球队进1球,具体是哪支球队由参数给定,所以参数类型为Team*。

主控逻辑代码在程序主入口函数main()中实现。在main()函数中,先创建两支球队(用new关键字),即两个Team类的对象指针,球队名称分别为“TA”和“TB”,指针名称分别为t1和t2,即:

Team*t1=new

Team("TA");

Team*t2=new

Team("TB");

以这两个对象指针名称为参数,创建一场比赛对象(用new关键字),指针名称为football,即:

Game*football=newGame(t1,t2);

然后用:

football->incrementGoal(t1);

football->incrementGoal(t2);

表示球队TA进一球,球队TB进一球。然后调用getResults()函数输出此时的比分,即:

football->getResults();

然后TB再进一球,再调用getResults()函数输出此时的比分,即:

football->incrementGoal(t2);

football->getResults();

综上所述,空(1)需要定义表示一支球队的得分goals,题目代码中已经给出用分号结尾,所以空(1)为intgoals(或c++11标准之后intgoals=0也支持);空(2)需要表示Team对象指针的name属性,即this->name;空(3)需要表示当前球队得分加1,因为只有一条语句,只要表示goals加1即可,即goals++或++goals(等价表示);空(4)需要表示参数类型为球队指针,即Team*;空(5)处为创建Game类的对象football,需要两个Team类型对象的指针,从其后面语句可知,两个指针名称为t1和t2,即newGame(t1,t2)。

11.单选题

利用()可以对软件的技术信息、经营信息提供保护。

问题1选项

A.著作权

B.专利权

C.商标权

D.商业秘密权

【答案】D

【解析】商业秘密权是指当事人可以依法对商业秘密享有占有、使用、收益和处分的权利。商业秘密权具有知识产权的本质特征,是对创造性成果给予保护的权利形态,可以对软件的技术信息、经营信息提供保护。

12.单选题

画数据流图时,需要用()对数据流图中各个元素进行定义。

问题1选项

A.数据说明

B.数据定义

C.数据字典

D.数据模型

【答案】C

【解析】本题考查软件工程的基础知识。

信息系统设计过程中需要画数据流图,其中包括四类元素:外部实体、输入流、处理加工和输出流,还需要用数据字典来定义各个元素及其内含的诸多参数。

13.单选题

在需要保护的信息资产中,()是最重要的。

问题1选项

A.软件

B.硬件

C.数据

D.环境

【答案】C

【解析】本题考查信息安全的基础知识。

在信息资产中,软件、硬件及环境都具有可重构性,数据则存在不可完全恢复的可能性,因此是最重要的。

14.单选题

函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(callbyvalue)方式,第二个参数采用传引用(callbyreference)方式,main()执行后输出的值为(

)。

问题1选项

A.2

B.3

C.8

D.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。

15.案例题

阅读以下说明和C代码,填写程序中的空缺,将解答写入答题纸的对应栏内。

函数strCompress(char*s)对小写英文字母串进行压缩,其基本思路是:如果串长小于3则不压缩,否则对连续出现的同一字符,用该字符及其个数来表示。例如,字符串"abbbcdddddddeeed"压缩后表示为"ab3cd7e3d"。

如图4-1所示,在计算连续出现的同一字符个数时,借助字符指针s和计数变量k表示串中的字符,当s所指字符与其后的第k个字符不同时,一个重复字符串的压缩参数即可确定。

【C代码】

#include

#include

#include

voidstrCompress(char*);

intmain()

{

chartest[]="abbbcdddddddeeed";

printf("%s\n",test);

(1);

//调用strCompress实现test中字符串的压缩

printf("%s\n",test);

return0;

}

voidstrCompress(char*str)

{

int

i;

char*p,tstr[11];

//在tstr中以字符串方式表示同一字符连续出现的次数

char*s=str,*buf;

//借助buf暂存压缩后的字符串

if(strlen(str)<3)

return;

buf=(char*)malloc(strlen(str)*sizeof(char)+1);

if(!buf)

return;

for(i=0;*s;){

intk=1;

//用k累计当前字符的连续出现次数

buf[_(2)_]=*s;

//先将当前字符写入buf[]

if(s[1]&&*s==*(s+1)){

k++;

while(_(3)_)k++;

sprintf(tstr,"%d",k);

//将k的值转换为数字串暂存在tstr中

//将暂存在tstr中的数字字符逐个写入buf[]

p=tstr;

while(*p)

buf[i++]=_(4)_;

}

s+=k;

//跳过连续出现的同一字符,使s指向下一个不同的字符

}

(5)='\0';

//设置字符串结尾

strcpy(str,buf);

//将暂存在buf中的压缩字符串复制给原串

free(buf);

}

【答案】(1)strCompress(test)或strCompress(&test[0])或等效形式

(2)i++

(3)*s==*(s+k)或s[0]=s[k]或*(s+k)&&*s==*(s+k)或s[k]&&s[0]==s[k]或等效形式

(4)*p++或等效形式

(5)buf[i]或buf[i++]或*(buf+i)或等效形式

注意:从试题五和试题六中,任选一道题解答。

【解析】本题考查C程序流程控制和字符串处理及指针的应用。

空(1)处实现对函数strCompress的调用,根据strCompress的声明和定义(voidstrCompress(char*str)要求实参提供字符存储的地址,main函数中的字符数组test保存了需要压缩的字符串,因此空(1)应填入“strCompress(test)”或其等效形式。

在函数strCompress中,其方式为:

①将首个字符存在buf数组第一个位置中

②计算该字符出现的次数,用k表示。此处计算时用ifif(s[1]&&*s==*(s+1))先做初步判断,当*s==*(s+1)表示当前位置第一个字符等于第二个字符,说明有多次出现,k值+1,如果不成立,表示该字符只出现了一次,跳过if中间的过程,直接往下一个不同字符进行判定。

当出现重复字符时,此时还要判断后面是否有重复的字符,且用k进行计数该字符出现的次数。所以第(3)空用*s==*(s+k)表示后面字符与该字符是否相同,如果相同,k值+1,直到出现不同的字符,结束循环。循环结束后,要将k值赋给buf数组中,所以用用sprintf函数将k转为字符串,然后将暂存在tstr中的数字字符逐个写入buf数组,所以第(4)空为buf[i++]=*p++,将k对应的字符串存入到buf的下一个位置。

③下一个不同字符同样想要进行赋值到buf中,但是赋值位置是之前字符的后一个位置,所以(2)填的是i++。然后对于下一个不同字符的初始位置要做下判断,例如:假设是“aaab”那么下一个不同字符是在s+3的位置,如果是“ab”那么下一个不同字符是在s+1的位置,所以此处其不同字符的偏移量是由k(前一个字符的重复次数)所确定,表示为s+k,所以用s+=k;表示跳过连续出现的同一字符,使s指向下一个不同的字符。

接下来就是重复第②、③的过程,直到字符串结束。设置buf数组末尾为字符串结束标记,由于每次在buf[]中写入字符时都对下标i进行了自增,for循环结束后,buf[i]即表示压缩字符串最后一个字符之后的位置,因此第(5)空用buf[i]='\0'表示设置字符串结尾。

16.案例题

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡(CreditCard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item)账单(Bill)进行支付。图6-1是某支付系统的简略类图。

图6-1

类图

C++代码

#include

#include〈vector〉

#include〈string〉

usingnamespacestd;

classPaymentMethod{

public:virtualvoidpay(intcents)=0;

};

//Cash、DebitCard和Item实现略,Item中getPrice()获取当前物品对象的价格

classCard:publicPaymentMethod{

private:stringname,num;

public:

Card(stringname,stringnum){this->name=name;this->num=num;}

stringtoString(){

returnthis->getType()+"card[name="+name+",num="+num+"]";)

}

voidpay(intcents){

coutexecuteTransaction(cents);

}

protected:

virtualstringgetType()=0;

virtualvoid

(1)

=0:

};

classCreditCard

(2)

{

public:

CreditCard(stringname,stringnum)

(3)

{

}

protected:

stringgetType(){return"CREDIT";}

voidexecuteTransaction(intcents){

coutclassBill{//包含所有购买商品的账单

private:

vectoritems;//包含物品的vector

public:

voidadd(Item*item){items.push_back(item);}

intgetTotalPrice(){/*计算所有item的总价格,代码略*/}

voidpay(PaymentMethod*paymentMethod){//用指定的支付方式完成支付

(4)

(getTotalPrice());

}

};

classPaymentSystem{

public:

voidpay(){

Bill*bill=newBill();

Item*item1=newItem"1234",10);Item*item2=newItem("5678",40);

bill->add(item1);bill->add(item2);//将物品添加到账单中

(5)

(newCreditCard("LISI","98765432101"));//信用卡支付

}

};

Intmain(){

(6)

=newPaymentSystem();

payment->pay();

return0;

}

【答案】(1)executeTransaction(intcents)

(2):publicCard

(3):Card(name,num)

(4)paymentMethod->pay

(5)bill->pay

(6)PaymentSystem*payment

【解析】(1)定义虚方法,在子类中实现,包含getType()和executeTransaction(intcents)两个。

(2)CreditCard继承Card,所以这里填继承,用::publicCard。

(3)CreditCard内有构造方法,并将方法内的参数传递给父类的私有成员,填:Card(name,num)。

(4)利用paymentMethod对象调用pay方法,并传入具体价格getTotalPrice,这里填paymentMethod->pay。

(5)调用bill的pay方法,bill->pay。

(6)通过PaymentSystem*payment=newPaymentSystem进行创建对象指针。

17.单选题

软件开发中的增量模型具有“()”的优点。

问题1选项

A.文档驱动

B.关注开发新技术应用

C.开发早期反馈及时和易于维护

D.风险驱动

【答案】C

【解析】本题考查软件工程的基础知识。

增量模型强调对每一个增量均发布一个可操作的产品,这有利于发现问题和修改,以文档为驱动是瀑布模型,以风险为驱动是螺旋模型。

18.单选题

某班数学考试平均成绩初步算得为86.7分,事后复查发现有两个错误,一个学生的成绩实为69分,却错误录入成96分,另一个学生的成绩实为98分,但错误录入成89分,纠正了这些错误后全班平均成绩为86.3分。据此可推断该班级共有()人。

问题1选项

A.40

B.45

C.48

D.50

【答案】B

【解析】本题考查应用数学的基础知识。

设该班级共有n人,这次考试实际总分应为86.3n分,但两次错误录入导致总分变成86.7n分,使总分增加了(86.7-86.3)n=0.4n分。其中对一个学生错误地增加了96-69=27分,对另一个学生错误地减少了98-89=9分,所以两次错误导致总分增加了27-9=18分。0.4n=18,从而n=45。

19.单选题

采用直线和曲线等元素来描述的图是()。

问题1选项

A.点阵图

B.矢量图

C.位图

D.灰度图

【答案】B

【解析】矢量图是根据几何特性、通过多个对象的组合生成图形,矢量可以是一个点或一条线。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。

位图也称为点阵图、像素图等,构成位图的最小单位是像素,位图就是由像素阵列的排列来实现其显示效果的,每个像素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个像素,可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。对位图进行缩放时会失真。

20.单选题

信息系统的智能化维护不包括(

)。

问题1选项

A.自动修复设备和软件故障

B.针对风险做出预警和建议

C.分析定位风险原因和来源

D.感知和预判设备健康和业务运作情况

【答案】A

【解析】本题考查信息系统知识。

智能化维护能够针对风险作出预警和建议并分析定位风险原因和来源,感知和预判设备健康和业务运作情况。A选项错误。

21.单选题

假设事务T1对数据D1加了共享锁,事务T2对数据D2加了排它锁,那么()。

问题1选项

A.事务T2对数据D1加排它锁成功

B.事务T1对数据D2加共享锁成功,加排它锁失败

C.事务T1对数据D2加排它锁或共享锁都成功

D.事务T1对数据D2加排它锁和共享锁都失败

【答案】D

【解析】本题考查数据库控制功能基础知识。

事务并发处理时,如果对数据读写不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁(ExclusiveLocks,简称X锁)和共享锁(ShareLocks,简称S锁)。

排它锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。

共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁读取而不能加X锁修改。

22.单选题

以下描述中,属于通用操作系统基本功能的是(

)。

问题1选项

A.对计算机系统中各种软、硬件资源进行管理

B.对信息系统的运行状态进行监控

C.对数据库中的各种数据进行汇总和检索

D.对所播放的视频文件内容进行分析

【答案】A

【解析】本题考查操作系统的基本功能的知识。

通用操作系统的五大功能为:

1)进程管理:进程控制、进程同步、进程通信、进程调度

2)文件管理:文件存储空间管理、目录管理、文件的读写管理、存取控制

3)存储管理:存储分配与回收、存储保护、地址映射(变换)、主存扩充

4)设备管理:对硬件设备管理,对输入输出设备的分配、启动、完成和回收

5)作业管理:任务、界面管理,人机交互、图形界面、语音控制、虚拟现实

因此,答案选择A。

23.单选题

某书的页码为1,2,3,...,共用数字900个(一个多位数页码包含多个数字),据此可以推断,该书最大的页码为(

)。

问题1选项

A.237

B.336

C.711

D.900

【答案】B

【解析】本题考查初等数学基础知识。

1-9页共有9个数字;10-99共有2*(99-10+1)=180个数字,而接下来100-199共有3*(199-100+1)=300个数字,200-299共有3*(299-200+1)=300个数字,此时总共的数字有:9+180+300+300=789个数字,总共900个数字,即还有900-789=111个数字,此时都是三位数的数字,所以还剩下37个数字,从300开始,到336结束,刚好37个数字。

24.单选题

栈是后进先出的线性数据结构,其基本操作不包括()。

问题1选项

A.从栈底删除元素

B.从栈顶弹出元素

C.判断是否为空栈

D.在栈顶加入元素

【答案】A

【解析】本题考查数据结构的基础知识。

栈的基本操作有入栈、出栈、取栈顶及判断栈是否为空。入栈和出栈是指在栈顶加入及删除元素,取栈顶操作仅读取栈顶元素的值而不删除元素。从栈底删除元素不是应用栈时的基本操作。

25.单选题

为了避免重复,将在程序中多处出现的一组无关的语句放在一个模块中,则该模块的内聚类型是(

)。

问题1选项

A.逻辑内聚

B.瞬时内聚

C.偶然内聚

D.通信内聚

【答案】C

【解析】本题考查软件设计的基础知识。

模块独立是软件设计时考虑的重要方面,指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系要简单。衡量模块独立程度的标准有两个:耦合性和内聚性。其中内聚是一个模块内部各个元素彼此结合的紧密程度的度量,有多种类型:

功能内聚:最强的内聚,完成一个单一功能,各个部分协同工作,缺一不可。

顺序内聚:各个处理元素都密切相关与同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。

通信内聚:所有处理元素集中在一个数据结构的区域上,或者各处理使用相同的输入数据或产生相同的输出数据。

过程内聚:模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行。

瞬时内聚(时间内聚):把需要同时执行的动作组合在一起形成的模块。

逻辑内聚:模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

偶然内聚(巧合内聚):模块内的各处理元素之间没有任何联系,可能因为某种原因,将在程序中多处出现的一组无关的语句放在一个模块中。

26.单选题

Afteranalyzingthesourcecode,(

)generatesmachineinstructionsthatwillcarryoutthemeaningoftheprogramatalatertime.

问题1选项

A.aninterpreter

B.alinker

C.acompiler

D.aconverter

【答案】C

【解析】本题考查计算机专业英语知识。

在分析了源代码之后,()生成了机器指令,将在以后执行程序的含义。

A.翻译

B.链接器

C.编译器

D.转换器

27.单选题

若系统中有4个互斥资源R,当系统中有2个进程竞争R,且每个进程都需要i个R(i

问题1选项

A.1

B.2

C.3

D.4

【答案】C

【解析】本题考查操作系统死锁基础知识。

假设每个进程都需要1个资源R,此时2个进程需要分配2个资源,进程都能得到所需资源,故不会发生死锁。

假设每个进程都需要2个资源R,此时2个进程需要分配4个资源,进程都能得到所需资源,故不会发生死锁。

假设每个进程都需要3个资源R,此时系统最多有4个互斥资源R,因此不能满足所有进程得到所有资源的需求。假如此时为2个进程各分配2个资源R,任何一个进程都需要再申请1个资源,但系统剩余可用资源数为0,进程都无法执行,故发生死锁。

28.单选题

()这两类事物之间存在一般和特殊的关系。

问题1选项

A.高铁与轮船

B.SARS与新冠肺炎

C.高铁与飞机

D.肺炎与新冠肺炎

【答案】D

【解析】本题考查面向对象的基础知识。

在采用面向对象技术开发的系统中,有些类之间存在一般和特殊的关系,一些类是某个类的特殊情况,某个类是一些类的一般情况,即特殊类是一般类的子类,一般类是特殊类的父类。例如,“汽车”类、“火车”类、“轮船”类、“飞机”类都是一种“交通工具”类。同样,“汽车”类还可以有更特殊的子类,如“轿车”类、“卡车”类等,“火车”按速度有更特殊的子类“特快”“直达列车”“动车”“高铁”等。“SARS"和“新冠肺炎”都是冠状病毒感染,相互之间不具有特殊与一般关系,“新冠肺炎”是病毒感染所致“肺炎”。在这种关系下形成一种一般和特殊的关系。

29.单选题

Asystem(

)isakindofsystemfailureinwhichthecomputerstopsrespondingtoitscontroldevicesandallrunningprogramsarelost.

问题1选项

A.crash

B.unloading

C.uninstall

D.deployment

【答案】A

【解析】系统(

)是一种系统故障,此时,计算机停止响应其控制的设备,所有正在运行的程序都丢失。

A.crash(崩溃)

B.unloading(卸货)

C.uninstall(卸载)

D.deployment(部署)

30.单选题

HTML中使用(

)标记对来标记一个超链接元素。

问题1选项

A.

B.

C.

D.

【答案】A

【解析】本题考查HTML语言方面的基础知识。

在HTML语言中,基本是使用标记对来对文本格式进行排版和提供一定的功能的。要在页面中使用超级链接,需使用锚标记来实现。标签定义超链接,用于从一个页面链接到另一个页面。元素最重要的属性是href属性,它指示链接的目标。

例如:网站页面

该行代码的作用是为文字“网站页面”定义超链接功能,使其能够连接到href属性所指的页面上,在该例子中,当用户单击“网站页面”,将会跳转到http://页面。

另外,表示加粗,表示倾斜标签,标签定义短的引用。

31.单选题

已知函数y=f(x)在x1和x2处的值分别为y1和y2,其中,x2>x1且x2-x1比较小(例如0.01),则对于(x1,x2)区间内的任意X值,可用线性插值公式()近似地计算出f(x)的值。

问题1选项

A.y1+(y2-y1)(x-x1)/(x2-x1)

B.x1+(y2-y1)(x-x1)/(x2-x1)

C.y2+(y2-y1)(x2-x1)/(x-x1)

D.x2+(x2-x1)(x-x1)/(y2-y1)

【答案】A

【解析】本题考查初等数学基础知识。

该题是我们初高中所学的知识,y=y1+(y2-y1)(x-x1)/(x2-x1)。

32.单选题

5G网络技术具有()的特点。

问题1选项

A.低带宽、低时延

B.低带宽、高时延

C.高带宽、低时延

D.高带宽、高时延

【答案】C

【解析】5G技术(第五代移动通信技术)具有高带宽、低时延的特点,可用于大数据量高速传输,实时响应以满足远程医疗、自动驾驶等需要。

33.案例题

阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。

【说明】

如果n位数(n≥2)是回文数(从左到右读与从右到左读所得结果一致),且前半部分的数字递增(非减)、后半部分的数字将递减(非增),则称该数为拱形回文数。例如,12235753221就是一个拱形回文数。显然,拱形回文数中不含数字0。

下面的流程图用于判断给定的n位数(各位数字依次存放在数组的各个元素A[i]中,i=1,2,...,n)是不是拱形回文数。流程图中,变量T动态地存放当前位之前一位的数字。当n是奇数时,还需要特别注意中间一位数字的处理。

【流程图】

注1:“循环开始”框内给出循环控制变量的初值、终值和增值(默认为1),格式为:循环控制变量=初值,终值[,增值]

注2:函数int(x)为取x的整数部分,即不超过x的最大整数。

【答案】(1)n-i+1

(2)T&&A[i]!=0或

T&&A[i]>0

(3)T

(4)n

(5)T或A[n/2]或A[(n-1)/2]

【解析】1)跟A[i]对称的后半部分元素下标是n-i+1;

2)T动态地存放当前位之前一位的数字,所以这里A[i]大于前一项T值。且在拱形回文数中,不含数字0,所以再加上一个条件A[i]!=0

3)比较完后,将A[i]值赋给T,T进行动态地存放当前位之前一位的数字。

4、5)判断元素个数是偶数还是奇数,如果是奇数,则还需要进行判断最中间的元素,所以4空这里填n,5空填的是为奇数个时最中间元素的前一项元素的表示。

34.单选题

关系数据库是表的集合。对视图进行查询,本质上就是从(

)中查询获得的数据。

问题1选项

A.一个视图

B.一个或若干个索引文件

C.一个或若干个视图

D.一个或若干个基本表

【答案】D

【解析】本题考查关系数据库方面的基本概念。

在关系数据库中,所有的数据都是存放在二维表中。对于视图,在关系数据库中存放的是视图的定义,若用户对视图进行查询,其本质是从一个或多个基本表中导出的数据进行查询。

35.案例题

阅读以下说明和C代码,填写程序中的空(1)~(5),将解答写入答题纸的对应栏内。

【说明】

下面程序运行时,对输入的表达式进行计算并输出计算结果。设表达式由两个整数和一个运算符(+或-)构成,整数和运算符之间以空格分隔,运算符可以出现在两个整数之前、之间或之后,整数不超过4位,输入的两个整数和运算符都用字符串表示。

例如,输入分别为“25+7”“+257”“257+”时,输出均为“25+7=32”。

【C代码】

#include

intstr2int(char*s);

//将数字字符串转换为整数

intisOperator(char*str);

//判断字符串的开头字符是否为运算符

voidcal(charop,chara[],charb[]);

//将数字串转化为对应整数后进行op所要求的计算

voidsolve(chara[],charb[],charc[]);

intmain()

{

chara[10],b[10],c[10];

scanf(’’%s%s%s’’,a,b,c);

//输入数据的有效性检测略,下面假设输入数据有效、正确

Solve(a,b,c);

Return0;

}

intstr2int(char*s)

{

intval=0;

while(*s){

val=

(1)

+(*s-'0');

//将数字字符串转换为十进制整数

(2)

;

//令字符指针指向下一个数字字符

}

returnval;

}

intisOperator(char*str)

{

return(*str==‘+’||*str==‘-’);

}

voidcal(charop,chara[],charb[])

{

switch(op){

case‘+’:

printf(”%s+%s=%d”,a,b,str2int(a)+str2int(b));

break;

case‘-’:

printf("%s-%s=%d”,a,b,str2int(a)-str2int(b));

break;

}

}

voidsolve(chara[],charb[],charc[])

{//解析输入的3个字符串,输出表达式及计算结果

if(isOperator(a)){

//运算符在两个整数之前

cal(

(3)

);

}

elseif(isOperator(b)){

//运算符在两个整数之间

cal(

(4)

);

}

else{

//运算符在两个整数之后

cal(

(5)

);

}

}

【答案】(1)va1*10或等效形式

(2)s++或++s或s=s+1或s+=1或等效形式

(3)a[0],b,c或等效形式

其中,a[0]可表示为*a,b可替换为&b或&b[0],c可替换为&c或&c[0]

(4)b[0],a,c或等效形式

其中,b[0]可表示为*b,a可替换为&a或&a[0],c可替换为&c或&c[0]

(5)c[0],a,b或等效形式

其中,c[0]可表示为*c,a可替换为&a或&a[0],b可替换为&b或&b[0]

【解析】1、2空将数字字符串进行全部转化为数字,例如“1234”转化为数字1234,分别用指针s依次取字符,val将数字保留,之前是’1’,val=1;然后s=’2’,val=12,然后s=’3’,val=123,然后s=’4’,val=1234,因此val=val*10+*s-‘0’。每次循环后s向后移动一个。

3、4、5考查的都是函数调用的问题,首先判断运算符的位置,用isOperator来进行判定,如果字符串a就是运算符,那么操作数就是b和c,调用cal函数进行计算。实参传递的时候,第一个参数要传递字符,后面两个参数传递字符数组或者字符指针,(3)填写的是*a,b,c,依次类推,(4)答案是*b,a,c,(5)的答案是*c,a,b。

36.单选题

()isthedeliveryofdifferentservicesthroughtheInternet,includingdatastorage,servers,databases,networking,andsoftware.

问题1选项

A.AI

B.Blockchain

C.CloudComputing

D.BigData

【答案】C

【解析】云计算就是通过互联网交付的多种服务,包括数据存储、服务器、数据库、组网和软件。

37.单选题

对于某C程序中的如下语句,()。

问题1选项

A.运行时输出true

B.编译时报告错误

C.运行时输出false

D.运行时报告异常

【答案】A

【解析】本题考查C程序语言的基础知识。

数学运算关系“a<b<c”在不同的编程语言中可能有不同的规定。在C语言中,需要将复合关系拆解为单一关系后用逻辑运算符连接,才能表达复合关系的本意。对于“a<b<c",在C语言中需表示为“a<b&&b<c"。若直接表示为“a<b<c",则先对“a<b"求值,结果为0(关系不成立)或1(关系成立),之后对“0<c”或“1<c"求值。

在本题目中,对表达式“(0<t<5)”求值时,t的值为0,因此“0<0”不成立,结果为0,然后“0<5”成立,所以“(0<t<5)”的结果为1,因此该语句的运行结果总是输出true,实际上,无论t的初始值为什么,表达式“(0<t<5)”的结果都为1。

38.单选题

函数main()、f()的定义如下所示。调用函数f()时,采用引用调用方式(allbyreference),从函数f()返回后,main()中x的值为()。

问题1选项

A.1

B.2

C.4

D.5

【答案】A

【解析】本题考查程序语言的基础知识。

引用调用是指在被调用函数中,形参是实参的引用(或别名),在被调用函数中对形参的操作即是对实参的操作,因此结束调用后对实参进行修改的结果得以保留。在本例中,形参a即main中的实参x,在f中a为本地变量x减去1,结果为1,main中的x被修改为1,因此最后输出为1。

在具体实现中,引用参数的实现是将实参的地址传递给形参,借助指针实现对实参变量的访问。

39.单选题

在软件开发的各个阶段,不同层次的人员参与程度并不一样。下图大致描述了某软件开发公司高级技术人员、管理人员和初级技术人员在各个阶段参与的程度,其中,曲线①、②、③分别对应(

)。

问题1选项

A.高级技术人员、管理人员、初级技术人员

B.管理人员、高级技术人员、初级技术人员

C.高级技术人员、初级技术人员、管理人员

D.管理人员、初级技术人员、高级技术人员

【答案】A

【解析】本题考查软件工程基础知识。

图中的直线表示总体来说各类人员参与程度的概况,当某个阶段人员参与度高的时候,对应的Y值越大。软件开发的最初阶段是管理人员接到项目,然后着手和安排人员等,随即高级技术人员参与需求分析和总体设计,在详细设计阶段初级技术人员才逐步参与。编码阶段工作量最大的是程序员(初级技术人员),但需要得到高级技术人员的指导和把控。测试阶段初期(单元测试)也是程序员为主,系统测试后则以高级技术人员为主。测试过程中还可能出现反复。整个过程中管理人员需要控制进度、质量、资源的分配使用等,在编码阶段管理人员参与度最低。

40.单选题

从对信息的破坏性上看,网络攻击可以分为被动攻击和主动攻击。以下属于被动攻击的是()。

问题1选项

A.伪造

B.流量分析

C.拒绝服务

D.中间人攻击

【答案】B

【解析】网络攻击是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的,任何类型的进攻动作。对于计算机和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问计算机系统的数据,都会被视为对计算机和计算机网络的攻击。

主动攻击会导致某些数据流的篡改和虚假数据流的产生。这类攻击可分为篡改、伪造消息数据和终端(拒绝服务)。

被动攻击中的攻击者不对数据信息做任何修改,而是在未经用户同意和认可的情况下,攻击者获得了信息或相关数据。通常包括窃听、流量分析、破解弱加密的数据流等攻击方式。

41.单选题

目前,云计算(cloudcomputing)已成为信息化建设的主要形态。以下关于云计算的叙述中,不正确的是()。

问题1选项

A.云计算是基于互联网的相关服务的增加、使用和交付模式

B.云计算将所有客户的计算都集中在一台大型计算机上进行

C.云计算支持用户在任意位置使用各种终端获取相应服务

D.云计算的基础是面向服务的架构和虚拟化的系统部署

【答案】B

【解析】本题考查网络新技术-云计算知识。

云计算(CloudComputing)是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。所以B错误。

42.单选题

在C程序中,(

)是合法的用户定义变量名。

①_123

②form-7

③short

④form_7

问题1选项

A.①③

B.②③④

C.②④

D.①④

【答案】D

【解析】本题考查程序语言基础知识。

C语言规定用户定义的标识符(变量名、函数名、数组名等)必须以字母或下划线开头且由字母、数字和下划线构成,同时不能使用语言的保留字(或者叫作关键字,如for、short、int、while等)。short是表示短整型数据的关键字,form-7中包含的“-”不符合规定。_123和form_7是合法的用户定义标识符。

43.单选题

Windows操作系统通常将系统文件保存在()。

问题1选项

A.“MyDrivers”文件或“update"文件中

B.“MyDrivers"文件夹或“update"文件夹中

C.“Windows"文件或“ProgramFiles”文件中

D.“Windows”文件夹和“ProgramFiles”文件夹中

【答案】D

【解析】本题考查Windows操作系统方面的基础知识。

在操作系统中,文件是保存在文件夹(根目录或子目录)中的,故选项A、选项C是错误的。Windows系统中,系统文件是计算机上运行Windows所必需的文件。系统文件通常保存在“Windows"文件夹或“ProgramFiles”文件夹中,可见选项B也是错误的。根据排除法,正确选项为D。

注意:默认情况下,系统文件是隐藏的,以避免将其意外修改或删除。

44.单选题

计算机中最基本的单位基准时间是()。

问题1选项

A.时钟周期

B.指令周期

C.总线周期

D.CPU周期

【答案】A

【解析】时钟周期又叫作振荡周期、节拍周期,定义为时钟晶振频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。

指令周期是指取出并完成一条指令所需的时间,一般由若干个机器周期组成。

在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期(也称为CPU周期)。

通常把CPU通过总线对微处理器外部(存储器或I/O端口)进行一次访问所需要的时间称为一个总线周期。

综上所述,正确的答案为A选项。

45.单选题

某系统的可用性达到99.99%,这意味着其每年的停机时间不能超过(

)。

问题1选项

A.5.3分钟

B.53分钟

C.8.8小时

D.4天

【答案】B

【解析】本题考查应用数学基础知识。

系统的可用性(SystemUsability),系统服务不中断运行时间占实际运行时间的比例。如果系统的可用性达到99.99%,则表示10000分钟停机时间为1分钟,停机时间占比为0.01%。

每年按365天算,每年有365×24=8760小时,则8760×0.0001=0.876小时=52.56分钟≈53分钟。

46.案例题

阅读以下说明和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

#definePM25_L1200

#definePM25_L2400

typedefenum{YES,NO}MARKTAG;

intisDigit(charch)

{//判断ch是否为十进制数字字符,是则返回1,否则返回0

return(ch>='0'&&chintisMatched(intweekday,intt,intd)//判断是否符合限行规则,是则返回1,否则返回0

{return(weekday%d==t%d);}

voidproc(intpm25,intweekday,char*licence)

{

inti,lastd;

if(weekday==6||weekday==7||

(1)

)

prt_msg(licence,NO);

else{

for(i=5;i>=0;i--)

if(isDigit(licence[i])){

lastd=

(2)

;//获取车牌号的尾号

break;

}

if(pm25>=PM25_L2){//限行5个尾号的汽车

if(isMatched(

(3)

))

prt_msg(licence,YES);

else

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论