【IT笔试题】腾讯笔试题主要考察了C++编程基础,包括运算符优先级、内存管理、预处理指令、函数调用以及字符串处理等知识点。 1. 表达式判断: - A) `a += (a++)`:此表达式的结果是9,因为先执行a++,a变为5,然后a+=5,所以a=10。 - B) `a += (++a)`:先执行++a,a变为6,然后a+=6,所以a=12。 - C) `(a++) += a`:错误,因为左侧(a++)不是一个有效的左值,不能进行赋值操作。 - D) `(++a) += (a++)`:先执行++a,a变为7,然后(a++)+=7,所以a=14。 2. `sizeof`运算符: - sizeof(str):计算字符串数组的大小,包括结束符'\0',所以是17字节。 - sizeof(p):指针的大小,对于32位系统通常为4字节。 - sizeof(n):整型变量的大小,通常是4字节。 - sizeof(函数内的str):在函数内部,str是一个指向字符串常量的指针,其大小为4字节。 - sizeof(p):分配100字节后的指针大小,仍然是4字节。 3. 预处理指令与C/C++特性: - ifndef/define/endif:防止头文件被多次包含,避免重复定义问题。 - `#include <filename.h>` vs `#include "filename.h"`:前者用于包含标准库头文件,后者用于包含用户自定义的头文件。 - extern "C":C++中的extern "C"用于告诉编译器这部分代码应按C语言的方式链接,以兼容C函数。 - switch语句:不允许实型数据作为case标签。 4. 动态内存分配和字符串处理: - Test函数:调用GetMemory分配内存并赋值,输出"hello"。 - 第二个Test函数:释放内存后,str不再有效,但仍然尝试复制"world",可能导致未定义行为。 - 第三个Test函数:返回的是一个栈上的局部变量的地址,该变量在函数返回后已失效,导致输出不确定。 5. 自定义strcat函数: - 不调用标准库的strcat实现,通过遍历字符串直到找到终止符,然后将源字符串复制到目标字符串末尾。 - 返回值类型为char*是为了遵循标准库函数接口,方便将结果赋值给其他变量或进行其他操作。 6. MFC中的CString: - CString是一个类型安全的类,它可以安全地与各种数据类型进行转换,但使用Format方法进行转换并不完全类型安全,因为Format允许格式化字符串,如果格式化字符串不匹配,可能会引发运行时错误。 7. C++模板类的用途: - 实现泛型编程,使得代码可以处理多种数据类型。 - 动态数据结构,如STL中的容器(vector, list, map等)利用模板实现了动态增长和缩小。 - 提高代码复用,减少冗余代码。 这些题目涵盖了C++基础中的关键点,包括语法、内存管理和程序设计原则,对于准备IT笔试的应聘者来说,理解和掌握这些知识至关重要。
剩余6页未读,继续阅读
- 粉丝: 15
- 资源: 26
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助