- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言基础 六、数组
六、 数组的定义和引用
本章概述:
以笔试和上机两种形式考核。笔试中,多出现在选择题第23-27题,填空题第9-11题,分值约占12%。上机中,三种题型中均有体现,抽中几率约为28%。
大纲要求:
1.一维数组和二维数组的定义、初始化和数组元素的引用。
2.字符串与字符数组。
重点难点:
1.一维数组和二维数组的定义、初始化和数组元素的引用。
2.字符串与字符数组。
考点分析:
一维数组的定义、初始化及其元素的引用
一维数组的定义:
在C语言中,数组必须先定义,后引用。定义一维数组的格式为:
类型说明符 数组名[数组大小(整型常量表达式)],…;
其中“类型说明符”可以是任何的C语言数据类型,例如char、int、long、float、double等。“数组名称”与普通变量名称一样。代表“数组大小”的“整型常量表达式”表示数组在内存中的元素个数,在定义时必须是一个常数,不能是变量,数组每个元素所占的字节数就是对应类型说明符规定类型所占的字节数。
一维数组的初始化
数组在定义时还可以同时为各个元素赋予初值,称为数组的初始化。可以用以下几种形式。
⑴ 对数组的所有元素均赋予初值,数组的长度可以省略。
例如:int a[6]={1,2,3,4,5,6}; 也可写为 int a[ ]={1,2,3,4,5,6};
a数组初始化后,a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6。
⑵ 对数组的部分元素赋予初值。
例如:int b[10]={1,2,3};
b数组初始化后,b[0]=1,b[1]=2,b[2]=3,其余各元素均为0。
⑶ 对数组的所有元素均赋予0值。
例如:int c[10]={0}; 或 int c[10]={0,0,0,0,0,0,0,0,0,0};
一维数组元素的引用
定义了某数组后,就可以引用该数组中的任何元素了。引用形式为:
数组名[下标]。
在引用时应注意以下几点:
⑴ 引用时只能对数组元素引用。如a[i],b[i];而不能引用整个数组,如a或b。
⑵ 在引用数组元素时,下标可以是整型常数、已赋值的变量或含变量的表达式。
⑶ C语言数组下标从0开始。
下标从0开始,则a[i]的地址= 首地址 + i*每个数据所占的长度。
⑷ 数组下标不能超界。若数组含有n个元素,下标的最大值为n-1,(因下标从0开始);若超出界限,C编译程序并不给出错误信息(即其不检查数组是否超界),程序仍可以运行,但可能会改变该数组以外其它变量或其它数组元素的值,由此会造成不正确的结果。
试题解析
1.从键盘输入10个整型数据,找出其中的最小值并显示出来。
程序如下:
main( )
{ int a[10],min,i;
for(i=0;i10;i++)
scanf(“%d”,a[i]);
min=a[0];
for(i=1;i10;i++)
if(mina[i]) min=a[i];
printf(“min=%d\n”,min);
}
程序运行结果为:
若输入: 10 22 34 –90 66 45 78 59 -11 100
输出为: min=-90
2.采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。
程序如下:
main( )
{ int a[10],i,j,t;
for(i=0;i10;i++)
scanf(%d,a[i]);
for(i=0;i10;i++)
for(j=0;j10-i;j++)
if(a[j]a[j+1])
{ t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i10;i++)
printf(%4d,a[i]);
printf(\n);
}
程序运行结果:
若输入10个数是:22 34 98 76 –90 59 –11 45 81 –27
则排序的结果为 :-90 –27 –11 22 34 45 59 76 81 98
解析:冒泡法排序的思路是:n个数由小到大排序,将相邻两个数依次进行比较,将小数调换在前头,逐次比较,直至将最大的数移至最后;再将n-1个数继续比较,将次大数移至倒数第2位置;依此规律,直至比较结束。
3.采用“选择法”对任意输入的10个整数按由大到小的顺序排序。
程序如下:
main( )
{ int i,j,t,max,max_j,b[10];
for(i=0;i10;i++)
scanf(%d,b[i]);
for(j=0;j9;j++)
{ max=b[j]; max_j=j;
for(i=j;
文档评论(0)