C语言笔试面试题集锦与解析
需积分: 41 188 浏览量
更新于2024-07-18
1
收藏 431KB PDF 举报
"C语言 笔试 面试题 错题解析"
1. C语言关键字:`default`是C语言中的一个关键字,它只在`switch`语句中使用,用于定义没有匹配到任何`case`的情况。
2. 位运算:题目中的`c=a∧b<<2;`涉及到位运算。`b<<2`表示`b`向左移动两位,相当于乘以4(在二进制中相当于`00010100`向左移动两位)。`a`假设为1(二进制`00000011`),`b`为6(二进制`00000110`)。`a∧b`进行按位与操作,结果为2(二进制`00000010`)。然后这个结果再左移两位,即`00010000`,转换为十进制是16。
3. 结构体大小:在C语言中,结构体的大小是其成员大小的总和加上对齐填充。题目中`struct date`包含一个`long *`(通常4字节)、一个`struct date *`(也是4字节)和一个`double`(8字节)。在small模式下,指针占用2字节,但是结构体成员通常按照最大的成员大小进行对齐,所以结构体会按照8字节对齐。因此,结构体大小为2个指针(8字节)+ `double`(8字节)+ 填充(4字节)= 20字节。
4. 自增运算符优先级:`t=++x||++y;`这行代码中,`++x`先执行,使得`x`变为4,然后`||`运算符具有短路特性,如果左侧为真(非0),右侧就不会执行。因此,`++y`不会被执行,`y`保持原来的值3。
5. for循环累加:`for(int i=0;i<10;i++,sum+=i);`这个循环中,`sum`从0开始,每次循环累加`i`的值,直到`i=9`,所以`sum`的最终值为`0+1+2+...+8+9`,这是一个等差数列求和,结果是`45`。
6. 比较浮点数:在C语言中,由于浮点数的精度问题,不能直接使用`==`或`!=`来比较浮点数是否相等。正确做法是设置一个很小的误差范围(如`EPSILON`),判断两个浮点数的差值是否在这个范围内。
7. 字符数组和指针:`sizeof`是C语言中的运算符,用于计算数据类型或变量的大小。`str`是一个字符数组,其大小包括字符串结束符`\0`,所以`sizeof(str)`是6。`p`是一个指向`str`的指针,其大小通常是4字节(32位系统)。`n`是一个整型变量,大小也是4字节。
8. 字符串常量和指针:`"AAA"`是字符串常量,存储在只读内存区域。`char *s="AAA";`定义了一个指向字符串常量的指针`s`。尝试修改`s[0]`是非法的,因为字符串常量是不可修改的。正确的做法是使用`char s[] = "AAA";`来创建可修改的字符数组。
9. 变量类型和指针:在C语言中,`const char *`表示指针指向的内容是不可修改的,但指针本身可以重新赋值指向其他字符串常量。
10. 函数参数传递:`findArg`函数的参数如果是`const char *`,则表明传入的是字符串常量,函数内部不应尝试修改其内容。在C语言中,函数参数传递是按值传递,对于指针,实际上是复制指针的值,而不是指向的对象。所以,即使指针指向的是常量,函数内部仍然可以通过改变指针本身的值来指向其他地方,但不能修改指针所指向的常量内容。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-01-06 上传
2018-08-17 上传
2018-08-17 上传
2018-08-17 上传
2018-08-17 上传
2021-10-10 上传
chenjhit
- 粉丝: 10
- 资源: 13
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析