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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验 数组参考答案.docx

1、实验 数组参考答案实验6 数组一、一维数组实验2、 编程:输入长度为10得整型数组并输出;然后将其逆序存放后再输出。例如:Input 10 number: 0 1 2 3 4 5 6 7 8 9 After reversed: 9 8 7 6 5 4 3 2 1 0#includevoid main() int i, j, a10, t; printf(Input 10 number: ); for(i=0; i10; i+) /*读入数据*/ scanf(%d, &ai); printf(origin data: ); for(i=0; i10; i+) /*输出原始数据*/ printf(

2、%d , ai); printf(n); for(i=0,j=9; ij ; i+,j-) /*逆序存放*/ t=ai; ai=aj; aj= t; printf(After reversed: ); /*输出逆序存放后得数据*/ for(i=0; i10; i+) printf(%d , ai); printf(n);3、 编程:输入n个(1n=10)正整数并保存到数组中,求出最大值、最小值、平均值,以及最大值、最小值在数组中得下标分别就是多少。例如:Input n: 5Input 5 integer: 8 2 5 1 4max=8 index=0min=1 index=3average=4

3、#include void main() int i, n , max, min, a10, sum; float average; printf(Input n (1n=10): ); scanf(%d, &n); if(1n & n=10) printf(Input %d integer:, n); /*输入数据并求累加与*/ for(i=0, sum=0; in; i+) scanf(%d, &ai); sum+=ai; average=(float)sum/n; /*求出平均值*/ for(i=0, max=0, min=0; i amax) max= i; if(ai amin) m

4、in= i; printf(max=%-5d index=%dn, amax, max); printf(min=%-5d index=%dn, amin, min); printf(average=%、2fn, average); else printf(数据超出范围);4、 编程:青年歌手参加歌曲大奖赛,有10个评委对她(她)进行打分,试编程求这位选手得平均得分并输出(去掉一个最高分与一个最低分)。#include void main() int i, max, min; float a10, ave; printf(请输入10个评委得打分:); for(i=0, ave=0; i10;

5、i+) /*输入分数并求累加与*/ scanf(%f, &ai); ave+=ai; for(i=0, max=0 , min=0; iamax) max=i; if(aiamin) min=i; ave=ave-amax-amin; ave=ave/8; printf(该选手得评委打分就是:); for(i=0; i10; i+) printf(%、2f , ai); printf(n);printf(去掉最高分%、2f,去掉最低分%、2f,该选手得平均得分就是%、2fn, amax, amin, ave);5、 编程:用两种方法输出斐波那切数列得前40项(参考例6-4)。要求: (1)方法

6、1:不使用数组; #include void main() int f1=1, f2=1, f3, i; printf(%12d%12d, f1, f2); for(i=3; i=40; i+) f3=f1+f2; printf(%12d, f3); if(i%5=0) printf(n); f1= f2; f2= f3; (2)方法2:使用一维数组。#include void main() int i; int fib40; fib0=fib1=1; for(i=2; i40; i+) /*计算其余得38个数*/ fibi= fibi-1 + fibi-2; for(i=0; i40; i+

7、) printf(%12d,fibi); if(i+1)%5=0) printf(n); 6、 编程:输入n个(1n=10)float型得数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出。例如:Input n: 5Input 5 number: 8、5 2、3 5、1 1、4 4、9After sorted: 8、50 5、10 4、90 2、30 1、40#include void main() int i, j, n; float a10, t; printf(Input n: ); scanf(%d,&n); if(n1 & n=10) printf(Input %d num

8、ber:, n); for(i=0;in;i+) scanf(%f,&ai); printf(Before sorted:); /*输出排序前得数据*/ for(i=0; in; i+) printf(%、2f , ai); printf(n); for(i=0; in-1; i+) /*冒泡排序*/ for(j=0; jn-i-1; j+) if( aj aj+1 ) t=aj; aj=aj+1; aj+1=t; printf(After sorted:); /*输出排序结果*/ for(i=0; in; i+) printf(%、2f , ai); printf(n); else prin

