C语言笔试题解析:位操作与结构体
需积分: 9 161 浏览量
更新于2024-07-27
6
收藏 241KB PDF 举报
笔记作者总结的C语言常见笔试题及答案
在这份资源中,作者分享了几个关于C语言的笔试题目及其解答,涵盖了指针、位字段(bit field)以及结构体等方面的知识点。
1. 题目1涉及指针和地址的概念。程序首先定义了一个整型变量`a`和一个指向`a`的指针`p`。然后,`*p`赋值为0x500,即十进制的131072。接着,`a=(int)(*(&p))`和`a=(int)(&(*p))`分别将`p`的地址转换为整型赋给`a`。由于`p`本身就是`a`的地址,所以`a`和`p`的值是相等的,因此程序输出"equal!"。
2. 题目2探讨了位字段(bit field)和结构体的使用。`sizeof(bits)`是一个正确的表达式,它返回结构体`bits`所占用的内存大小。在原始定义下,由于`bits`被当作一个变量,定义是错误的。正确的做法是使用`typedef`定义一个名为`bits`的结构体类型。修正后的结构定义不会改变`sizeof(bits)`的正确性,其值为4个字节,因为每个`int`占用4字节,尽管实际上只使用了8位。如果将`int`类型改为`char`(通常占1字节),`sizeof(bits)`的大小将变为1,这是因为每个`char`类型的位字段占用1字节,但实际大小可能会因编译器和环境而异。
3. 题目3考察的是位字段的限制。在C语言中,位字段的成员必须是变量名,而不是数组的形式,因此`unsigned int a[0]:1,a[1]:1,...,a[7]:1;`是不正确的。正确的做法是定义一系列独立的位字段,如`unsigned int a0:1, a1:1, a2:1, ..., a7:1;`。
这些题目展示了C语言中的一些核心概念,包括指针操作、位字段的使用以及结构体的定义。理解这些知识点对于深入学习C语言至关重要,它们涉及到内存管理、数据表示和类型系统。在准备C语言的面试或笔试时,熟悉这类问题的解法能够帮助提升对语言特性的掌握。
2010-10-26 上传
2011-11-21 上传
2023-04-05 上传
2023-09-17 上传
2023-07-31 上传
2023-09-12 上传
2023-10-23 上传
2023-06-05 上传
kkqqqq01
- 粉丝: 1
- 资源: 16
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常