问几个趋势科技的笔试题

时间:2022-12-11 15:00:22
今天去趋势科技笔试了一下,全英文的,很多题不会,拿来问问。

单选题:
1.Please define a member function pointer of A::print()
class A
{
    public:
          void print()
          {
              
          }
};
(a) typedef void(*pf_type)(A*);
(b) typedef void(A::*pf_type)();
(c) typedef void(*)(A*) pf_type;
(d) typedef void(A::*)() pf_type;

2.Given the sample code below,which one of the following statements is illegal?
class X
{
public:
X& operator=(const X& rhs);
const X& operator+(const X& rhs) const;
const X& operator+(int m);
private:
int n;
};
(a) a=b+5;
(b) a=a+5+c;
(c) (c=a+a)=b+c;
(d) a=b+c+5;

3.What will be the output of the following program?
  int a=0x09;
  int b=0x10;
  printf("a=%x,b=%llx",a,b);
(a) a=9,b=1234567800000010;
(b) a=9,b=10;
(c) a=9,b=1012345678;
(d) a=9,b=12345678;

57 个解决方案

#1


bdb

#2


第二题:
a=b+c+5; b+c返回const 变量,而再+5,必须调用常成员函数的+加法

#3


最后一个选a吧?

#4


最后一个我运行了一下,输出a=9,b=40172600000010

#5


第一第二题都是基础,分别是b和c,第三题有点意思,虽然结果是实现相关的,但出题的人很花了点心思啊。

#6


同求第二道题答案,没看懂。。

#7


看不出来最后一题考什么?

#8


第3题后面有10的就对了 %ll输出64位的值。
把 b = 10 传给 printf后printf里面继续调用其他函数
产生 n 个临时变量,最后取 b 的值时其实就是 *(__int64*)&b_tmp;
intel是小尾顺序存储数据的,于是结果 xxxxxxxxxxxxxx10

#9


引用 7 楼 dizuo 的回复:
看不出来最后一题考什么?


其实就是考对可变参数函数的栈实现,传进去一个int,却以long long读取。

#10


最后一题没贴全把?AB都有可能是正确答案,其实这题最无聊了,真正开发谁这么写代码会被别人骂死

#11


都贴全了
引用 10 楼 nice_cxf 的回复:
最后一题没贴全把?AB都有可能是正确答案,其实这题最无聊了,真正开发谁这么写代码会被别人骂死

#12


第三题到底选哪个?b还是d?

#13


写错了,是第二题
引用 12 楼 baidu01 的回复:
第三题到底选哪个?b还是d?

#14


bca

#15


谁能好好解释一下第二题和第三题啊?多谢啦!

#16



第一题B 
第二题C

第三题嘛 
输出10也不是没有可能 !
然后一般会是尾数是 10 
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。 

#17


楼上能不能解释一下第二题为什么选C啊?我也选C的,只是不太确定,请教一下
引用 16 楼 modicum_lf 的回复:
第一题B 
第二题C

第三题嘛 
输出10也不是没有可能 !
然后一般会是尾数是 10 
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。

#18


引用 17 楼 baidu01 的回复:
楼上能不能解释一下第二题为什么选C啊?我也选C的,只是不太确定,请教一下

引用 16 楼 modicum_lf 的回复:
第一题B
第二题C

第三题嘛
输出10也不是没有可能 !
然后一般会是尾数是 10
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。


const X& operator+(const X& rhs) const;
返回的是const & , 
(c=a+a)=b+c;
先算c=a+b;所以c 是 const & 是不能作为左值的 !


#19


先计算c=a+a时,不是先要调用const X& operator+(const X& rhs) const;
然后调用X& operator=(const X& rhs);
最后把结果赋值给c吗?这样的话,c不是可以为左值吗?

引用 18 楼 modicum_lf 的回复:
引用 17 楼 baidu01 的回复:
楼上能不能解释一下第二题为什么选C啊?我也选C的,只是不太确定,请教一下

引用 16 楼 modicum_lf 的回复:
第一题B
第二题C

第三题嘛
输出10也不是没有可能 !
然后一般会是尾数是 10
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。


const X& opera……

#20


感觉还是3楼说得对,第二题应该选d
引用 3 楼 ol_lo 的回复:
最后一个选a吧?

#21


引用 20 楼 baidu01 的回复:
感觉还是3楼说得对,第二题应该选d

引用 3 楼 ol_lo 的回复:
最后一个选a吧?

正解(大家可以把代码运行一下)

#22


前面回答有歧义哈,第3题选a,但b前面部分是随机的,后面一定是00000010结尾

#23


1.b   jff

#24


问几个趋势科技的笔试题

#25


第一题 成员函数定义 b 
第二题 哪个是非法的 C 答案 前面括号内(c=a+a)这个是个常量了 不能赋值
第三题 没弄懂

#26


b
d
a

#27


趋势科技今年有校园招聘么?这么早就笔试了.....

#28


1.成员函数指针类型定义
2.真没看懂求解答
3.用8个字节输出4个字节内容,后四个字节肯定是00000010,前四个字节不确定。

#29


mark。

#30


(c = a + a) = b + c;
赋值表达式的值是c的值,c不是const。

#31


第二道题真是有点意思:
    a = a + 5 + c;        
   (c = a + a) = b + c;
    a = b + c + 5;

a = a + 5 + c;可以是因为const X& operator+(const X& rhs) const;重载了两个X对象常量和常量的相加,注意后面那个const它代表+号左则操作数可以是const。

a = b + c + 5;不可以是因为虽然const X& operator+(int m);定义了X和int之间的加操作,但是函数后面没有const代表加号左则操作数是不能是右值,而b + c是右值。

将const X& operator+(int m);改为const X& operator+(int m) const;就可以了。

#32


晕啊,第二题,谁说选c,站出来! 晕菜

#33


引用 31 楼 wry2008wry 的回复:
第二道题真是有点意思:
    a = a + 5 + c;        
   (c = a + a) = b + c;
    a = b + c + 5;

a = a + 5 + c;可以是因为const X& operator+(const X& rhs) const;重载了两个X对象常量和常量的相加,注意后面那个const它代表+号左则操作数可以是cons……


话说常成员函数,一般不能修改成员变量的值。
常成员函数含义是通过该函数只能读取同一类中的数据成员的值,而不能修改它。
所以,const X& operator+(int m) const;是没有意义的

#34


第三题,gcc结果
a=9,b=10
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.

#35


bda

#36


引用 34 楼 jsjrj01 的回复:
第三题,gcc结果
C/C++ code
a=9,b=10
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.
定义中b为int但是在打印的时候为long long int在这期间有一个转换的。我的gcc编译后运行结果为:a = 9, b = bfc6c14800000010(左对齐是肯定的了)

#37


引用 36 楼 zhizichina 的回复:
引用 34 楼 jsjrj01 的回复:

第三题,gcc结果
C/C++ code
a=9,b=10
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.
定义中b为int但是在打印的时候为long long int在这期间有一个转换的。我的gcc编译后运行结果为:a = 9,……
右对齐。。。。汗。。。

#38


表示学习了。。。

#39


还是别去了,以后去了公司用英语交流怎么办

#40


第二题怎么会有这么多的人选C 呢?
这个重载根本就什么都干不了,是错误的,肯定是会编译出错的啊

#41


引用 33 楼 jsjrj01 的回复:
引用 31 楼 wry2008wry 的回复:

第二道题真是有点意思:
a = a + 5 + c;
(c = a + a) = b + c;
a = b + c + 5;

a = a + 5 + c;可以是因为const X& operator+(const X& rhs) const;重载了两个X对象常量和常量的相加,注意后面那个const它代……

话说常成员函数,一般不能修改成员变量的值。
常成员函数含义是通过该函数只能读取同一类中的数据成员的值,而不能修改它。
所以,const X& operator+(int m) const;是没有意义的


为什么会没有意义呢,它不还有个返回值吗,干嘛非要改变左操作数的内部状态?

#42


引用 40 楼 szqh97 的回复:
第二题怎么会有这么多的人选C 呢?
这个重载根本就什么都干不了,是错误的,肯定是会编译出错的啊


因为C也是错误的代码结构,对象c在一个顺序点内修改了多于一次,属于未定义行为,不同的编译器会有不同结果。

如果出题者的意思是认为d是错误的,那就是聪明反被聪明误。

这条题如果不是问illegal,而是问translation error,那就肯定是d。

#43


MARK

#44


第二题,从他出的这几个选项来看,他的意思应该是选d。
但是,我觉得c也是有问题的。

#45


第二题有问题, 
第三题我用VC编译的结果是a = 9 , b = 10;

#46


我再发几个笔试题,请大家看看

1.Which of the following statements will modify the variables in it? Select all that apply.
(a)cin>>b>>c>>d>>e>>f;
(b)p=i+j+k+7;
(c)cout<<"variables whose values are destroyed";
(d)cout<<"a=5";

2.Which of the following sort algorithm is NOT in-place sort?
(a)Selection sort
(b)Bubble sort
(c)Heap sort
(d)Binary tree sort

