2023年C改错题例题.docx
《2023年C改错题例题.docx》由会员分享,可在线阅读,更多相关《2023年C改错题例题.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年C改错题例题 类型A:素数 A 1、下面的程序是求400以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 #include #include #include int prime(int n) int yes, i; if(n yes=1; /*原来的代码: for(i=2; i if(n%i=0) yes=0; break; return yes; main() int sum=0, i; clrscr(); for(i=2;i if(prime(i) sum+=i; printf(%dn, sum); yes=0 */ /*原来的代码: yes=1
2、 */ A 2、下面的程序是求1000以内的最大的20个素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。18580 #include #include #include int fun(int high) int sum=0, n=0, j, yes; while(high=2) &(n /*原来的代码: while(high=2) |(n yes=1 ; for(j=2; j if(high%j=0) yes=0; break; /*原来的代码: yes=0; break; 忘了大括号 */ if(yes) sum+=high;n+; high-; return sum;
3、 main() clrscr(); printf(%d n,fun(1000); 类型B:完数,多因子完备数 B 1、若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2 ,下面程序求150,1000间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 #include #include #include main() int a,b,c,n,count=0; /*原来的代码: b=0 写在此行,应该把它移到循环内. */ for (a=150; a b=0; /*原
4、来的代码: 移后的新位置 */ for (c=1;c if (a%c =0) b=b+c; if (b%a=0) count=count+1; printf(n count = %d,count); B 2、若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2 ,下面程序求1,700间最大的多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 #include #include #include main() int a,b,c,n,big,count=0; for (a=1;
5、 a b=0; for (c=1;c /*原来的代码: c=2 */ if (a%c =0) b=b+c; if (b%a=0) big=a; /*原来的代码: big=b */ printf(%dn ,big); B 3、以下程序求10000以内的所有完全数的个数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。”完全数”是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。 #include #include #include main() int count,n,m,s,k; count=0; for (n=3;n
6、 s=0; /*原来的代码: s=1 */ k=n/2+1; for (m=1;m printf(nThe count=%d,count); if (n%m=0) s+=m; /*原来的代码: s+=1 */ if (s=n) count+=1; 类型C:数字问题 C 1、下面程序是求10,650之间同时满足除4余3或除5余4条件的数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。84544 #include #include #include main() long sum; /*原来的代码: int sum; */ int i; sum=0; for (i=1
7、0;i if (fmod(i,4)=3 | fmod(i,5)=4) sum+=i; clrscr(); printf(%ldn,sum); C 2、下面程序是求2,60之间的所有偶数的立方和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。1729800 #include #include #include main() long sum; long i; /*原来的代码: int i */ sum=0; for (i=2;i if (fmod(i,2)=0) sum+=i*i*i; /*原来的代码: sum+=i*3 */ clrscr(); C 3、下例程序中,函
8、数fun的功能是:计算并输出k以内的最大的10个能被13和17整除的自然数之和。请改正程序中的错误,并运行正确的程序。当从键盘输入2500时,给出程序运行的正确结果 14365 #include #include int fun(int k) int m=0, mc=0, j; while(k=2) & mc m=m+k; mc+; k-; return m; /*原来的代码:return ; */ printf(%ldn,sum); main() int k; clrscr(); printf(n 请输入整数:); scanf(%d, &k); printf(n 结果是: %dn,fun(k
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 改错 例题
限制150内