您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 计算机基础C++程序改错复习题
第1题(10.0分)题号:400难度:中第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun求20以内所有5的倍数之积。------------------------------------------------------*/#defineN20#includestdio.hintfun(intm){/**********FOUND**********/ints=0,i;for(i=1;iN;i++)/**********FOUND**********/if(i%m=0)/**********FOUND**********/s=*i;returns;}main(){intsum;sum=fun(5);printf(%d以内所有%d的倍数之积为:%d\n,N,5,sum);}答案:=======(答案1)=======ints=1,i;=======(答案2)=======if(i%m==0)=======(答案3)=======s*=i;第2题(10.0分)题号:584难度:中第1章/*-------------------------------------------------------【程序改错】---------------------------------------------------------下列给定程序中函数fun()的功能是计算1/n!的值。例如:给n输入5,则输出0.008333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:-------------------------------------------------------*/#includestdio.h#includeconio.h/***********FOUND***********/intfun(intn){doubleresult=1.0;if(n==0)return1.0;while(n1&&n170)/***********FOUND***********/result*=n++;result=1/result;returnresult;}voidmain(){intn;printf(InputN:);scanf(%d,&n);printf(\n1/%d!=%lf\n,n,fun(n));}答案:=======(答案1)=======doublefun(intn)=======(答案2)=======result*=n--;第3题(10.0分)题号:427难度:中第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun求1000以内所有8的倍数之和。------------------------------------------------------*/#includestdio.h#defineN1000intfun(intm){/**********FOUND**********/ints=0;i;/**********FOUND**********/for(i=1;iN;i++)/**********FOUND**********/if(i/m==0)s+=i;returns;}main(){intsum;sum=fun(8);printf(%d以内所有%d的倍数之和为:%d\n,N,8,sum);}答案:=======(答案1)=======ints=0,i;=======(答案2)=======for(i=1;iN;i++)=======(答案3)=======if(i%m==0)第4题(10.0分)题号:444难度:易第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun计算下列分段函数的值:x*20x0且x≠-3f(x)=sin(x)0≤x10且x≠2及x≠3x*x+x-1其它------------------------------------------------------*/#includemath.h#includestdio.hdoublefun(doublex){/**********FOUND**********/doubley/**********FOUND**********/if(x0||x!=-3.0)y=x*20;elseif(x=0&&x10.0&&x!=2.0&&x!=3.0)y=sin(x);elsey=x*x+x-1;/**********FOUND**********/returnx;}main(){doublex,f;printf(inputx=);scanf(%f,&x);f=fun(x);printf(x=%f,f(x)=%f\n,x,f);}答案:=======(答案1)=======doubley;=======(答案2)=======if(x0&&x!=-3.0)=======(答案3)=======returny;第5题(10.0分)题号:432难度:中第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?------------------------------------------------------*/#includestdio.h#includemath.hmain(){longinti;longx,y;/**********FOUND**********/for(i==1;i100000;i++){/**********FOUND**********/x=sqrt(i+100)y=sqrt(i+268);/**********FOUND**********/if(x*x==i+100||y*y==i+268)printf(\n%ld\n,i);}}答案:=======(答案1)=======for(i=1;i100000;i++)=======(答案2)=======x=sqrt(i+100);=======(答案3)=======if(x*x==i+100&&y*y==i+268)第6题(10.0分)题号:397难度:中第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:输入两个实数,按代数值由小到大输出它们,并在fun()函数中输出。(输出的数据都保留2位小数)------------------------------------------------------*/#includestdio.hfun(){/**********FOUND**********/floattfloata,b;scanf(%f%f,&a,&b);/**********FOUND**********/if(ab){t=a;a=b;b=t;}/**********FOUND**********/printf(%5.2f,%5.2f\n,&a,&b);}main(){fun();}答案:=======(答案1)=======floatt;=======(答案2)=======if(ab)=======(答案3)=======printf(%5.2f,%5.2f\n,a,b);第7题(10.0分)题号:25难度:中第1章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:找出大于m的最小素数,并将其作为函数值返回。------------------------------------------------------*/#includemath.h#includestdio.hintfun(intm){inti,k;for(i=m+1;;i++){/**********FOUND**********/for(k=1;ki;k++)/**********FOUND**********/if(i%k!=0)break;/**********FOUND**********/if(ki)/**********FOUND**********/returnk;}}main(){intn;scanf(%d,&n);printf(%d\n,fun(n));}答案:=======(答案1)=======for(k=2;ki;k++)=========或=========for(k=2;ik;k++)=========或=========for(k=2;k=i-1;k++)=========或=========for(k=2;ki/2;k++)=========或=========for(k=2;i/2k;k++)=========或=========for(k=2;k=sqrt(i);k++)=========或=========for(k=2;sqrt(i)=k;k++)=======(答案2)=======if(i%k==0)break;=========或=========if(!(i%k))break;=======(答案3)=======if(i=k)=========或=========if(k=i)=========或=========if(k==i)=========或=========if(k=i/2)=========或=========if(k=i/2)=========或=========if(ksqrt(i))=======(答案4)=======returni;=========或=========return(i);第8题(10.0分)题号:419难度:中第2章/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。------------------------------------------------------*/#includestdio.hmain(){/**********FOUND**********/longge,shi,qian;wan,x;scanf(%ld,&x);/**********FOUND**********/wan=x%10000;qian=x%10000/1000
本文标题:计算机基础C++程序改错复习题
链接地址:https://www.777doc.com/doc-6946018 .html