VC++二级考试复习资料(2)

2019-01-10 11:20

(3)for语句和while语句是先判断循环条件,条件为1时再执行循环体;而do?while语句是先执行循环体后判断循环条件;

(4)循环前各变量的值是多少?循环中各变量的值如何变化?循环后各变量的值是多少?循环了多少次?。 [试题]

[2007春]选择题22 A [2006秋]选择题24 D

[考试要求]四、break和continue语句。★★★ [主要知识点]

1、break退出循环语句或switch语句。

2、continue语句是中止本次循环,立即进入下次循环。

第三部分 构造类型和指针类型数据

一、构造类型数据[一维数组和二维数组,结构体和共同体(联合体)]。 [考试要求](一)构造类型变量的说明及初始化。 [主要知识点]

1、一维数组的说明及初始化。★★★

(1)定义格式:类型 数组名[数组大小]; 定义时注意,数组的必须大小确定。

①指定大小:用字符型、枚举类型或整型的常量及常量表达式指定大小。如: int a=5;float b[a],c[‘a’-90],d[ ];

其中数组c的定义是正确的,而b和d的定义是错误的,d[ ]只能出现在形参中。下列数组的定义正确吗? #define m 5

const int n=10;

float x[m],y[n],z[15.0]; ②由初始化的数据确定大小。

当定义数组时,可以不指定其大小,而由其初始化时的数据确定其大小。如: int a[]={1,2,3}; (2)初始化

①一维数组初始化的方法:用列表初始化。

②字符数组初始化的方法:除了用列表(可以是整型数据或字符)初始化外,还可以用字符串初始化。如:

char c1[]={97,98,99},c2[]={‘a’,‘b’,‘c’}; char c3[]=“abc”,c4[]={“abc”};

注意数组c1、c2、c3、c4的大小,c1和c2的大小为3,而c3和c4的大小为4。 ③初始化时,注意元素个数不能大于数组大小。如: char c[5]=“china”; 是错误的。

2、二维数组的说明及初始化。★★★

(1)定义格式:类型 数组名[数组行数][数组列数]; 二维数组的行数和列数要求与一维数组大小相似。对于二维数组,只能由元素个数确定其行,而不能由元素个数确定其列,如:

int b[][3]={1,2,3,4,5},c[3][ ]={1,2,3,4,5};

其中b的定义是正确的,而c的定义是错误的。 (2)初始化的方法

①用一维列表初始化,如:int a[][3]={1,2,3,4,5}; ②用二维列表初始化,如:int a[][3]={{1,2},{3},4,5}; 3、结构体和共同体(联合体)★ [试题]

[2007春]选择题27 A [2006春]选择题24 D [2006春]选择题29 A [2007秋]选择题23 D

[考试要求](二)构造类型变量成员(元素)的使用。★★★ [主要知识点]数组的使用:面向元素。

1、一维数组:通过单循环遍历数组,对元素进行操作,如: int a[10]={1,2,3,4,5,6,7,8,9,10},s=0;

for(int i=0;i<10;i++)//求一维数组所有元素的和 s+=a[i];

for(i=0;i<10;i++) //按每行5个元素的方式输出 {

cout<

if((i+1)%5==0)cout<<‘\\n’; }

2、字符数组:通过单循环遍历数组,以字符串结束标记作循环结束条件,如: char s[]=“abcdef”;int i=0; while(s[i]){ s[i]+=‘A’-‘a’;i++; }

3、二维数组:通过嵌套的双循环遍历数组,通常外循环控制行,内循环控制列,如: float b[4][5]={…};

for(int i=0;i<4;i++)//按矩阵方式输出 { for(int j=0;j<5;j++) }

cout<

[试题]

[2007秋]填空题5 (6)15 (7)20

[2007秋]填空题9 (14)1 (15)6 (16)1

二、指针与引用。

[考试要求](一)指针与地址的概念,取地址运算符&和取值运算符*;★★ [主要知识点]

1、地址:内存单元的编号(变量保存位置)。 2、指针:首地址。

3、取地址运算符&:得到地址。

4、取值运算符*:得到与地址对应的内存中的内容。 [考试要求](二)指针变量的定义、初始化;★★★ [主要知识点]

1、概念:指针变量是保存某地址(指针)的变量。 2、定义与初始化

(1)一般指针变量(指向普通变量或数组元素)的定义格式:类型 *变量名;如: int n=10,a[5]={1,2,3,4,5}; int *p1=&n,*p2=a,*p3=&a[3];

(2)指向一维数组的指针变量(二维数组的行指针)的定义格式:类型 (*变量名)[二维数组的列数];如: int a[4][5]={1,2,3,4,5};

int (*p4)[5]=a,(*p5)[5]=a+1;

(3)指针数组(每个元素都是一个指针变量)的定义格式:类型 *变量名[元素个数];如: int *p6[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};

char *p7[4]={“123”,”45678”,”abcd”,”efgfijk” };

(4)二级指针变量(指向指针的指针)的定义格式:类型 **变量名;如: int **p8=p6;

[考试要求](三)指针的运算;★★★ [主要知识点]

