第一篇:改错题
改错题(指出下列公文的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.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: MyStruct: 0 MyDate 注意:错误的语句在/********found*******/的下面,修改该语句即可。
#include
m_i = i;} void print(){
cout<<“MyStruct: ”< cout<<“MyData”< 2.该程序运行时有问题,请改正main错误,使得程序正确执行,并且输出以下语句: 7 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 注意:错误的语句在/******found******/的下面,修改该语句即可。 #include cout< /********found********/ cout< if(i%6==5)cout< 3.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: sizeof(str)=4 sizeof(str2)=20 sizeof(str3)=1 要求:不能删除assert()语句; 只能修改后面的数字。 提示:assert()函数如果为假,则产生一个中断异常。 注意:错误的语句在/******found******/的下面,修改该语句即可。 #include 4.该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: 4, 5 20 注意:错误的语句在/******found******/的下面,修改该语句即可。 #include class B:public A { int s;public: void set(){s=m*n;} void shows(){cout< b.show();b.set();/**********found**********/ b.show();} 5.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句: 平均值是:21 最小值是:-22 最大值是:36 注意:错误的语句在/******found******/的下面,修改该语句即可。 #include /********found********/ avg=vn[i];avg/=5;cout << “平均值是: ” < /********found********/ if(vn[i]>min)min=vn[i]; /********found********/ if(vn[i] 6.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: a=5,b=0 a=5,b=6 注意:错误的语句在/******found******/的下面,修改该语句即可。 #include /********found********/ cout<<“a=”< 7.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: MyObj ~MyObj 注意:错误的语句在/******found******/的下面,修改该语句即可。 #include 8.该程序运行有问题,请改正程序中的错误,使程序的输出结果为: Which act(a or b)?b act1 act2 Bact3 Bact4 Bend 注意:错误的语句在/********found*******/的下面,修改该语句即可。#include virtual void act4{cout<<“Aact4n”;act5();} void act5(){cout<<“Aendn”;} }; class B :public A { void act3(){cout<<“Bact3n”;act4();} void act4(){cout<<“Bact4n”;act5();} void act5(){cout<<“Bendn”;} }; void main(void){ char c;A *a; cout<<“Which act(a or b)?”;/***************** found *****************/ cin< a = new A;else a = new B;a->act1();delete a;} 9.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: i=5 i=a i=15 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include void fun(T t){ /********found********/ T i=0; if(t > i) { i+=t; } cout<<“i=”< t.fun(5);/********found********/ t.fun(97);float i = 10.0;/********found********/ t.fun(i);} 10.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: 提示:定义i为一个整型数据位长的变量 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include 11.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: Constructor1 Constructor1 Constructor1 Destructor Constructor2 Destructor I=0 I=5 Destructor Destructor 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include cout<<“Constructor1”< i=0;} CSample(int val){ cout<<“Constructor2”< i = val;} ~CSample(){ cout<<“Destructor”< /********found********/ ~CSample(int i){ cout< obj[i].print();} delete []obj;return;} 12.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: Number=1,2,3 sum=16 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include 13.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: 输入:A 输出:Input:A 输入:B 输出:Input:B Input:B 输入:C 输出:Input:C 输入其他字母,没有任何输出。 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include cout<<“Input : ”< /********found********/ case 'B': cout<<“Input : ”< /********found********/ case 'B': cout<<“Input : ”< /********found********/ case: break;} return;} 14.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: m_t=0 m_t=10 要求:obj的类对象不能直接给m_t赋值,如obj.m_t=10则产生错误。注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include cout<<“m_t = ”< m_t = t;} };int main(){ C1 obj;obj.print();C1 obj2(10);obj2.print();return 0;} 15.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: m_Mumber=10 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include cout<<“C0 print”< cout<<“m_Number =”< m_Number += i;} };void main(){ C1 obj;obj.Add(6);obj.Add(4);obj.print();} 16.该程序运行有问题,请改正程序中的错误,使程序的输出结果为: 0 0 0 1 2-1 0 0 0 1 2-1 2 1 1 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include A(int aa=0):a(aa){} };class B { int a,b; const int c;A d;public: /**************** found *******************/ B(){} /**************** found *******************/ B(int aa, int bb): d(aa+bb){ a=aa, b=bb;} void print(){ cout< 17.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: abcdefgh abcdefgh abcdefgh 注意:错误的语句在/********found*******/的下面,修改该语句即可。#include m_Number = i;} /********found********/ friend operator--(){ m_Number--;} /********found********/ operator--(){ m_Number-=2;} void print(){ cout<<“m_Number= ”< 18.该程序运行时有错,请改正错误,使得程序正确执行,消除相关的警告提示,并且能输出以下结果:注意:错误的语句在/********found*******/的下面,修改该语句即可。#include /********found********/ this->x = new int[x]; /********found********/ this->y = new int[y];} ~Point(){ delete x; delete y;} int Mul(){ return *x * *y;} void print(){ cout< 19.该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下结果: C1 C0 1 C0 int 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include cout< cout<<“C0 int”< /********found********/ return 0;} };class C1 { public: operator C0(){ cout<<“C1 C0”< 20.该程序运行有问题,请改正函数中的错误,使该程序的输出结果为: This is static a: 1 This is non-static b: 1 This is static a: 2 This is non-static b: 2 This is static a: 2 This is non-static b: 1 Press any key to continue 注意:错误的语句在/********found*******/的下面,修改该语句即可。 #include static int a; int b;public: /***************** found *****************/ void set(int i=0, int j){a=i;b=j;} void show();};/***************** found *****************/ void shared::show(){ cout << “This is static a: ” << a; cout << “nThis is non-static b: ” << b;/***************** found *****************/ cout >> “n”;} void main(){ shared x, y; x.set(1, 1); x.show(); y.set(2, 2); y.show(); x.show();} 程序改错 ==== 题号: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);} 第十次上机题(改错补充题) 一、改错题 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、下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩: 85 65.5 69 95.5 87 55 62.5 75 则高于平均分的学生人数为4(平均分为74.312500)。请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: #include /**************found**********************/ int ave ,t=0; int count=0,k,i; for(k=0;k t+=s[k]; ave=t/n; for(i=0;i /***************found***********************/ if(s[i] count++; /************found***********************/ aver=ave; return count;} main(){ float s[30],aver; int m,i; clrscr(); printf(“nPlease enter m: ”); scanf(“%d”,&m); printf(“nPlease enter %d mark :n”,m); for(i=0;i scanf(“%f”,s+i); printf(“nThe number of students :%dn”,fun(s,m,&aver)); printf(“Ave=%fn”,aver);} (1)错误:int ave ,t=0; 正确:float ave ,t=0.0;(2)错误:if(s[i] 正确:if(s[i]>ave)(3)错误:aver=ave; 正确:*aver=ave; 【解析】错误1:ave和t分别用来存放成绩的平均值和总分,应为实型数。 错误2:根据题意,找出高于平均分的数,所以此处的关系运算符应为“>” 错误3:aver是指针,而ave是一个数,不能将一个数赋值给一个指针,而要用符号'*'。 2、下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: #include (1)错误:while(k>=2)&&(mc<6)正确:while((k>=2)&&(mc<6))(2)错误:if((k%7=0)||(k%11=0))正确:if((k%7==0)||(k%11= =0))(3)错误:m=k;正确:m=m+k;【解析】错误1:C语言规定while语句后的表达式两侧必须要有圆括号。 错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。错误3:根据题意,将满足条件的数求累加和。 3、下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入“edS,dAd”,则输出“EDS,DAD”。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: #include /*************found***********************/ char fun(char tt[]){ int i;for(i=0;tt[i];i++) { /**********************found***********************/ if((tt[i]>='A')&&(tt[i]<= 'Z')) tt[i]-=32; } return(tt);} main(){ int i;char tt[81];clrscr();printf(“nPlease enter a string: ”);gets(tt);printf(“nThe result string is: n%s”,fun(tt));} (1)错误:char fun(char tt[]) 正确:char *fun(char tt[]) (2)错误:if((tt[i]>='A')&&(tt[i]<= 'Z')) 正确:if((tt[i]>='a')&&(tt[i]<= 'z')) 【解析】错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加'*'号。 错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。 4、下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为4576235时,t中的数为4725。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: #include long s1=10; *t=s%10; while(s>0) { /**********************found***********************/ s=s%100; *t=s%10*s1+*t; s1=s1*10; } } main(){ long s, t; clrscr(); printf(“nPlease enter s: ”); scanf(“%ld”,&s); fun(s,&t); printf(“The result is: %ldn ”,t);} 答案及评析: (1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s%100;正确:s=s/100;【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。错误2:此处要注意特殊运算符号“%”--取余和“/”--整除的区别。将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。第三篇:改错题
第四篇:改错题
第五篇:改错题