C/C++基础知识点全面汇总(计算机2级考试,程序员考试 基础考点)

一。基本数据类型知识点

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

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


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.一个指针变量存储的是什么信息?

:指针存储的信息是对象在内存中的地址。通过指针可以间接访问对象


1.关于指针可以进行的运算有哪些?

1)赋值运算。如int  a, *pa = &a,*q;p = q;//指针的赋值运算

2)指针可以加1运算或者减1运算

3)指针在一定条件下,可以相减(数组情况下),指向同一个数组的不同元素的两个指针可以相减,其差便是两个指针之间相隔的元素个数。

例如在一个字符串中,让一个指向该串的首元素,让另一个指向字符串的结束符,两个指针相减,其差便是字符串的长度

4)在一定条件下,指针可以互相比较。如指向同一个数组元素的两个指针可以比较,当两个指针相等时,说明指向数组的同一个元素。


2。最常用的指针类型是什么类型的指针?其作用是什么:

最常用的指针类型是char *,因为在C++中,所有的字符串操作都可以通过字符指针完成。


3.指针和数组的关系

:数组元素可用下标表示,但最好还是用指针表示。


4.数组名和数组指针的关系?

:数组名是常量指针,数组指针是变量指针。

如:int a[5],*p = a;

表达式p+1,p+2是合法的,而a+1,a+2是违法的。因为数组指针是变量指针,而数组名是常量指针


5.二维数组的指针表示:



6.引用变量

:引用是令一个变量的别名,对引用的改变实际是对目标的改变。

声明形式,int a  = 3;

int &b = a;


7.引用与指针的区别?

:指针通过地址间接访问变量,而引用是通过别名直接访问变量。

引用必须初始化,且一旦初始化之后,就不能再作为其他变量的别名。

引用的用途是用来作为函数参数。





4.在int a[5] = {1,3,5};中,a[1]=

A.1     B.0       C.3     D.5

:C  数组的起始地址是0


5.字符数组初始化语句中,正确的是

A.char s1[] = "abcd"

B.char s2[3]="xyz"  //字符数组的结尾符号必须有一个\0表示结束

C.char s3[][] ={a,b,c}

D.char s4[2][3] = {"xyz","mnp"}

:A


6.在int a = 3,*p = &a中,*p的值是()

A.变量a的地址值      B.无意义        C.变量p的地址值     D.3

:D---指针代表的就是地址值,指针的解引用代表地址存储的单元值


7.对于int *pa[5];正确的描述是:

A.pa是指向一个数组的指针,所指向的数组是5个int型元素

B.pa是一个指向某数组中第五个元素的指针,改元素是int型变量

C.pa[5]表示某个数组的第五个元素的值

D.pa是一个具有五个元素的指针数组,每个元素是一个指针。

:D,声明什么么,说明这个数是一个包含什么类型的数。即声明int  *p[5]证明声明的就是一个指针型数组,保存的全是指针,如int * p   = &a;声明的是指针


8.关于指针的运算,叙述错误的是()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章