好文档 - 专业文书写作范文服务资料分享网站

2013年全国计算机等级考试二级C语言复习资料 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

聪智学校

也不等于0,也不成立,故else if内的语句也不执行,而if (x) y+=2;else y+=3;均为达式k>10,值为0,故跳出do-while循环,执行printf(“s=%d\\n”,s);则输出结果为else if内的语句。所以直接输出y为0,故选D。

s=0。 9.知识点:break语句

? 功能:跳出整个switch语句;跳出循环体,防止死循环。

?

break语句只能出现在switch、while、do-while、for循环中,不能出现在其他地方。

? 作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。

6.知识点:continue语句

? 功能:结束本次循环,接着判断是否继续下一次循环。 ? continue语句只能出现在while、do-while、for循环中。

?

作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。

例1:(2009-04-09)以下程序运行后的输出结果是 s=0 #include main() {int k=1,s=0; do{

if((k%2)!=0) continue;

s+=k; k++; }while(k>10); printf(“s=%d\\n”,s); }

【解析】k=1,if((k%2)!=0)条件成立,执行continue语句,结束本次循环,判断表第 21 页 共 61 页

聪智学校

第三课 数组

第 22 页 共 61 页

聪智学校

第 23 页 共 61 页

聪智学校

本课重要知识点: 1.知识点:一维数组的定义

例1:(2010-03-25)下列选项中,能正确定义数组的语句是(D)

有越界,故D项正确。

例2:(2011-03)以下程序运行后的输出结果是 13715

main()

{ int i,n[5]={0};

A)int num[0…2008]; B)int num[];

for(i=1;i<=4;i++)

C)int N=2008; D)#define N 2008 { n[i]==n[i-1]*2+1; printf(\

printf(\int num[N]; int num[N];

} 【解析】数组的长度必须是一个整型常量、整型常量表达式,故A项错误。定义

【解析】:n[1]=1,n[2]=1*2+1=3,n[3]=3*2+1=7,n[4]=7*2+1=15

数组时,不能省略数组长度,B项错误。数组的长度不能是变量,C项错误。数组的长度可以是符号常量,D项正确。

例2:(2010-09-28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是(D)

A)int a[5]={0}; B)int b[]={0,0,0,0,0}; C)int c[2+3]; D)int i=5,d[i];

【解析】可以只给数组的前面一部分元素设定初值,A项正确。对全部数组元素赋初值时,可以不指定数组元素的个数,B项正确。数组的长度可以是一个整型常量表达式,C项正确。数组的长度不能是变量,D项错误。

3.知识点:一维数组的初始化

? ?

顺序列出数组元素的全部初值,例如int a[5]={1,2,3,4,5};

只给数组的前面一部分元素设定初值,未赋初值的元素自动取0值。例如,int a[5]={1,2};

? 对全部数组元素赋初值时,可以不指定数组元素的个数。例如,int a[]={1,2,3,4,5};

4.知识点:二维数组的初始化

? ? ? ?

按行分段给二维数组赋初值 按行连续赋值

对部分元素赋初值,未赋初值的元素自动取0值 若对全部元素赋初值,则第一维的长度可以不指定

2.知识点:一维数组元素的引用

例1:(2008-09-21)若有定义语句:int m[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是 (C)

A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]] 【解析】m数组元素的引用的下限为0,上限为4。i=4,--i的值为3,A项正确。B项没有越界,正确。m[0]=5,超过上限,已经越界,故C项错误。m[4]=1,没

例1:(2006-04-16)以下数组定义中错误的是(B) A) int x[][3]={0};

B) int x[2][3]={{1,2},{3,4},{5,6}}; C) int x[][3]={{1,2,3},{4,5,6}};

第 24 页 共 61 页

聪智学校

D) int x[2][3]={1,2,3,4,5,6}; A)char s[];s=”BOOK!”; B)char *s;s={“BOOK!”};

【解析】若对全部元素赋初值,则第一维的长度可以不指定,C项正确。二维数组C)char s[10];s=”BOOK!”; D)char *s;s=”BOOK!”;

的初始化可以按行连续赋值,D项正确。C项二维数组的初始化超过第一维度长度,【解析】字符数组名是地址常量,不能赋值给数组名,故A、C项错误,D项指针故错误。

5.知识点:二维数组和for语句

例1:(2010-03-09)有以下程序 #include main()

{int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

for(j=i;j<3;j++) printf(“%d”,a[i][j]); printf(“\\n”);

}程序运行后的输出结果是 123569 。

6.知识点:字符串

定义:由“”引起来的,由若干个字符所组成的序列。 字符串的结束标志:?\\0?

如字符串“china”,在内存中存储形式是

c h i n a \\0 该字符串的长度为5字节,所占的存储空间为6字节。

7.知识点:字符数组的定义及初始化

?

字符数组名是地址常量,不能赋值给数组名。 例1:(2009-04-32)以下选项中正确的语句组是(D)

第 25 页s是个变量,将字符串常量赋值给s,是正确的。B项中给s赋值时不能用花括号将字符串括起来。

例2:(2009-09-31)下面是有关C语言字符数组的描述,其中错误的是(D) A)不可以用赋值语句给字符数组名赋字符串 B)可以用输入语句把字符串整体输入给字符数组 C)字符数组中的内容不一定是字符串 D)字符数组只能存放字符串

8.知识点:字符数组的输入与输出

例1:(2009-09-13)有以下程序 #include main()

{char a[20]=”How are you?”,b[20]; scanf(“%s”,b);printf(“%s %s\\n”,a,b);

}程序运行时从键盘输入:How are you?<回车>

则输出结果为How are you? How

【解析】scanf函数输入,以空格作为字符串输入结束的标志,故字符数组b只接收到字符串”How”。 例2:(2011-03)有以下程序 main()

共 61 页

2013年全国计算机等级考试二级C语言复习资料 - 图文 

聪智学校也不等于0,也不成立,故elseif内的语句也不执行,而if(x)y+=2;elsey+=3;均为达式k>10,值为0,故跳出do-while循环,执行printf(“s=%d\\n”,s);则输出结果为elseif内的语句。所以直接输出y为0,故选D。s=0。9.知识点:break语句?
推荐度:
点击下载文档文档为doc格式
9a6vy17nnd0wekt4q39j
领取福利

微信扫码领取福利

微信扫码分享