聪智学校
A)m=6 B)m=2 C)m=4 D)m=5 例2:(2011-03)有以下程序 main()
{ int x=1,y=0;
if(!x) y++; else if(x==0) if (x) y+=2; else y+=3; printf(\
}程序运行后的输出结果是 (D)
A)3 B)2 C)1 D) 0
【解析】:if-else的嵌套,注意else总是与前面最近的且未配对的if语句配对组合。if(!x)中x为1,!x为0为false,即if(!x) 后的语句不执行,else if(x==0),x为1也不等于0,也不成立,故else if内的语句也不执行,而if (x) y+=2;else y+=3;均为else if内的语句。所以直接输出y为0,故选D。
9.知识点:break语句
? 功能:跳出整个switch语句;跳出循环体,防止死循环。
? break语句只能出现在switch、while、do-while、for循环中,不能出现在其他地方。 ? 作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。
6.知识点:continue语句
? 功能:结束本次循环,接着判断是否继续下一次循环。 ? continue语句只能出现在while、do-while、for循环中。
? 作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。 例1:(2009-04-09)以下程序运行后的输出结果是 s=0
第 29 页 共 81 页
聪智学校
#include
if((k%2)!=0) continue;
s+=k; k++; }while(k>10); printf(“s=%d\\n”,s); }
【解析】k=1,if((k%2)!=0)条件成立,执行continue语句,结束本次循环,判断表达式k>10,值为0,故跳出do-while循环,执行printf(“s=%d\\n”,s);则输出结果为s=0。
第三课 数组
本课重要知识点: 1.知识点:一维数组的定义
例1:(2010-03-25)下列选项中,能正确定义数组的语句是(D) A)int num[0…2008]; B)int num[]; C)int N=2008; D)#define N 2008 int num[N]; int num[N];
【解析】数组的长度必须是一个整型常量、整型常量表达式,故A项错误。定义数组时,不能省略数组长度,B项错误。数组的长度不能是变量,C项错误。数组的长度可以是符号常量,D项正确。
第 30 页 共 81 页
聪智学校
例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项错误。
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,没有越界,故D项正确。
例2:(2011-03)以下程序运行后的输出结果是 13715
main()
{ int i,n[5]={0};
for(i=1;i<=4;i++)
{ n[i]==n[i-1]*2+1; printf(\printf(\} 【解析】:n[1]=1,n[2]=1*2+1=3,n[3]=3*2+1=7,n[4]=7*2+1=15
3.知识点:一维数组的初始化
? 顺序列出数组元素的全部初值,例如int a[5]={1,2,3,4,5};
? 只给数组的前面一部分元素设定初值,未赋初值的元素自动取0值。例如,int a[5]={1,2}; ? 对全部数组元素赋初值时,可以不指定数组元素的个数。例如,int a[]={1,2,3,4,5};
4.知识点:二维数组的初始化
? 按行分段给二维数组赋初值
第 31 页 共 81 页
聪智学校
? 按行连续赋值
? 对部分元素赋初值,未赋初值的元素自动取0值 ? 若对全部元素赋初值,则第一维的长度可以不指定 例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}}; D) int x[2][3]={1,2,3,4,5,6};
【解析】若对全部元素赋初值,则第一维的长度可以不指定,C项正确。二维数组的初始化可以按行连续赋值,D项正确。C项二维数组的初始化超过第一维度长度,故错误。
5.知识点:二维数组和for语句
例1:(2010-03-09)有以下程序 #include
{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?
第 32 页 共 81 页