第一篇:改错题
一、改错题
1.求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。* skgc1.prg set talk off clear s=0
&&s=0改为n=0 for x=10 to 1000
if mod(x,7)=0 and mod(x,9)=0 && and改为or
n=n+x
&& n=n+x改为n=n+1
endif endfor ? x
&& x改为n set talk on return
&& 结果为: 236
2.求[10,1000]内所有能同时被7和9整除的整数之和。set talk off clear s=0
for x=10 to 1000
if mod(x,7)=0 and mod(x,9)=0
s=x
&& s=x改为s=s+x
endif endfor ? x
&& x改为s set talk on return
&& 结果为:7560
7.求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。
* * skgc7.prg set talk off clear s=0 for n=1 to 100 s=s+1/n
&& s=(s+1)/n 改为 s=s+1/n if s>=3.5 exit
&& loop 改为 exit endif endfor ? n-1 set talk on return
&& 结果为:18
9.求100以内最大的自然数n,使得从1开始的连续n个自然数的平方和小于5000。set talk off clear s=0 for n=1 to 100 s=s+n*2
&& 改为s=s+n**2 if s>=5000 exit endif endfor ? n
&& 改为 ? n-1 set talk on return && 结果为:24
16.求出50以内最小的自然数n,使得从101开始的连续n个奇数之和大于3000。set talk off clear s=0 for n=1 to 50
a=101+2*n
&& a=101+2*n 改为 s=s+99+2*n
s=s+a
&& 去掉 s=s+a
if s>3000
exit
endif endfor ? s
&& ? s 改为 ? n set talk on retur
&& 结果为:25
17.求出100以内使得算式1*2+2*3+„+n*(n+1)的值小于5000的最大的自然数n。set talk off clear s=0 for n=1 to 100
a=n*(n+1)
s=s+a
if s<5000
&& s<5000 改为 s>=5000
exit
endif endfor ? n
&& ? n 改为 ? n-1 set talk on return && 结果为:23
20.求出100以内使得算式1+(1+2)+„+(1+2+„+n)的值小于1000的最大的自然数n。set talk off clear s=0 t=0 for n=1 to 100
s=s+n
t=t+s
if t<1000
&& t<1000 改为 t>=1000
exit
endif endfor ? n
&& ? n 改为 ? n-1 set talk on return && 结果为:17
28.某国在2000年时人口总数为1亿,若以每年3%的速度递增,试求出至少要到哪一年该国人口总数才会翻一翻。set talk off clear s=1 for n=2001 to 2100
s=s*1.03
if s=2
&& s=2 改为 s>2
loop
&& loop 改为 exit
endif endfor ? n set talk on return && 结果为:2024
30.设等比数列:1,2,4,8,„。求使得此数列的前n项之和大于100000的最小的自然数n。set talk off clear a=1 s=1
&& s=1 改为 s=0 for n=1 to 100
s=s+a
&& 在 s=s+a 前加 a=2^(n-1)
if s>100000
exit
endif
a=2+a
&& 去掉 a=2+a 该句 endfor ? n set talk on return && 结果为:17
34.求出45678的所有非平凡因子(即除1和它本身以外的约数)中是奇数的因子个数。set talk off clear a=45678 n=0 for b=3 to a step 2
if mod(b,a)=0
&& mod(b,a)改为 mod(a,b)
n=n+1
endif endfor ? b
&& ? b 改为 ?n set talk on return && 结果为:7
35.求出203267的所有真因子(即小于它本身的约数)中最大的因子数。set talk off clear a=203267 n=0 for b=1 to a
if mod(a,b)=0 && mod(b,a)=0 改为 mod(a,b)=0
&& 加 if b=a
&& 加 exit
&& 加 endif
max=a
&& max=a 改为 max=b
endif endfor ? a
&& ?a 改为 ? max set talk on return && 结果为:6557
37.求出20677和42067的最大公约数。set talk off clear a=20677 b=42067 for d=1 to a
if mod(a,d)=0 and mod(b,d)=0
max=d
&& max=b 改为 max=d
endif endfor ? max
&& ?d 改为 ? max set talk on return && 结果为:713
38.求559399的所有非平凡因子(即除1和它本身以外的约数)中最小的。set talk off clear a=559399 for n=2 to a
if mod(a,n)=0
loop
&& loop 改为 exit
endif endfor return && 结果为:73
42.求9269和8671的最小公倍数。set talk off clear a=9269 b=8671 for k=a to a*b step a
if mod(k,b)<>0
loop
endif
&& 加 exit endfor ? k set talk on return && 结果为:2668801
44.已知数列:1,2,4,7,11,16,„,其规律是相邻两项之差依次是1,2,3,4,5,„。试求出此数列中大于5000的最小的项。set talk off clear a=1 for n=0 to 1000
a=a+n
if a>5000
loop
&& loop 改为 exit
endif endfor ? n
&& ?n 改为 ?a set talk on return && 结果为:5051
49.求出100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于88888。set talk off clear s=0 for n=1 to 100
a=n*3
&& a=n*3 改为 a=n^3
s=s+a
if s>88888
exit
endif endfor ? a
&& ?a 改为 ?n set talk on return && 结果为:24
54.设一数列{f(n)}:f(1)=1,当n>1时f(n)=1/(f(n-1)+1)。试求出此数列的前20项中大于0.618的项数。set talk off clear f=1.00000000 n=0 for k=2 to 20
f=1/f+1
&& f=1/f+1 改为 f=1/(f+1)
if f>0.618
n=n+1
endif endfor ? N
&& ?n 改为 ? n+1 set talk on return
&& 答案:15
55.设有用26个字母表示的26个表达式:a=1,b=1/(a+1),c=1/(b+2),„,z=1/(y+25)。试求出这26个字母中其值小于0.1的字母个数。set talk off clear lett=1 n=0 for k=1 to 26
&& 26 改为 25
lett=1/(lett+k)
if lett<0.1
n=n+1
endif endfor ? N set talk on return
&& 答案:16
57.设一个数列的前3项都是1,从第4项开始,每一项都是其前3项之和。试求出此数列的前25项中大于54321的项数。set talk off clear store 1 to f1,f2,f3 n=0 for k=1 to 25
&& k=1 改为 k=4
f=f1+f2+f3
if f>54321
n=n+1
endif
f1=f2
f2=f3
f3=f1
&& f3=f1 改为 f3=f endfor ? n set talk on return
&& 答案:5
58.已知一个由分数组成的数列:1/2,3/5,8/13,21/34,„,其特点是:从其中第2个数起,每个分数的分子都是前一分数的分子分母之和。而其分母都是其分子与前一分数的分之和。试求出此数列的前25项中其值大于0.618的项数。set talk off clear f1=1 f2=2 n=0 for k=1 to 25
f=f1/f2
if f>0.618
n=n+1
endif
f1=f2
&& f1=f2 改为 f1=f1+f2
f2=f1
&& f2=f1 改为 f2=f1+f2 endfor ? n set talk on return
&& 答案:20
62.回文指的是正读和反读都一样的一串字符,如121、1221。试求出[1421,4112]内所有回文数的和。set talk off clear s=0 for x=1421 to 4112
a=x/1000
&& a=x/1000 改为 a=int(x/1000)
b=int((x-a*1000)/100)
c=int((x-a*1000-b*100)/10)
d=x-a*1000-b*100-c*10
if a=d and b=c
s=s*x
&& s=s*x 改为 s=s+x
endif endfor ? s set talk on return
&& 答案:74250
77.若一个自然数恰好等于某个整数的平方,则称此数为完全平方数。如144是完全平方数,因为它等于12的平方。求[1000,3000]内所有完全平方数的和。set talk off clear s=0 for x=1000 to 3000
y=sqrt(x)
&& y=sqrt(x)改为 y=int(sqrt(x))
if x=y*y
s=s+x
endif endfor ? x
&& x 改为 s set talk on return
&& 答案:43539
二、编程题
78.若一个自然数恰好是它的平方的末后几位数,则称此数为自同构数。如5和76都是自同构数,因为它们的平方分别是25和5776。求[2,99999]内所有自同构数之和。(提示:若x是m位同构数,则x的平方除以10的m次方的余数就是x)set talk off clear s=0 for x=2 to 99999
y=x*x
m=len(ltrim(str(x)))
if mod(y,10*m)=x
s=s+x
endif endfor ? y set talk on return
&& 答案:101114
79.求满足条件A*B=54321且使A+B的值最小的自然数对A、B中较大的一个数。(提示:设A<=B,当A越大时A+B越小)set talk off clear c=54321 k=int(sqrt(c))for a=1 to k b=int(c)/a if a*b=c max=a endif endfor ? max set talk on return
&& 答案:953
82.设a=123,b=541,求a/b的精确值中小数点后40位数字中数字1的个数。(提示:基于人工计算的思想)set talk off clear a=123 b=541 n=0 for k=1 to 40 a=a+0 q=int(a)/b if q=1 n=n+1 endif a=mod(a,b)endfor ? n set talk on return
&& 答案:3
86.求出将十进制整数98765432等值转换为二进制形式表示后其中数字1的个数。(提示:模拟人工计算的“2除取余”法)set talk off clear a=98765432 p=2 do while a>0 r=mod(a,p)if r=1 n=1 endif a=int(a/p)enddo ? N set talk on return
&& 答案:13
88.求出将十进制整数99887766554等值转换为十六进制形式表示后其中字母C的个数。(提示:模拟人工计算的“16除取余”法)set talk off clear a=99887766554 p=16 n=0 do while a=0 r=mod(a,p)if r=11 n=n+r endif a=int(a/p)enddo ? n set talk on return
&& 答案:2
89.已知数列{f(n)}:f(1)=1,f(2)=1,当n>2时f(n)=f(n-2)+f(n-1)。试求此数列的第15项至第25项共11项之和。set talk off clear dimension f(25)f(1)=1 f(2)=1 s=0 for n=3 to 25 f(n)=f(n-2)+f(n-1)if n<=11 s=f(n)endif endfor ? s set talk on return
&& 答案:195431
91.求出将十进制小数0.987654321等值转换为二进制形式表示后前25位小数中数字0的个数。(提示:使用“2乘取整”法)set talk off clear x=0.987654321 n=0 for k=1 to 25 x=2**x z=int(x)x=x-z if z=1 n=n+z endif endfor ? n set talk on return
&& 答案: 8
93.对自然数A、B、C,若A
&& 答案: 5
95.求方程3x-7y=1在条件|x|<100且|y|<40下的整数解的个数。set talk off clear n=0 for x=-99 to 99 y=int((3*x-1)/7)if 3*x-7*y=1 or abs(y)<40 n=n+x endif endfor ? n set talk on return
&& 答案: 26
300、已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。求[300,1000]之间能被其因子数目整除的数的总和。set talk off clea sm=0 for n=300 to 1000 s=0 for i=1 to n if mod(n,i)=0 s=s+1 endif endfor if mod(n,s)=0 sm=sm+n endif endfor ? sm set talk on return 答案:36550
296、找满足以下条件: X^2+Y^2+Z^2=41^2 且X+Y+Z之值最大的三个正整数X,Y,Z, 求X+Y+Z之值.set talk off clea max=0 for x=0 to 41 for y=0 to 41 for z=0 to 41 if x^2+y^2+z^2=41*41 if max 295、把一张一元钞票,换成一分、二分和五分硬币,每种至少1枚,问兑换后其中二分的硬币恰有20枚的方案共有多少种? set talk off clea n=0 for yi=1 to 60 for wu=1 to 20 er=20 if yi+er*2+wu*5=100 n=n+1 endif endfor endfor ? n set talk on return 答案:11 290、设某四位数的各位数字的平方和等于198,问满足这种条件的最大数和最小数之和是多少? set talk off clea min1=9999 max1=1000 for x=1000 to 9999 a=int(x/1000)b=int((x-a*1000)/100)c=int((x-b*100-a*1000)/10)d=mod(x,10)if a*a+b*b+c*c+d*d=198 if max1 280、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求两位数中最大的绝对素数与最小绝对素数之差。set talk off clea min=100 max=0 for i=10 to 99 j=mod(i,10)*10+int(i/10)f1=1 for k=2 to i-1 if mod(i,k)=0 f1=0 endif endfor f2=1 for k=2 to j-1 if mod(j,k)=0 f2=0 endif endfor if f1=1 and f2=1 if min>i min=i endif max=i endif endfor ? max-min Return 答案:86 276、“水仙花数”是指这样的数,其各位数字的立方和等于该数本身,如:153=1^3+5^3+3^3。编写程序,计算从100年开始到3000年为止,最大的水仙花数年号为多少? set talk off clea s=100 for i=100 to 3000 a=int(i/1000)b=int((i-a*1000)/100)c=int(mod(i,100)/10)d=mod(i,10)if a**3+b**3+c**3+d**3=i if s 273、设有一个12*12方阵A(I,j),其每个元素的值为该元素下标的平方和, 求出该矩阵所有主对角线(i=j)上的元素的累加和.(注:I,j从1开始)set talk off dime a(12,12)s=0 for i=1 to 12 for j=1 to 12 a(i,j)=i*i+j*j if i=j s=s+a(i,j)endif endfor endfor ? s Return 答案:1300 269、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如: 由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。求所有“四位双平方数”且十位数字是3的数的之和"。set talk off clea n=0 for i=1000 to 9999 a=int(i/1000) b=int((i-a*1000)/100) c=int(mod(i,100)/10)d=mod(i,10)x=a+b+c+d if int(sqrt(i))^2=i and int(sqrt(x))^2=x and c=3 n=n+i endif endfor ? n set talk on return 答案:8836 264、编写程序,求所有符合算式ij*ji=1300的最大数ij(即i*10+j)。其中i、j是1~9之间的一位整数。set talk off clea max=0 for i=1 to 9 for j=1 to 9 if(10*i+j)*(10*j+i)=1300 if max<10*i+j max=10*i+j endif endif endfor endfor ? max Return 答案:52 261、勾股弦数是满足公式: A^2+B^2=C^2(假定A 231、求满足条件A*B=67532的所有自然数对A、B对应的A+B的最小值。(提示:设A<=B,当A越大时A+B越小)set talk off clear c=67532 k=int(sqrt(c))for a=1 to k b=int(c/a)if a*b=c m=a+b endif endfor ?m set talk on return 答案:16887 225、将大于1000且能被3和5中至少一个数整除的所有整数按从小到大顺序排列后,求前面20个数之和。set talk off clear k=0 s=0 x=1000 do while k<20 x=x+1 if mod(x,3)=0 or mod(x,5)=0 s=s+x k=k+1 endif enddo ? s set talk on return 答案:20465 224、求出[1234,2346]内恰好有两位数字是6所有整数的和(注意AT()函数和STR()函数的功能)。set talk off clear s=0 for x=1234 to 2346 if at('6',str(x),2)!=0 and at('6',str(x),3)=0 s=s+x endif endfor ? s set talk on return 答案:47583 201、一球从100米高处落至平地,并且连续多次再反弹再落下,假设每次反弹的高度都是前一高度的3/4倍,试求出最小的自然数n,使得此球从开始下落至第n次着地时在垂直方向所经过的总路程超过589米。set talk off clear h=100 s=h for n=2 to 100 h=h*3/4 s=s+2*h if s>589 exit endif endfor ?n set talk on return 答案:7 改错题(指出下列公文的8处错误) 关于办理商标注册附送证件问题的批复 《关于办理商标注册附送证件问题的请示》收悉,国务院大致同意关于办理商标变更、转让或者续展注册时不再附送原商标注册证的意见,但考虑到这一问题涉及《商标法实施细则》的修改,特批复如下,盼遵照执行。 ......本批发第一项、第四项由你局在1995年12月15日前发布。第二项、第三项由你局在一九九八年十一月一前发布。 国务院 1995年4月23日制发 ①标题不完整 ②缺主送机关 ③“大致同意”用法不当 ④实施细则应用全称 ⑤语气不当“盼......” ⑥“一九九八......”表达错误 ⑦作者位置不当 ⑧“制发”二字多余。 中国人民银行××市分行 关于转发总行《储蓄工作座谈会纪要》的通知 ×银发[2002]×号 现将总行的《储蓄工作座谈会纪要》转发给你们,请立即组织研究,展开讨论,并根据《纪要》精神,认真贯彻执行。当前,首先要抓好第一季度的工作,以便为全年工作打下基础。中国人民银行××市分行 二〇〇二年七月二十四日 一般来说,转发性通知只能有一个目的,或为执行,或为讨论,或为参考,二者不能兼得,更不能三者兼得。上面这则通知一方面让人家“研究讨论”,一方面又让人家“贯彻执行”,这二者是不可兼得的。因为“研究讨论”意味着转发对象尚不成熟,还没有达到“执行”的程度;而“贯彻执行”却意味着转发对象已经成熟,已经没有“研究讨论”的必要了。作者在这里显然犯了自相矛盾的错误,违背了形式逻辑中的不矛盾律。这是转发性通知中的一种多发病和常见病。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) ××镇人民政府: 对你镇的数次请示,经研究作答复如下: 其一,原则同意批准你镇建立联合贸易公司,负责本镇的内、外贸易工作。你镇应尽快使联合贸易公司开始营业。 其二,你镇提出试行“关于违反计划生育规定的处罚办法”最好不执行,因为这个办法违反上级有关文件精神。 其三,对你镇提出要建一俱乐部活跃居民文化生活一事,予以批准,但规模要适当控制,量力而行。 其四,同意你镇组团参加在上海举办的服装节和在服装节上进行引资促销活动。××市人民政府 2001年×月×日 一是违反一文一批的原则。市政府在积存了某乡四件请示之后,才合在一起给了这样一个批复,这样做有多种弊端:(1)延误时间,耽误下级工作;(2)多种事项集于一篇公文之中,内容杂乱;(3)一份公文涉及多方面工作,给下级落实带来困难。因为这些工作在下级机关是由不同单位和不同负责人分管的,由哪个负责人承担批复的落实工作,不好确定。正确的做法是,下级报来一份请示,就及时回复一份批复。对方的四份请求,应有四份相应的批复。 二是标题不合要求。本批复的标题只有文种品称,没有发文机关和主要内容,不够认真严肃,也影响工作效率。 三是用语含糊不清,观点不明确。如“原则同意”、“最好不执行”、“违反上级有关文件精神”,都没有明确指出自己的观点,使下级无法执行。 四是时间要用汉字,不能用阿拉伯数字。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) ××市工业局文件 ××字(2002)×× 号签发人:张平 ××市工业局关于印发“关于节减行政经费的几项规定”的通知 我局同意××市财政局关于节减行政经费的几项规定”中提出的意见,认为切实可行,请结合本单位的情况参照执行。 附:××市财政局文件 2002.10.16 主题词:印发、规定、通知 抄送:××市人民政府、××市财政局 (1)发文字号不规范,应为××〔2002〕23号; (2)下行文不应标注签发人,应取消,发文字号居中排列; (3)标题不规范,应将“印发”改为“转发”,引号应改为书名号《》; (4)缺主送机关,应写明收文单位名称; (5)转发同级机关公文,不应用批示语气,如“我局同意”、“所提意见切实可行”等; (6)《规定》属规范性公文,应认真执行而不应写“参照”执行; (7)附件说明不规范,应具体写明附件的标题; (8)成文日期不规范,应用汉字写全年月日,即二〇〇二年十月十六日;应加盖印章; (9)主题词不规范,应表明公文的主题项:行政经费;主题词之间空一个汉字位置,不用标点符号; (10)转发公文不应再向其他机关抄送,应取消抄送机关。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) 各省、自治区、直辖市人民政府: 今年初,枝江县董镇信用社职工××同志为保卫国家财产,面对英勇歹徒,顽强搏斗,最后擒获歹徒。为此决定:授予××同志先进工作者称号。 国务院希望各条战线的群众、工人、农民、知识分子认真贯彻十三届四中、5中、6中全会精神,胸怀全局,艰苦奋斗,努力工作,为社会主义现代化建设做出更大贡献。中共中央、国务院90年4月24日 1.标题结构不完整,应改为“中共中央、国务院关于授予××同志先进工作者称号的决定”。 2.“今年初”这一时间概念表达不当,应改为“1990年初”。 3.枝江县前应冠以省名。 4.“英勇歹徒”的表达有误。 5.“群众、工人、„„”等搭配不当。 6.数字表达不一致,不应用阿拉伯数字。 7.作者排列有误,应分两行排列。 8.日期书写有误,应用汉字。 公文改错题(找出下列公文中的错误并说明理由,本题10分。) 关于申请拨给灾区贷款专项指标的报告 省行: ×月×日,×× 地区遭受了一场历史上罕见的洪水袭击,×江两岸乡、村同时发生洪水,灾情严重。经初步不完全统计,农田受灾总面积达38000多亩,各种农作物损失达 100多万元,农民个人损失也很大。灾后,我们立即深入灾区了解灾情,并发动干部群众积极开展生产自救。同时,为帮助受灾农民及时恢复生产,我们采取了下列措施: 一、对恢复生产所需的资金,以自筹为主。确有困难的,先从现有农贷指标中贷款支持。 二、对受灾严重的困难户,优先适当贷款,先帮助他们解决生活问题。到×月×日止,此项贷款已达××万元。 由于这次灾情过于严重,集体和个人的损失都很大,短期内恢复生产有一定的困难,仅靠正常农贷指标难以解决问题。为此,请省行下达专项救灾贷款指标××万元,以便支持灾区迅速恢复生产。 以上报告当否,请批示。 ××银行××市支行 一九九八年×月×日 一、文种选择有误 从标题看,这篇公文是向省行提出灾区贷款专项指标的申请,目的是获得省行的批准。从正文的主体部分看,两条措施确属报告性质,但随后出现的专项贷款请求,就不是报告应有的内容了。从结语看,“以上报告妥否,请批示”,有着很强的期复性。因此,综合起来看,这篇公文应改为《关于拨给灾区贷款专项指标的请示》。 二、内容含糊 这是由于原文混淆了报告和请示的界限而造成的。写请示,只需写明请示缘由、请示事项,最后提出请示要求即可,与此无关的内容不应写入。而原文提出的两条措施:“对恢复生产所需的资金,以自筹为主”、“对受灾严重的困难户,优先适当贷款”,既不是请示缘由,也不是请示事项,不应该写入文中。 三、语言不准确 文中有多处语言不确切。如“×江两岸乡、村同时发生洪水”,×江两岸所有村庄都遭受洪灾似不可能,“同时发生”更不可能。“灾情较重”跟后面“这次灾情过于严重”的说法相龃龉;“据初步不完全统计”,“初步”和“不完全”语意重复。 第十次上机题(改错补充题) 一、改错题 1.利用数组计算分数序列:2/1,3/2,5/3,8/5,13/8,21/13...前20项之和。 #include void input(int n =10 ,int w[] ,);float sum(int w[] , int n); void main(){ int data[22],n;cout<<“请输入数列的项数: ”;cin>>n;input(data[22],n);cout<<“2/1+3/2+5/3+…=”< void input(int n ,int w[]){ w[0]=w[1]=1;for(int i=2;i w[i]=w[i+11]+w[i+22];} } float sum(int w[],int n){ float num;for(int i=2;i num+=1.0*(w[i-1]+w[i-2])/w[i-1];} return num;} 【要求】 1.把上述程序录入到文件学号_1.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_1.cpp放在考试盘中的根目录下,供阅卷用。 二、改错题 题目:设计一个程序,键盘输入一个4×4矩阵,并按每行4个数据在屏幕上显示输入的原始数据。求:两对角线之和及将该矩阵转置后输出。含有错误的源程序如下: #include int sum(int a[4][4]);void f(int a[4][4]); void main(){ int data[4][4]={0};for(int i=0;i<4;i++) for(int j=0;j<4;j++) cin>>data[i][j];for(i=0;i<4;i++){ for(int j=0;j<4;j++) cout< cout< for(int j=0;j<4;j++) cout< cout< int sum(int a[][4]){ int n=0;for(int i=0;i<4;i++) n+=a[i][i]+a[i][3-i];} void f(int a[4][]){ int temp;for(int i=0;i<4;i++) for(int j=0;j<4;j++){ temp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp; } } 【要求】 1.把上述程序录入到文件学号_2.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_2.cpp放在考试盘中的根目录下,供阅卷用。 三、改错题 【要求】 1.把上述程序录入到文件学号_3.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_3.cpp放在考试盘中的根目录下,供阅卷用。 四、改错题 以下程序验证一个猜想:任意一个十进制整数与其反序数相加后,得到一个新的正整数,将该新正整数重复上述处理后,最终可得到一个回文数。所谓反序数是指原数的数字次序颠倒而得到的数值,如4361的反序数为1634 所谓回文数是指正向和反向读的数字次序是一样的,例如12321和234555432。程序同时统计反复处理的次数c,例如对整数639,程序的运行状况如下: Please input a number:639 <回车> 639 , 99099 , 5 含有错误的源程序如下: 【要求】 1.把上述程序录入到文件学号_4.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_4.cpp放在考试盘中的根目录下,供阅卷用。 五、改错题 【要求】 1.把上述程序录入到文件学号_5.cpp中,然后根据题目的要求及程序中的语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可不输入。 2.改错时,可以修改语句中的一部分内容,调用整句的次序,增加少量的变量说明或编译处理命令,但不能增加其它语句,也不能删去整条语句。3.将改正后的源程序学号_5.cpp放在考试盘中的根目录下,供阅卷用。 一、病句的几种类型: 1.成分残缺:即句子中缺少了某些必要成分,句子意思表达不清楚。 例:他受坏思想的影响,走上了犯罪。 2.搭配不当:即句子中的某两个成分或某两个词语错误搭配。 例:教室里人声混乱,老师讲的什么,谁也没有听清。 3.词序颠倒:即句子里的词没有按照规律和表达意思的需要来排列。 例:历史博物馆里展出了两千多年前新出土的文物。4.意思重复: 即句子里出现多余成分,显得语句罗嗦、累赘。 例:我觉得这是想得不对的错误想法。 5.概念不清:即句中的意思含糊不清,令人不解、混淆。例:造纸是中国的四大发明。 6.前后矛盾:即句子前后意思不一致。例:我肯定李琳大概是生病了。7.分类不当:即句子中把不是一类的归为了一类。例:篮子里有青菜、萝卜、葡萄、西红柿等 蔬菜。 二、改病句的三个步骤 ①读句子、理句意②查排审、找病因③改句子、保原意(改得少、改得巧) 三、改病 句练习。 (1)每个小学生都应该上课专心听讲的好习惯。 (2)“六一”联欢会上,我们班表演了文娱节目和大合唱。(3)我们要不断改进学习方法,增强学习效率。(4)周爷爷爱戴我们小朋友,我们热爱周爷爷。(5)这本书对我很感兴趣。 (6)黄继光不但壮烈牺牲了,而且他永远活在我们的心中。(7)大家都讲卫生,我们的健康和疾病就有保障。(8)《繁星》的作者是巴金写的。 (9)我们要积极响应“人人动手,绿化祖国”。(10)美丽的大草原一碧千里,到处都是绿色。(11)我们开会通过并讨论了他的建议。 (12)《小学生语文报》和《少年文艺》这两种报纸我都很爱看。(13)联欢会开始了,整个会场充满了热闹的气氛。(14)战士们冒着大雨和泥泞的小路快步前进。(15)下午,全校师生和少先队员去参观画展。 (16)《科学画报》和《少年文艺》这两种报纸我都爱看。(17)我估计他今天一定不会来参加会议了。 (18)在美术老师的悉心指导下,使我的素描画进步很快。(19)我们必须认真克服并善于发现学习上的毛病。(20)上课时,始终专心听讲,因此,成绩很好。 (21)菜园里种着西红柿、西瓜、黄瓜、毛豆、红豆、扁豆等蔬菜。(22)经过教育,我明确了学习目的和学习态度。(23)墙上的挂钟走了一圈,一个小时又过去了。(24)我们要热爱公共财产。(25)草原把夕阳照得五彩缤纷。 (26)《小学生数学报》和《少年报》这两种报纸我都很爱看。(27)王老师被光荣地评为“模范班主任”的光荣称号。(28)我们大摇大摆地走在山间小道上。 (29)我们要不断改善缺点,发挥优点,取答得更大的成绩。(30)经过努力,王小明的错别字大大进步了。 (31)黄河、长江、万里长城、古运河都是我国古代的伟大工程。(32)这篇作文层次和语句都很通顺。改病句练习 1.造纸是我国古代的四大发明。 2.《林海》这篇课文的作者是老舍先生写的。3.他穿了灰色上衣,一顶蓝帽子。 4.一进幼儿园,我就看见了一张张可爱的小脸和一阵阵动听的歌声。5.大扫除开始了,男女老少都参加,男的干重活,老的少的干轻活。6.这篇文章的内容比较优美。7.夏天的庐山是美丽的风景。8.小王用的毛笔写字非常漂亮。9.她焦急地等待着汽车开来的方向。10.列车沿着铁路在戈壁 滩上奔腾。 11.联欢会上,同学们唱了许多动听的歌和舞蹈。12.劳动开始了,男的女的都 一、病句的几种类型: 1.成分残缺:即句子中缺少了某些必要成分,句子意思表达不清楚。 例:他受坏思想的影响,走上了犯罪。 2.搭配不当:即句子中的某两个成分或某两个词语错误搭配。 例:教室里人声混乱,老师讲的什么,谁也没有听清。 3.词序颠倒:即句子里的词没有按照规律和表达意思的需要来排列。 例:历史博物馆里展出了两千多年前新出土的文物。4.意思重复: 即句子里出现多余成分,显得语句罗嗦、累赘。 例:我觉得这是想得不对的错误想法。 5.概念不清:即句中的意思含糊不清,令人不解、混淆。例:造纸是中国的四大发明。 6.前后矛盾:即句子前后意思不一致。例:我肯定李琳大概是生病了。7.分类不当:即句子中把不是一类的归为了一类。例:篮子里有青菜、萝卜、葡萄、西红柿等 蔬菜。 二、改病句的三个步骤 ①读句子、理句意②查排审、找病因③改句子、保原意(改得少、改得巧) 三、改病 句练习。 (1)每个小学生都应该上课专心听讲的好习惯。(2)“六一”联欢会上,我们班表演了文娱节目和大合唱。(3)我们要不断改进学习方法,增强学习效率。(4)周爷爷爱戴我们小朋友,我们热爱周爷爷。(5)这本书对我很感兴趣。 (6)黄继光不但壮烈牺牲了,而且他永远活在我们的心中。(7)大家都讲卫生,我们的健康和疾病就有保障。(8)《繁星》的作者是巴金写的。 (9)我们要积极响应“人人动手,绿化祖国”。(10)美丽的大草原一碧千里,到处都是绿色。(11)我们开会通过并讨论了他的建议。 (12)《小学生语文报》和《少年文艺》这两种报纸我都很爱看。(13)联欢会开始了,整个会场充满了热闹的气氛。(14)战士们冒着大雨和泥泞的小路快步前进。(15)下午,全校师生和少先队员去参观画展。 (16)《科学画报》和《少年文艺》这两种报纸我都爱看。(17)我估计他今天一定不会来参加会议了。 (18)在美术老师的悉心指导下,使我的素描画进步很快。(19)我们必须认真克服并善于发现学习上的毛病。(20)上课时,始终专心听讲,因此,成绩很好。 (21)菜园里种着西红柿、西瓜、黄瓜、毛豆、红豆、扁豆等蔬菜。(22)经过教育,我明确了学习目的和学习态度。(23)墙上的挂钟走了一圈,一个小时又过去了。(24)我们要热爱公共财产。(25)草原把夕阳照得五彩缤纷。 (26)《小学生数学报》和《少年报》这两种报纸我都很爱看。(27)王老师被光荣地评为“模范班主任”的光荣称号。(28)我们大摇大摆地走在山间小道上。 (29)我们要不断改善缺点,发挥优点,取答得更大的成绩。(30)经过努力,王小明的错别字大大进步了。 (31)黄河、长江、万里长城、古运河都是我国古代的伟大工程。(32)这篇作文层次和语句都很通顺。改病句练习 1.造纸是我国古代的四大发明。 2.《林海》这篇课文的作者是老舍先生写的。3.他穿了灰色上衣,一顶蓝帽子。 4.一进幼儿园,我就看见了一张张可爱的小脸和一阵阵动听的歌声。5.大扫除开始了,男女老少都参加,男的干重活,老的少的干轻活。6.这篇文章的内容比较优美。7.夏天的庐山是美丽的风景。8.小王用的毛笔写字非常漂亮。9.她焦急地等待着汽车开来的方向。10.列车沿着铁路在戈壁 滩上奔腾。 11.联欢会上,同学们唱了许多动听的歌和舞蹈。12.劳动开始了,男的女的都 三、将下面的词语补充完整。(4分)呕心沥()()断丝连()灵手巧 安然无()大显身()()天立地()往今来 不动声() 四、我会按要求完成下面各题。(8分) 1.大树爷爷看到了孩子们幸福的笑脸和欢乐的歌声。(修改病句) 2.目前已知最大的鲸约有十六万公斤重,最小的也有两千公斤。(写个句子,用上列数字的说明方法。) 3.21世纪图书馆的大门不会关闭。(改为反问句) 4.未来的社会不可能不是“多元”的社会。(改为肯定句) 五、用恰当的关联词语把下面的两句话合并成一句话。(6分) 1、(1)空气中没有灰尘。(2)大自然将多么单调。 2、(1)赵州桥雄伟坚固。(2)赵州桥美观。 六、根据提示的内容填空。(4分) 1.有些同学取得一点成绩就高兴的忘乎所以,我要送他的名言警句是: 2.我最喜欢的一句有关读书名言警句是: 七、写出下列句子运用的修辞手法。(8分)1.小明家的房子小得只有书桌那么大。() 2.小草偷偷地从土里钻了出来,嫩嫩的,绿绿的。()3.难道不耕耘也会有收获?() 4.它好肥,整个身子好像一个蓬松的球儿。() 八、选词填空。(6分)愿望 期望 盼望 1.我()到上海出差已三个月的爸爸早日回来。2.老师()后进生早日进步。 3.你想做个科学家,但想过怎样去实现这个()吗? 请求 乞求 要求 1.小姑娘抱着爸爸的腿,用会说话的眼睛()着。2.老师对学生的学习提出了新的()。3.指导员答应了董存瑞的()。 九、给下面的句子加上标点符号。(2+3=5分)1.欢迎你 同学们一口同声地说 2.我叫张丽娜 小女孩大大方方地说 希望大家多多帮助我 程序改错 ==== 题号:20301 /*----------------【程序改错】 -------------------------- 给定程序的功能是:从键盘上接收一字符串到a字符数组中,在cpy函数中将a数组中字符AscII值为偶数的复制到b数组,并在主函数中输出b数组。例如输入“aabcde”则输出“bd”。 请改正**********ERROR**********下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ----------------*/ #include while(*p1) {if(*p1%2==0)/**********ERROR**********/ p2++=*p1;p2前缺少*号 p1++; } /**********ERROR**********/ *p2=“ ”;*p2=’ ’ } void main(){char a[30],b[30];gets(a);/**********ERROR**********/ cpy(a,b)缺少分号 printf(“%sn”,b);} 程序改错 ==== 题号:20343 /*---------------------------【程序改错】 --------------------------- 给定程序的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,输入字符串:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lower=9。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ---------*/ #include char s[100]; char *q; int upper=0;/**********ERROR**********/ int lower=100;int lower=0; printf(“nPlease a string: ”); gets(s); q=s;/**********ERROR**********/ while(*q==' ')while(*q!=' ') { if(*q>='A' && *q<='Z') upper++; if(*q>='a' && *q<='z') lower++;/**********ERROR**********/ q--;q--; } printf(“n upper=%d lower=%dn”, upper,lower);} 程序改错 ==== 题号:20453 /*---------------------------【程序改错】 --------------------------- 给定的程序功能为:从键盘输入十个无序数据存入数组中,并找出其中数值最大的元素的下标。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ---------*/ #include /**********ERROR**********/ for(i=0;i<=10;i++)for(i=0;i<10;i++) /**********ERROR**********/ scanf(%d,&a[i]);scanf(“%d”,&a[i]); for(i=0,j=0;i<10;i++) /**********ERROR**********/ if(a[i]>a[j])j==i;j=i;printf(“n%d”,j);} 程序改错 ==== 题号:20331 /*--------------------------- 【程序改错】 --------------------------- 给定程序的功能是:将字符串s1中的ASCII码为奇数且下标也为奇数的字符复制到字符数组s2中。 如:输入bcdefg输出结果为ceg。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。------------------*/ #include char s1[80],s2[40]; int i=0,j=0,k=0; printf(“please input string1:n”); /**********ERROR**********/ getchar(s1);gets(s1); printf(“n”); /**********ERROR**********/ while(s1[i]==' ')while(s1[i]!=' ') { if(s1[i]%2==1 && k%2==1) { s2[j]=s1[i]; i++; j++; k++; } else { i++; k++; } /**********ERROR**********/ s2[j]=' 's2[j]=' '; } printf(“%sn”,s2);} 程序改错 ==== 题号:20325 /*--------------【程序改错】 ----------------------------- 程序中函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/2!+1/3!+1/4!+...+1/m!例如:若m=6,则应输出:1.718056。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ------------*/ #include “stdio.h” double fun(int m){ double y=0, t=1;int i;/**********ERROR**********/ for(i=2;i<=m;i++)for(i=1;i<=m;i++) { t=t*1.0/i;/**********ERROR**********/ y=t;y+=t;} return(y);} void main(){ int n;printf(“Enter n: ”);/**********ERROR**********/ printf(“%d”, &n);printf(“nThe result is %lfn”, fun(n));} 程序改错 ==== 题号:20325 /*--------------【程序改错】 ----------------------------- 程序中函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/2!+1/3!+1/4!+...+1/m!例如:若m=6,则应输出:1.718056。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ------------*/ #include “stdio.h” double fun(int m){ double y=0, t=1;int i;/**********ERROR**********/ for(i=2;i<=m;i++)for(i=1;i<=m;i++){ t=t*1.0/i;/**********ERROR**********/ y=t;y+=t;} return(y);} void main(){ int n;printf(“Enter n: ”);/**********ERROR**********/ printf(“%d”, &n);scanf(“%d”, &n);printf(“nThe result is %lfn”, fun(n));} 程序改错 ==== 题号:20331 /*--------------------------- 【程序改错】 --------------------------- 给定程序的功能是:将字符串s1中的ASCII码为奇数且下标也为奇数的字符复制到字符数组s2中。 如:输入bcdefg输出结果为ceg。 请改正****ERROR****下一行语句中的错误,并调试出正确结果。不得增加或删减程序行,且不得修改其它行。 ------------------*/ #include char s1[80],s2[40]; int i=0,j=0,k=0; printf(“please input string1:n”); /**********ERROR**********/ getchar(s1);gets(s1); printf(“n”); /**********ERROR**********/ while(s1[i]==' ')while(s1[i]!=' ') { if(s1[i]%2==1 && k%2==1) { s2[j]=s1[i]; i++; j++; k++; } else { i++; k++; } /**********ERROR**********/ s2[j]=' 's2[j]=' '; } printf(“%sn”,s2);}第二篇:改错题
第三篇:改错题
第四篇:改错题
第五篇:改错题