京东选择题总结

单选题

1从邻接矩阵

        0  1  0  0

A =   1  0  1  1

        0  1  0  1

可以看出,该图中含有顶点的个数为(  B    )

A  9   B 4   C 5    D3

解析:从矩阵可以得到
Vo    v1   v2   v3
V0   0      1     0    0
V1   1      0     1    1
V2   0      1     0    1
V3  0       0     0    0
可以判断顶点个数为4


单选题

(2)分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,关于二者说法中正确的是( B     )

A求解目标不同,搜索方式相同

B求解目标不同,搜索方式也不同

C求解目标相同,搜索方式不同

D求解目标相同,搜索方式也相同

分支界限法类似于回朔法,也是在问题的解空间T上的搜索问题的解法,但是一般情况下,分支界限法与回朔法的求解目标不同
回朔法的求解目标:找出T中满足约束条件的所有解
分支限界法:找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或者极小的解,即在某种意义下的最优解
分支限界法和回朔法的搜索方式也不同
回朔法:深度优先的方式搜索解空间树T
分支限界法:广度优先或者最小耗费优先的方式搜索解空间树
分支限界法的搜索策略:

在扩展结点处,先生成其所有的儿子结点,然后再从当前的活结点表中选择下一个扩展结点,

为了有效的选择下一个扩展结点,以加速搜索,在每一个活结点处,计算一个函数值(限界)

并根据这些已经计算出的函数值,从当前活结点表中选择一个最有利的节点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快找出一个最优解


   
   

方法

对解空间树的搜索方式

存储结点的常用数据结构

结点存储的特性

常用的应用

回朔法

深度优先搜索

堆栈

活结点的所有可行子结点被遍历后才能从栈中弹出

找出满足约束条件的所有解

分支限界法

广度优先或者最小消耗优先搜索

队列,优先队列

每个结点只有一次能成为活结点的机会

找出满足约束条件的一个解或特定意义下的最优解





多选题

3.有关选择排序的叙述中正确的是(   AD   )

A每扫描一遍数组,只需要一次交换

B每扫描一遍数组,需要多次交换

C选择排序是稳定的排序方法(简单的选择排序是稳定的,但是选择排序是非稳定的)

D空间复杂度为O(1)

选择排序:每一趟(假设第i趟)从i+1到n的数据中选择出来关键字最小的元素作为第i个元素,最多需要n-1趟排序就可以达到序列有序
所以每扫描一遍数组,只需要交换一次
空间复杂度为O(1)

排序方法

平均情况

最好情况

最坏情况

辅助空间

稳定性

冒泡排序

O(n^2)

O(n)

O(n^2)

O(1)

稳定

简单选择排序(稳定)

选择排序(非稳定)

O(n^2)

O(n^2)

O(n^2)

O(1)

稳定

直接插入排序

O(n^2)

O(n)

O(n^2)

O(1)

稳定

希尔排序

O(nlogn)--O(n^2)

O(n^1.3)

O(n^2)

O(1)

不稳定

堆排序

O(nlogn)

O(nlogn)

O(nlogn)

O(1)

不稳定

归并排序

O(nlogn)

O(nlogn)

O(nlogn)

O(n)

稳定

快速排序

O(nlogn)

O(nlogn)

O(n^2)

O(logn)-O(n)

不稳定

多选题

(4)关于堆排序复杂度分析的叙述中正确的是(  ABCD    )

A堆排序的时间复杂度为O(nlogn)

B整个构建堆的时间复杂度为O(n)

C堆排序的空间复杂度为O(1)

D堆排序是一种不稳定的排序算法

(1)堆的时间复杂度分析:
运行时间主要是消耗在初始构建堆和重建堆的反复筛选上
构建堆:时间复杂度为O(n);
重建堆:时间复杂度为O(n*logn)
总体:O(nlogn)
(2)空间复杂度为O(1)
(3)堆排序是一种不稳定的排序

(5)设散列表的长度为8,散列函数H(k)=k mod 7,初始记录关键字序列为(32,24,15,27,20,13),计算用链地址法作为解决冲突方法的平均查找长度是(  B    )

A1.4    B1.5    C1.6    D2

