BAT笔试试题常见试题总结(持续更新。。。)

(1)试题如下:

class A
{
        int a;
        short b;
        int c;
        char d;
};
class B
{
        double a;
        short b;
        int c;
        char d;
};
在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)分别是多少。
12 16
12 12
16 24
16 20

答:C

根据以下条件进行计算:(核心知识点:结构体的对齐方式)

1、 结构体的大小等于结构体内最大成员大小的整数倍

2、 结构体内的成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍,比如说double型成员相对于结构体的首地址的地址偏移量应该是8的倍数。

3、 为了满足规则1和2编译器会在结构体成员之后进行字节填充!

A中,a占4个字节,b本应占2个字节,但由于c占4个字节,为了满足条件2,b多占用2个字节,为了满足条件1,d占用4个字节,一共16个字节。

B中,a占8个字节,b占2个字节,但由于c占4个字节,为了满足条件2,b多占用2个字节,

即abc共占用8+4+4=16个字节,

为了满足条件1,d将占用8个字节,一共24个字节。

(简单示意一下!)

为什么不把A中的char d补到short b上去,这是因为在结构体的顺序决定的!

(2)待续。。。

时间: 2024-11-04 19:12:09

BAT笔试试题常见试题总结(持续更新。。。)的相关文章

前端面试题总结——Html5(持续更新中)

前端面试题总结--H5(持续更新中) 1.HTML5 为什么只需要写 <!DOCTYPE HTML>? HTML5 需要doctype来规范浏览器的行为,让浏览器按照它们应该的方式来运行:HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型. 2.HTML5的form如何关闭自动完成功能? 给不想要提示的 form 或某个 input 设置为 autocomplete=off. 3.HTML5 中如何嵌入音频? 当前,audio 元素支持三种音频格式:&l

BAT笔试试题常见试题总结含答案(持续更新。。。)

(1)试题例如以下: class A { int a; short b; int c; char d; }; class B { double a; short b; int c; char d; }; 在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)各自是多少. 12 16 12 12 16 24 16 20 答:C 依据下面条件进行计算:(核心知识点:结构体的对齐方式) 1. 结构体的大小等于结构体内最大成员大小的整数倍 2. 结构体内的成员的首地址相对于结构体首

Java面试题总结1(持续更新)

1. 运行时异常与一般异常有何异同? 解答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误.java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常. 2.存储过程和函数的区别 解答: 从参数的返回情况来看: 如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数. 从调用情况来看: 如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是

Java面试题总结2(持续更新)

1.如何格式化日期 解答: Date now=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String formatNow=sdf.format(now); 变量formatNow就是格式化好的日期. 2.多线程有几种实现方法,都是什么?同步的方法有几种,都是什么? 解答:(1)多线程有两种实现方法:继承Thread类或者实现Runnable接口. 承java.lang.Th

linux学习类目:常见命令(持续更新)

mkdir=make directorys=创建目录 例子: mkdir /data=在根/下创建data目录 ls=list=列表目录文件 例子: ls / =列根/目录下的目录和文件 参数: -l(long)=长格式 -d(directorys)=查看目录 cd=change directory=改变目录路径 相关概念: 相对路径与绝对路径: windows绝对路径:E:\Study\Video,从头(盘符)开始的路径 linux绝对路径:cat /etc/sysconfig/network

3.C#/.NET编程中的常见异常(持续更新)

1.Object reference not set to an instance of an object. 未将对象引用(引用)到对象的实例,说白了就是有个对象为null,但是你在用它点出来的各种东西. 2.An entity object cannot be referenced by multiple instances of IEntityChangeTracker. 一个实体对象不能由多个IEntityChangeTracker实例引用.首先参见MSDN中对于Entity Frame

ios 开发 常见问题解决 (持续更新)

1.使用cocoaPods引用第三方类库,报错:file not found   . 解决方案:设置 Project->Info->Configurations之后  clear ,然后再编译 (http://stackoverflow.com/questions/12002905/ios-build-fails-with-cocoapods-cannot-find-header-files)

ios 常见错误整理 持续更新

本文转载至 http://blog.csdn.net/yesjava/article/details/8086185 1. mutating method sent to immutable object' 从字面上理解:可变的消息发给了不可变的对象.比如NSDictionary类型的对象调用setValue方法.应该把NSDictionary 改成NSMutableDictionary类型.   2.Local declaration of 'content' hides instance v

javascript 常见功能实现(持续更新...)

1. input 只能输入整数数字和字母 $(document).on('keyup','#no',function(){ var val = $.trim($(this).val()); if(val == null || val == '') return; $(this).val(val.replace(/[^0-9a-z]+/ig,'')); // 只能输入整数数字和字母 }); 用 baidu 出来的很多其它实现方式的都是有问题的.它们不能够精确的表示“只能输入数字和字母”,因为它们预