秋春二级C语言上机考试复习编程.pptx

上传人:莉*** 文档编号:80092549 上传时间:2023-03-22 格式:PPTX 页数:62 大小:210.60KB
返回 下载 相关 举报
秋春二级C语言上机考试复习编程.pptx_第1页
第1页 / 共62页
秋春二级C语言上机考试复习编程.pptx_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《秋春二级C语言上机考试复习编程.pptx》由会员分享,可在线阅读,更多相关《秋春二级C语言上机考试复习编程.pptx(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、编程题文件操作内容、函数定义、函数调用、函数返回、变量及数组初始化、必要的文件包含命令等是必考的。编程题共20分,通常:函数定义部分10分;main函数部分10分;注意:并非程序完全正确才得分,批改时按得分点计分!第1页/共62页【判分标准】满分时必须运行,若无正确结果倒扣1分一、主函数(共10分)1.文件操作(include,声明,fopen各1分):3分2.变量声明并取得初始值:2分3.函数调用正确:2分4.在屏幕显示运算结果:1分5.保存运算结果到文件myf2.out:2分二、fun函数(共10分)1.函数头部:1分2.函数功能:8分(注:又细分得分点,每点1分)3.函数返回值:1分第2

2、页/共62页例如:按下列要求,你写的如下的“程序”可能得到大约11分左右!编写函数voidstring_sort(char*name,introw)。string_sort函数的功能是将给出的row个字符串按字典顺序排序。编写主函数。其功能是:在函数中定义存储如下5个字符串的数组array:beth,jhon,july,mary,tom把数组array作为调用string_sort函数的实参,调用string_sort函数;把程序的输出保存到文件myf2.out中去。(3)(3)把编写好的程序保存到文件myf2.c中供阅卷使用。第3页/共62页#include#includevoidstrin

3、g_sort(charname,introw)/*1分分*/*1分分*/第4页/共62页main()inti;char*array=mary,tom,july,jhon,beth;/*数据初始化数据初始化2分分*/FILE*fp;fp=fopen(“myf2.out”,“w”);/*文件操作文件操作3分分*/if(!fp)string_sort(array,5);/*函数调用函数调用2分分*/for(i=0;i5;i+)fprintf(fp,%sn,arrayi);/*结果输出到文件结果输出到文件2分分*/fclose(fp);第5页/共62页2008年春二级C语言上机试卷(试卷代号C01)二

4、、编程题(20分)【程序功能】在给定范围内查找并输出所有由两个不同数字组成的六位回文数。一个整数如果与其反序数相等,则称该整数为回文数。例如,112211是回文数并且112211是由两个不同的数字1和2组成的,因此112211是符合上述条件的数。【编程要求】1.编写函数intpalin(longm1,longm2,longx),在m1 m2范围内查找所有由两个不同数字组成的回文数并依次保存到x指向的数组中。函数返回x数组中回文数的个数。2.编写main函数,调用palin函数查找100000 120000范围内所有由两个不同数字组成的六位回文数并将这些数保存到一维数组中,将该一维数组中的数据输

5、出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中第6页/共62页【测试数据与运行结果】输出结果:100001101101110011112211113311114411115511116611117711118811119911第7页/共62页【参考答案】#include#includeintpalin(longm1,longm2,longx)inta10,i,k=0,sum;longn,m,t;for(n=m1;n=m2;n+)for(i=0;i0)i=t%10;ai=1;m=m*10+i;t/=10;for(sum=0,i=0;i10;i+

6、)if(ai!=0)sum+;if(m=n&sum=2)xk+=n;returnk;第8页/共62页main()inti,n;longa200;FILE*fp;if(fp=fopen(myf2.out,w)=NULL)printf(Cantopenfilemy2.out!n);exit(1);n=palin(100000,120000,a);for(i=0;in;i+)printf(%ld,ai);fprintf(fp,%ldt,ai);fclose(fp);第9页/共62页二、编程题(20分)【编程要求】1编写函数intfind(intn,longx),找到并保存所有满足以下三个条件的n位十

