Welcome to Rooeye's blog

2017年奇虎360实习生招聘题目答案及部分题解

笔试 rooeye 868℃ 0评论
1.在MySql中创建存储过程,则下列说法正确的是()

A MySql存储过程参数,在参数名称前需要加“@”    
B 在MySql存储过程中需要使用“return”关键字返回值
C MySql存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”
D MySql存储过程的参数不能指定默认值
2.Factory Method模式和Prototype模式之间的区别可以理解为()
A Prototype模式是利用现有的对象进行克隆
B FactoryMethod模式是重新创建一个对象
C Factory Method模式是利用现有的现象进行克隆
D Prototype模式是重新创建一个对象
3.<?PHP
for($i=0;$i<3;$i++)
{
echo “第”.$i.“次循环<br>”;
echo $i;
?>
对以上程序段说法正确的有()
A 循环执行了3次
B 起到连接字符串作用
C 最终$i的值是3
D 循环执行了2次
单选题 linux
 4.linux加载USB磁盘设备的指令是()
A mount
B setup
C load
D umount
5.下列程序运行后的结果是()
#include<stdio.h>
main()
{
int a=1,b=2,c=3,d=0;
if(a==1)
  if(b>=2)
     if(c<3)
       {d=1;}
       else
        {d=2;}
     else
       if(c!=3)
         {d=3;}
        else
         {d=4;}
     else
    {d=5;}
printf(“%d\n”,d);
}
A 4
B 2
C 5
D 3
多选题  操作系统
5 web虚拟主机是下列哪些服务的组合()
A DNS
B RIP
C DHCP
D WWW
单选题  操作系统
6.某时刻进程的资源使用情况如下所示
此时的安全序列是()
A 不存在
B P1,P4,P3,P2
C P1,P2,P3,P4
D P1,P3,P2,P4
单选题 算法与程序设计
7.下列算法段中循环体语句的语句频度为()
for(i=0;i<=n;i++)
{
  for(j=0;j<=i;j++)
  {
    x=3*x+1;
   }
}
A n的平方
B(n+1)的平方/2
C (n+1)(n+2)/2
D n(n+1)/2
单选题 算法与程序设计
8.在分块查找中,若索引表各块内均用顺序查找,则有289个元素线性表若分成17块,其平均查找长度为()
A 19
B 16
C 18
D 17
解析:
顺序查找: ASL = (n+1)/2
二分查找: ASL = log(n+1)-1
分块查找(块内顺序查找): ASL =   (b+1)/2 + (s+1)/2  
分块查找(块内二分查找): ASL =   (b+1)/2 + log(s+1)-1
(b=分块块数 ,  s=n/b)
单选题 算法与程序设计
9.设一组初始记录关键字序列为(325,216,366,209,627,115),用基数排序最低位优先LSD法进行一趟分配和回收得到的有序序列为()
A 115,209,216,325,366,627
B 325,115,216,366,627,209
C 115,216,209,325,366,627
D 209,216,115,325,627,366
多选题 算法与程序设计
10.在构造平衡二叉树过程中一次插入的关键字为7,6,4,10,8,11,为了保证平衡,进行的调整类型正确的是()
A 插入4时进行LL型调整
B 插入11时进行RR调整
C 插入8时进行RL调整
D 插入10时进行RR型调整
解析:
如果一棵树左子树高,用L表示,右子树高,用R表示,首先找到最小失衡子树,然后找到最小失衡子树的下一级子树,如果最小失衡子树左子树高且其下一级子树右子树高,则做LR型调整,其余同理亦然,这里的连续两个字符第一个字符对应的是最小失衡子树,第二个字符对应的是最小失衡子树的下一级子树。
单选题  算法与程序设计
11.有函数int func(int i)的实现为
int func(int i)
{
   if(i>0)
     return i*func(i-2);
  else
     return  1;
}
函数调用f(7)的返回值是()
A 105
B 42
C 35
D 95
单选题  算法与程序设计
12对一组初始关键字序列(35,45,75,15,10,60,55,40)进行冒泡排序,在整个排序过程中最多需要进行相邻记录的比较的次数为()
A 28
B 49
C 64
D 56
单选题  算法与程序设计
13.有以下程序的输出结果为()
int f(int t[],int n)
{
if(n>0)
return t[n-1]+f(t,n-1);
      else
return 2;
}
main()
{
int a[4]={1,3,5,7},s;
   s=f(a,4);printf(“%d\n”,s);
}
A 12
B 16
C 18
D 10
单选题  算法与程序设计
14.设一组初始记录关键字序列为(25,15,30,18,40,20),则以25为中轴的一趟霍尔排序结果为()
A 15,18,20,25,40,30
B 20,15,18,25,40,30
C 20,18,15,25,40,30
D 15,18,20,25,30,40
解析:霍尔排序即为快速排序
多选题 c/c++
15.有以下程序段,且变量已正确定义赋值
for(s=1.0,k=1;k<=n;k++)
{
s=s+1.0/(k*(k+1));
}
printf(“s=%f\n\n”,s);
请为下列横线处选择合适的表达式,使两段程序的功能完全相同()
s=1.0;k=1;
while(_____)
{
s=s+1.0/(k*(k+1));
________;
}
printf(“s=%f\n\n”,s);
A k++<=n;
 
B ++k<=n;
 
C k<=n
++k
D k<n
k++
单选题 c/c++
16.给出下面程序输出结果()
#include<iostream.h>
class a
{
public:
a(int i=10)
{
x=i;cout<<“a”<<x<<endl;
}
int x;
};
class b:public a
{
public:
b(int i):A(i)
{
x=i;cout<<“b:”<<x<<“,”<<a::x<<endl;
}
private:
a A;
int x;
};
void main()
{
b B(5);
}
A a:10
  a:5
  b:5,10
B b:5,10
  a:5
  a:10
C a:5
  a:10
  b:5,10
D b:5,10
  a:10
  a:5
单选题 c/c++
17.下列程序的运行结果是10 9 8 7 6 5 4 3 2 1 ,请为横线处选择合适的程序()
#include <stdio.h>
void R(int b[],int n)
{
 int i,temp;
   for(i=0;i<___;i++)
{
temp=b[i];
b[i]=b[n-1-i];
b[n-1-i]=temp;
}
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i;
R(a,10);
for(i=0;i<10;i++)
printf(“%d”,a[i]);
}
A n
B n-1
C n/2
D n/2-1
多选题 c/c++
18.若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有()
A a[0]与a相同
B *(a+1)为元素6的地址
C **(a+1)+2的值为8
D a[1][2]的值为10
单选题
19.语句ofstream f(“TEMP.DAT”,ios::app|ios::binary)的功能是建立该对象f,试图打开文件TEMP.DAT并与之链接,并且()
A 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
B 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
C 若文件存在,打开失败;若文件不存在,建立一个新文件
D 若文件存在,将其置为空文件;若文件不存在,打开失败
单选题 c/c++
20.对于 int*pa[5]的描述,()是正确的
A pa是一个具有5个元素的指针数组,每个元素是一个int型指针
B pa是一个指向数组的指针,所指向的数组是5个int型元素
C pa是一个指向某数组中第5个元素的指针,该元素是int型变量
D pa[5]表示某个数组的第5个元素的值
21下列程序的运行结果是1 8 7 6 5 4 3 2 9 10,请为横线处选择合适的程序()
#include <stdio.h>
void fun(int a[],int n)
{
 int i,t;
   for(i=1;i<n/2;i++)
{
t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;
}
}
main()
{
int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,_____);
for(i=0;i<10;i++)
printf(“%d”,k[i]);
  printf(“\n”);
}
A 10
B 9
C 8
D 4
多选题
22.下列程序的功能是输出结构体变量s[1]的x成员变量,请为横线处选择合适的程序()
#include <stdio.h>
struct student
{
int x,y;
};
struct student s[2]={9,3,8,2};
main()
{
struct student*p=s;
  printf(“%d”,________);
}
A s[1].x
B p++->x
C (++p)->x
D (p++)->x
单选题
23.如果int a=3,b=4;则条件表达式“a<b?a:b”的值是()
A 0
B 1
C 4
D 3
24.
#include <stdio.h>
class A
{
int *a;
A(int x=0):a(new int(x))
{
}
~A()
{
delete a;
}
int getA()
{
return *a;
}
void setA(int x)
{
*a=x;
}
};
void main()
{
A x1,x2(3);
A*p=&x2;
(*p).setA(x2.getA()+5);
x1.setA(10+x1.getA());
cout<<x1.getA()<<“”<<x2.getA()<<endl;
}
A 10
B 20
C 110
D 108
单选题
25 下列程序的运行结果是()
#include<stdio.h>
#define N 10
int f(int *s,int n)
{
int i;
i=n;
while(s[i]%n)
++i;
return i;
}
main()
{
int a[N];int i;
for(i=0;i<N;i++)
a[i]=2*i-1;
printf(“%d\n”,f(a,3));
}
A 4
B 5
C 7
D 6
多选题
26.有以下定义语句,编译时不会出现编译错误的是()
A char a=’\x41′;
B char a=”a”;
C char a=’\0′;
D char a=’\101′;
单选题
27.下列程序的功能是将数组a中的下标为奇数的字符按照从大到小的顺序排列,请为横线处选择合适的程序()
#include <stdio.h>
#include <string.h>
main()
{
char a[]=”clanguage”,t;
int i,j,k;
k=strlen(a);
for(i=1;i<=k-2;i+=2)
for(j=i+2;_____;j+=2)
  if(a[i]<a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
puts(a);
printf(“\n”);
}
A j<k-1
B 不填
C j<=k-1
D j<=k
单选题
28.下面程序的输出结果为
#include <stdin.h>
struct m
{
int x;
int*y;
}  *p;
int a[4]={12,33,-40,100};
struct m b[4]={10,&a[2],9,&a[3],8,&a[0],7,&a[1]}’
main()
{
p=b;
printf(“%d\n”,++p->x);
printf(“%d\n”,(++p)->x);
printf(“%d\n”,++(*p->y));
}
A 11
  9
  101
B 10
  9
  99
C 10
  10
  101
D 10
  9
  101
单选题
29.下列程序,运行后文件test1.dat里的内容为12cde,请为横线处选择合适的程序()
#include <stdio.h>
main()
{
FILE *pf;
char *s1=”123″,*s2=”abcde”;
pf=fopen(“test1.dat”,”w”);
fwrite(s2,5,1,pf);
rewind(pf);
fwrite(_______);
fclose(pf);
}
A s2,1,2,pf
B s1,1,2,pf
C s1,3,1,pf
D s2,1,3,pf
单选题
30.下面程序段中,for循环的执行次数是()
char  *s=”\ta\018bc”
for(;*s!=”\0″s++)
{
printf(“*”)
}
A 7
B 9
C 5
D 6
解析:
\018 不是八进制(0-7)表示,解析为\01和8
单选题
31.以下fun函数的功能是在3行4列的整数二维数组中,选出一个最大值作为函数值返回,请为横线处选择合适的程序()
#include<stdio.h>
int fun(int a[3][4])
{
int i,j,row=0,col=0;
for(i=0;i<3;i++)
  for(j=0;j<4;j++)
      if(a[i][j]>a[row][col])
        _____
  return (a[row][col]);
}
main()
{
int i,j;
int a[3][4]={
     {1,2,3,4},
     {5,6,7,8},
     {9,10,11,12}};
printf(“%d\n”,fun(a));}
A a[i][j]=a[row][col];
B a[row][col]=a[i][j]
C a[row][col]++;
D a[i][j]++;
单选题
32.以下程序,函数f1的功能是求出x和y最大公约数,请为横线处选择合适的程序()
#include<stdio.h>
int f1(int x,int y)
{
int t,r;
if(x<y){t=x;x=y;y=t;}
while(________)
{
r=x%y;
x=y;
y=r;
}
return (x);
}
main()
{
int m,n,k,l;
scanf(“%d,%d”,&m,&n);
k=f1(m,n);
printf(“%d\n”,k);
}
A r!=0
B x>y
C y!=0
D x!=y
单选题
33.下列程序,函数fun功能是找出二维数组s第一列元素中的最小元素,其运行结果为1,请为横线处选择合适的程序段()
#include <stdio.h>
int fun(int(*s)[4],int n)
{
int m,i;
m=s[0][0];
for(i=1;i<n;i++)
if(_______)
m=s[i][0];
return m;
}
main()
{
int a[4][4]=
{
{1,2,3,4},
{11,12,13,14},
{21,22,23,24},
{31,32,33,34}
};
printf(“%d\n”,fun(a,4));
}
A s[i][0]>m
B s[i][i]<m
C s[0][i]<m
D s[i][0]<m
单选题
34 请选择下列程序运行后的结果()
#include<stdio.h>
int f(int *p,int x,int n)
{
int i;
*p=n;i=x;
while(n!=p[i])
{i++;}
return i;
}
main()
{
int a[10];int i;
for(i=1;i<=9;i++)
{
a[i]=i+2;
}
printf(“%d\n”,f(a,5,10));
}
A 8
B 3
C 4
D 9
单选题
35.如果有一个2M的文本(英文字母),为了对其中的字母进行分类和计数,若为文本中的每个字母都定义一个对象显然不合实际,对与该问题最好可使用的模式是()
A 享元(Flyweight)模式
B 合成(Composite)模式
C 命令(Command)模式
D 装饰(Decorator)模式
多选题:
36.关于索引,描述正确的是()
A 聚焦索引是指索引项的顺序与表中记录的物理顺序一致的索引
B 在一个基本表中,可以建立多个聚集索引
C 在一个基本表中,可以建立多个非聚集索引
D 建立索引的目的是为了提高查询速度
单选题
37.主机甲向主机乙发送一个(SYN=1,seq=11220的TCP段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是()
A (SYN=0,ACK=0,seq=11221,ack=11221)
B (SYN=1,ACK=1,seq=11221,ack=11221)
C (SYN=1,ACK=1,seq=11220,ack=11220)
D (SYN=0,ACK=0,seq=11220,ack=11220)
解析:
Image.png
单选题
38.若一颗二叉树具有15个度为0的结点,5个度为1的结点,则结点的总个数为()
A 20
B 34
C 36
D 28
解析:
如果一棵树有 n 个 叶子节点,那么 度为2的节点 就有 n -1个

 

来自为知笔记(Wiz)

 

转载请注明:寻梦人博客 » 2017年奇虎360实习生招聘题目答案及部分题解

喜欢 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址