mysql更新等差数列求和公式_运维错题总结(二)

1、数据库磁盘存储关于RAID推荐的选择是(RAID10)

2、如果C类子网的掩码为255.255.255.240,则包含的子网位数、子网数目、每个子网中的主机数目正确的是(4 14 14)

解释:

首先C类地址掩码为255.255.255.000 。可知子网号为240(1111 0000) 。所以子网位数为4,对于分类的IPv4地址进行子网划分时,子网号不能使用全1和全0(CIDR却可以),所以子网数为16-2=14。又因为主机号全0表该网络地址,全1表广播地址,所以去掉这两种,子网中的主机数为16-2=14 。

3、下面程序的功能是输出数组的全排列,选择正确的选项,完成其功能。(k==m 和 perm(list,k+1,m))

void perm(int list[], int k, int m)

{

if ( )

{

copy(list,list+m,ostream_iterator(cout," "));

cout<

return;

}

for (int i=k; i<=m; i++)

{

swap(&list[k],&list[i]);

( );

swap(&list[k],&list[i]);

}

}

4、对一个含有20个元素的有序数组A做二分查找,数组起始下标为1,则查找A[2]的比较序列的下标为(10 5 2 )

解释:

折半查找的基本思想是:首先以整个查找表作为查找范围,用查找条件中给定值k与中间位置结点的关键字比较,若相等,则查找成功;否则,根据比较结果缩小查找范围,如果k的值小于关键字的值,根据查找表的有序性可知查找的数据元素只有可能在表的前半部分,即在左半部分子表中,所以继续对左子表进行折半查找;若k的值大于中间结点的关键字值,则可以判定查找的数据元素只有可能在表的后半部分,即在右半部分子表中,所以应该继续对右子表进行折半查找。每进行一次折半查找,要么查找成功,结束查找,要么将查找范围缩小一半,如此重复,直到查找成功或查找范围缩小为空即查找失败为止。

5、将当前命令sh test.sh 任务在后台执行,下列最优雅的做法是(nohup sh test.sh &)

解释:

使用&后台运行程序:

结果会输出到终端

使用Ctrl + C发送SIGINT信号,程序免疫

关闭session发送SIGHUP信号,程序关闭

使用nohup运行程序:

结果默认会输出到nohup.out

使用Ctrl + C发送SIGINT信号,程序关闭

关闭session发送SIGHUP信号,程序免疫

平日线上经常使用nohup和&配合来启动程序:

同时免疫SIGINT和SIGHUP信号

6、MySQL和其他关系型数据库最显著的不同点是(插件式存储引擎)

7、如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。

小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列

输入描述:

输入包括两行,第一行包含整数n(2 ≤ n ≤ 50),即数列的长度。

第二行n个元素x[i](0 ≤ x[i] ≤ 1000),即数列中的每个整数。

输出描述:

如果可以变成等差数列输出"Possible",否则输出"Impossible"。

输入例子1:

3

3 1 2

输出例子1:

Possible

思路

有两种方法,

方法1:利用等差数列的求和公式的变形,找出数列的和sum (Sn)和首项min (a1) ,判断计算的差值d是否能够是整数,也就是整除。

方法2: 先对数组排序,再遍历数组判断相邻两项的差值是否都为d。

package wangyiSpring_2017;

import java.util.Arrays;

import java.util.Scanner;

/**

@author xiaohao

@date 创建时间:Aug 13, 2017 3:31:26 PM

@version 1.0

*/