7、进制正整数(n是函数被调用时形参n获得的值):该数是某个数的平方;该数的后二位是25;组成该数的各位数字中有两位是相同的。例如:225是满足所给条件的三位正整数(152=225);1225是满足所给条件的四位正整数(352=1225)。数组x中存放找到的满足条件的正整数,函数返回找到的正整数个数。2编写main函数,两次调用find函数分别求得满足上述条件的所有三位正整数和所有四位正整数,将满足条件的三位正整数和四位正整数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到结果文件myf2.out中。【测试数据与运行结果】输出结果:n=3:225n=4:1225202

8、5422572252008年春二级C语言上机试卷(试卷代号C02)第10页/共62页#include#include#includeintfind(intn,longx)longi,j,k=0,s,m1,m2,t,num10=0;m1=pow(10,n-1);m2=pow(10,n);第11页/共62页 for(i=m1;im2;i+)t=sqrt(i);if(i=t*t)if(i%100=25)for(j=0;j10;j+)numj=0;for(s=i,j=0;jn;j+)nums%10+;s=s/10;for(j=0;jn;j+)if(numj=2)break;if(jn)xk+=i;re

9、turnk;第12页/共62页main()FILE*fp;longa100,n,i,j;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);for(i=3;i5;i+)printf(nn=%d:,i);fprintf(fp,nn=%d:,i);n=find(i,a);for(j=0;jn;j+)printf(%5d,aj);fprintf(fp,%5d,aj);fprintf(fp,nmyexamnumberis0112400123);fclose(fp);第13页/共62页二、编程题(20分)【编程要求】1.

10、编写函数intprime_m(intn,intx,longy),在2 n范围内查找同时符合以下条件的整数m:2m-1是素数、2m-1的反序数是奇数、2m-1的十进制表示中包含数字1。将2 n范围内符合上述条件的所有整数m依次保存到x指向的数组中,将与m对应的整数2m-1依次保存到y指向的数组中。函数返回x数组中保存的整数个数。2.编写main函数,接收键盘输入的n值,调用prime_m函数找到2 n范围内所有符合给定条件的整数m及整数2m-1并将它们分别保存在两个一维数组中,将两个一维数组中的数据按所示格式输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf

11、2.out中。2008年春二级C语言上机试卷(试卷代号C03)第14页/共62页【测试数据与运行结果】测试数据:n=20输出结果:531712717131071第15页/共62页【参考答案】#include#includeintprime_m(intn,intx,longy)inti,j,m,count;longk=0,q,k1,k2,k3;for(m=2;m=n;m+)k1=pow(2,m)-1;q=sqrt(k1);for(j=2;j=q;j+)if(k1%j=0)break;if(j0)intw=k3%10;if(w=1)count+;k2=k2*10+w;k3=k3/10;if(k2%

12、2=0)continue;if(count0)xk=m;yk+=k1;returnk;第17页/共62页main()FILE*fp;longa20;inti,j,n,b20,m;if(fp=fopen(myf2.out,w)=NULL)printf(Openfilemyf2.outfailed!n);exit(1);printf(inputn:);scanf(%d,&n);m=prime_m(n,b,a);for(i=0;im;i+)printf(%5d%15ldn,bi,ai);fprintf(fp,%5d%15ldn,bi,ai);fprintf(fp,nMyexamnumberis:01

13、12400123);fclose(fp);第18页/共62页2008年春二级C语言上机试卷(试卷代号C04)【程序功能】找出给定范围内的和亲数。对于两个正整数,如果其中的一个整数是另一个整数的全部真因子之和,反之亦然,则称这两个数为“和亲数”。例如,220有真因子“1,2,4,5,10,11,20,22,44,55,110”,其和为284,而284有真因子“1,2,4,71,142”,其和为220,因此220和284就是一对和亲数。【编程要求】1 1编写函数intheqinmath(intm,intn,inta2),找出m n(mn)之间的所有和亲数对,并将其保存到a指向的数组中,函数返回a数

14、组中和亲数对的个数。2 编写main函数,接收键盘输入的两个正整数m和n(mn),调用heqinmath函数求出m n之间的所有和亲数对,将结果输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。第19页/共62页【测试数据与运行结果】测试数据:m=2,n=500运行结果:(220,284)(284,220)第20页/共62页【参考答案】#include#includeintheqinmath(intm,intn,inta2)inti,j,m1,s1,s2,count=0;for(m1=m;m1n;m1+)s1=1;s2=1;for(i=2;i

15、m1;i+)if(m1%i=0)s1=s1+i;for(j=2;js1;j+)if(s1%j=0)s2=s2+j;if(s2=m1)&(m1!=s1)acount0=m1;acount+1=s1;returncount;第21页/共62页main()intcount,i,m,n,a102;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);printf(Pleaseinputm,n:n);scanf(%d%d,&m,&n);count=heqinmath(m,n,a);for(i=0;icoun

16、t;i+)printf(%d,%d)n,ai0,ai1);for(i=0;icount;i+)fprintf(fp,(%d,%d)n,ai0,ai1);fprintf(fp,nMyexamnumberis:0112400123);fclose(fp);第22页/共62页二、编程题(20分)【编程要求】1编写函数intDel_findgcd(inta,intn,int*f),对于a指向的数组中前n个元素,删除所有下标值为奇数的数组元素中保存的整数,求得数组中剩余的n/2(或n/2+1)个整数的最大公约数并将其保存到f指向的变量中。函数返回a数组中剩余整数的个数。2编写main函数,声明一个一维数

17、组并用测试数据初始化,调用Del_findgcd函数删除数组中的所有满足条件的整数并求出剩余整数的最大公约数,将数组中剩余的整数和这些整数的最大公约数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】测试数据:68911121315161819(n=10)输出结果:69121518,maxcommondivisor=32008年春二级C语言上机试卷(试卷代号C05)第23页/共62页【参考答案】#includestdio.h#includeconio.hintDel_findgcd(inta,intn,int*f)int

18、i,k,g;for(i=0,k=0;in;i+)if(i%2=0)ak+=ai;if(n%2=0)n=n/2;elsen=n/2+1;k=a0;for(i=1;ig)k=k-g;elseg=g-k;*f=k;returnn;第24页/共62页main()FILE*fp;inti,a10=6,8,9,11,12,13,15,16,18,19,f,n;if(fp=fopen(myf2.txt,w)=NULL)printf(cantopenfile!);exit(0);n=Del_findgcd(a,10,&f);for(i=0;in;i+)printf(%d,ai);fprintf(fp,%d,a

19、i);printf(maxcommondivisor=%dn,f);fprintf(fp,maxcommondivisor=%dn,f);fprintf(fp,Myexamnumberis:1234567890);fclose(fp);getch();第25页/共62页2008年春二级C语言上机试卷(试卷代号C06)二、编程题(20分)【程序功能】在数列中查找、移动超完全数。超完全数是指具有以下特性的整数N:(N)=2N,其中(N)表示整数N的所有因子之和(因子包括N自身)。例如,16的所有因子之和为31(1+2+4+8+1631),31的所有因子之和为32(1+3132),而32216,因此

20、16是一个超完全数。1000以内的超完全数有2、4、16和64。【编程要求】1.编写函数voidsumfac(intx,intn),对于x指向的数组中存储的n个整数组成的数列,完成以下变换操作:从后向前遍历数列查找超完全数。每找到一个超完全数后,将其移动到数列第一个数之前。2.编写main函数,将测试数据中给出的变换前数列保存到一个一维数组中,调用sumfac函数对一维数组中的数列做变换,输出变换后的数列到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。第26页/共62页【测试数据与运行结果】变换前数列:1248163264128256512变换

21、后数列:2416641832128256512第27页/共62页【参考答案】#includevoidsumfac(intx,intn);intfac(intn);main()inti,a10=1,2,4,8,16,32,64,128,256,512;FILE*fp;if(fp=fopen(myf2.out,w)=NULL)printf(CreatFilemyf2.outfailed!n);exit(0);sumfac(a,10);printf(n);fprintf(fp,n);for(i=0;i10;i+)printf(%6d,ai);fprintf(fp,%6d,ai);fprintf(fp

22、,nMyexamnumberis:0112400123);fclose(fp);getch();第28页/共62页intfac(intn)inti,sum=0;for(i=1;i=k;i-)sum=fac(xi);if(fac(sum)=xi*2)m=xi;for(j=i;j0;j-)xj=xj-1;x0=m;k+;i+;第30页/共62页2008年春二级C语言上机试卷(试卷代号C07)二、编程题(2020分)【程序功能】产生Fibonacci数列的前40个数,再找出其中的所有素数。Fibonacci数列为:1,1,2,3,5,8,13,21,34,55,89,.。【编程要求】1编写函数voi

