C语言程序改错大全

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

试卷编号:10194所属语言:TurboC试卷方案:cxgc试卷总分:1380分共有题型:1种━━━━━━━━━━━━━━━━━━一、程序改错共138题(共计1380分)━━━━━━━━━━━━━━━━━━第1题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:根据整型形参m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m-3)------------------------------------------------------*/#includestdio.hdoublefun(intm){/**********FOUND**********/doubley=1inti;/**********FOUND**********/for(i=3;im;i++)/**********FOUND**********/y+=1.0/(2i-3);return(y);}voidmain(void){intn;clrscr();printf(Entern:);scanf(%d,&n);printf(\nTheresultis%1f\n,fun(n));getch();}答案:1).doubley=1;2).for(i=3;i=m;i++)或for(i=3;im+1;i++)3).y+=1.0/(2*i-3);第2题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。------------------------------------------------------*/#includestdio.h#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=0;jn-1;j++){/**********FOUND**********/p=jfor(i=j;in;i++)/**********FOUND**********/if(a[i]a[p])/**********FOUND**********/p=j;t=a[p];a[p]=a[j];a[j]=t;}}main(){inta[N]={9,6,8,3,-1},i,m=5;printf(排序前的数据:);for(i=0;im;i++)printf(%d,a[i]);printf(\n);fun(a,m);printf(排序后的数据:);for(i=0;im;i++)printf(%d,a[i]);printf(\n);getch();}答案:1).p=j;2).if(a[i]a[p])或if(a[p]a[i])3).p=i;第3题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。------------------------------------------------------*/#includestdio.h#includestring.hvoidmain(){charstr[100],*p,*q,*r,c;printf(输入字符串:);gets(str);/**********FOUND**********/for(p=str;p;p++){for(q=r=p;*q;q++)if(*r*q)r=q;/**********FOUND**********/if(r==p){/**********FOUND**********/c=r;*r=*p;*p=c;}}for(p=str;*p;p++){for(q=p;*p==*q;q++);strcpy(p+1,q);}printf(结果字符串:%s\n\n,str);getch();}答案:1).for(p=str;*p;p++)2).if(r!=p)3).c=*r;第4题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写程序,求矩阵(3行3列)与5的乘积例如:输入下面的矩阵:100200300400500600700800900程序输出:50010001500200025003000350040004500------------------------------------------------------*/#includestdio.hintfun(intarray[3][3]){/**********FOUND**********/inti;j;/**********FOUND**********/for(i=1;i3;i++)for(j=0;j3;j++)/**********FOUND**********/array[i][j]=array[i][j]/5;}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};clrscr();for(i=0;i3;i++){for(j=0;j3;j++)printf(%7d,array[i][j]);printf(\n);}fun(array);printf(Convertedarray:\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(%7d,array[i][j]);printf(\n);}getch();}答案:1).inti,j;2).for(i=0;i3;i++)3).array[i][j]=array[i][j]*5;第5题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用起泡法对连续输入的十个字符排序后按从小到大的次序输出.------------------------------------------------------*/#defineN10#includestdio.h#includestring.hmain(){inti;charstr[N];/***********FOUND***********/for(i=0;iN;i++)scanf(%c,str[i]);/***********FOUND***********/sort(str[N]);for(i=0;iN;i++)printf(%c,str[i]);printf(\n);}sort(charstr[N]){inti,j;chart;for(j=1;jN;j++)/***********FOUND***********/for(i=0;iN-j;i--)/***********FOUND***********/if(str[i]str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}答案:1).for(i=0;iN;i++)scanf(%c,&str[i]);2).sort(str);3).for(i=0;iN-j;i++)4).if(str[i]str[i+1])或if(str[i+1]str[i])第6题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:读入一行英文文本,将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如:若输入“Iamastudenttotaketheexamination.”,则应输出“IaMAstudenTtOtakEthEexamination.”。------------------------------------------------------*/#includeconio.h#includestdio.h#includectype.h#includestring.hup1st(char*p){/**********FOUND**********/integerk=0;for(;*p;p++)if(k){/**********FOUND**********/if(*p=''){k=0;/**********FOUND**********/*(p-1)=toupper(*(p-1);}}elseif(*p!='')k=1;*(p-1)=toupper(*(p-1));}main(){charchrstr[81];clrscr();printf(\nPleaseenterastring:);gets(chrstr);printf(\n\nBeforechanging:\n%s,chrstr);up1st(chrstr);printf(\nAfterchanging:\n%s,chrstr);}答案:1).intk=0;2).if(*p=='')3).*(p-1)=toupper(*(p-1));第7题(10.0分)/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:在一个一维整型数组中找出其中最大的数及其下标。------------------------------------------------------*/#defineN10/**********FOUND**********/floatfun(int*a,int*b,intn){int*c,max=*a;for(c=a+1;ca+n;c++)if(*cmax){max=*c;/**********FOUND**********/b=c-a;}returnmax;}voidmain(void){inta[N],i,max,p=0;printf(pleaseenter10integers:\n);for(i=0;iN;i++)/**********FOUND**********/get(%d,a[i]);/**********FOUND**********/m=fun(a,p,N);printf(max=%d,position=%d,max,p);}答案:1).intfun(int*a,int*b,intn)2).*b=c-a;3).scanf(%d,&a[i]);或scanf(%d,a+i);4).max=fun(a,&p,N);第8题(10.0分)/*------------------------------------------------------【程序改错】---

1 / 159
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功