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.数值在内存中的表示形式是:
补码