位置

0

1

2

3

4

5

6

7

数值

13

15

 

24

32

 

27

20

查找次数

3

 

 

1

1

 

1

2

32%7 = 4  查找次数为1次
24%7 = 3 查找次数为1次
15%7 = 1 查找次数为1次
27%7 = 6 查找次数为1次
20%7 = 6 6下面已经有数字,所以往后继续找,找到7,查找的次数为2
13%7 = 6 6后面已经有数字,继续往后找,找到7,7底下也有数字,再继续查找,找到0,查找次数为3
平均查找长度 = (1+1+1+1+2+3)*1/6 = 1.5

(6)设循环队列的容量为50(序号从0到49),现经过一系列的入队和出队运算后,有 front=16,rear=5(rear指向队尾元素的后一位置),当前循环队列中元素个数为(   B   )

A11    B39    C40    D12

循环队列的容量为N, front = a, rear = b, 当前循环队列中元素的个数 = (b-a+N)%N
(5-16+50)%50 = 39

多选题

(7)计算机网络通信安全的目标是什么?(    ABD  )

A防止析出报文内容和流量分析

B防止恶意程序

C加强防火墙

D检测更改报文流和拒绝服务

计算机网络通信安全的五个目标:
(1)防止析出报文内容
(2)防止通信量分析
(3)防止更改报文流
(4)检测拒绝报文服务
检测伪造初始化   

(8)单选题

要判断IP地址是否在同一个网络,下列哪一项运算正确?(  C    )

A   IP非子网掩码

B   IP或子网掩码

C   IP与子网掩码

D   IP模2加子网掩码

(9)多选题

dns服务中资源记录的类型有(ABC      )

APTR     B A     CCNAME     D B

A(host):
即是A记录,也称为主机记录,是DNS名称到IP地址的映射,用于正向解析
CNAME:
CNAME记录:也是别名记录,用于定义A记录的别名
MX:   
邮件交换器记录,用于告知邮件服务器进程将邮件发送到指定的另一台邮件服务器

NS:

NS记录,用于标识区域的DNS服务器,即是说负责DNS区域的权威名称服务器,用哪一台DNS服务器来解析该区域,一个区域可能有多条ns记录

PTR:

是IP地址到DNS名称的映射,用于反向解析

SOA:

用于一个区域的开始,SOA记录后的所有信息均是用于控制这个区域的,每个区域数据库文件必须包含一个SQA记录,并且必须是其中的第一个资源记录,用以标识DNS服务器管理的起始位置,SOA说明能解析这个区域的DNS服务器中哪一个是主服务器

radata:

数据字段用于指定与当前资源相关的数据

资源记录类型

描述

起始授权结构(SQA)

指出当前区域内谁是主DNS服务器

主机(A)

将域名FQAD映射到IP正向解析

别名(CNAME)

将A记录指向的域名指向另外一个域名

邮件交换器(MX)

指出当前区域内SMTP邮件服务器IP

名称服务器(NS)

指出当前区域内有几个DNS服务器在提供服务

反向解析(PRT)

将IP解析为FQND


(10)linux用户磁盘配额配置文件aquota.user的默认访问权限是(C      )

A644   B755   C600   D700

rw--- ---

(11)单选题

有一语法制导方法如下,其中“+”表示符号连接运算:

S→B      {print(B.reverse)}

B→a      {B.reverse=a}

B→b      {B.reverse=b}

B→Ba     {B.reverse=a+B.reverse}

B→Bb     {B.reverse=b+B.reverse}

若输入符号串abab,则采用自底向上语法分析方法时,输出为:( D     )

Aaabb

Babab

Cbbaa

Dbaba

 

(12)一个流程图称为可归约的,当且仅当流图中除去回边外,其余的边构成一个:(  D    )

A有环图

B无环图

C有环路流图

D无环路流图

《编译原理》:可归约流图:一个流图,删去了回边后的子图是个无环路的有向图,则称这个流图为可归约的流图

多选题

(13)一个四体并行低位交叉存储器,每个模块的容量是64K*32位,存取周期为200ns,下列说法错误的是( AC D )。    

A在200ns内,存储器能向CPU提供256位二进制信息    