23、dFibonprime(longf,intn),产生Fibonacci数列的前n个数,再将其中的所有素数放入数组f中,函数返回f数组中素数的个数。2编写main函数,调用Fibonprime函数求出Fibonacci数列前40个数(n=40)中的素数,将这些素数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】运行结果:2351389233159728657514229第31页/共62页【参考答案】#include#include#includeintFibonprime(longf,intn)inti,m=0;long

24、a40=1,1,j,k;for(i=2;in;i+)ai=ai-2+ai-1;for(i=2;in;i+)k=(long)sqrt(ai);for(j=2;j=k+1)fm+=ai;return(m);第32页/共62页main()inti,m;longf40;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);m=Fibonprime(f,40);for(i=0;im;i+)printf(%ldt,fi);for(i=0;im;i+)fprintf(fp,%ldt,fi);fclose(fp)

25、;第33页/共62页二、编程题(20分)【编程要求】1编写函数intfun(intm),求大于m并且不包含小于21的素数因子的最小合数,函数返回该合数。合数是指除了1和自身以外仍存在其他因子的数(即非素数)。2编写main函数,接收键盘输入的一个整数,调用fun函数求得大于该整数且满足上述条件的合数,将该合数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】输入21时,输出529输入1000时,输出10732007年秋二级C语言上机试卷(试卷代号C01)第34页/共62页【参考答案】#includeintprime(in

26、tn)inti;for(i=2;i=n/2;i+)if(n%i=0)return0;return1;intfun(intm)inta8=2,3,5,7,11,13,17,19,i,n;n=m+1;while(1)if(!prime(n)for(i=0;i=8)returnn;n+;第35页/共62页main()intm,n;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);scanf(%d,&m);n=fun(m);printf(%dn,n);fprintf(fp,%dn,n);fprintf

27、(fp,nMyexamnumberis:0112400123);fclose(fp);第36页/共62页二、编程题(20分)【编程要求】1编写函数voidchange(longx,intn),对x指向的数组中前n个整数做如下变换:从前向后依次判断每个整数及该整数的平方是否均为回文数(回文数是指一个数的反序数等于该数自身),若是则将该整数移到最后的数之后,若不是则保持该整数的存储位置不变。例如,1012=10201,101和10201均为回文数,因此101是需要被移动的数。此外,111、121、202、212也是需要被移动的数。2编写main函数,声明数组a并用测试数据初始化,调用change函

28、数对a数组做变换,再将数组a中的数据输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】变换前数组中数据:100101110111120121200201202212变换后数组中数据:1001101202002011011111212022122007年秋二级C语言上机试卷(试卷代号C02)第37页/共62页【参考答案】#include#include#includevoidchange(longx,intn);inthw(longn);main()longa10=100,101,110,111,120,121,200,2

