得分为78分,还有待提高。有些简单的概念题需要加强牢固。还有一些靠猜的更需要去深度的了解它。
1、下列哪一个选项按照顺序包括了OSI模型的七个层次
C、物理层 链路层 网络层 传输层 会话层 表示层 应用层
2、某递归算法的递归关系式为T( n ) = 2*T(n/2) + O( n ),那么它所对应的时间复杂度为
B、O(n*log n)
3、如果计算机A和B的IP地址分别为10.105.1.113和10.105.1.91,并使用相同的子网掩码。如果A和B需要属于同一个网络,那么不能使用以下哪个子网掩码( )
D、255.255.255.224
113 = (01110001)B
91 = (01011011)B
224 = (11100000)B
由于113和91的二进制中的前三位数字不同,所以224不能使用。
4、有12枚硬币,其中11枚真币重量相同,有1枚假币重量与真币不同,现在有一架天平,最少称多少次可以保证一定能找出这枚假币( )
B、3
以错误的理解答对的。12枚分成2份 一次, 6枚分成2份 两次,3枚中分成3份,第三次称时恰好一样,那么第三枚就是假币。
5、class A { int a; short b; int c; char d; }; class B { double a; short b; intc; char d; }; 在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)分别是多少。 a、12 16 b、12 12 c、 16 24 d、16 20
C、16 24
class A {
int a; 4
short b; 1+3
int c; 4
short d; 1+3
};
class B {
double a; 8
short b; 1+7
int c; 4
char d; 1+3
};
6、n个节点的二叉树,最多可以有多少层?
B、log(n)
7、下面那几个函数是public void method(){̷}的重载函数?()
A、public void method( int m){}
8、TCP通信建立在连接的基础上,TCP连接的建立要使用几次握手的过程。
B、3
9、LDAP是什么?
C、是一种访问协议
10、设x为int型变量,则执行以下语句段后,x的值为:
x=10;
x+=x-=x-x;
B、20
11、Linux namespace不包含:
D、Cgroup
12、python中, 进行下列算式时, 可能为假的是:
C、3.2 + 3.2 == 6.4
13、下列不能被压缩的内容是:
B、一次性密码本
14、32位操作系统能识别的最大内存上限是:
C、4G
15、下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是:
B、堆排序
16、到商店里买200的商品返还100的优惠券(可以在本商店代替现金)。如果使用优惠券买东西不能获得新的优惠券,那么买200返100优惠券,实际上省多少?
B、33%
17、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是该栈输出序列的是
A、5 4 1 3 2
18、进程间通讯方式描述正确且效率最高的是
A、共享内存
19、已知一棵二叉树,如果先序遍历的节点顺序是: SDCEFGHB ,中序遍历是: CDFEGHSB ,则后序遍历结果为:
D、CFHGEDBS
20、Unix系统中,哪些可以不能用于进程间的通信?
C、磁盘文件
21、供Java存取数据库能力的包是
A、java.sql
22、以下关于主键和唯一索引的区别错误的是?
B、主键不能空,唯一索引可以为空
23、以下描述中,对抽象类和接口的区别描述正确的是
A、抽象类可以有构造方法,接口不能有构造方法;
24、有关线程的哪些叙述是错的
A、一旦一个线程被创建,它就立即开始运行。
25、以下方式无法保证线程安全的是
B、将共享变量定义为static
26、对文件权限信息 drwxr-xr-x 描述不正确的是
A、文件一个文件
27、以下http状态码表示重定向的是
D、302
28、下列叙述正确的是
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
29、下列那个同步元语适合于对运行时间较长的任务的保护
D、信号量 (Semaphore)
30、国内从 14 年起各大型网站纷纷迁移到 HTTPS 安全协议,从而一定程度上避免了火绵羊为代表的互联网流量安全危机,下列哪一项不是使得这件事情成功的原因
C、与标准差异的浏览器份额下降
31、
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 using namespace std; 5 const int N = 1e5+10; 6 char s[N]; 7 int dp[N]; 8 int main() { 9 scanf("%s",s+1); 10 int len = strlen(s+1); 11 int MAX = -1, index = -1; 12 for(int now = 1; now <= len; now ++) { 13 int MAXLEN = 1; 14 while(now-MAXLEN >= 1 && now+MAXLEN <= len) { 15 if(s[now-MAXLEN] == s[now+MAXLEN]) MAXLEN++; 16 else break; 17 } 18 if(MAX < 2*MAXLEN-1) { 19 MAX = 2*MAXLEN-1; 20 index = now; 21 } 22 MAXLEN = 1; 23 while(now-MAXLEN+1 >= 1 && now+MAXLEN <= len) { 24 if(s[now-MAXLEN+1] == s[now+MAXLEN]) MAXLEN++; 25 else break; 26 } 27 if(MAX < 2*MAXLEN-2) { 28 MAX = 2*MAXLEN-2; 29 index = now; 30 } 31 } 32 index -= (MAX-1)/2; 33 for(int i = index; i < index+MAX; i ++) 34 printf("%c",s[i]); 35 return 0; 36 }
32、给定两个数字(0-9)字符串(长度不限)求它们的乘积。
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 using namespace std; 5 const int N = 1e5+10; 6 char s1[N], s2[N]; 7 int num[N*2]; 8 int mul(char *s, char *ss,int *num) { 9 int len1 = strlen(s); 10 int len2 = strlen(ss); 11 int len3 = len1+len2; 12 for(int i = 0; i < len1/2; i ++) swap(s[i],s[len1-i-1]); 13 for(int i = 0; i < len2/2; i ++) swap(ss[i],ss[len2-i-1]); 14 for(int i = 0; i < len1; i ++) { 15 for(int j = 0; j < len2; j ++) { 16 num[i+j] += (s[i]-'0')*(ss[j]-'0'); 17 } 18 } 19 for(int i = 0; i < len3; i ++) { 20 if(num[i] >= 10) { 21 num[i+1] += num[i]/10; 22 num[i] %= 10; 23 } 24 } 25 while(num[len3] == 0 && len3 >= 0) len3--; 26 len3++; 27 for(int i = 0; i < len3/2; i ++) { 28 swap(num[i], num[len3-i-1]); 29 } 30 if(!len3) len3++; 31 return len3; 32 } 33 int main() { 34 scanf("%s%s",s1,s2); 35 int len = mul(s1,s2,num); 36 for(int i = 0; i < len; i ++) printf("%d",num[i]); 37 return 0; 38 }