B在200ns内,存储器能向CPU提供128位二进制信息   

C在50ns内,存储器能向CPU提供32位二进制信息   

D在50ns内,存储器能向CPU提供64位二进制信息 

计算机组成原理的内容:
多行并行系统:
以实际数据为例,某个存储体有2个 存储芯片,每个存储芯片的存储周期为100ns,如果按照这种放置方法,先放第一个芯片,放满后再放第二个芯片(顺序方式)
读0位置数据,等100ns,读1位置的数据,等100ns读2位置数据
但是如果换一种方式来放,0位置是一号芯片的起始位置,1位置是2号芯片的起始位置单元,2位置是1号芯片第二个单元,3位置是2号芯片的第二个单元这样交叉编址,采用交叉编码之后,读的顺序即是:
读0位置的数据到缓冲区,40ns后,cpu取走了数据,,这时1号芯片的100ns的周期还没有过,不能去读,但是我们读的不是1号芯片,而是2号芯片,这样,我们就把2号芯片的数据读到缓冲区,过了40ns后,cpu取走数据,此时过去了80ns,我们只需要再等20ns就可以继续读三号位置
低位交叉编码又称为横向编码,连续的地址分布在相邻的存储体中,而同一存储体内的地址都是不连续的,存储器的寄存器的低位部分经过译码选择不同的存储体,而高位部分则指向存储体内的存储字,如果采用分时启动的方法,可以在不改变每个存储体存取周期的前提下,提高整个主存的速度
一个存取周期读四个模块:4*32 = 128

14.多选题

以下叙述正确的是( BC )。???答案还有D,感觉D不太对    

A一个更高级的中断请求一定可以中断另一个中断处理程序的执行    

B中断方式一般用于处理随机出现的服务请求    

C DMA的数据传送不需CPU控制    

D DMA和CPU必须同时使用总线

《计算机组成原理》 
DMA传输将数据从一个地址空间复制到另外一个地址空间,当CPU初始化这个传输动作, 传输动作本身由DMA控制器来实现和完成
在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在一个总线控制权转移的问题,即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输之后,DMA控制器立即把总线控制权再交给cpu

15.单选题

在MySql中,如果允许用户UserA查看数据库BookStore所有的数据,则下列授权语句正确的是(   C   )

A  grant select to UserA

B  grant select on BookStore to UserA

C  grant select on BookStore.* to UserA

D   grant select on BookStore.* from UserA

16.多选题

关于MySql的权限级别,下列描述正确的是(BCD      )

A   MySql中的权限分为四个级别:Global Level、Database Level、Table Level、Routine Level

B   Global Level所有权限信息都保存在mysql.user 表中,它的所有权限都是针对整个mysqld 的,对所有的数据库下的所有表及所有字段都有效

C   Database Level其作用域即为所指定整个数据库中的所有对象

D   Routine Level 的权限主要只有EXECUTE 和ALTER ROUTINE 两种,主要针对的对象是procedure 和function 这两种对象

(1)Global Level 
针对整个mysql的,对所有数据库下的所有表及字段都有效,称为全局权限控制,所有权限信息都保存在mysql.user中
(2)database level
Database level 是在Global level 之下,其他三个level 之上的权限控制,作用域为所指定的整个数据库中的所有对象
Database Level 主要少了以下几个权限:CREATE USER,FILE,PROCESS,RELOAD,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHUTDOWN,SUPER 和USAGE 这几个权限,没有增加任何权限
(3)table level
在database level 下,权限作用范围是授权语句中所指定的数据库的指定表
Table Level 的权限由于其作用域仅限于某个特定的表,所以权限种类也比较少,仅有
ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT UPDATE 这八种权限
(4)column level
  Column Level在Table Level之下
 Column Level权限仅有INSERT、SELECT、UPDATE三种
  Column Level 的权限作用范围就更小了,仅仅是某个表的指定的某个(活某些)列。
权限仅有INSERT,SELECT 和UPDATE 这三种
(5)Routine Level(常规)
  Routine Level主要只有EXECUTE 和ALTER ROUTINE两种权限
