C++基本数据类型和运算符知识点汇总

4种基本数据类型:整型 浮点型 char 无值型

6种运算符 

算数运算符:加+减-乘*除/模%,其中模运算%只适用于整数。自增运算符,自减运算符

关系运算符:>,<,>= ,<= ,==,!=(按运算符优先级)

逻辑运算符:!,&&,||----结果是true或者false

位运算符:位运算符是专门用来进行二进制运算的,分为逻辑位运算符和移位运算符(<<.>>)

赋值运算符: =,+=,-=,*=,/=,%=,,&=(按位与赋值),|=(按位或赋值),^=(按位异或赋值),<<=左移位赋值,>>=右移位赋值

其他运算符:三木运算符(?:,(逗号运算符),sizeof运算符,类型转换运算符static_cast<目的类型>(原数据))


一。基本数据类型知识点

1.C/c++中的4种基本数据类型是?

:整型,浮点型,字符型,无值型


2.基本数据类型又是怎样细分的?

:整型包括:有符号长整型(signed  long int ),无符号长整型(unsigned long int ),有符号短整型,无符号短整型。



3.类型修饰符signed,short,long用法:

(1)类型修饰符signed和unsigned用于修饰字符型和整形。

在默认情况下,声明一个数时,默认为有符号型,即signed

(2)类型修饰符short和long用于修饰字符型和整形。

(3)当用signed和unsigned、short和long修饰int整形时,int可省略。如short i = 2;

(4)其中bool和wchar_t是C++特有的。

4.怎样声明长整型和float型?

默认情况下,编译器将一个浮点数作为double处理,若要强制以float处理,则在末尾加上“f”或者“F”,如 float i  = 3.14f

声明一个长整型时候,要在末尾加上l或者L,如long i  = 312L;


5.浮点型与科学技术法:

e或者E表示指数,大小均可


4.常量知识点:

什么时候会用到常量?

:如果程序中频繁用到一个数,反复输入这个数是很烦人的,这时候可以声明一个常量来表示它。且如果需要改变此值得话,只需修改程序中的一处。

如:const double PI = 3.14;


1)变量的声明,初始化知识点

注意:无论什么情况,最好都要将变量的声明和初始化在一条语句中完成。


1.必须同时进行变量的声明和初始化的有:

1)局部变量(函数内部的变量,否则其值是不可预知的)


二。运算符知识点

1.运算符分为

算数运算符:加+减-乘*除/模%,其中模运算%只适用于整数。自增运算符,自减运算符

关系运算符:>,<,>= ,<= ,==,!=(按运算符优先级)

逻辑运算符:!,&&,||----结果是true或者false

位运算符:位运算符是专门用来进行二进制运算的,分为逻辑位运算符和移位运算符(<<.>>)

赋值运算符: =,+=,-=,*=,/=,%=,,&=(按位与赋值),|=(按位或赋值),^=(按位异或赋值),<<=左移位赋值,>>=右移位赋值

其他运算符:三木运算符(?:,(逗号运算符),sizeof运算符,类型转换运算符static_cast<目的类型>(原数据))

 

位运算符:

 

1)逻辑位运算符(作用于算数运算符一样,用来运算):~(按位求反),&(按位与),|(按位或),^(按位异或)

 

与运算(and &):and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。

 

按位或(or |):or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

 

异或运算(^):xor运算通常用于对二进制的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。

 

2)移位运算符:移位运算符的值也是算数表达式。

左移:补零

右移:补符号位

0.C++提供了两大类数据类型:基本数据类型和复合数据类型
基本数据类型又四种:整型,浮点型,char型和无值型(void)
1.!号是逻辑运算符(not关系运算符)
2.!=是关系运算符(用于比较)
3.逻辑运算符计算注意事项:
a.如a+b||c+d,先计算逻辑运算符的左边逻辑分量。
b.逻辑符有优化计算原则,即如果左边逻辑分量是1(||的情况下),0(&&的情况下),则不进行右边逻辑分量的计算了。


4.关系运算符,逻辑运算符的结果是1或0,不是true或者false
5.运算符优先顺序:算数运算符 ,移位运算符,关系运算符,按位运算符,逻辑运算符,条件运算符,赋值运算符,逗号运算符


6.移位运算<<,是向左移(not右移),移动的方向是箭头的指向。移位运算,左移补零,右移补符号位


7.赋值运算符:先计算赋值运算符的右边,即等号的右边


8.计算机总是尽量一次处理多个运算符,将多个运算符组合在一起,即a+++b+++c++,意思是(a++)+(b++)+(c++)


9.char型占用一个字节,默认声明的char是unsigned型(和默认声明的int型不一样)


10.多个不同类型的数据在一起运算时候,会发生类型自动转换,类型自动转换的规则是:
类型总是由简单(低)类型 向复杂类型(高类型)转换。
类型:有高到低是:long double,double,float,int,char,


11.计算机存储字符,通常是存储字符的某种代码值


12.赋值运算符的结合性自右至左.
语句“a+=a-=a*a;”的执行是先计算a*a,得到值 9,再计算 a-=a*a,使 a的值为-6,接着计算 a+=a,使 a的值为-12


13.赋值运算符,的左边分量必须是一个变量,不能是算数表达式。如:
 A.a=7+b+C=a+7
  B. C=7+b++=a+7
都是错误的,因为赋值运算符左边是算数表达式了。


14.若有以下定义: char a;int b;float c; double d;则表达式a*b+d-c值的类型为:double
过程:。首先计算 a*b,得到int类型的值,接着计算a*b+d,得到double类型的值,最后计算a*b+d-c,得到double类型的值。


15.表达式k=~i|j>>3的计算过程是先求~i,结果用八进制代码表示为0177764;接着计算j>>3,结果为02。对它们进行按位或
运算结果为0177766。


16.由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式
.设X、y、Z、t均为int型变量,则执行以下语句后,t的值为( )
  x=y=z=1;t=++x||++y&&++z;(按顺序计算)
在C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时
,就立即结束逻辑表达式的计算,不再计算后继逻辑子表达式。本题的逻辑表达式是两个运算分量的逻辑或,而且左运算分量++X的值
为非0,立即得到逻辑或运算的结果为1,并将1赋给变量t,所以变量t的值为1。


17.由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式
设x、y、z均为int型变量,则执行以下语句后,x、y, z的值为( )
  X=1; y=0; Z=2; y++&&++Z ||++ X;
由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑子表达式的结果时,就立即结
束逻辑子表达式的计算,不再计算该逻辑子表达式。计算y++因y的值为0,使y++&&++z的结果为0,立即去计算++X,这次计算使变量y
的值变成1,而变量Z的值本改变。接着计算++X,使X的值变为2。所以经上述语句执行后,X、y、Z的值依次为2、1、Z。




18. .设有关变量已经正确定义并赋值,则下列表达式中符合C语言语法规则的是( )
  A.a_=\12//改为a_/=12;前面那个是反斜线,转义用
  B.a_1=a_2+=12//赋值运算符,运算顺序是从右向坐。
  C.int13.5%2
  D.a=b+7=C-2


19.字符串的长度等于其中有效字符(不含转义字符,结束标记符)的数目。一个转义字符相当于单个字符。
字符串"m\x43\\\np\102q"的长度是( )
【解析】字符串的长度等于其中有效字符(不含字符率结束标记符)的数目。本题给出的字符串中含有转义字符,一个转义字符相当于
单个字符。按照这个规则,本题中给出的字符串中含有的字符如下:
  'm''\x43''\\''\n''p''\102''q'字符串中含有7个有效字符,所以本题答案应选A。
注意:若这个字符串是基于指针的字符串(数组),那么长度还会加1,因为有个结尾符\0.字符串是string型的,则长度不会加1,因为没有\0.


20.C语言规定短整型数据占用的字节数是2,char型占1个字节。
对文本文件来说,存放的数据是按照每位数字对应的ASCII代码值存放的,对于“-7 856”来说,其中的“-”号要占 1个字节;4位
整数要占4个字节,共计占用5个字节。
.存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是( )
  A.2和2
  B.2和5
  C.5和5
  D.5和2
  【解析】二进制文件中存放的数据是二进制形式的,对于“-7856”来说,是一个带符号的短整型数据,C语言规定短整型数据占
用的字节数是2,所以在二进制文件中该数据占用2个字节;对文本文件来说,存放的数据是按照每位数字对应的ASCII代码值存放的,
对于“-7 856”来说,其中的“-”号要占 1个字节;4位整数要占4个字节,共计占用5个字节。所以本题的答案应选B。


21.若用char声明一个字符,这个字符里面不论包含多少数字或者字谜,都只占用一个字节。因为声明的就是char型
如:设有定义语句“char ch='\77',则ch占用多少字节?
:一个字节。\77是转义字符


22.反斜线后面加数字,或者\x数字,或者\n等都是转义字符。转移字符只占用一个字节。
但是\xff是错误的,因为ff是字母。
\08也是错误的,\后面不能直接接0;
ch = '123',也是错误的,因为3个字节了。
且CHAR声明的字符,只能是单引号。如char ch=“a”,错误的


23十六进制中(0x开头,不能包含f),不能包含f,因为f已经代表16了,所以最大是e(E)代表15.
但f放在16进制的最后时候,也可能代表着以浮点数形式表示(长整型末尾加L)(e,E也是指数的代表)
如:2fe:错误
注意这里:0xaf:不能说是错误的,因为可能就是以浮点数表示


24.double型也可以用科学计数法表示(即数字E数字,如3E5,3E-5,代表10的-5次方)
下列double常量中,表示错误的是
E15:错误,E代表10的几次方,不能放在最前面
..35:也可以这样表示


25.自增,自减运算符都是算数运算符(和加减乘除模一样都是算数运算符)。
如:int m = 1,n =2则++m==n的结果是 :1
算数运算符的优先级最高,比关系运算符高,所以先算++m结果是2,
关系运算符比较的结果是1或者0(逻辑运算符比较也是)


26.sizeof(double)是一个(整型)表达式。表示的意思是一个double型数据占用几个字节。


27.c++默认的main函数的返回类型是int,!!,所以在定义main函数时候可以不写返回值。


28.使用cin,,cout,,必须包含头文件iostream.h


1.类型修饰符unsigned 修饰()是错误的

A.CHAR   B.INT C.LONG INT D.FLOAT

:D:unsigned用来修饰整型,默认声明的整型都是signed型,因为在C++中字符是按整型处理的。


2.下列double型的常量表示中,错误的是

A.E15      B...35         C.3ED     D.3E-5

:A,在计算机中,浮点数也可用科学技术法表示,e表示10的n次方。


3.char型在内存中的存储形式是:

A.ASCII    B.补码        C.反码     D.3原码

:A


4.数值在内存中的表示形式是:

补码


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值