华为笔试题1、 .h头文件中的 #ifndef/#define/#endif 的作用?
答:防止该头文件被重复引用。
华为笔试题2、 #define DOUBLE(x) x+x int i = 5*DOUBLE(5);i 的值为
答:为30
华为笔试题3、 设某32位系统下,C++程序,有以下说明和定义:typedef union {int i; int k[5]; char c;} DATE;struct data { char cat; DATE cow; int dog;} too;则语句 printf("%d",sizeof(too)); 的执行结果是:______
答:为28
华为笔试题4、 某些场合中需要用到死循环,这两个死循环 for(;;) 与 while(1) 哪个代码更高效(编译之后的代码更简短)?
答:for(;;)
华为笔试题5、 高度为8的平衡二叉树,至少有______个节点?
答:54个
华为笔试题6、 某32位系统下,C++程序,请计算sizeof 的值char str[] =? ;char *p = str ;请计算
sizeof (str ) = __ ①___
sizeof ( p ) = ___②___
void Foo ( char str[100]){请计算sizeof( str ) = ___③___}
void *p = malloc( 100 );
请计算sizeof ( p ) = ___④___
答:①17 ②4 ③4 ④4
华为笔试题7、 winsock建立TCP连接的主要实现步骤?
答:服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接;发现有客户端连接时,建立一个新的套接字,自身重新开始等待连接;该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,调用closesocket()关闭套接字。客户端:socket()建立套接字,连接(connect)服务器,连接上后使用send()和recv()在套接字上写读数据,直至数据交换完毕,调用closesocket()关闭套接字。