3.Which one of the following names does not relate to stacks?
(a)FIFO lists
(b)LIFO lists
(c)Piles
(d)Push-down lists

4.Linked lists are not suitable for data structures because which one of the following problem?
(a)insertion sort
(b)binary search
(c)radix sort
(d)polynomial manipulation problem

5.A company is willing to use a class C IP address to connect 6 branches.Each branch uses one subnet and the biggest branch has 26 PCs.What's the subnet mask the company should use?
(a)255.255.255.0
(b)255.255.255.128
(c)255.255.255.192
(d)255.255.255.224

6.When a router receives an IP package and its TTL is 1,the router will(select all that apply)
(a)Drop the package
(b)Fragment the package
(c)Forward the package
(d)Send ICMP package

7.You want to check if a PC is turned on or not,and the target PC with IP address 192.168.1.100.Which command(s) below is/are useless?Select all that apply.
(a)arp -a 192.168.1.100
(b)telnet 192.168.1.100 80
(c)ftp 192.168.1.100
(d)ping -n 192.168.1.100

8.Which one cannot be used in inter-process communication?
(a)Message queue
(b)Pipe
(c)Memory mapped file
(d)Global variable
(e)Socket

9.Which is NOT the necessary condition for a deadlock to occur?
(a)Mutual Exclusion
(b)Hold and Wait
(c)Preemption
(d)Circular Wait

10.Which description(s) below is/are correct about HTTPS?Select all that apply.
(a)Encrypt whole URL
(b)Encrypt the content being transferred
(c)Hide IP of Web Server
(d)Hide IP of Web browser

11.Which of following runtime function call will NOT cause buffer overflow?
(a)strcpy
(b)strcat
(c)strlen
(d)sprintf

12.A memory chip has 8 data lines and 9 address lines.How many bytes can be stored on it?

13.What's the output of following code?
#include<stdio.h>
#define THE_MACRO(x)\
        (x=((0xaaaaaaaa&x)>>1)+(0x55555555&x),\
        x=((0xcccccccc&x)>>2)+(0x33333333&x),\
        x=((0xf0f0f0f0&x)>>4)+(0x0f0f0f0f&x),\
        x=((0xff00ff00&x)>>8)+(0x00ff00ff&x),\
        x=(x>>16)+(0x0000ffff&x))
int main(int argc,const char** argv)
{
      int x=34512;
      int n=THE_MACRO(x)
      printf("%d",n)
      return 0;
}

#47


ding

#48


第二题BCD都有可能错吧,C没有规定加法的顺序,可以从最右边开始加的。

#49


第二部分
(ab)(c)(a)(c)(不懂网络)(同上)(同上)(d)(a)(不懂)(c)(不懂硬件)(颠倒输出?)

#50


是南京那个趋势么,他们的笔试题不是很难,不过基础要好

#1


bdb

#2


第二题:
a=b+c+5; b+c返回const 变量,而再+5,必须调用常成员函数的+加法

#3


最后一个选a吧?

#4


最后一个我运行了一下,输出a=9,b=40172600000010

#5


第一第二题都是基础,分别是b和c,第三题有点意思,虽然结果是实现相关的,但出题的人很花了点心思啊。

#6


同求第二道题答案,没看懂。。

#7


看不出来最后一题考什么?

#8


第3题后面有10的就对了 %ll输出64位的值。
把 b = 10 传给 printf后printf里面继续调用其他函数
产生 n 个临时变量,最后取 b 的值时其实就是 *(__int64*)&b_tmp;
intel是小尾顺序存储数据的,于是结果 xxxxxxxxxxxxxx10

#9


引用 7 楼 dizuo 的回复:
看不出来最后一题考什么?


其实就是考对可变参数函数的栈实现,传进去一个int,却以long long读取。

#10


最后一题没贴全把?AB都有可能是正确答案,其实这题最无聊了,真正开发谁这么写代码会被别人骂死

#11


都贴全了
引用 10 楼 nice_cxf 的回复:
最后一题没贴全把?AB都有可能是正确答案,其实这题最无聊了,真正开发谁这么写代码会被别人骂死

#12


第三题到底选哪个?b还是d?

#13


写错了,是第二题
引用 12 楼 baidu01 的回复:
第三题到底选哪个?b还是d?

#14


bca

#15


谁能好好解释一下第二题和第三题啊?多谢啦!

#16



第一题B 
第二题C

第三题嘛 
输出10也不是没有可能 !
然后一般会是尾数是 10 
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。 

#17


楼上能不能解释一下第二题为什么选C啊?我也选C的,只是不太确定,请教一下
引用 16 楼 modicum_lf 的回复:
第一题B 
第二题C