1、赋值运算:对指针变量初始化,或改变指针所指的位置;如: int *p9=p2,*p10;p10=p3; 2、算术运算(+、-)

(1)指针变量加(减)一个整数(n):指针从当前位置向后(前)移动n个存储单元; (2)指针变量相减:两指针相差多少个存储单元;如p10-p9的值为3,而(int)p10-(int)p9的值为12;

(3)指针变量不允许相加,如p10+p9是错误的。

3、关系运算:比较指针所指位置的前后关系,如p10>p9的值为1,而p10

p+=2; // p原来指向字符‘a’,运算后p指向字符‘c’ *p+=2; // 把 p所指的字符‘c’,修改为字符‘e’ [试题]

[2006春]填空题2 (2)age [2006秋]填空题5 (5)3

[考试要求](四)指针与数组★★★,指针与结构体,指针与函数★★,指针数组★,二级指针★; [主要知识点] 1、指针与数组

(1)指针与一维数组和字符数组

①指针指向一维数组(指向数组的首元素)时,可用指针名代替数组名,如: float b[10],*p; p=b;//p=&b[0];

b[i]可表示为:p[i]、*(b+i) 或 *(p+i)。

②指针指向一维数组的某个元素时,指针名所代替的是从该元素开始的数组,如: float b[10],*p; p=&b[j];// p=b+j;

p[i]所表示的是*(p+i),即b[i+j]、*(b+i+j)。

③指针名虽然可以代替数组名,但其本质是不同的,如: char *p1=“abcd”,s[]=“12345”,*p2=s+2;

cout<

另外,数组名(字符串)虽然也是一个地址,但是值不能被改变常量指针。如: int *p,a[5]={1},b[5]; p=a;p=b;p++; //正确 b=a;a=p;b=p;a++; //错误

④通过指针操作一维数组。如把数组的前n(0

for(int i=0,t;i

[2006秋]填空题11 (19)q=p=str (20)min>*p (21)p>str (22)p-- [2007秋]填空题6 (8)a:4 (9)e:3 (2)指针与二维数组

①用行指针指向二维数组时,可用指针名代替数组名,如: float b[3][6],(*p)[3]; p=b;//p=&b[0];

b[i][j]可表示为:p[i][j]、*(*(p+i)+j) 或 *(p[i]+j)等。 ②当把二维数组看成一维数组时,可用元素指针指向二维数组的首元素,操作二维数组,如: float b[3][6],*p;

p=&b[0][0];// p=*b; p=b[0];p=(int*)b; p=*(b+0);等 for(int i=0;i<3*6;i++)//通过元素指针输出二维数组 {

cout<

if((i+1)%3==0)cout<<‘\\n’; }

③虽然既可以用行指针操作二维数组,也可以用元素指针操作二维数组,但由于其含义不同,操作方法也不同。如:

float b[3][6],(*p1)[3]=b,*p2=b[0];

p1++;//p1自增后指到下一行(第二行)

p2++;//p2自增后指到下一个元素(第一行第二列) [试题]

[2007春]选择题28 B [2006春]选择题25 C 2、指针与函数

(1)指针作函数的参数,传递地址和数组,格式:类型 函数名(指针形参){?}。 ①传递变量地址。 ②传递一维数组。 [试题]

[2007秋]填空题12 (23)i+=2 (24)a[pn]=t (25)px!=i+1 (26)a[px]=t [2006春]填空题8 (11)3 3 11 (14)19 20 0 0

[2006春]填空题13 (23)i==n-1 (24)*p>*(p+1)或*p>=*(p+1) (25)*p<*(p+1)或*p<=*(p+1) (26)test_order(x,n) ③传递二维数组。 [试题]

[2007春]填空题11 (19)(int*p)[COL]或int p [ROW][COL] (20)p[i][j-1]等 (21)p[i][0] (22)i=0;i

(2)函数返回指针。函数类型为指针,格式: 类型* 函数名(形参){?;return 指针;} ①返回变量地址。 ②返回数组名。 ③返回指针变量。 [试题]

[2007秋]填空题8 (12)4 (13)33000

[2006秋]填空题9 (15)Hllo How ar you (16)1111 11 (3)指向函数的指针。先使指针指向函数,然后通过指针调用函数。

①定义指向函数的指针,要求类型和参数与所指向的函数一致,定义格式: 类型(*指针名)(形参);

②使指针指向函数,其格式为: 指针名=函数名;

③用指向函数的指针调用函数,其格式为: (*指针名)(实参); 或 指针名(实参); [试题]

[2006春]填空题9 (13)1 (14)8 (15)2

[2007春]填空题12 (23)s-1 (24)*s++ (25)(*fp)(char*s,char) (26)str,c 3、指针数组与二级指针

指针数组通常与二级指针结合起来处理系列字符串(二维字符数组),如: char *p[4]={“123”,”45678”,”abcd”,”efgfijk” },**pp=p;

指针数组p中4个元素分别保存了列表中4个字符串的首地址,所以语句“cout<

[考试要求](五)new与delete的应用★★★; [主要知识点]

1、动态空间:new运算符分配动态空间,delete运算符释放动态空间。


VC++二级考试复习资料(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国伦理思想起源之研究 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: