您的位置:首页 > 编程语言 > C语言/C++

1.c/c++程序员面试宝典--基本数据类型

2015-11-08 22:25 211 查看
1.c/c++程序员面试宝典-c/c++语言基础-基本数据类型
面试题37 c++中哪几种基本数据类型***

面试题38 整型有哪几种形式?各种形式有什么区别***

面试题39 c++中有哪些常量

面试题40 常量与变量有哪些区别**

面试题37 c++中哪几种基本数据类型***

分析:在c、c++中,数据类型分为两种,简单类型和结构类型。简单类型包括有整数类型、字符类型、浮点类型、指针类型、枚举类型和void类型等。结构类型包括有数组、字符串、记录和文件等。c、c++的基本数据类型属于简单类型。用户可以创建的所有数据类型都是根据基本类型定义的。

c++语言定义了几种基本类型,分别是字符型、整型、浮点型等。c++还提供了可用于自定义数据类型的机制,标准库正是利用这些机制定义了许多更复杂的类型,例如,可变长字符串string和vector等。此外,程序员还能自己修改已有的基本类型以灵活定制复合数据类型。

c、c++中的基础数据类型分为3种:整数型、浮点型和void型。程序中不能定义void类型的变量,它仅仅是用于说明函数没有返回值或说明指针是无类型的。c++中所有的表达式都可转换或映射为void类型的。

【答案】c++中的基础数据类型分为3种:整数型、浮点型和void类型。

面试题38 整型有哪几种形式?各种形式有什么区别***

分析:整型是用来表示没有小数位的数,在c、c++中,用来表示整数、字符和布尔值的算术类型合称为整型。可以用很直接的方式表示整型字面量,-100,+110,120等。

修饰符是整型的一个重要表示,整型可以加上符号和长短的修饰符来表示不同的存储长度和数值范围。

表示长短的修饰符有short、int、long等。一般来说,short代表半个机器字长;int代表一个机器字长;long代表一个或2个机器字长。

另外,整型还可以是带符号的(signed),也可以是无符号的(unsigned)。带符号的整型可以表示正数也可以表示负数(包括0),而无符号的整型只能表示大于等于0的数。

由于有了前缀,整型就可以细分为char(字符型)、unsigned char(无符号字符型)、signed char(有符号字符型)、int(整型)、unsigned(无符号整型)、signed int(有符号整型)、short int(短整型)、unsigned short int(无符号短整型)、signed short int(有符号短整型)、long int(长整型)、signed long int(有符号长整型)、unsigned long
int(无符号长整型)、bool(布尔型)等13种,它们的详细介绍如下:





注意:在32位机器中,int和long的长度通常是相等的。bool类型表示值true(真)和false(假)。编程者可以将算术类型的任何值赋给bool对象,0值表示false,任何非0的值都表示true。

【答案】表示整数、字符和布尔值的算术类型合称为整型,整型根据修饰符细分为13种形式,它们的区分主要体现在类型名、长度和表示范围几个方面。

面试题39 c++中有哪些常量

分析:常量也被称为常数。在语言中它是一种恒定不变的数值或数据项。常量的值在程序运行之前就会被确定,并且不会再程序的运行过程中有任何改变。常量可以是不随时间变化的某些量和信息,也可以是表示某一数值的字符或字符串。常量通常被用来标识、测量和比较。

常量按照数据类型的不同分为整型常量、浮点型常量,还有字符串常量、转义字符常量和地址常量等。

1)整型常量

整型常量根据前缀的不同可以分为长整型、短整型、有符号型、无符号型。有符号整型常量的范围从-32768~32767,无符号整型的为0~65535;有符号长整型的范围是-2147483648~2147483647.无符号长整型的范围是0~4294967295。

可以指定一个整型常量为二进制、八进制或十六进制,例如,-129,0x12fe,0177,如果常量的前面有符号0x,这个符号表示该常量是十六进制表示,如果前面的符号只有一个字母0,那么表示该常量是八进制。有时候编程者在常量的后面加上符号L或者U,表示是长整型或者无符号型,22388L,0x4efb2L,40000U,在表示中后缀可以是大写,也可以是小写。

