------------(腾讯研发工程师笔试题)
1.爸爸去哪儿中的3对父子站成一排,各自父子之间不能相邻,比如石头不能和郭涛挨着,以此类推,共有几种站法?
A.120
B.48
C.240
D.144
分析:答案为C。
解题方法1:假设三对父子分别是Aa、Bb、Dd;
int main()
{
int i=10;
int j=1;
const int *p1;//(1)
int const *p2=&i; //(2)
p2=&j;//(3)
int *const p3=&i;//(4)
*p3=20;//(5)
*p2=30;//(6)
p3=&j;//(7)
return 0;
}
A.1,2,3,4,5,6,7
B.1,3,5,6
C.6,7
D.3,5
分析:答案为C。
(1)const int*p1:表示不能通过指针p1修改它指向的内存单元的值,但是p1本身可修改。
3、以下代码输出什么____.
main()
{
int a[5]={1,2,3,4,5};
int *p=(int *)(&a+1);
printf("%d",*(p-1));
}
A.1
B.2
C.5
D.出现错误
分析:答案:C。
数组名a可以作为数组的首地址,而&a是数组的指针,那么&a+1就是表示一个指向大小为5的下一个数组的指针,也就是数组a最后一个元素的下一个位置,那么int*p=(int*)(&a+1)进行强制类型转换,将指向数组的指针转换为指向第二个数组中首元素的指针,所以p-1则是指向第一个数组中最后一个元素的指针,所以输出是5。
5、有如下C++代码:
struct A{
void foo(){printf("foo");}
virtual void bar(){printf("bar");}
A(){bar();}
};
struct B:A{
void foo(){printf("b_foo");}
void bar(){printf("b_bar");}
};
那么
A *p=new B; p->foo(); p->bar();
输出为:
A.barfoob_bar
B.foobarb_bar
C.barfoob_foo
D.foobarb_fpp
分析:答案:A
A *p=newB;// A类指针指向一个实例化对象B, B类继承A类,先调用父类的无参构造函数,bar()输出bar,B类没有自己显示定义的构造函数。
6、linux下,指定文件file1为所有用户可读,可写,可执行,执行命令:___1__。修改file1的拥有者为test,拥有组为user,执行命令:___2__。
A.chmod 776,chown test
B.chmod 777,chown user
C.chmod 777,chown test
D.chmod 778,chown user
分析:答案:C。
# 改变权限chmod 777 filepath # 改变所有者chown test filepath # 改变所属组chgrp user filepath
原文:http://www.cnblogs.com/carsonzhu/p/5212626.html