标签:
------------(腾讯研发工程师笔试题)
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