☆C语言实验五(第七章一维数组:排序综合题)_第1页
☆C语言实验五(第七章一维数组:排序综合题)_第2页
☆C语言实验五(第七章一维数组:排序综合题)_第3页
☆C语言实验五(第七章一维数组:排序综合题)_第4页
☆C语言实验五(第七章一维数组:排序综合题)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章一维数组:排序综合题[书面作业]2010年10月25日课堂以书面作业形式上交下列三种不同的排序源程序【上课提问要求】:对作业上,采用一个主函数方式,编写源程序。0821陈健、黄晓凯、张斌采用简单起泡排序法;0822谢承祥、李冬明、张茂竹采用双向起泡排序法;0823黄人杰、高枫、薛乾采用选择排序法。徐辰峰、江鹏、许鹏演示“数制变换程序”-十进制数变为以八进制数形式的一维数组(资料见最后一页)下面第七章单选题1、5、8、100821:王其伟、林达飞、杨晶、张磊阅读并理解江苏省计算机二级C语言上机考试题目要求|【2008春上机编程题_C07】【程序功能】产生Fibonacci数列的前40个数,再找出其中的所有素数。Fibonacci数列为:1,1,2,3,5,8,13,21,34,89, 【编程要求】编写函数voidFibonprime(longf[],intn),产生Fibonacci数列的前n个数,再将其中的所有素数放入数组f中,函数返回f数组中素数的个数。编写main函数,调用Fibonprime函数求出Fibonprime数列前40个数(n-40)中的素数,将这些素数输出到屏幕并保存到文件myf2・out中。最后将考生本人的准考证号字符串也保存到结果文件myf2・out中。【测试数据与运行结果】运行结果:2 3 5 13 89 233 1597 28657 514229myexamnumberis:考生本人准考证号字符串【要求】源程序文件名必须取为myf2.c,输出结果文件名为myf2.outo数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件操作函数实现。源程序文件和运行结果文件均需保存到T:盘上,供阅卷使用。4・不要复制扩展名为obj和exe的文件到T:盘上。【解题思路】在理解上述要求基础上,只用一个主函数完成:找出Fibonacci数列的前40个数,存放在一维数组m[40](声明长整型变量long)中,然后找出其中所有素数,存放在一维数组n[40]中(提示:n数组要求对素数总数以k计数),再选用一种排序法对一维数b进行降序排列,最后按长整型量以“%91d”形式、一行五个数据将满足条件的数据输出到屏幕:【提示】:排序方法有“简单起泡法”;“双向起泡法”;“选择法”;所以要求学生在调试上述程序基础上按班组选取排序方法,编写本次作业。(约定:起始Fibonacci数列存放在一维数组m[40]中,挑选出的素数存放在一维数组n[40]中,最后以升序排列的数组n输出,满足素数的个数设定为k)。参考程序:简单起泡排序法|:(参考教科书P134)ttinclude<stdio.h>ttinclude<math.h>uoidmain()<longm[40]={1,1},n[40],t;inti,j,k=0,Flag;For(i=2;i<4Q;i++){ m[i]=m[i-1]+m[i-2];flag=1;for(j=2;j<sqrt(m[i]);j++)if(m[i]^j==0)<flag=0;break;}if(flag==1) n[k++]=m[i];For(i=0;i<k;i++)For(j=Q;j<k-i;j++)if(n[j]<n[j+1J) <t=n[j];n[j]=n[j+1];n[j+1]=t;}For(i=0;i<k;i++){ if(i^5==Q)printf("\n");printf("^d'^nti]);printf("\n");|CA*D:\Tc3\Debug\l_F_素软—起泡降序-exe*514229 28657 1597 23313 5 3 2PressanykeytocontinueH89双向起泡排序法:(参考上机指导书P54例7.5、2010春完善程序题第15题或软件第七章填空第15题)原理为“下列程序的功能是对n数组n⑹〜a[k-l]中存储的k个整数从大到小排序。排序算法是:第一趟通过比较将k个整数中的最小值放在a[k-1]中,最大值放在a[0]中;第二趟通过比较将k个整数中的次小值放在a[k-2]_F_素数_取向起泡降序-c中,次大值放在a[1]中, ,依次类推,直到待排序序列为递减序列。”_F_素数_取向起泡降序-cttinclude<stdio.h>ttinclude<math.h>uoidmain(){longm[40]={1,1},n[48],t,max,min;inti,j,k=0,Flag;For(i=2;i<4B;i++){ m[i]=m[i-1]+m[i-2];Flag=1;For(j=2;j<sqrt(m[i]);j++)if(m[i]^j==0){Flag=0;break;}if(flag==1) n[k++]=m[i];For(i=8;i<l</2;i++){max=min=i;For(j=i+1;j<k-i;j++)j]》n[min])min=j;elseif(n[j]<n[max])max=j;iF(min*=i){t=n[min];n[min]=n[i];n[i]=t;}iF(max==i){t=n[min];n[min]=n[l<-i-1];n[k-i-1]=t;}else{t=n[max];n[max]=n[l<-i-1];n[k-i-1]=t;}For(i=8;i<l<;i++){ iF(i^5==8)printf("\n"):printFC^d'^nti]);printF("\n");G:k*D:\Tc3\Debug\l_F_素数—双向起泡降序-eze*514229 28657 159713 5 3Pressanykeytocontinue233289选择排序法:(参考上机指导书P50例7.2)课堂练习空余时间或课后业余时间练习知识题软件第七章】选择:1,下列一维数组的声明中,正确的是 (22) 。A.inta[];B.intn=10,a[n];C.inta[10+1]={0};D.inta[3]={1,2,3,4};5.以下程序运行后的输出结果是 (25)___。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d",i,j);}A.22B.72C.75D.628.以下声明中错误的是 (27) 。A.inta[2];B.inta[]={0,1};C.inta[3]=0;D.nta[3][4]={0};11.已知有声明"intm[]={5,4,3,2,l},i=0;",下列对数组元素的引用中,错误的是 (27) A.m[++i]B.m[5]C.m[2*2]D.m[m[4]]参考资料:数制变换耳耳*D:\Tc3\Debug\00.exe*97decinal=97octave=1100001Pressanykeytocontinue输入一个十进制数,输出为二进制数形式的一维整型数组#mdude<stdia.h>mainO{ inti=0,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论