Routine Level 主要针对函数和存储过程两个对象
主要针对的对象是procedure 和function 这两种对象,在授予Routine Level 权限的时候,需要指定数据库和相关对象

17.单选题

某软件系统结构图如图所示,该结构图的深度为(B)





 

 

A 2

B 3

C 4

D 5

18.多选题

前台进程是Android系统中最重要的进程,在Andriod系统中包含哪些情形( ABC    )

A Activity正在与用户进行交互

B进程服务正在执行声明中的回调函数

C进程的BroadCastRecevier在执行PnRecevie()函数

D 当一个Activity被部分遮挡时

Android 中的进程有哪些,说出他们的优先级

前台进程:
(1)进程中包含处于前台的正与用户交互的activity;
(2)进程中包含与前台activity绑定的service;
(3)进程中包含调用了startForeground()方法的servive;
(4)进程中包含了正在执行onCreate(), onstart() 或者onDestroy()方法的service
(5)进程中包含了正在执行的onReceive()方法的BroadcastReceiver;
系统中前台进程的数量很少,前台进程几乎不会被杀死,只有当内存低到无法保证所有的前台进程同时运行时,才会选择杀死某个前台进程
可视进程:
(1)进程中包含未处于前台但仍然可见的activity(调用了activity的onPause()方法,但是没有调用onstop()方法),典型的情况是运行activity时弹出对话框,此时的activity虽然不是前台的activity但是仍然可见
(2)进程中包含与可见activty绑定的service
(3)可视进程不会被系统杀死,除非为了保证前台进程的运行而不得已为之
服务进程
进程中包含已启动的service
后台进程:
进程中包含不可见的activity(onstop()方法调用后的activity),后台进程不会直接影响用户体验,为了保证前台进程、可视进程,服务进程的运行,系统随时都有可能杀死一个后台进程,一个正确的实现了生命周期方法的activity处于后台时被系统杀死,可以在用户重新启动时恢复之前的运行状态
空进程:
不包含任何处于活动状态的进程是一个空进程,系统经常杀死空进程,这不会造成任何影响,
空进程存在的唯一理由就是为了缓存一些启动数据,以便下次可以更快的启动

19.单选题

如果在应用程序中设置闹钟,则应该使用(   A   )类

A AlarmManager

B ClockManager

C AudioManager

D PhoneManager

20.单选题

在Tween动画下,下面哪个方法可以构建一个渐变尺寸伸缩动画(  B    )

A  AlphaAnimation   //渐变透明度

B  ScaleAnimation    //渐变尺寸缩放

C  TranslateAnimation  //位置移动

D  RotateAnimation  //画面旋转

Animation                  动画

AlphaAnimation             渐变透明度

RotateAnimation            画面旋转

ScaleAnimation             渐变尺寸缩放

TranslateAnimation         位置移动

AnimationSet               动画集

21.多选题

关于C#的委托代理模式,说法正确的是(  ABD   )

A委托实际上是一种引用方法的类型

B一旦程序中为委托分配了方法,委托将和该方法具有相同的行为

C委托可以是对类的抽象

D委托的实例代表一个具体的函数或方法

委托是一种引用方法的类型,
一旦为委托分配了方法,委托将于该方法具有完全相同的行为
委托可以是对函数的抽象,即为函数的“类”,委托的实例将代表一个具体的函数或者方法

22.多选题

以下关于Spring的说法是正确( BD  )

A Spring 不能和Hibernate一样设置bean是否为延迟加载

B在Spring配置文件中,就可以设置Bean初始化函数和消亡函数

C属性注入只能是简单数据,构造方法注入可以是对象

D对象的设计应使类和构件之间的耦合最小

1.Bean的初始化和消亡函数
在spring配置文件的bean标签中,可以设置该bean的初始化函数和消亡函数
2.Spring配置文件的bean标签中,可以设置该bean是否为延迟加载
3.两种注入方法的比较
如果属性是简单数据,属性注入的格式如下:
<property name="属性名"> 
<value>值</value> 
</property> 
如果是一个对象,则属性注入的格式如下:
<property name="属性名"> 
<ref local="对象名" /> 
</property> 
如果属性是简单数据,构造函数注入的格式如下:
<constructor-arg index="参数序号" type="参数类型"> 
    <value>参数的值</value> 