第三题嘛 
输出10也不是没有可能 !
然后一般会是尾数是 10 
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。

#18


引用 17 楼 baidu01 的回复:
楼上能不能解释一下第二题为什么选C啊?我也选C的,只是不太确定,请教一下

引用 16 楼 modicum_lf 的回复:
第一题B
第二题C

第三题嘛
输出10也不是没有可能 !
然后一般会是尾数是 10
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。


const X& operator+(const X& rhs) const;
返回的是const & , 
(c=a+a)=b+c;
先算c=a+b;所以c 是 const & 是不能作为左值的 !


#19


先计算c=a+a时,不是先要调用const X& operator+(const X& rhs) const;
然后调用X& operator=(const X& rhs);
最后把结果赋值给c吗?这样的话,c不是可以为左值吗?

引用 18 楼 modicum_lf 的回复:
引用 17 楼 baidu01 的回复:
楼上能不能解释一下第二题为什么选C啊?我也选C的,只是不太确定,请教一下

引用 16 楼 modicum_lf 的回复:
第一题B
第二题C

第三题嘛
输出10也不是没有可能 !
然后一般会是尾数是 10
所以我觉得 A,B 都能选! 既然出题者这么做了,还是选有点根据的吧 ! A 。


const X&amp; opera……

#20


感觉还是3楼说得对,第二题应该选d
引用 3 楼 ol_lo 的回复:
最后一个选a吧?

#21


引用 20 楼 baidu01 的回复:
感觉还是3楼说得对,第二题应该选d

引用 3 楼 ol_lo 的回复:
最后一个选a吧?

正解(大家可以把代码运行一下)

#22


前面回答有歧义哈,第3题选a,但b前面部分是随机的,后面一定是00000010结尾

#23


1.b   jff

#24


问几个趋势科技的笔试题

#25


第一题 成员函数定义 b 
第二题 哪个是非法的 C 答案 前面括号内(c=a+a)这个是个常量了 不能赋值
第三题 没弄懂

#26


b
d
a

#27


趋势科技今年有校园招聘么?这么早就笔试了.....

#28


1.成员函数指针类型定义
2.真没看懂求解答
3.用8个字节输出4个字节内容,后四个字节肯定是00000010,前四个字节不确定。

#29


mark。

#30


(c = a + a) = b + c;
赋值表达式的值是c的值,c不是const。

#31


第二道题真是有点意思:
    a = a + 5 + c;        
   (c = a + a) = b + c;
    a = b + c + 5;

a = a + 5 + c;可以是因为const X& operator+(const X& rhs) const;重载了两个X对象常量和常量的相加,注意后面那个const它代表+号左则操作数可以是const。

a = b + c + 5;不可以是因为虽然const X& operator+(int m);定义了X和int之间的加操作,但是函数后面没有const代表加号左则操作数是不能是右值,而b + c是右值。

将const X& operator+(int m);改为const X& operator+(int m) const;就可以了。

#32


晕啊,第二题,谁说选c,站出来! 晕菜

#33


引用 31 楼 wry2008wry 的回复:
第二道题真是有点意思:
    a = a + 5 + c;        
   (c = a + a) = b + c;
    a = b + c + 5;

a = a + 5 + c;可以是因为const X&amp; operator+(const X&amp; rhs) const;重载了两个X对象常量和常量的相加,注意后面那个const它代表+号左则操作数可以是cons……


话说常成员函数,一般不能修改成员变量的值。
常成员函数含义是通过该函数只能读取同一类中的数据成员的值,而不能修改它。
所以,const X& operator+(int m) const;是没有意义的

#34


第三题,gcc结果
a=9,b=10
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.

#35


bda

#36


引用 34 楼 jsjrj01 的回复:
第三题,gcc结果
C/C++ code
a=9,b=10
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.
定义中b为int但是在打印的时候为long long int在这期间有一个转换的。我的gcc编译后运行结果为:a = 9, b = bfc6c14800000010(左对齐是肯定的了)

#37


引用 36 楼 zhizichina 的回复:
引用 34 楼 jsjrj01 的回复:

第三题,gcc结果
C/C++ code
a=9,b=10
Process returned 0 (0x0)   execution time : 0.031 s
Press any key to continue.
定义中b为int但是在打印的时候为long long int在这期间有一个转换的。我的gcc编译后运行结果为:a = 9,……
右对齐。。。。汗。。。

#38


表示学习了。。。

#39


还是别去了,以后去了公司用英语交流怎么办

#40


第二题怎么会有这么多的人选C 呢?
这个重载根本就什么都干不了,是错误的,肯定是会编译出错的啊

#41