29、01,202,212;inti;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);change(a,10);for(i=0;i10;i+)printf(%d,ai);for(i=0;i10;i+)fprintf(fp,%d,ai);fprintf(fp,nmyexamnumberis0112400123);fclose(fp);第38页/共62页voidchange(longx,intn)longi,j,m=n,k;for(i=0;in;i+)if(hw(xi)&hw(xi*xi)k=xi;f

30、or(j=i;j0)s=s*10+t%10;t=t/10;if(n=s)return1;elsereturn0;第39页/共62页2007年秋二级C语言上机试卷(试卷代号C03)二、编程题(20分)【编程要求】1编写函数intfun(long*x),找出所有满足以下特性的六位整数:它是一个完全平方数(完全平方数是指该数是某个整数的平方);该数同时也是回文数(回文数是指该数等于它的反序数)。例如,698896是836的平方并且698896是回文数,因此698896是满足所给条件的六位整数。将所有满足上述条件的六位整数存入x指向的数组中,函数返回x指向的数组中整数的个数。2编写main函数,声明r

31、esult数组,调用fun函数将所有满足条件的六位整数存入result数组中,将result数组中的数据输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】运行结果:698896第40页/共62页【参考答案】#include#include#includemain()inti,k;longresult20;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);k=fun(result);for(i=0;ik;i+)printf

32、(%12ld,resulti);for(i=0;ik;i+)fprintf(fp,%12ld,resulti);fprintf(fp,nmyexamnumberis0112400123);fclose(fp);第41页/共62页intfun(long*x)longinti,m,temp;inta7,k,j=0;for(i=300;i1000;i+)m=i*i;k=temp=0;while(m)ak=m%10;temp=temp*10+ak;m/=10;k+;if(temp=i*i&k=6)xj+=i*i;returnj;第42页/共62页2007年秋二级C语言上机试卷(试卷代号C04)二、编程

33、题(20分)【程序功能】从一个整型数组中删除所有小于数组元素平均值并且不是素数的那些整数。【编程要求】1编写函数intdel(intr,intn),计算r数组中前n个整数的平均值,删除数组中所有小于该平均值并且不是素数的那些数,函数返回r数组中剩余整数的个数。2编写main函数,声明数组resource并用测试数据初始化,调用del函数处理数组resource中的数据,将resource数组中剩余的整数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】数组初始数据为:175618828运行结果:1751828第43页/共

34、62页【参考答案】#include#include#includeintprime(intm)inti,k;k=sqrt(m);for(i=2;i=k;i+)if(m%i=0)return0;return1;第44页/共62页intdel(intr,intn)inti,j;floataver=0;for(i=0;in;i+)aver+=ri;if(n)aver/=n;for(i=0;in;i+)if(riaver)&(prime(ri)=0)for(j=i;jn-1;j+)rj=rj+1;n-;returnn;第45页/共62页main()intresource6=17,5,6,18,8,28

35、,n=6;inti;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);n=del(resource,n);for(i=0;in;i+)printf(%dt,resourcei);for(i=0;in;i+)fprintf(fp,%dt,resourcei);fprintf(fp,nmyexamnumberis0112400123);fclose(fp);第46页/共62页2007年秋二级C语言上机试卷(试卷代号C05)二、编程题(20分)【编程要求】1编写函数intfind(chara,cha

36、rb),函数被调用时a指向的数组中已存储一个字符串,该字符串是一个包含了多个单词的英文句子(单词是指全部由英文字母组成的子串,不同单词之间有一个或多个空格作为分隔)。函数功能:找出字符串a中最长的单词并将其存入b指向的数组中,函数返回最长单词在字符串a中的起始位置下标。2编写main函数,接收键盘输入的一个英文句子字符串,调用find函数找到该句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】输入:ThisisCprogrammingtest输出:programmi

37、ng,i=10第47页/共62页【参考答案】#includeintfind(chara,charb)inti=0,plen=0,maxlen=0,pseat=0;while(ai!=0)while(ai!=&ai!=0)plen+;i+;if(plenmaxlen)pseat=i-plen;maxlen=plen;while(ai=)i+;plen=0;for(i=0;imaxlen;i+)bi=apseat+i;bi=0;return(pseat);第48页/共62页main()FILE*fp;chara80,b20;inti;fp=fopen(myf2.out,w);if(fp=NULL)

38、printf(Cannotopenthefile!n);exit(0);printf(inputastring:);gets(a);i=find(a,b);printf(%s,i=%dn,b,i);fprintf(fp,%s,i=%dn,b,i);fprintf(fp,nMyexamnumberis:0112400123);fclose(fp);第49页/共62页2007年秋二级C语言上机试卷(试卷代号C06)二、编程题(20分)【程序功能】用公式生成一个数列,输出数列中的无暇素数。无暇素数是指自身为素数且其反序数也是素数的数。例如,113是素数,113的反序数311也是素数,因此113是无暇

39、素数。【编程要求】1编写函数intallprime(intx),用公式“MMM41”生成20个整数组成的数列(M取值范围为120),每生成一个整数判断其是否无暇素数,若是则将其保存到x指向的数组中,否则不保存。函数返回x数组中存储的无暇素数个数。2编写main函数,调用allprime函数找到由公式生成的数列中所有无暇素数并保存到一个一维数组中,将该一维数组中的无暇素数输出到屏幕并保存到文件myf2.out中。最后将考生本人的准考证号字符串保存到文件myf2.out中。【测试数据与运行结果】输出结果:7197113131151313347383第50页/共62页【参考答案】#include#i