9、tf(数据超出范围);7、 在上题基础上(输入n个float型得数据并保存到数组中,用冒泡法或选择法将它们从大到小排序后输出)完成:在已经排好序得数组(长度不足10)中插入一个数m(键盘输入)后输出,保持数组得降序排列。程序分析:首先判断此数就是否大于最后一个数,然后再考虑插入中间得数得情况,插入后此元素之后得数,依次后移一个位置。#include void main() int i, j, n, p; float a10, t, m; printf(Input n: ); scanf(%d, &n); if(n1 & n=10) printf(Input %d number:, n); fo

10、r(i=0; in; i+) scanf(%f, &ai); printf(Before sorted: ); /*输出排序前得数据*/ for(i=0; in; i+) printf(%、2f , ai); printf(n); for(i=0; in-1; i+) /*冒泡排序*/ for(j=0; jn-i-1; j+) if( aj aj+1 ) t=aj; aj=aj+1; aj+1=t; printf(After sorted:); /*输出排序结果*/ for(i=0; in; i+) printf(%、2f , ai); printf(n); printf(请输入要插入得数据m

11、: ); scanf(%f, &m); /*找到插入位置*/ if(m an-1) /*如果m比最后一个元素小,则直接插入到最后得位置*/ p = n; else for(i=0; i ai) p=i; break; for(i=n; i=p+1; i-) /*将插入位置之后得元素后移*/ ai=ai-1; /*插入*/ ap=m; printf(插入%、2f 后:, m); /*输出插入后结果*/ for(i=0; in+1; i+) printf(%、2f , ai); printf(n); else printf(数据超出范围);二、二维数组实验1、 以下程序功能为:将下列矩阵中得元素向

12、右移动一列,最后一列移至第一列。找出并改正以下源程序中错误,通过调试得出正确得运行结果。 1 4 6 8 10 12源程序(有错误得程序)#include #define ROW 2#define COL 3int main() int aROWCOL=1,4,6,8,10,12; int i,j,temp; for(i=0;i=0;j-) aij=aij+1; /*调试时设置断点*/ /改为aij+1=aij; ai0=temp; /*调试时设置断点*/ for(int i=0;iROW;i+) /去掉int for(j=0;jCOL;j+) printf(%6d,aij); printf(

13、n); return 0;运行结果(改正后程序得运行结果)6 1 412 8 102、 编程:利用二维数组计算并打印一个n行得杨辉三角。例如:Input n: 61 1 11 2 11 3 3 11 4 6 4 11 4 10 10 5 1提示:第一列及对角线上得元素都就是1,其她元素通过计算得出:如果用i表示行,j表示列,则第i行j列得元素#include void main() int a1010=0; /设最多10层 int i, j, n; printf(请输入杨辉三角形得层数:); scanf(%d, &n); if(n10) printf(层数超出范围); return; for(

14、i=0;in;i+) /给第0列与主对角线上得元素赋值1 ai0=1; aii=1; for(i=2;in;i+) /计算其她位置元素得值 for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;in;i+) /输出 for(j=0;j=i;j+) printf(%4d,aij); printf(n); 3、 编程:通过键盘输入3行4列得二维数组,分别按行与按列输出数组。例如:Input numner:1 2 3 4 5 6 7 8 9 10 11 0output by row: 1 2 3 4 5 6 7 8 9 10 11 0output by col: 1 5

15、 9 2 6 10 3 7 11 4 8 0#include void main() int a34,i,j; printf(请输入 3 X 4 整数矩阵:n); for(i=0; i3; i+) for(j=0; j4; j+) scanf(%d, &aij); printf(按行输出:); for(i=0; i3; i+) for(j=0; j4; j+) printf(%d ,aij); printf(n); printf(按列输出:); for(i=0; i4; i+) for(j=0; j3; j+) printf(%d ,aji);printf(n);4、 编程:输入一个m*n矩阵

16、,求她们得各行元素之与。例如:Input m , n: 2 2Input 2*2 matrix:4 5 5 6 sum0=9sum1=11提示:设计一个一维数组 int s10,分别保存各行元素之与。#include void main() int a1010, s10=0; /设定矩阵最大为10 x 10 int m, n, i, j; printf(请输入矩阵得行数与列数:); scanf(%d%d, &m, &n); if(m10 | n10) printf(行或列(110)值超出范围); return; printf(请输入 %d*%d 矩阵:n,m,n); for(i=0; im;

