c++面试宝典
“c++面试宝典”相关的资料有哪些?“c++面试宝典”相关的范文有哪些?怎么写?下面是小编为您精心整理的“c++面试宝典”相关范文大全或资料大全,欢迎大家分享。
C面试宝典
1、数据类型
在C/C++中,数据类型分为两种,简单类型和结构类型,简单类型包括整数类型、字符类型、浮点类型、指针类型、枚举类型和void类型。 结构类型包括:数组、字符串、记录和文件。 C/C++中的基础数据类型分为三种:整型、浮点型和void型,其中不能定义void类型的变量,它仅仅是用于说明函数没有返回值和说明指针是无类型。
其中整型是用来表示没有小数位的数,在C/C++中,用来表示整数、字符、布尔值的算术类型合称为整型。在32位机器中,int和long的长度通常是相等的。
2C/C++中的常量
通过关键字const常量也被称为常数,是指在程序运行之前就已经被确定,在程序的运行过程中不会发送改变。常量必须在定义的时候进行初始化。
常量本身没有地址属性(除字符串常量外),而变量有地址属性,所以常量只能做右值,而变量左值、右值都可以。
const char a=”test”正确 char p; p=”test”;
const test=p;错误;常量必须直接赋值。
3、逻辑操作
逻辑操作分为逻辑或、逻辑与和逻辑非3种,其中逻辑或和逻辑非存在“短路求值”的情况。 C++中变量为程序提供了可以操作的有名字的存储区。 变量代表分配了一块存
C++学习宝典(笔记)
**********************2010年09月01日 星期三 13时42分08秒 (第一天)************************************* 生存的权力,
珍惜生命,因为不是每个人都有生存的权力 生存的责任,
人存于世,不是只为自已,而是为回报关爱你的人 生存的信念,
生存的不应是肉体,而是一种精神, 生存的价值,
生存的中止
当你结止生命的那一刻,
linux2 c6 c++7 数据结构4 模板3??UC(脚本编程)
运行前修改PATH,如不改执行./a.out 改后可以在任何路径a.out vi ~/.bashrc 在最后一行加入PATH=$PATH:. source ~/.bashrc
在~./exrc中可以加入以下内容,提高在VI中的输入代码的效率 set ts=4 代表TAB是四个空格 set nu 设置行号 ab #i #include 语句取别名 ab #o #include g++ -c hello.
C和C++面试题
一.
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情:
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。
2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) (A) : (B)) 这个测试是为下面的目的而设的:
1). 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,
对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2). 三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比
C和C++经典面试题(面试必备)
C/C++经典面试题(面试必备)
面试题 1:变量的声明和定义有什么区别
为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,
但是只在一个地方定义。加入 extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分 定义。
说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,
如外部变量。 面试题 2:写出 bool 、 int、 float、指针变量与“零值” 比较的 if 语句 bool 型数据: if( flag ) { A; } else { B; }
int 型数据:
if( 0 != flag ) { A; } else { B; }
指针型数: if( NULL == flag ) { A; } else { B; }
float 型数据:
if ( ( flag >= NORM ) && ( flag <= NORM ) ) { A; } 2
注意:应特别注意在 int、指针型变量和“零值”比较的时候,把“零值”放在左边,这样当把“ ==”
误写成“ =”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。 面试题 3: sizeof 和 strlen 的区别
C++面试复习题
1. 介绍一下STL,详细说明STL如何实现vector。
Answer:STL (标准模版库,Standard Template Library.它由容器算法迭代器组成。STL有以下的一些优点:可以方便容易地实现搜索数据或对数据排序等一系列的算法;调试程序时更加安全和方便;即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。vector实质上就是一个动态数组,会根据数据的增加,动态的增加数组空间。
2. 介绍一下模板和容器。如何实现?(也许会让你当场举例实现)
模板可以说比较古老了,但是当前的泛型编程实质上就是模板编程。它体现了一种通用和泛化的思想。STL有7种主要容器:vector,list,deque,map,multimap,set,multiset.
类模板:问题域中的事物存在一定的相似性,与之对应,设计的类和类的成员也将表现出相似性,通过抽象将这些相似的类和函数的共性提取出来,用一种统一的方式来描述,形成类模板
3. 指针和引用有什么分别;如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
(1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以
c与c++面试题汇总
经典c与c++面试题汇总
C语言
1. static有什么用途?(请至少说明两种) 1) 限制变量的作用域 2) 设置变量的存储域 2. 引用与指针有什么区别?
1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3. 描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性
4. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?
全局变量储存在静态数据库,局部变量在堆栈 5. 什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1
6. 堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源
7. 什么函数不能声明为虚函数? constructor
8. 冒泡排序算法的时间复杂度是什么? O(n^2)
9. 写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001)
10. Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层/物理层 11. Intern
C&C++面试题汇总
C语言面试题总汇
C语言面试题总汇
4. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域
7. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
2) 不存在指向空值的引用,但是存在指向空值的指针。 8. 描述实时系统的基本特性
在特定时间内完成特定的任务,实时性与可靠性
9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈 10. 什么是平衡二叉树?
左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1 11. 堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源
12. 什么函数不能声明为虚函数? constructor
13. 冒泡排序算法的时间复杂度是什么? O(n^2)
14. 写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001)
16. Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层/物理层 17. Intern
C,C++语言笔试面试中常见问题
阿尔卡特朗讯(中国)C语言面试题
http://hr.c114.net (2009-2-20 14:49:00)
据说是阿尔卡特(中国)的面试题目阿尔卡特C语言面试题 阿尔卡特C语言面试题全部用C语言完成:
1.自己定义数据结构,写出程序:在一个单向链表中,往I位置插入一个节点。 2.自己定义数据结构,写出程序:二叉树的前序遍历。 3.不允许使用系统时间,写出一个随机数生成函数。 http://bbs.yingjiesheng.com/thread-673785-1-1.html
sizeof的用法,在C,C++语言笔试面试中常见问题 收藏 很常见的一些问题,但是很多时候不会!
这里只总结一些最常用的(32位编译环境 ):
1,基本数据类型
cout< 结果是1 cout< 结果是4 cout< 结果是4 cout< 结果是4 cout< 结果是2 cout< 结果是4 cout< 结果是8 2,指针变量 指针变量的sizeof的值与指针所指的值没有任何关系,所以指针变量的内存大小都是相等的 ,如: int* a; char* b=\ char** c=&b; sizeof(a)==sizeof(b)==sizeof(c
C与C++经典面试题(内存泄露)
C、C++语言面试题2007-07-15 18:57 1.已知strcpy 函数的原型是:
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy 答案:
char *strcpy(char *strDest, const char *strSrc) {
if ( strDest == NULL || strSrc == NULL) return NULL ;
if ( strDest == strSrc) return strDest ;
char *tempptr = strDest ;
while( (*strDest++ = *strSrc++) != ?\\0?) ;
return tempptr ; }
2.已知类String 的原型为: class String {
public:
String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void
c++绝版面试题--9.7
153、 回答下面的问题
(1).Void GetMemory(char **p, int num){
*p = (char *)malloc(num);//一级指针的值被修改 }
void Test(void){
char *str = NULL;
GetMemory(&str, 100);//传递的是一级指针的地址 strcpy(str, \printf(str); }
请问运行Test 函数会有什么样的结果? 答:输出“hello”
(2).void Test(void){
char *str = (char *) malloc(100); strcpy(str, “hello”); free(str);
if(str != NULL){
strcpy(str, “world”); printf(str);}
}
请问运行Test 函数会有什么样的结果? 答:输出“world”
(3).char *GetMemory(void){
char p[] = \在函数栈 (默认局部栈中,如果有静态的则 放在全局栈中)中数组p在离开作用域 以后内存数据(数组p)有可能被修改,也 有可能不被修改,返回很危险。*/ return p;}
void