</constructor-arg> 
如果是一个对象,则构造函数注入的格式如下:
<constructor-arg index="参数序号" type="参数类型" ref="对象名"> 
</constructor-arg> 
属性注入的特点是,不需要知道属性类型,但是必须知道属性名称;
构造函数注入的特点是不需要知道参数名称,但是必须知道参数的序号和类型。
耦合性和控制反转
耦合性是软件工程中一个重要的概念,对象之间的耦合性就是对象之间的依赖性,对象之间的耦合度越高,维护的成本就越高,因此,对象的设计应该使类和构件之间的耦合度最小

23.单选题

在Objective-C中,以下说法正确的是( C)

A对象被创建出来后,它的引用计数是1

B使用@class 类名; 就可以把想要的类的接口文件中内容包含进来.

C一个文件中可以声明多个类

D使用便利构造器创建的对象需要通过调用release方法释放

(1)Objective-C使用了一种引用计数的技术。可以通过程序增加和减少它的引用计数,当引用计数为0的时候就可以释放该对象了。
(2)使用@class方式由于只需要只要被引用类(B类)的名称就可以了,而在实现类由于要用到被引用类中的实体变量和方法,所以需要使用#importl来包含被引用类的头文件;
(3)
(4) 谁开辟的谁管理例如便利构造器 没有使用alloc开辟内存空间,所以我们不会对便利构造器创建的对象release 但是便利构造器对象仍需要释放,在便利构造器封装的方法里边自动封装了autorelease

NSString *str = @“lanou”;

[str retain];

 NSLog(@“%lu”,str.retainCount);

此处打印出来的值是多少(D).

 

A 1

B 2

C -1

D ULONG_MAX

 

25.单选题

#import<>的作用和#import“”的作用错误的是 (A )。

A #import<>用来引入自定义文件

B #import“”用来引入自定义头文件

C#import<>和#import“”都可以用来导入文件

D#import“”避免重复导入

26.单选题

下列说法中错误的是(B)

A子类可以重写父类的方法

B子类没有重写父类的方法,用子类对象调用这个方法会报错

C子类没有重写父类的方法但可以使用父类的方法

D子类重写了父类方法,那么用子类对象调用这个方法,执行的是子类里面的方法

27.单选题

设置代理为属性正确的是(C)

A @property(nonatomic,assign)//常用属性解读

B @property(atomic,copy)

C @property(nonatomic,copy)//设置代理属性

D @property(nonatomic,retain)设置文本字体

 

(28)下列程序的运行结果是3,5,请为横线处选择合适的程序(ABD      )

#include<stdio.h>

struct S

{int n;

 char c[10];

 } *p;

main()

{ struct S a[3]={{3,"abc"},{5,"def"},{7,"ghi"}};

  p=a;

  printf("%d,",(*p).n);

  printf("%d\n",___________);

}

 

A(++p)->n    B(a+1)->n     Cp++->n     D(p+1)->n   

 

(29)单选题

下列程序的运行结果是1 2 3 4 10 9 8 7 6 5,请为横线处选择合适的程序(C  )

#include <stdio.h>

void s(int *a,int n)

{ int i,j,t;

  for(i=0;i<n-1;i++)

   for(j=i+1;j<n; j++)

    if(*(a+i)<*(a+j))

     {t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10},i;

  s(______,6);  

  for(i=0;i<=9;i++)

    printf("%d ",*(a+i));

  printf("\n");

}

 

Aa    Ba+3    Ca+4    Da+5    

30.单选题

下列函数f的功能是比较c数组相邻行字符串的大小,比较后将值大的字符串置于值小的字符串的上一行,请为横线处选择合适的程序( D   )

void f(char c[5][6])

{ int i,j;

  char temp[10];

  for(i=0;i<4;i++)                   

   for(j=______;j<5;j++)

    if(strcmp(c[i],c[j])>0)

     {strcpy(temp,c[i]);

      strcpy(c[i],c[j]);

      strcpy(c[j],temp);

      }

}

 

Ai+1     B0    C1     Di-1  

















  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值