引用 33 楼 jsjrj01 的回复:
引用 31 楼 wry2008wry 的回复:

第二道题真是有点意思:
a = a + 5 + c;
(c = a + a) = b + c;
a = b + c + 5;

a = a + 5 + c;可以是因为const X&amp;amp; operator+(const X&amp;amp; rhs) const;重载了两个X对象常量和常量的相加,注意后面那个const它代……

话说常成员函数,一般不能修改成员变量的值。
常成员函数含义是通过该函数只能读取同一类中的数据成员的值,而不能修改它。
所以,const X& operator+(int m) const;是没有意义的


为什么会没有意义呢,它不还有个返回值吗,干嘛非要改变左操作数的内部状态?

#42


引用 40 楼 szqh97 的回复:
第二题怎么会有这么多的人选C 呢?
这个重载根本就什么都干不了,是错误的,肯定是会编译出错的啊


因为C也是错误的代码结构,对象c在一个顺序点内修改了多于一次,属于未定义行为,不同的编译器会有不同结果。

如果出题者的意思是认为d是错误的,那就是聪明反被聪明误。

这条题如果不是问illegal,而是问translation error,那就肯定是d。

#43


MARK

#44


第二题,从他出的这几个选项来看,他的意思应该是选d。
但是,我觉得c也是有问题的。

#45


第二题有问题, 
第三题我用VC编译的结果是a = 9 , b = 10;

#46


我再发几个笔试题,请大家看看

1.Which of the following statements will modify the variables in it? Select all that apply.
(a)cin>>b>>c>>d>>e>>f;
(b)p=i+j+k+7;
(c)cout<<"variables whose values are destroyed";
(d)cout<<"a=5";

2.Which of the following sort algorithm is NOT in-place sort?
(a)Selection sort
(b)Bubble sort
(c)Heap sort
(d)Binary tree sort

3.Which one of the following names does not relate to stacks?
(a)FIFO lists
(b)LIFO lists
(c)Piles
(d)Push-down lists

4.Linked lists are not suitable for data structures because which one of the following problem?
(a)insertion sort
(b)binary search
(c)radix sort
(d)polynomial manipulation problem

5.A company is willing to use a class C IP address to connect 6 branches.Each branch uses one subnet and the biggest branch has 26 PCs.What's the subnet mask the company should use?
(a)255.255.255.0
(b)255.255.255.128
(c)255.255.255.192
(d)255.255.255.224

6.When a router receives an IP package and its TTL is 1,the router will(select all that apply)
(a)Drop the package
(b)Fragment the package
(c)Forward the package
(d)Send ICMP package

7.You want to check if a PC is turned on or not,and the target PC with IP address 192.168.1.100.Which command(s) below is/are useless?Select all that apply.
(a)arp -a 192.168.1.100
(b)telnet 192.168.1.100 80
(c)ftp 192.168.1.100
(d)ping -n 192.168.1.100

8.Which one cannot be used in inter-process communication?
(a)Message queue
(b)Pipe
(c)Memory mapped file
(d)Global variable
(e)Socket

9.Which is NOT the necessary condition for a deadlock to occur?
(a)Mutual Exclusion
(b)Hold and Wait
(c)Preemption
(d)Circular Wait

10.Which description(s) below is/are correct about HTTPS?Select all that apply.
(a)Encrypt whole URL
(b)Encrypt the content being transferred
(c)Hide IP of Web Server
(d)Hide IP of Web browser

11.Which of following runtime function call will NOT cause buffer overflow?
(a)strcpy
(b)strcat
(c)strlen
(d)sprintf

12.A memory chip has 8 data lines and 9 address lines.How many bytes can be stored on it?

13.What's the output of following code?
#include<stdio.h>
#define THE_MACRO(x)\
        (x=((0xaaaaaaaa&x)>>1)+(0x55555555&x),\
        x=((0xcccccccc&x)>>2)+(0x33333333&x),\
        x=((0xf0f0f0f0&x)>>4)+(0x0f0f0f0f&x),\
        x=((0xff00ff00&x)>>8)+(0x00ff00ff&x),\
        x=(x>>16)+(0x0000ffff&x))
int main(int argc,const char** argv)
{
      int x=34512;
      int n=THE_MACRO(x)
      printf("%d",n)
      return 0;
}

#47


ding

#48


第二题BCD都有可能错吧,C没有规定加法的顺序,可以从最右边开始加的。

#49


第二部分
(ab)(c)(a)(c)(不懂网络)(同上)(同上)(d)(a)(不懂)(c)(不懂硬件)(颠倒输出?)

#50


是南京那个趋势么,他们的笔试题不是很难,不过基础要好