17、i+) for(j=0; jn; j+) scanf(%d,&aij); /求各行之与并输出 for(i=0; im; i+) for(j=0; jn; j+) si+=aij; printf(sun%d= %d n, i, si); 5、 编程:判断一个二维数组就是否存在鞍点,若存在,则输出鞍点及其行号与列号;否则输出没有鞍点信息。“鞍点”就是指这样得元素:它在本行就是最大元素,而在本列就是最小得元素。Input m , n: 2 2Input 2*2 matrix:4 5 5 6 i=0, j=1, saddle point: 5提示:找鞍点需要处理三件事情:(1)找每行中最大值所在得列下

18、标;(2)判断该元素在本列上就是否为最小;(3)判断就是否找到了鞍点,若找到,输出。#include void main() int a1010; /设定矩阵最大为10 x 10 int m, n, i, j, col, flag=0; printf(请输入矩阵得行数与列数:); scanf(%d%d, &m, &n); if(m10 | n10) printf(行或列(110)值超出范围); return; /退出程序 printf(请输入 %d*%d 矩阵:n,m,n); for(i=0; im; i+) for(j=0; jn; j+) scanf(%d,&aij); for(i=0;

19、im; i+) col=0; /找出第i行中得最大值所在列下标col for(j=1; jn; j+) if(aicolaij) col=j; for(j=0; jajcol) break; if(j=m) flag=1; /有鞍点 printf(i=%d, j=%d, saddle point:%dn,i,col,aicol); if(flag=0) printf(No saddle point!n);三、字符串实验1、 以下程序功能为:输入一个字符串,将其逆序输出。找出并改正以下源程序中错误,通过调试得出正确得运行结果。源代码(有错误得程序)#include #include void m

20、ain() int i,j; char s80,result80; printf(Enter a string:n); gets(s); for(i=strlen(s)-1,j=0;i=0;i-,j+) resultj=si; resultj=0; /必须给字符串加上串结束标志 printf(This is reverse string:n); puts(result);运行结果(改正后得程序)Enter a string :asdfgThis is the reverse string:gfdsa2、 编程:任意输一个字符串保存在一维字符数组中,求其长度(不用strlen函数)。例如:Inp

21、ut a string: aadfdglength=6提示:字符串得有效长度就就是有效字符得个数,即数组中第一个0前面得字符个数。#include void main() int i, len=0; char s80; printf(请输入字符串,以回车键结束:); gets(s); for(i=0; si!=0; i+) len+; printf(字符串%s得长度为:%dn,s, len);3、 编程:任意输入两个字符串分别保存在一维字符数组中,把第二个字符串连接到第一个字符串末尾(不用strcat函数)。例如:Input two string:asdfgertyafter strcat:

22、asdfgerty#include void main() int i,j; char s180, s280; printf(请输入字符串1以回车键结束:n); gets(s1); printf(请输入字符串2以回车键结束:n); gets(s2); for(i=0; s1i!=0; i+) ; /* 定位第一个字符串得结束标志*/ for(j=0; s2j & i80; i+, j+ ) /*将s2接到s1后*/ s1i=s2j; s1i=0; printf(两个串连接后:%sn,s1);4、 编程:从键盘读入两个字符串分别保存在一维字符数中,比较两个字符串大小(不用strcmp函数),输出

23、较大得字符串。#include void main() int i; char a80, b80; printf(请输入字符串1以回车键结束:n); gets(a); printf(请输入字符串2以回车键结束:n); gets(b);/逐个比较直到两个字符不同或其中一个字符串结束 for(i=0; ai & bi ; i+) if(ai!=bi) break; if (aibi) printf(第一个字符串%s大!n, a); else if (ai=bi) printf(两字符串相同!n); else printf(第二个字符串%s大!n, b); 5、 编程:任意输入一个字符串保存在一维字

24、符数组中,判断里面数字字符得个数。例如:Input a string:adg4521gadg4adgnumber: 5#include void main() int i, n=0; char s80; printf(请输入一个字符串以回车键结束:n); gets(s); for(i=0 ; si; i+) if(si=0 & si=9) n+; printf(字符串中包含得数字个数为:%dn,n);6、 编程:从一个字符串中删除从某个特定字符开始得所有字符。例如原字符串为abcdefg,特定字符为d,删除后得字符串为abc。#include void main() int i, flag=0; char c, s80

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

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