C++笔试基础题(1)

来源:互联网 发布:淘宝文案招聘兰州 编辑:程序博客网 时间:2024/06/05 16:29

1.C++有那几种基本数据类型?

答:c++的基本数据类型有:整型,浮点型,void型。

2.整型有哪几种形式,各种形式有什么区别?

答:表示整数,字符和布尔值的算术类型和称为整型,整型根据修饰符细分为13种形式,

他们的区分主要体现在类型名,长度和表示范围几个方面。

3.c++中有哪些常量?

答:常量是不可以改变的数据,常量按照数据类型主要分为整型常量、浮点型常量、字符型常量、

字符串型常量、转义字符、地址常量6种。

4.常量和变量有哪些出别?

答:常量是不可以改变的量,而变量是可以改变的量。常量在定义是必须初始化,而变量在定义时可以

不初始化。常量不可以寻址,它的地址不允许赋给非常量指针,而变量可以寻址。常量有相对较高的编

译执行效率。

5.操作符有哪些分类?

表达式由操作符、操作数以及标点符号组成的序列,它的目的是为了说明一个计算过程,操作符说明了

表达式的主要目的,并且计算返回结果。按照功能区分操作符分为:算术操作符、关系操作符、逻辑操作符、

位操作符、赋值操作符、自增操作符和自减操作符、箭头操作符、条件操作符、sizeof操作符、逗号操作符

等10种操作符。按照操作数区分分为:一元操作符、二元操作符和三元操作符。

6.操作符优先级对运算结构有什么影响?

答:在所有的运算符中有三个运算符是自右向左结合的,分别是:单目运算符,条件运算符,赋值运算符。

c++中运算符的优先级一共有16个等级。优先级决定了表达式的运算顺序,不同优先级的运算符不同使用会

影响表达式的运算结果。

7.逻辑操作与其他操作的关系

答:逻辑或操作符和逻辑在使用时,总是先计算它的左操作数,然后再计算右操作数,只有在靠左操作数的值

无法确定该逻辑表达式的结果时,才会求解右操作数。这种求值称为“短路求值”。

逻辑操作只会返回true或者false两种值,他们可以用来做判断条件。逻辑操作符不会改变操作数的值。

8.自增自减前操作和后操作的区别?

答:前自增自减操作符的优先级大于赋值运算符,而后自增自减操作符的优先级小于赋值操作符,后自增自减操作

后表达式的值不会发生变化。

9.指针自增自减有什么不同?

答:变量的自增自减是修改变量的值,指针的自增自减是修改指针指向的地址。

10.什么是左值和右值?

答:变量是左值,可以出现在赋值语句的左边。数字字面值是右值,不能被赋值。

11.什么是变量

答:变量是指在程序的运行过程中随时可以发生变化的量,变量是在电脑内存里修改的,存在值的命名空间。

12.变量有哪几种初始化方式?

 变量初始化指创建变量并同时给它赋初始值,而赋值则是擦除对象的当前
值并用新值代替。其中,直接初始化的语法更加灵活而且执行效率比复制初
始化更高。
13.变量默认初始化有什么规则?
内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都
初始化为0,在函数体里定义的内置类型变量不进行自动初始化。除了用作赋值
操作符的左操作数,位初始化变量用作任何其他用途都是没有定义的。
类自身定义了该类型的对象可以怎样初始化。类通过定义一个或多个构造函数来
控制类对象的初始化。如果定义某个类的变量时没有提供初始化式,这个类
也可以定义初始化时的操作,它是通过定义一个特殊的构造函数即,默认构造函数来实现的。
系统有时候会自动帮编程者初始化未初始化的变量。使用未初始化的变量
是常见的程序错误,但通常也是很难发现的错误,有时候会导致编程者在程
序运行时发生的问题原因上出现判断错误。所以建议每个内置类型的对象都要
初始化。虽然这样并不是完全必需的,但是会让程序容易和安全。

14.什么是变量的声明和定义?
答:c++程序通常由许多文件组成。为了让多个文件访问相同的变量,c++
区分了声明和定义。定义和声明有相同的时候,但声明的主要目的是表明
变量的类型和名称,而定义的主要目的是为变量分配存储空间。
15.c++中有哪几种作用域?
答:作用域是程序的一段区域,作用域用于区别变量名的不同有效范围,
分为全局作用域,局部作用域和语句作用域。一个变量名可以和不同作
用域中的不同实体相关联。
16.局部变量和嵌套的作用域。
答:局部变量就是具有局部作用域的变量,在C++中,作用域是可以嵌
套的。
17.变量有哪几种存储类型
答:在C++中,变量的存储类型分为自动类型,寄存器类型,静态类型,
外部类型等4种。
18.什么是引用?
答:引用是对象的另一个名字,在实际程序中,引用主要用作函数的形式
参数来使用。
19.如何使用const引用与非const引用?
答:const引用可以读取但是不可以修改引用对象,任何对const引用进行
赋值都是不合法的,它适用于指向cosnt对象的引用,而非const的引用
不适用于指向const对象的引用,可以修改引用和被引用对象的值。
20.C与C++有什么区别?
答:C语言结构化的编程语言,它是面向过程的,C语言编程考虑的是实
现过程,C++是面向对象的,C++编程考虑的是整个程序模型。
21.什么是匈牙利命名法?
答:匈牙利命名法是一种编程时的命名规范。匈牙利命名法的主要思想是:
在变量和函数名中加入前缀以增加人们对程序的理解。