最近这段时间正在找工作,去H3C做了下笔试题,题目出的还不错,比一般公司水平高上一点点,偷偷弄了点回来,分享一下,我把答案和解析全部整理了出来,有需要的可以看看.

1、以下描述正确的有(AD)

A、1个字节(byte)由8个比特(bit)组成

B、signed char类型的取值范围是-127~128

C、0xFFFFFFFF是4字节无符号数中最大的

D、unsigned char类型的取值范围是0~255

解析:

signed char的取值范围是-128~127,为-(2^8)~(2^8-1);

0xFFFFFFFF是无符号整型的最大值,如果包含浮点数类型,那么他就不是最大的了。

2、以下代码的运行结果(D)

#define ADD(x, y) (x + y)

#define SUB(x, y) (x)-(y)

#define MUL(x, y) (x * y)

Unsigned int uiA

uiA = MUL(ADD(x, y), SUB(6, 3));

A、uiA=15 B、uiA=33

C、uiA=18 D、uiA=63

解析:预编译后展开的式子:uiA = ((9 + 2) * (6) - (3));

3、以下代码运行的结果(B)

代码I:

usigned int uiA;

uiA = (0x55 & 0x66) ^ (0x77 | 0x88);

代码II:

unsigned int uiB;

uiB = (0xAA << 3) | (0xBB << 2) | (0xCC << 1) | 0xDD;

A 代码I,uiA = 0xAA B 代码I,uiA = 0xBB

C 代码II,uiB=0xFFFFFFFF D 代码II,uiB=0xAABBCCDD

4、以下语句中,能够判断uiNum(unsigned int)可以被16整除的有(AC)

A if(((uiNum / 16) * 16 == uiNum)

B if((uiNum % 15) == 0)

C if((uiNum & 0x0F) == 0)

D if(((uiNum >> 5) << 5) == uiNum)

解析:B改成if((uiNum%16) == 0)

D改成if(((UiNum >> 4) << 4) == uiNum)

5、关于以下代码描述正确的有(AB)

代码I:

const char *pcStr = “abcdefg”;

daimaII:

void string_sizeof(char szStr1[10])

{

char szStr2[10] = “12345”;

printf(“%u, “, sizeof(szStr1));

printf(“%u\r\n”, sizeof(szStr2));

return;

}

代码III:

typedef unsigned int *pui_t1;

#define pui_t2 unsigned int *

pui_t1 puiA, puiB;

pui_t2 puiC, puiD;

代码IV:

unsigned int uiA = 100;

printf(“%s\r\n”, uiA);

A、代码I,const修饰符表明pcStr指向的内容不能更改;

B、代码II,程序运行结果是“4,10”;

C、代码III,puiA、puiB、puiC和puiD都是unsigned int *类型的变量;

D、代码IV,打印unsigned int时不应该使用“%s”,会导致程序访问非法地址。

解析:const char *pcStr和char * const pcStr的区别.

B中szStr1是数组名,相当于通过函数参数的形式传递了一个指针,所以是4;szStr2是局部变量数组,用sizeof相当于求数组大小所以是10.

C中使用define定义的相当于替换所以展开之后unsigned int * puiC, puiD所以很明显puiD不是unsigned int *类型

D中%s需要传递一个地址过来,二uiA是个变量值,所以会出错,如果改成&uiA就可以了.

6、关于结构和联合体的大小,以下描述正确的有(C)

struct A_S

{

unsigned short us1;

unsigned short us2;

unsigned short us3;

};

struct B_S

{

unsigned char uc1;

unsigned int  ui2;

unsigned short us3;

};

union C_U

{

unsigned short us1;

unsigned short us2;

unsigned short us3;

};

union D_U

{

unsigned char uc1;

unsigned int  ui2;

unsigned short us3;

};

A、结构体struct A_S的大小是2;

B、结构体struct B_S的大小是7;

C、联合体union C_U的大小是2;

D、联合体union D_U的大小是7。

解析:结构体的大小在默认情况下需要自然边界对齐。所以A_S大小是6,B_S大小12,;

联合体大小是其中类型最大的一个的大小。

7、关于链表操作以下描述正确的有(ABC)

struct SLL

{

struct SLL *pstNext; /*下一节点*/

};

struct DLL

{

struct DLL *pstNext; /*下一节点*/

struct DLL *pstPrev; /*前一节点*/

};

A、单链表,以下代码可以删除节点B:

pstA->pstNext = pstA->pstNext->pstNext;

free(pstA->pstNext);

B、单链表,以下代码可以删除节点B:

pstA->pstNext = pstB->pstNext;

free(pstB);

C、双链表,以下代码可以删除节点B:

pstB->pstPrev->pstNext = pstB->pstNext;

pstB->pstNext->pstPrev = pstB->pstPrev;

free(pstB);

D、双链表,以下代码可以删除节点B:

pstA->pstNext = pstA->pstNext->pstNext;

pstA->pstNext->pstPrev = pstA;

free(pstB);

解析:D改成:

pstA->pstNext = pstA->pstNext->pstNext;

pstA->pstNext->pstNext->pstPrev = pstA;

free(pstB);

就可以了.

8、以下代码的运行结果是(B)

代码I:

unsigned int uiCount = 0;

while(uiCount <= 5)

{

if (unCount <= 5)

continue;

++uiCount;

}

printf(“uiCount=%u\r\n”, uiCount);

代码II:

unsigned int uiCount = 0;

do

{

uiCount++;

}while(uiCount >= 5);

printf(“uiCount=%u\r\n”, uiCount);

代码III:

unsigned int uiCount = 0;

switch (unCount)

{

case 0:

uiCount = 5;

default:

uiCount = 1;

}

printf(“uiCount=%u\r\n”, uiCount);

代码IV:

unsigned int uiCount = 0;

for( ; uiCount <= 10; uiCount++)

if (uiCount == 5)

breakl

printf(“uiCount=%u\r\n”, uiCount);

A.代码I, uiCount=5

B.代码II, uiCount=1

C.代码III, uiCount=1

D.代码IV, uiCount=6

解析:代码I会陷入无限循环,continue会在uiCount<=5时跳过++uiCount,uiCount的值是0,所以没有机会++uiCount了

代码IV,uiCount=5,break之后uiCount++没有机会执行了.

H3C笔试题目的更多相关文章

  1. # C/C++的笔试题目

    p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...

  2. 汇顶科技&&硬件类笔试题目

    汇顶科技硬件类笔试题目,每年都有变化,但是题目类型都差不多.汇顶科技17年在南京地区大概招了20个左右吧,给的待遇还是不错的,工作地点上海深圳

  3. C/C++笔试题目

    1. C语言中无符号数与有符号数 unsigned ; ; printf( printf( ? 有符号数和无符号数在进行比较运算时(==,>=,<=,>,<),有符号数隐式的转 ...

  4. 九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目

    题目地址:http://ac.jobdu.com/problem.php?pid=1525 题目描述: 小明手中有很多字符串卡片,每个字符串中都包含有多个连续的空格,而且这些卡片在印刷的过程中将字符串 ...

  5. [笔试题目]使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍?

    [笔试题目] 使用Stringbuffer无 参的构造函数创建 一个对象时,默认的初始容量是多少? 如果长度不够使用了,自动增长多少倍? StringBuffer 底层是依赖了一个字符数组才能存储字符 ...

  6. Android常见面试笔试题目

    Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...

  7. C++笔试题目大全(笔试宝典)(不断完善中)

    1.new . delete . malloc . free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数. malloc 与 fre ...

  8. js坑爹笔试题目汇总(持续更新中)

    把你的面试官问倒,你就是一个合格的面试者了,以下总结一些易错的js笔试题目,会持续更新中.欢迎关注 1,考察this var length = 10 function fn(){ alert(this ...

  9. 几道经典的SQL笔试题目

      几道经典的SQL笔试题目(有答案) (1)表名:购物信息 购物人      商品名称     数量 A            甲          2 B            乙        ...

随机推荐

  1. Web开发者的福利 30段超实用CSS代码

    1.花式连字符(&) 这个类应该在span元素里使用,并且里面包括&字符.它使用经典的serif字体和斜体来增强&符号. .amp { font-family: Baskerv ...

  2. 类class思维导图

  3. MySQL---2、安装与部署

    1.MySQL下载 MySQL版本的选择MySQL Community Server 社区版本,开源免费,但不提供官方技术支持.MySQL Enterprise Edition 企业版本,需付费,可以 ...

  4. UVA1584(环状序列)

    对于序列的最小值,可以定义一个比较的方法,然后用一般找最小值的方法遍历一遍即可 #include <iostream> #include <string> #include & ...

  5. Python Django ORM基本增删改查

    工程下的urls.py中增加如下: from cmdb import views as cmdb #要把你要操作的项目import进来 urlpatterns = [ url(r'orm', cmdb ...

  6. 关于iFrame特性总计和iFrame跨域解决办法

    1.iframe 定义和用法 iframe 元素会创建包含另外一个文档的内联框架(即行内框架). HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML 1. ...

  7. 收藏的几个关于php面向对象教程

    面向对象的分析方法是利用面向对象的信息建模概念,如实体.关系.属性等,同时运用封装.继承.多态等机制来构造模拟现实系统的方法,学会了面向对象思想,能够大大提高php编程开发效率!本篇文章php中文网将 ...

  8. laravel开发之-安装汉化语言包

    第一种方法: 1.输入命令:composer require "overtrue/laravel-lang:dev-master" 2.将config/app.php中命令“Ill ...

  9. 微服务架构之spring cloud zipkin

    Spring Cloud Zipkin是微服务的链路跟踪组件,帮助详细了解一次request&response的总计时,及每个微服务的消耗时间.微服务名称.异常信息等等过程信息. (一) 版本 ...

  10. Phoenix 映射 HBase + Maven

    声明 本文基于 Centos6.x + CDH5.x 什么是Phoenix Phoenix的团队用了一句话概括Phoenix:"We put the SQL back in NoSQL&qu ...