2)浮点型常量

一个浮点型常量是由整数和小数两部分构成,中间用十进制的小数点隔开。有些浮点数的值非常大或者非常小,用普通方法不容易表示或者会很长,编程者可以用科学计数法或者指数方法表示。

在c++中,数的大小也有一定的限制。对于float型浮点数,数的表示范围为-3.402823E38~3.402823E38,其中-1.401298E-45~1.401298E-45不可见。double型浮点型常数有着更高的精度,它的表示范围为-1.79E308~1.79E308,其中-4.94E-324~4.94E-324不可见。

在浮点型常量里编程者也可以加上后缀。例如,floatnumber=1.6E10F,表示有符号浮点型,longdoublenumber=3.45L;表示长双精度型,后缀可大写也可小写。

注意:浮点常数只有一种进制(十进制)。所有浮点常数都被默认为double。绝对值小于1的浮点数,其小数点前面的0可以省略。例如,0.22可以写成.22。

3)字符型常量

字符型常量所表示的值是字符型变量所能包含的值。编程者可以用ASCII表达式来表示1个字符型常量,或者用单引号内加反斜杠表示转义字符。例如,‘A’,‘\x2f’, '\013',其中\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。

注意:字符型常量表示数的范围是-128~127,除非把它声明为unsigned,这样就是0~255.

4)字符串常量

字符串常量就是一串字符,用双引号括起来表示。例如“hello,world!”。

5)转义字符常量

上面编程者见到的\x,\n,\a等都是转义字符,转义字符告诉编译器要用特殊的方式进行处理。这里给出所有的转义字符和所对应的意义:

\' 单引号

\" 双引号

\\ 反斜杠

\0 空字符

\0nnn 八进制数

\a 声音符

\b 退格符

\f 换页符

\n 换行符

\r 回车符

\t 水平制表符

\v 垂直制表符

\x 十六机制符。

6)地址常量

编程者前面说的变量是存储数据的空间,它们在内存里都有对应的地址。在c语言里可以用地址常量来引用这些地址,例如,&counter, &sun, &是取地址符,作用是取出变量(或者函数)的地址。在后面的输入语句和指针里还会说明。

【答案】常量是不可以改变的数据,常量按照数据类型主要分为整型常量,浮点型常量,字符型常量,字符串常量,转义字符常量,地址常量等6种。

面试题40 常量与变量有哪些区别**

分析:变量,顾名思义就是在程序运行中,可以被改变的量。变量在定义后为程序提供了一个有名字的内存区域。编程者可以通过程序对它进行读写和处理。变量值的改变是通过赋值操作进行的。变量的基本使用示例代码如下:

double pi=3.14; //定义double型变量pi

pi = 3.1415;

pi = 3.1415926; //定义通过赋值不断改变pi的值

scanf("%lf",&pi);

常量和变量都是在程序中需要经常使用到的,特别是变量,它们有着不同的特征,常量和变量的主要区别如下:

(1)常量的值不可以修改,任何尝试修改常量的操作都会导致编译错误,而变量可以通过赋值来改变值。

(2)常量定义以后就不可以修改,所以常量在定义时必须初始化。变量可以在定义时暂时不进行初始化。常量初始化的时候必须直接复制常量初始化的示例代码如下:

const char a= "test" //正确

char p;

p="test";

const test=p; //错误,常量必须直接赋值

(3)常量值的地址不允许赋给非常量指针。

(4)常量在编译的时候,可以以立即数形式编译进指令,比起使用内存的变量执行效率更高。

(5)常量本身没有地址属性(除字符串常量等),而变量有地址属性,所以常量只能用做右值,而变量左值、右值都可以。

【答案】常量是不可以改变值的量,变量是可以改变值的量,常量在定义时必须初始化,变量可以在定义时不初始化。常量不可以寻址,它的地址不允许赋给非常量指针,变量可以寻址。常量有相对较高的编译执行效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: