软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 电脑教程 > 编程开发 > C/C++开发 > C/C++面试之基础知识总结篇

C/C++面试之基础知识总结篇

基本数据类型 1.  C++中有几种基本数据类型 答:C++中有3种基础数据类型:整数型、浮点型、void型。
2.  整形有哪几种形式以及之间的区别 答:表示整数、字符和布尔值的算术类型合称为整型,整形根据修饰符细分为13种形式((0+unsigned+signed)* (char+short+int+long)+bool),主要的区分体现在类型名、长度和表示的范围。 注意: (1) char类型一般是8bit,但ANSI C里没有硬性规定其长度,某些嵌入式编译器可能是16bit (2) short和long类型的长度不相同 (3) int类型通常同具体机器的物理字长相同 (4) short通常是16bits, int通常是16bits or 32bits每种编译器可以根据硬件的不同自由确定,   但是short和int必须最少是16bits, 而long类型必须最少是32bits, 并且short必须比int和long类型要短。
3.  C++中有哪些常量? 答:常量是不可以改变的数据,常量按照类型分为整数常量、浮点型常量、字符型常量、字符串常量、转义字符常量、地址常量等6种。
4.  常量和变量的区别: 答:常量值不可以修改,变量值可以改变;常量定义时必须初始化,变量没有必要;常量不可寻址,它的地址不允许复制给非常量指针,变量可寻址;常量有相对较高的编译执行效率。
操作符 5.  操作符有哪些分类: 答:表达式由操作符、操作数字和标点符号组成,以用于说明一个运算过程,操作符说明了表达式的主要目的并计算返回结果。 按照功能区分,操作符有算术操作符、关系操作符、逻辑操作符、位操作符、赋值操作符、自增和自减操作符、箭头操作符、条件操作符、sizeof操作符、逗号操作符等10类。 按照操作数区分,操作符分为一元操作符、二元操作符、三元操作符3类。
6.  操作符优先级对运算结果的影响: 答:优先级决定了表达式的运算顺序,不同优先级的运算符的不同作用会影响表达式的运算结果。
7.  逻辑操作与其他操作的关系: 答:逻辑操作只返回true或false这两个值,他们可以用来做判断条件,裸机操作符不会改变被操作数的值。 逻辑或与总是先计算左值,左值不能确定结果后求解右值。逻辑非产生于操作数相反的条件值。
8.  自增自减前操作与后操作的区别: 答:自增自减前操作的额优先级大于赋值运算符(=),而后操作的优先级小于赋值运算符不会对表达式的结果产生影响。
9.  指针自增自减有什么不同: 答:变量的自增自减是修改变量的值,指针的自增自减是修改指针指向的地址。
变量 1.  什么是左值和右值: 答:变量是左值,可以出现在赋值语句的左边;数字字面值是右值,不能被赋值。
2.  什么是变量: 答:变量是指在程序的运行过程中随时可以改变的量,变量是在内存中可修改的存在值的命名空间。
3.  变量初始化形式: 答:变量初始化指创建变量并同时给它赋初始值,C++初始化变量有两种形式:复制初始化(=n)和直接初始化((n)),直接初始化的语法更加灵活且执行效率更高。
4.  变量初始化的规则: 答:系统有时候会自动初始化未初始化的变量。使用未初始化的变量是常见的程序错误,也是难以发现的错误,有时候会导致编程人员不容易判断出问题的原因。建议为每个内置类型对象进行初始化操作,虽然有时不是必须的,但这有助于使程序更加容易理解和安全。
5.  什么是变量的声明和定义: 答:C++程序通常由许多文件组成,为了让多个文件可共享同一个变量,C++区分了声明和定义,定义和声明有时候同时发生,但声明的主要目的是表明变量的类型和名称,而定义的目的是为变量分配存储空间。
6.  C++常见的作用域: 答:作用域是程序的一段区域,作用域用于区别变量所在的有效范围,可分为:全局作用域、局部作用域和语句作用域,一个变量名可以和不同作用域中的不同试题相关联。
7.  局部变量和嵌套的作用域 答:局部变量是具有局部作用域的变量,在C++中作用域是可以嵌套的。
8.  变量的存储类型: 答:在C++中,变量的存储类型分为自动类型、寄存器类型、静态类型、外部类型4种。
引用、C与C++的区别及其他 1.  引用的含义: 答:引用是对象的另一个名字,在实际程序中,引用主要用作函数的形式参数(形参)。
2.  如何使用const引用和非const引用: 答:const引用可读取不可修改引用对象,不可对const引用赋值,适用于指向const对象的的引用;非const引用不适用于const对象的引用,可修改引用和被引用对象的值。
3.  C与C++有什么区别 答:C语言是结构化的,面向过程的语言,考虑的是实现的过程;C++面向对象考虑的是整个程序模型。
4.  什么是匈牙利命名法: 答:匈牙利命名法是一种编程时的命名规范,在变量和函数名中假如前缀以便于人们对于程序的理解,变量名=属性+类型+对象描述名。
5.  变量的命名规则: 答:变量名命名习惯最重要的是保持风格的一致性,变量名必须由字母、数字和下划线组成且以字母和下划线开头,并避免与保留关键字和标准库冲突。
    相关阅读
    栏目导航
    推荐软件