Welcome 微信登录

首页 / 操作系统 / Linux / 搜狗2012.9.23校园招聘会笔试题

C/C++类1、以下程序的输出是(12)
  1. class Base 
  2. public
  3.     Base(int j) : i(j) {  }   
  4.     virtual ~Base() {  } 
  5.     void func1() 
  6.     { 
  7.         i *= 10; 
  8.         func2(); 
  9.     } 
  10.     int getValue() 
  11.     { 
  12.         return i; 
  13.     } 
  14. protected
  15.     virtual void func2() 
  16.     { 
  17.         i++; 
  18.     } 
  19. protected
  20.     int i; 
  21. }; 
  22.  
  23. class Child : public Base 
  24. public
  25.     Child(int j) : Base(j) {  } 
  26.     void func1() 
  27.     { 
  28.         i *= 100; 
  29.         func2(); 
  30.     } 
  31. protected
  32.     void func2() 
  33.     { 
  34.         i += 2; 
  35.     } 
  36. }; 
  37.  
  38. int main(void) 
  39.     Base *pb = new Child(1); 
  40.     pb->func1(); 
  41.     cout<<pb->getValue()<<endl; 
  42.     delete pb; 
  43.      
  44.     return 0; 
2、请问程序的输出结果是(30)
#define DOUBLE(x) x+x // x*2
int i = DOUBLE(5)*5;
cout<<i<<endl;
3、写出一下程序的输出(死循环)
  1. int main(void) 
  2.     char num; 
  3.     for(num = 0; num < 255; ) 
  4.         num += num; 
  5.     printf("%d ",num); 
  6.     return 0; 
4、程序出错在什么阶段?()
  1. int main(void) 
  2.     http://www.sogou.com  
  3.     cout<<"welcome to sogou"<<endl; 
  4.      
  5.     return 0; 
A、编译阶段出错    B、运行阶段出错    C、编译和运行都出错    D、程序运行正常
因为http://www.sogou.com中//后面是注释,前面的http:是标签(类似于goto语句中的标签)。(这个题目碉堡了)

5、下面程序执行结果为【说明:X86_64环境】(D)
  1. int main(void) 
  2.     int a[4][4] = { 
  3.                   {1,2,3,4}, 
  4.                   {50,60,70,80}, 
  5.                   {900,1000,1100,1200}, 
  6.                   {13000,14000,15000,16000} }; 
  7.     int (*p1)[4] = a; 
  8.     int (*p2)[4] = &a[0]; 
  9.     int *p3 = &a[0][0]; 
  10.     printf("%d %d %d %d ",*(*(a+1)-1),*(*(p1+3)-2)+1,*(*(p2-1)+16)+2,*(p3+sizeof(p1)-3)); 
  11.      
  12.     return 0; 
A、16000 1101  13002 2
B、4  2  3  60
C、16000  2  3  2
D、4  1101  13002  60
p1为指向一维数组的指针,所以a + 1指向{50,60,70,80}这一维的地址。减一则为4的地址;同理第二个输出1101。同理,由于数组的列是4,所以*(p2 - 1) + 16就相当于*(p2) + 12,所以第三个输出13002。
第四个由于p1是指针,所以sizeof(p1)为8(68位的系统),所以第四个输出60。

6、在32位操作系统gcc编译器环境下,下面的程序的运行结果是(A)
  1. class A 
  2. public
  3.     int b; 
  4.     char c; 
  5.     virtual void print() 
  6.     { 
  7.         cout<<"this is father"s function!"<<endl; 
  8.     } 
  9. }; 
  10.  
  11. class B : A 
  12. public
  13.     virtual void print() 
  14.     { 
  15.         cout<<"this is children"s function!"<<endl; 
  16.     } 
  17. }; 
  18. int main(void) 
  19.     cout<<sizeof(A)<<"  "<<sizeof(A)<<endl; 
  20.      
  21.     return 0; 
A、12  12
B、8  8
C、9  9
D、12  16
7、以下哪些做法是不正确或者应该极力避免的:【多选】(ACD)
A、构造函数声明为虚函数
B、派生关系中的基类析构函数声明为虚函数
C、构造函数调用虚函数
D、析构函数调用虚函数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一页
搜狐2012.9.15校园招聘会笔试题Google 2013校园招聘会笔试题相关资讯      招聘 
  • 微软2014校园招聘笔试试题  (06/13/2015 14:14:21)
  • 乐视TV2015校园招聘A卷第二大题(  (01/04/2015 19:02:24)
  • 思科2015校园招聘笔试面试总结  (11/11/2014 18:49:20)
  • 2015届华为校园招聘机试题  (01/12/2015 10:07:33)
  • 阿里巴巴2014校园招聘笔试最后一道  (12/31/2014 08:12:20)
  • 20140916阿里巴巴面试经历---成都  (10/31/2014 19:31:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数