40、nclude#includeintprime(longa)inti,k;if(a=0|a=1)return0;k=sqrt(a);for(i=2;i=k;i+)if(a%i=0)return0;return1;第51页/共62页intallprime(longx)longi,j=0,n,n1,n2;for(i=1;i0)n2=n2*10+n1%10;n1/=10;if(prime(n2)xj+=n;returnj;第52页/共62页main()inti,n;longa101;FILE*fp;if(fp=fopen(myf2.out,w)=NULL)printf(Cantopenfilemy2.

41、out!n);exit(1);n=allprime(a);for(i=0;in;i+)printf(%dt,ai);fprintf(fp,%dt,ai);fclose(fp);第53页/共62页2007年秋二级C语言上机试卷(试卷代号C07)二、编程题(20分)【编程要求】1.编写函数doublemyfun(doublex),求下列数学函数展开式的近似值,累加运算在最后一项绝对值小于10-6时停止。2编写main函数,声明数组x并用三个实数-1.0、0.5、1.0初始化,用x数组元素的值三次调用myfun函数求值,将计算结果按如下格式输出到屏幕并保存到文件myf2.out中。最后将考生本人的准

42、考证号字符串保存到文件myf2.out中。【测试数据与运行结果】运行结果如下:f(-1.000000)=-1.562194f(0.500000)=0.523599f(1.000000)=1.562194第54页/共62页【参考答案】#include#include#include#defineEPS1.0e-6doublemyfun(doublex)doubletn,ft=1.0,sn=x,xn=x;doublen=2.0;doxn=xn*x*x;ft=ft*(2*n-3)/(2*n-2);tn=ft*xn/(2*n-1);sn=sn+tn;n=n+1;while(fabs(tn)EPS);r

43、eturnsn;第55页/共62页main()FILE*fp;doublex3=-1.0,0.5,1.0;inti;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);for(i=0;i3;i+)printf(f(%lf)=%0.6lfn,xi,myfun(xi);fprintf(fp,f(%lf)=%0.6lfn,xi,myfun(xi);fprintf(fp,nMyexamnumberis:0112400123);fclose(fp);第56页/共62页2007年秋二级C语言上机试卷(试卷代号C08)二、编

44、程题(20分)【程序功能】验证定理:大于的两个相邻素数之和等于三个大于的整数之积。【编程要求】1编写函数voidfun(intb5,inta,intn),函数被调用时a指向的数组中从小到大存放了从3开始的所有素数中的前n个。该函数的功能是:依次取出a数组中相邻的2个素数(共n-1对)验证上述定理,将每对相邻素数及验证中产生的符合上述定理的三个大于1的整数依次放入b数组的一行中。2编写main函数,声明a数组并用素数序列3,5,7,11,13,17,19,23,29,31,37初始化,用a数组中数据调用fun函数验证上述定理,将运行结果按所示格式输出到屏幕并保存到文件myf2.out中。最后将考

45、生本人的准考证号字符串保存到文件myf2.out中。第57页/共62页【测试数据与运行结果】运行结果:3+5=2*2*25+7=2*2*37+11=2*3*311+13=2*2*613+17=2*3*517+19=2*2*919+23=2*3*723+29=2*2*1329+31=2*2*1531+37=2*2*17第58页/共62页【参考答案】#include#include#defineN20voidfun(intb5,inta,intn)inti,j,k,sum,flag;for(i=0;in-1;i+)sum=0;for(j=0;j2;j+)bij=ai+j;sum+=bij;第59页

46、/共62页bi2=2;flag=1;for(j=2;jsum/2&flag;j+)for(k=2;ksum/2;k+)if(bi2*j*k=sum)bi3=j;bi4=k;flag=0;break;第60页/共62页main()inta11=3,5,7,11,13,17,19,23,29,31,37,n=11;intbN5=0;inti;FILE*fp;fp=fopen(myf2.out,w);if(fp=NULL)printf(Cannotopenthefile!n);exit(0);fun(b,a,n);for(i=0;in-1;i+)printf(%2d+%2d=%2d*%2d*%2dn,bi0,bi1,bi2,bi3,bi4);for(i=0;in-1;i+)fprintf(fp,%2d+%2d=%2d*%2d*%2dn,bi0,bi1,bi2,bi3,bi4);fprintf(fp,nmyexamnumberis0112400123);fclose(fp);第61页/共62页感谢您的观看!第62页/共62页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