ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:26.48KB ,
资源ID:15072602      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15072602.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自考计算机与程序设计9数组Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自考计算机与程序设计9数组Word文件下载.docx

1、如 a*注:当同时定义多个数组时彼此之间用,号隔开 如 double w22,v100,u5; 以上定义了三个数组。需要注意的是,【】中的内容只能是整型常量或整型常量表达式。如int a11+22也可以。 一维数组元素的引用 数组下标表达式其实x0,xj,xi+k都是对数组中元素的合法引用形式。但是需要注意的是下标表达式的值必须大于或等于0,并且小于数组上界的数。能过上面知识讲解,大家应该建立以下概念: 1:一个数组元素实质上就是一个变量名,代表内存中一个存储单元。一个数组占有一串连续的存储单元。 2:在C语言中一个数组不能整体引用。不能说用一个数组名就代表整个数组了。这是错误的。因为在C语言

2、中规定数组名是一个地址常量,它代表整个数组的首地址。int *p ;int a10 p=a(p=&a0) a= =&a0 a=10 3:数组元素中下标表达式的值必须是整数。在编写程序时保证数组下标不越界是十分重要的。 a2.5 a10=123 一维数组的初始化 一维数组的初始化,其实就是给数组元素赋值。 int a8=0,1,2, 4,5,6,7 所赋的值放在等号后的一对花括号中,数值类型必须必须与所说明的类型一致,所赋值之间用逗号隔开。系统会按赋值顺序来自动分配。 当花括号中的值少于数组元素个数时,将自动给数组后面元素赋值0.如 int a10=1这个时候除了a0=1外,其它的都是0;对于字

3、符数组也是一样;char a10=!不够的也会赋值0通过赋初值定义数组的大小C语言中规定,可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小。 如 int a=1,1,1,1,1,1,1,1,1,1 这样相当于数组中有了10个元素例题:编写一个程序,通过键盘给数组a中的10个成员赋初值。 #include main()int a10; a是地址常量int i,*p;p=a;for(i=0;i10;i+) scanf(“%d”,p);printf(“ai=%d”,*p); 编写一个程序定义一个含有30个成员的数组。并给其赋值,要求从1这样的奇数开始。当赋值完毕后,按

4、每行10个输出。include #define m 30int am;int i,k=1;m; ai=k; k+=2; printf(“a%d=%d”,i,ai); if(i+1)%10= =0) printf(“n”);9.2一维数组和指针一维数组和数组元素的地址 前言:定义的数组名可以认为是一个存放地址值的指针变量名,其中的地址值是数组第一个元素的地址,也就是数组所占一串连续存储单元的起始地址。重要的是:这个指针变量中的地址值不可改变,也就是说,不可以给数组重新赋值。因此,也可以认为数组名是一个地址常量。 如:float a10 ,*p,x; 语句a=&x或a+这样的语句都是非法的。因为不

5、能给a重新赋地址值。一旦定义a永远指向a数组的首地址。 虽然不可以改变数组名a中的内容,但可以用对数组名加一个整数的办法,来依次表达该数组中不同元素的地址。int a10,*p; p=a+4p=&a4再如:for(k=0;kk+) p=a+k;在循环中并没有改变数组名a中的内容,但通过表达式:a+k逐一给出了a数组中每个元素的地址,使p依次指向a数组中和每一个元素。 如果要能过类似上面的语句给数组中的元素赋值,语句为: for(k=0; scanf(“%d”,a+k); 如有p=a或p=&a0这两个表达式所要表达的意思是一样的。都是指指针P指向了数组a的首地址。所以当要依次访问数组中的每一个元

6、素时可以用以下的两个形式; p+; 或a+k(k的值是不断变化的如上面的for语句一样) 通过数组的首地址引用数组元素a是数组元素的首地址,a(即a+0)的值即等于&a0,则用a+1的值等于&a1.在以前我们学过“间接访问运算符”-“*”来引用地址所在的存储单元。因此对于数组a0,可以用表达式*&a0来引用也可以用*(a+0),还可以用a0来表示。但需要注意的是对于*(p+k)这样的表达式不能这样写*p+k,这样写的话就错了。代表指针取值后再加K的值了。总结:表示数组元素si的表达式应当有 si *(s+i) *(p+i) *pi(但当p=s+2时,p=&a2.*p0就是a2的值了)9.3函数

7、之间对一维数组和数组元素的引用数组元素作实参 每个数组元素实际上代表内存中的一个存储单元,故和普通变量一样,对应的形参必须是类型相同的变量。数组元素的值可以传送给该变量,在函数中只能对该变量进行操作,而不能直接引用数组元素,更不能在函数中改变对应数组元素中的值。数组名作实参 数组名也可以作为实参传送,但数组名是一个地址值,因此,对应的形参就应当是一个指针变量,此指针变量的基类型必须与数组的类型一致。这样就可以通过指针变量来引用调用函数中对应的数组元素,从而达到对调用函数中对应的数组元素进行操作而改变其中的值。例:编写程序,通过一个函数给主函数中定义的数组输入若干大于或等于0的整数,用负数作为输

8、入结束标志,调用另一个函数输出该数组中的数据。#include =0)*(a+i)=x;给地址赋值输入的值i+;return i;void arrout(int *a,int n)int i;n;printf(i+1)%5=0)?”%4dn”;”%4d”,*(a+i);printf(“n”);当数组名作为实参时,对应的形参除了是指针外,还可以用另外两种形式。 在上面的题目中数组名作为实参时,函数的首部用的是指针arrin(int *a),还可以用以下的形式调用:、 arrin(int *a) arrin(int a) arrant(int aM)9.3.3数组元素地址作为实参 当用数组元素地址

9、作为实参时,因为是地址值,所以对应的形参也应当是基类型相同的指针变量。 例:编写函数,对具有10个元素的char类型数组,从下标为4的元素开始,全部设置星号“*”;保持前4个元素中的内容不变。 假设数组是c10=A,B,C,D,E,F,G,H,I,J 根据题意可以知道想要从E开始后面的全变成*编写一个改变的函数,编写一个输出的函数。#define M 10#define B 4void setstar(char *,int);void arrout(char *,int);下面有函数调用,一开始是函数的声明char cM= A,B,C,D,E,F,G,H,I,J ;setstar(&c4,M-

10、B);发生了函数调用,实参 数组中第5个元素的地址值arrout(c,M); 输出首地址,输出m个void setstar(char *a,int n)*(a+i)=*;void arrout(char *a,int n) int i; for(i=0;printf(“%c”,ai);输出数组中存储的数字9.4一维数组应用举例 编写程序,定义一个含有15个元素的数组,并编写函数分别完成以下操作。1, 调用C库函数中的随机函数给所有元素赋以0-49的随机数;2, 输出数组元素中的值。3, 按顺序对每隔三个数求一个和数,并传回主函数。4, 最后输出所有求出的和的值。#include “stdlib

11、.h”#define SIZE 15#define N 3void getrand(int *,int);void getave(int * ,int *,int );void priarr(int *,int );int xSIZE,wSIZE/N=0;getrand(x,SIZE);printf(“output%d random numbers:n”,SIZE);priarr(x,SIZE);getave(x,w,SIZE);printf(“Output 5 sum numbers :n”);priarr(w,SIZE/N);void getrand(int *a,int n)ai=rand()%50;void getave(int *a,int *b,int n)int i,j,sum;for(sum=0,i=0,j=0;=n;sum+=ai;if(i+1)%3=0)bj=sum;sum=0j+;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1