C语言期末考试复习资料程序改错部分试题及答案.docx
- 文档编号:3550237
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:26
- 大小:526.90KB
C语言期末考试复习资料程序改错部分试题及答案.docx
《C语言期末考试复习资料程序改错部分试题及答案.docx》由会员分享,可在线阅读,更多相关《C语言期末考试复习资料程序改错部分试题及答案.docx(26页珍藏版)》请在冰豆网上搜索。
C语言期末考试复习资料程序改错部分试题及答案
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
求如下表达式:
111
S=1+——+———+......+———————
1+21+2+31+2+3+......+n
------------------------------------------------------*/
#include
main()
{
intn;
doublefun();
printf("Pleaseinputanumber:
");
/**********FOUND**********/
print("%d",n);
printf("%10.6f\n",fun(n));
}
/**********FOUND**********/
fun(intn)
{
inti,j,t;
doubles;
s=0;
/**********FOUND**********/
while(i=1;i<=n;i++);
{
t=0;
for(j=1;j<=i;j++)
t=t+j;
/**********FOUND**********/
=s+1/t;
}
returns;
}
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
判断m是否为素数,若是返回1,否则返回0。
------------------------------------------------------*/
#include
/**********FOUND**********/
voidfun(intn)
{
inti,k=1;
if(m<=1)k=0;
/**********FOUND**********/
for(i=1;i /**********FOUND**********/ if(m%i=0)k=0; /**********FOUND**********/ returnm; } voidmain() { intm,k=0; for(m=1;m<100;m++) if(fun(m)==1) { printf("%4d",m);k++; if(k%5==0)printf("\n"); } } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 用下面的和式求圆周率的近似值。 直到最后一项的绝对值 小于等于0.0001。 π111 —=1-—+—-—+... 4357 ------------------------------------------------------*/ #include /**********FOUND**********/ #include fun() { inti=1; /**********FOUND**********/ ints=0,t=1,p=1; /**********FOUND**********/ while(fabs(t)<=1e-4) { s=s+t; p=-p; i=i+2; t=p/i; } /**********FOUND**********/ printf("pi=%d\n",s*4); } main() { fun(); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求1到10的阶乘的和。 ------------------------------------------------------*/ #include main() { inti; floats=0; floatfac(intn); /**********FOUND**********/ for(i=1;i<10;i++) /**********FOUND**********/ s=fac(i); printf("%f\n",s); } floatfac(intn) { /**********FOUND**********/ inty=1; inti; for(i=1;i<=n;i++) y=y*i; /**********FOUND**********/ return; } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求1到20的阶乘的和。 ------------------------------------------------------*/ #include fun() { intn,j; floats=0.0,t=1.0; for(n=1;n<=20;n++) { /**********FOUND**********/ s=1; for(j=1;j<=n;j++) /**********FOUND**********/ t=t*n; /**********FOUND**********/ s+t=s; } /**********FOUND**********/ printf("jiecheng=%d\n",s); } main() { fun(); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 输出Fabonacci数列的前20项,要求变量类型定义成浮点型, 输出时只输出整数部分,输出项数不得多于或少于20。 ------------------------------------------------------*/ #include fun() { inti; floatf1=1,f2=1,f3; /**********FOUND**********/ printf("%8d",f1); /**********FOUND**********/ for(i=1;i<=20;i++) { f3=f1+f2; /**********FOUND**********/ f2=f1; /**********FOUND**********/ f3=f2; printf("%8.0f",f1); } printf("\n"); } main() { fun(); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 根据整型形参m的值,计算如下公式的值。 111 t=1-——-——-...-—— 2x23x3mxm 例如: 若m=5,则应输出: 0.536389 ------------------------------------------------------*/ #include doublefun(intm) { doubley=1.0; inti; /**********FOUND**********/ for(i=2;i /**********FOUND**********/ y-=1/(i*i); /**********FOUND**********/ returnm; } main() { intn=5; printf("\ntheresultis%lf\n",fun(n)); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 计算正整数num的各位上的数字之积。 例如: 输入252,则输出应该是20。 ------------------------------------------------------*/ #include longfun(longnum) { /**********FOUND**********/ longk; do { k*=num%10; /**********FOUND**********/ num\=10; }while(num); returnk; } main() { longn; printf("\nPleaseenteranumber: "); /**********FOUND**********/ scanf("%ld",n); /**********FOUND**********/ printf("\n%ld\n",fun(longn)); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求出两个非零正整数的最大公约数,并作为函数值返回。 例如: 若给num1和num2分别输入49和21,则输出的最大公约数为7。 ------------------------------------------------------*/ #include intfun(inta,intb) { intr,t; if(a { t=a; /**********FOUND**********/ b=a; /**********FOUND**********/ a=t; } r=a%b; while(r! =0) { a=b; b=r; /**********FOUND**********/ r=a/b; } /**********FOUND**********/ returna; } main() { intnum1,num2,a; scanf("%d%d",&num1,&num2); a=fun(num1,num2); printf("themaximumcommondivisoris%d\n\n",a); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 找出大于m的最小素数,并将其作为函数值返回。 ------------------------------------------------------*/ #include #include intfun(intm) { inti,k; for(i=m+1;;i++) { /**********FOUND**********/ for(k=1;k /**********FOUND**********/ if(i%k! =0)break; /**********FOUND**********/ if(k /**********FOUND**********/ returnk; } } main() { intn; scanf("%d",&n); printf("%d\n",fun(n)); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ #include #defineN20 intfun(intm) { /**********FOUND**********/ ints=0,i; for(i=1;i /**********FOUND**********/ if(i%m=0) /**********FOUND**********/ s=*i; returns; } main() { intsum; sum=fun(5); printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum); } *------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 编写函数求2! +4! +6! +8! +10+12! +14! 。 ------------------------------------------------------*/ #include longsum(intn) { /**********FOUND**********/ inti,j longt,s=0; /**********FOUND**********/ for(i=2;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t; } /**********FOUND**********/ return(t); } main() { printf("thissum=%ld\n",sum(14)); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 有1、2、3、4个数字,能组成多少个互不相同且无重复数 字的三位数? 都是多少? ------------------------------------------------------*/ #include main() { inti,j,k; /**********FOUND**********/ printf("\n") /**********FOUND**********/ for(i=1;i<=5;i++) for(j=1;j<5;j++) for(k=1;k<5;k++) { /**********FOUND**********/ if(i! =k||i! =j||j! =k) printf("%d,%d,%d\n",i,j,k); } } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 将一个正整数分解质因数。 例如: 输入90,打印出90=2*3*3*5 ------------------------------------------------------*/ #include main() { intn,i; printf("\npleaseinputanumber: \n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) { /**********FOUND**********/ while(n==i) { /**********FOUND**********/ if(n%i==1) { printf("%d*",i); /**********FOUND**********/ n=n%i; } else break; } } printf("%d",n); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。 ------------------------------------------------------*/ #include main() { charc; intletters=0,space=0,digit=0,others=0; printf("pleaseinputsomecharacters\n"); /**********FOUND**********/ while((c=getchar())=='\n') { /**********FOUND**********/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') letters++; /**********FOUND**********/ elseif(c=! '') space++; elseif(c>='0'&&c<='9') digit++; else others++; } printf("allinall: char=%dspace=%ddigit=%dothers=%d\n",letters, space,digit,others); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 一球从100米高度自由落下,每次落地后反跳回原高度的 一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? ------------------------------------------------------*/ #include main() { /**********FOUND**********/ floatsn=100.0;hn=sn/2; intn; /**********FOUND**********/ for(n=2;n<10;n++) { sn=sn+2*hn; /**********FOUND**********/ hn=hn%2; } printf("thetotalofroadis%f\n",sn); printf("thetenthis%fmeter\n",hn); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一 半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 ------------------------------------------------------*/ #include main() { intday,x1,x2; day=9; /**********FOUND**********/ x2==1; while(day>0) { /**********FOUND**********/ x1=(x2+1)/2; x2=x1; /**********FOUND**********/ day++; } printf("thetotalis%d\n",x1); } /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 编写函数fun求1000以内所有8的倍数之和。 ------------------------------------------------------*/ #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末考试 复习资料 程序 改错 部分 试题 答案