public class moveToArithmeticSequence {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

int n=sc.nextInt();

int seq[]= new int[n];

for(int i=0;i

{

seq[i]=sc.nextInt();

}

if(isArithmeticSequence(seq,n))

System.out.println("Possible");

else

System.out.println("Impossible");

}

//方法1 利用等差数列求和公式计算

public static boolean isArithmeticSequence(int[] seq, int n) {

// TODO Auto-generated method stub

int sum=0;

int min=Integer.MAX_VALUE;

for(int i=0;i

{

sum+=seq[i];

min=Math.min(min, seq[i]);

}

if( (2*(sum-nmin)) % (n(n-1))==0)

return true;

else

return false;

}

//方法2 先排序,在遍历数组,看是否等差

public static boolean isArithmeticSequence2(int[] seq, int n) {

Arrays.sort(seq);

int d=seq[1]-seq[0];

for(int i=2;i

{

if(d!=seq[i]-seq[i-1])

return false;

}

return true;

}

}

8、易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.

输入描述:

输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数

第二行为n个棋子的横坐标x[i](1 ≤ x[i] ≤ 10^9)

第三行为n个棋子的纵坐标y[i](1 ≤ y[i] ≤ 10^9)

输出描述:

输出n个整数,第i个表示棋盘上有一个格子至少有i个棋子所需要的操作数,以空格分割。行末无空格

如样例所示:

对于1个棋子: 不需要操作

对于2个棋子: 将前两个棋子放在(1, 1)中

对于3个棋子: 将前三个棋子放在(2, 1)中

对于4个棋子: 将所有棋子都放在(3, 1)中

输入例子1:

4

1 2 4 9

1 1 1 1

输出例子1:

0 1 3 10

采用暴力的方法,首先计算出集合到每一个格子的各个代价,然后和当前结果作比较,更新结果数组,最后遍历输出数组即可。

空格的地方是个坑,注意一下就可以。

#include

#include

using namespace std;

int n , x[55] , y[55] , ans[55];

void helper();

int main(){

cin>>n;

for(int i=0;i>x[i];

for(int i=0;i>y[i];

for(int i=0;i

helper();

for(int i=0;i

cout<

if(i

cout<

}

}

return 0;

}

void helper(){

for(int i=0;i

for(int j=0;j

int dis[n],tmp=0;

for(int k=0;k

sort(dis,dis+n);

for(int k=0;k

tmp+=dis[k];

ans[k] = ans[k]>tmp ? tmp : ans[k];

}

}

}

}

9、关于端口的描述正确的是(ftp使用tcp 20 端口,ftp使用tcp 21端口,dns使用tcp 53端口,dns使用udp 53端口)

解释:

DNS udp/53 :DNS服务监听的端口,用来给用户提供DNS解析服务的,tcp 53主从服务间同步DNS记录的

10、关于python类的继承说法正确的是(可以有多个父类)

解释:

类可以继承一个或多个父类

11、下列哪些算法在排序过程中需要一个记录的辅助空间(直接插入排序,直接选择排序,冒泡排序)

12、属于数据库优化技巧的是(分离数据、日志、索引到不同的高性能I/O设备;用or的字句可以分解成多个查询,并且通过union链接多个查询;将数据的处理工作放在服务器,例如多使用存储过程)

13、

vim的退出编辑命令:

:q 不保存退出

:q! 不保存强制退出

:wq 写入文件并退出

:wq! 强制写入并退出(只有当操作者是文件所有者才可行)

:x 文件有变动时等同于 :wq,文件无变动时等同与 :q

ZZ 等同于:x

14、进程A,C处于目态,进程B,D处于管态,描述正确的是(进程A可以通过trap指令对进程D进行调用。进程B可以通过mov指令对进程D进行调用;进程C调用进程D执行后,不一定返回中断断点。进程B调用进程D径直返回中断断点。)

15、分析以下消费者进程,并将临界区②补充完整,合理的是: ( )

process producer i(i=1,2,…n)

p(a) ;

p(b) ;

② ;

v(b) ;

v? ;

take a product from [y] ;

y=(y+1)mod12;

take a product from [y] ;

y=(y+1)mod10;

16、使用堆排序方法排序(45,78,57,25,41,89),初始堆为( 89,78,57,25,41,45 )

17、6个圆盘的汉塔诺,总的移动次数是(63) 【2^n -1】

18、有关希尔排序算法叙述正确的是( 最后一次的步长增量一定为1; 分割后子序列内部的排序算法是直接插入排序 )

19、在一个空的5阶B-树中依次插入关键字序列{6,8,15,16,22,10,18,32,20},插入完成后,关键字6所在结点包含的关键字个数为( 3 )

20190809182930751.png

n阶B-树,除根节点/叶子节点外的节点,最多有n个子树,最少ceil(n/2)(n/2的上界)个子树。

所以,最少3个关键字,根节点至少两个子树,还剩下5个

20、在求两个集合并集的过程中,可能需用到的操作是( 取元素; 插入元素;比较操作;求表长 )

需求:求两个集合的并集

1. 取元素,至少得知道集合存的是啥元素

2. 插入元素,并集可能存在集合 A 中有而集合 B 中无的元素,需要插入到新的集合中

3. 比较操作,判断是否相等

4. 求表长,完整遍历

21、下列关于zabbix的说法正确的是(zabbix_server用来接受其他进程提交的数据

)

22、邮件服务器为每个用户限制磁盘存储空间上限,执行checkquota -cug /var/mail指令后, 在/var/mail目录自动创建的配置文件是( aquota.group与aqouta.user )

aquota.group与aqouta.user分别是组以及用户磁盘配额需要的配置文件,而且权限还是600

23、某页式虚拟存储系统,针对作业A按照10个字地址序列进行访问。若采用FIFO调度算法会产生5次缺页中断,若采用LRU算法会产生6次缺页中断,则以下推断合理的是(分配给作业A的存储块M=3,作业A的第0页在调度之前已放入内存块中,

系统可以按照作业A的页号进行调度,若采用FIFO调度算法,中断率为50%,若采用LRU算法,中断率为60%。 )

24、某磁盘格式化后每个盘面10个扇区,现有记录1~11存放于同一磁道,若要顺序处理这些记录,则以下说法正确的是(若磁盘转速为20ms,每条记录的平均处理时间为4ms,则处理完10条记录的时间为204ms。若磁盘转速为20ms,每条记录的平均处理时间为4ms,则处理第一条记录的时间为6ms。

若随机处理这10条记录,则所消耗的系统时间可以低至60ms。 )

25、广义表即我们通常所说的列表(lists)。它放松了对表元素的原子性限制,允许他们有自身结构。那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为:(1,4)

26、索引是对数据库表中一个或多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中数据。以下对索引的特点描述错误的是:(在使用分组和排序子句进行数据检索时,并不会减少查询中分组和排序的时间)

分组和排序是查询到结果后的操作,此时索引不生效

27、重复的数据,会增加磁盘空间的占有率,延长操作数据的时间。可以使用规范化处理数据冗余,以下对符合第一范式的表述正确的是:(表中不应该有重复组。列重复拆成另外一张表;行重复拆成多行)

第一范式:满足第一范式的关系中每个属性都不可再分

第二范式:非主键都依赖主键,比如多主键时不能只依赖其中一个

第三范式:除主键外其他字段都依赖主键

28、在 python中,数据类型分为可变和不可变数据类型。string int float tuple boolen 不可变 list dict 和set为可变数据类型

29、关于http协议,说法正确的是(GET请求的参数一般位于URL中

POST请求的数据位于消息的主体)

30、Objective-C中实现多线程都有哪几种方法:

(采用NSOperationQueue,采用GCD)

31、$$脚本运行的当前进程ID号

32、以下不合法的shell头是(不合法指运行会报错):(!#/bin/bas)

33、it的使用是程序员不可缺少的一项技能。以下对git的描述正确的是(git可以利用快照签名回溯历史版本;去中心化;git属于分布式版本控制工具

git可以采用公钥认证进行安全管理 )

34、shc 加密软件

-e:指定过期时间 ,格式“日/月/年”;-m:指定过期后执行此shell程序的提示信息。

35、有关线性链表叙述正确的是(线性链表中的各元素在存储空间中的位置不一定连续,且各元素的存储顺序也是任意的)

36、用于文本加密(RSA,MD5,DES)

RSA 非对称加密

RC4、DES 对称加密

MD5 单向散列函数

37、已知int占4个字节,bool占1个字节。

unsigned int

value = 1024;

bool condition =

*((bool *)(&value));

if (condition)

value += 1; condition = *((bool *)(&value));

if (condition)

value += 1; condition = *((bool *)(&value));

问value, condition 的值为__(1024,0)__。

value是无符号32位,而condition取了32位中的低8位,当value是1024时,对应的低8位全是0,因此condition的值是0.

因为condition的值是0,因此不会走下边的if语句,导致value的值没变,从而导致condition的值也不会变,代码执行完毕。

38、关于python中的复数,下列说法正确的是(表是复数的语法是real + image j;实部虚部都是浮点数;方法conjugate 返回复数的共轭复数)

虚数不能单独存在,它们总是和一个值为0.0的实数部分一起构成一个复数

表示虚数的语法:real+imagj

实数部分和虚数部分都是浮点数

虚数部分必须有j或J

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值