第一篇:改错题答案
改错题答案
第1题读入一个整数k(2<=k<=1000),打印它的所有质因子(即所有为素数的因子)。
第1处:IsPrime(int n);应改为IsPrime(int n)第2处:if!(n%i)应改为if(!(n%i))
第2题 fun函数的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大于或相等的字符依次存放到c数组中,形成一个新的字符串。
第1处:int k=1;应改为int k=0;第2处:while(*p!=*q)应改为while(*p||*q)
第3题 fun函数的功能:是依次取出字符串中所以数字字符,形成新的字符串并取代原符串
第1处:s[j]=s[i];应改为s[j++]=s[i];第2处:s[j]=“ ”;应改为s[j]=' ';
第4题 fun函数的功能;分别统计字符串中大写字母和小写字母的个数 第1处:void fun(char*s,int a,int b)应改为
void fun(char*s,int*a,int*b)第2处:a++;应改为(*a)++;第3处:b++;应改为(*b)++;第5题 假定整数数列中的数不重复,并存放在数组中。第1处:a[i+1]=a[i];应改为a[i]=a[i+1];第6题计算如下公式的值 t=1-1/2*2-1/3*3-…1/m*m 第1处:for(i=2;i void fun(char*s,char*t1,char*t2,char*w)第2处:while(r)应改为while(*r)第11题 将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数 第1处:n=*p-'o';应改为n=*p-'0';第2处:n=n*7+*p-'o';应改为n=n*8+*p-'0';第12题 求出在字符串中最后一次出现的字符串的地址,通过函数值返回,并在主函数中输出从此地址开始的字符串;若未找到,则函数值未NULL.第1处:a=NuLL;应改为a=NULL;第2处:if(r==p)应改为if(*r==*p)第13题 根据形参m计算如下公式的值。t=1+1/2+1/3+….1/m 第1处:t+=1.0/k;应改为t+=1.0/i;第2处:应填return t;第14题 函数fun和funx的功能:用二分法求方程2x*x*x-4x*x+3x-6=0的一个根,并要求绝对误差不超过0.001.第1处:int r;应改为double r;第2处 : while(fabs(n-m)<0.001) 应 改 为while(fabs(n-m)>0.001)第15题 判断字符ch是否与str所指串中的某个字符相同;若相同则什么也不做,若不同,则将其插在串的最后。第1处:void fun(char str,char ch)应改为 void fun(char*str,char ch)第2处:if(*str==ch)应改为if(*str==' ')第3处:str[1]='0';应改为str[1]=' ';或str[1]=0;第16题 函数Creatlink的功能是:创建带头节点的单项链表,并为各结点数据域赋0到m-1的值。第1处:p->next=NULL;应改为p=s;第2处:s->data=rand()%m;应改为s->data=rand()%(m-1);第3处:return p;应改为return h;第17题 计算并输出K以内最大的十个能被13或17整除的自然数之和 第1处 : if((k%13=0)||(k%17=0)) 应 改 为if((k%13==0)||(k%17==0))第2处:应填} 第18题 实现两个整数的交换 第1处:void fun(int a,int b)应改为void fun(int*a,int*b)第2处:t=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;第19题 从低位开始取出长整形s中偶数位上的数,依次构成一个新数放在t中。 第1处:void fun(long s,long t)应改为void fun(long s,long*t)第2处:while(s<0)应改为while(s>0)第20题 N个有序整数数列已放在一维数组中….利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1.第1处:void fun(int a[],int m)应改为int fun(int a[],int m)第2处:if(m>=a[mid])应改为if(m>a[mid])第21题 建立一个带头节点的单项链表,并用随机函数为各结点数据域赋值。 第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;第22题 根据整型参数m,计算如下公式的值 t=1+1/2*2+1/3*3+…1/m*m 第1处:for(i=2;i fun(n)=10(n=1)和fun(n-1)+2第1处:int fun(n)应改为int fun(int n)第2处:if(n=1)应改为if(n==1)第24题 从s所指字符串中,找出t所指字符串的个数作为函数值返回。 第1处:if(r==p)应改为if(*r==*p)第2处:if(r==' ')应改为if(*r==' ')第25题 计算n!第1处:if n==0应改为if(n==0)第2处:result=n--;应改为result*=n--;第26题 先从键盘输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和 第1处:应填sum=0;第2处:scanf(“%d,”,a[i][j]);应改为scanf(“%d,”,&a[i][j]);第27题 根据以下公式求3.14值,并作为函数值返回 第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)第28题 在字符串的最前端加入n个*,形成新串,并且覆盖原串 第1处:s=p;应改为p=s;第2处:应填p++;或++p;或p+=1;或p=p+1 第3处:a[i]='0';应改为a[i]=' ';或a[i]=0;第29题 求出两个非零正整数的最大公约数,并作为函数值返回 第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);第30题 计算正整数num的各位上的数字之积 第1处:long k;应改为long k=1;第2处:num=10;应改为num/=10;第31题 将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。第1处: if((tt[i]>='a')||(tt[i]<='z')) 应 改 为if((tt[i]>='a')&&(tt[i]<='z'))第2处:tt[i]+=32;应改为tt[i]-=32;第32题 按顺序给s所指数组中的元素赋予2开始的偶数,然后….第1处:if(i+1%5==0)应改为if((i+1)%5==0)第33题 将s所指字符串中的字母转换为按字母序列的后续字母,其他的字符不变 第1处:while(*s!='@')应改为while(*s)或while(*s!=' ')或while(*s!=0)第2处:(*s)++;应改为s++;第34题 将长整形数中每一位上为奇数的数依次取出,构成一个新数放在t中 第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0) 第35题 将p所指字符串中每一个单词的最后一个字母改成大写 第1处:if(p=='')应改为if(*p=='')第2处:*p=toupper(*(p-1));应改为*(p-1)=toupper(*(p-1));第36题 求三个数的最小公倍数,第1处:j=1;应改为j=0;第2处: while(t!=0&&m!=0&&n!=0) 应 改 为while(t!=0||m!=0||n!=0)第37题 计算s所指字符串中含有t所指字符串的数目并作为函数值返回 第1处:*r=t;应改为r=t;或r=&t[0];第2处:应填r=t;或r=&t[0];第38题 通过某种方式实现两个变量的交换,规定不允许增加语句和表达式 第1处:t=x;x=y;应改为t=*x;*x=y;第2处:return(y);应改为return(t);或return t;第39题 s所指字符串的正序和反序进行链接,形成一个新串放在t所指的数组中 第1处:void fun(char s,char t)应改为void fun(char*s,char*t)第2处:t[2*d-1]=' ';应改为t[2*d]=' ';或t[d+i]=' ';或t[2*d]=0;或t[d+i]=0;第40题 将n个无序整数从小到大排序 第1处:for(i=j+1;i 第1处:if(i%2&&s[i]%2==0)应改为if(i%2||s[i]%2==0)或if(i%2!=0||s[i]%2==0)第2处:t[i]=' ';应改为t[j]=' ';或t[j]=0;第43题 找到100至n(不大于100)之间三个位上的数字都相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。第1处:k=n;应改为k=i;第2处:b=k/10;应改为b=k%10;第44题 根据形参m的值(2<=m<=9)在m行m列的二维数组中存放如下所示的数据 第1处:fun(int**a,int m)应改为void fun(int(*a)[M],int m)第2处:a[j][k]=k*j;应改为a[j][k]=(k+1)*(j+1);第45题 将s所指字符串中最后一次出现的t1所指字符串替换成t2所指子串,第1处:void fun(char*s,t1,t2,w)应改为 void fun(char*s,char*t1,char*t2,char*w)第2处:while(w)应改为while(*w)第46题 已知一个数列从第0项开始的前三项分别为0、0、1以后,以后的各项都是其相邻的前三项之和。第1处:fun(int n)应改为double fun(int n)第2处:return sum应改为return sum;第47题求出数组中最大数和次最大数并把最大数和a[0]中的数对调、此最大数和a[1]中的数对调。 第1处:void fun(int*a,int n);应改为void fun(int*a,int n)第2处:m=0;应改为m=i;第48题 从N个字符串中找到最长的那个串,并将其地址作为函数值返回 第1处:fun(char(*sq)[N])应改为char*fun(char(*sq)[M])第2处:return sq;应改为return sp;第49题 对N名学生的学习成绩,按从高到低的顺序找出前m(m<=10)名学生来,第1处 : *t=malloc(sizeof(STU)); 应 改 为t=(STU*)malloc(sizeof(STU)*m);第2处:t[k].num=b[j].num;应改为strcpy(t[k].num,b[j].num);第50题 先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面 第1处:t[i]=s[s1-i];应改为t[i]=s[s1-i-1];或t[i]=s[s1-1aa – a(此外aa….aa表示n个a,a和n的值在1至9之间)。例如,a=3,n=6,则以上表达式为: s=333333-33333-3333-333-33-3 其值是296298.a和n是fun函数的形参,表达式的值作为函数值main函数。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第92题答案 第1处:long s=0,t=1;应改为long s=0,t=0;第2处:for(j=0;j<=n;j++)应改为for(j=0;j 例如,程序运行后,输入0.0001,则程序输出3.1414 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第93题答案 第1处:while(t>=num)应改为while(fabs(t)>=num)第2处:t=s%n;应改为t=s/n;94在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中的值为正数的平均值(不包括0)例如;数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行的结果为19.250000.请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第94题答案 第1处:int sum=0.0;应改为double sum=0.0;第2处:sum=c;应改为sum/=c;95下列给定程序中,函数fun的功能是:计算平输出下列数的前N项之和SN,直到Sn+1大于q为止,q的值通过形参传入。SN=2/1+3/2+4/3……..+N+1/N 例如,若q的值为50.0,则函数值为49.394948 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第95题答案 第1处:s=s+(n+1)/n;应改为s=s+(double)(n+1)/n;第2处:return s;应改为return t;96下列给定程序中,函数fun的功能是:求S的值。设 S=(^2/1*3)*(4^2/3*5)*(6^2/5*7)*…..*(2K^2)/((2K-1)*(2K+1))例如,当K为10时,函数值应为1.533852 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第96题答案 第1处:fun(int k)应改为double fun(int k)第2处:return s应改为return s;97下列给定程序中,函数fun的功能是:计算 S=f(-n)+f(-n+1)+…..+f(0)+f(1)+f(2)+…..+f(n)的值。例如,当n为5时,函数值应为10.407143.f(x)函数定义如下: 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第97题答案 第1处:f(double x)应改为double f(double x)第2处:return s应改为return s;98下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等。例如,当x的值为 9、y的值为 11、z的值为15时,函数值为-3.50.请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第98题答案 第1处:#define FU(m,n)(m/n)应改为#define FU(m,n)(m)/(n)第2处:Return(value);应改为return(value);99数列中。第一项值为3,后一项都比前一项的值增5;下列给定程序中,函数fun的功能是:计算前n(4 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第99题答案 第1处:int i,j,k,sum;应改为int i,j=0,k,sum;第2处:if(sum%4=2)应改为if(sum%4==2)(100)下列给定程序中,函数fun的功能是:统一一个无符号整数中各位数字值为零的个数,通过形参传回主函数:并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字最大的 是8.请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或减行,也不得更改程序的结构 第100题答案 第1处:if(t=0)应改为if(t==0)第2处:zero=count;应改为*zero=count; 改错题(指出下列公文的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);}第二篇:改错题
第三篇:改错题
第四篇:改错题
第五篇:改错题