版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序改錯題C語言程序改錯題C語言程序改錯題xxx公司C語言程序改錯題文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設計,管理制度第1題【程序改錯】功能:先將在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序連接到t串的后面。例如:當s中的字符串為:“ABCDE”時,則t中的字符串應為:“EDCBAABCDE”。------------------------------------------------------*/#include<>#include<>#include<>voidfun(char*s,char*t){/**********FOUND**********/inti;sl=strlen(s);for(i=0;i<sl;i++)/**********FOUND**********/t[i]=s[sl-i];for(i=0;i<sl;i++)t[sl+i]=s[i];/**********FOUND**********/t[2*sl]="0";}main(){chars[100],t[100];printf("\nPleaseenterstrings:");scanf("%s",s);fun(s,t);printf("Theresultis:%s\n",t);}答案:1).inti,sl;2).t[i]=s[sl-i-1];3).t[2*sl]='\0';或t[2*sl]=0;第2題【程序改錯】功能:求出以下分數(shù)序列的前n項之和。和值通過函數(shù)值返回main函數(shù)。2/1+3/2+5/3+8/5+13/8+21/13……例如:若n=5,則應輸出:。------------------------------------------------------*/#include<>#include<>/**********FOUND**********/fun(intn){inta,b,c,k;doubles;s=;a=2;b=1;for(k=1;k<=n;k++){/**********FOUND**********/s=(double)a/b;c=a;a=a+b;b=c;}/**********FOUND**********/returnc;}main(){intn=5;printf("\nThevalueoffunctionis:%lf\n",fun(n));}答案:1).doublefun(intn)2).s=s+(double)a/b;或s+=(double)a/b;或s+=a/(double)b;或s=s+a/(double)b;3).returns;第3題【程序改錯】功能:讀入一個整數(shù)m(5≤m≤20),函數(shù)getarr調(diào)用函數(shù)rnd獲得m個隨機整數(shù),函數(shù)sortpb將這m個隨機整數(shù)從小到大排序。例如:若輸入整數(shù)7,則應輸出:3101728323647。------------------------------------------------------*/#include""#include<>sortpb(intn,int*a){/**********FOUND**********/inti,j,p,tfor(j=0;j<n-1;j++){p=j;for(i=j+1;i<n;i++)/**********FOUND**********/if(a[p]>a[j])p=i;/**********FOUND**********/if(p==j){t=a[j];a[j]=a[p];a[p]=t;}}}doublernd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);}getarr(intn,int*x){inti;for(i=1;i<=n;i++,x++)*x=(int)(50*rnd());}putarr(intn,int*z){inti;for(i=1;i<=n;i++,z++){printf("%4d",*z);if(!(i%10))printf("\n");}printf("\n");}main(){intaa[20],n;printf("\nPleaseenteranintegernumberbetween5and20:");scanf("%d",&n);getarr(n,aa);printf("\n\nBeforesorting%dnumbers:\n",n);putarr(n,aa);sortpb(n,aa);printf("\nAftersorting%dnumbers:\n",n);putarr(n,aa);}答案:1).inti,j,p,t;2).if(a[p]>a[i])p=i;3).if(p!=j)第4題【程序改錯】--------------------------------------------------------功能:以下程序能求出1*1+2*2+......+n*n<=1000中滿足條件的最大的n。------------------------------------------------------*/#include<>#include""main(){intn,s;/**********FOUND**********/s==n=0;/**********FOUND**********/while(s>1000){++n;s+=n*n;}/**********FOUND**********/printf("n=%d\n",&n-1);}答案:1).s=n=0;2).while(s<=1000)3).printf("n=%d\n",n-1);第5題【程序改錯】--------------------------------------------------------功能:求出a所指數(shù)組中最大數(shù)和次最大數(shù)(規(guī)定最大數(shù)和次最大數(shù)不在a[0]和a[1]中),依次和a[0]、a[1]中的數(shù)對調(diào)。例如:數(shù)組中原有的數(shù):7、10、12、0、3、6、9、11、5、8,輸出的結(jié)果為:12、11、7、0、3、6、9、10、5、8。------------------------------------------------------*/#include<>#include<>#defineN20voidfun(int*a,intn){intk,m1,m2,max1,max2,t;max1=max2=-32768;m1=m2=0;for(k=0;k<n;k++)if(a[k]>max1){max2=max1;m2=m1;max1=a[k];m1=k;}/**********FOUND**********/elseif(a[k]>max1){max2=a[k];m2=k;}/**********FOUND**********/t=a[0];a[m1]=a[0];a[m1]=t;/**********FOUND**********/t=a[1];a[m2]=a[1];a[m2]=t;}main(){intb[N]={7,10,12,0,3,6,9,11,5,8},n=10,i;for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");fun(b,n);for(i=0;i<n;i++)printf("%d",b[i]);printf("\n");}答案:1).elseif(a[k]>max2)2).t=a[0];a[0]=a[m1];a[m1]=t;3).t=a[1];a[1]=a[m2];a[m2]=t;第6題【程序改錯】--------------------------------------------------------功能:讀入一個整數(shù)k(2≤k≤10000),打印它的所有質(zhì)因子(即所有為素數(shù)的因子)。例如:若輸入整數(shù):2310,則應輸出:2、3、5、7、11。請改正程序中的語法錯誤,使程序能得出正確的結(jié)果。------------------------------------------------------*/#include""#include<>/**********FOUND**********/isPrime(integern){inti,m;m=1;for(i=2;i<n;i++)/**********FOUND**********/if(n%i){m=0;break;}/**********FOUND**********/returnn;}main(){intj,k;printf("\nPleaseenteranintegernumberbetween2and10000:");scanf("%d",&k);printf("\n\nTheprimefactor(s)of%dis(are):",k);for(j=2;j<=k;j++)if((!(k%j))&&(IsPrime(j)))printf("\n%4d",j);printf("\n");}答案:1).IsPrime(intn)2).if(!(n%i))3).returnm;第7題【程序改錯】--------------------------------------------------------功能:為一維數(shù)組輸入10個整數(shù);將其中最小的數(shù)與第一個數(shù)對換,將最大的數(shù)與最后一個數(shù)對換,輸出數(shù)組元素。------------------------------------------------------*/#include<>main(){inta[10];voidinput();voidoutput();voidmax_min();input(a,10);max_min(a,10);output(a,10);}voidinput(int*arr,intn){int*p,i;p=arr;printf("pleaseenter10integers:\n");for(i=0;i<n;i++)/**********FOUND**********/scanf("%d",p);}voidmax_min(int*arr,intn){int*min,*max,*p,t;min=max=arr;for(p=arr+1;p<arr+n;p++)/**********FOUND**********/if(*p<*max)max=p;elseif(*p<*min)min=p;t=*arr;*arr=*min;*min=t;/**********FOUND**********/if(max=arr)max=min;t=*(arr+n-1);*(arr+n-1)=*max;*max=t;}voidoutput(int*arr,intn){int*p,i;p=arr;printf("Thechangedarrayis:\n");/**********FOUND**********/while(i=0;i<n;i++)printf("%3d",*p++);printf("\n");}答案:1).scanf("%d",p++);或scanf("%d",arr[i]);或scanf("%d",p+i);或scanf("%d",arr+i);2).if(*p>*max)或if(*max<*p)3).if(max==arr)4).for(i=0;i<n;i++)或for(i=0;n>i;i++)或for(p=arr;p<arr+n;)或for(i=0;i<=n-1;i++)或for(i=0;n-1>=i;i++)或for(p=arr;p<=arr+n-1;)或for(p=arr;arr+n-1>=p;)第8題【程序改錯】--------------------------------------------------------功能:求出在字符串中最后一次出現(xiàn)的子字符串的地址,通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL。例如:當字符串中的內(nèi)容為:"abcdabfabcdx",t中的內(nèi)容為:"ab"時,輸出結(jié)果應是:abcdx。當字符串中的內(nèi)容為:"abcdabfabcdx",t中的內(nèi)容為:"abd"時,則程序輸出未找到信息:notfound!。------------------------------------------------------*/#include<>#include<>#include<>char*fun(char*s,char*t){char*p,*r,*a;/**********FOUND**********/a==NULL;while(*s){p=s;r=t;while(*r)/**********FOUND**********/if(r==p){r++;p++;}elsebreak;/**********FOUND**********/if(*r='\0')a=s;s++;}returna;}main(){chars[100],t[100],*p;printf("\nPleaseenterstringS:");scanf("%s",s);printf("\nPleaseentersubstringt:");scanf("%s",t);p=fun(s,t);if(p)printf("\nTheresultis:%s\n",p);elseprintf("\nNotfound!\n");}答案:1).a=NULL;2).if(*r==*p)3).if(*r=='\0')a=s;第9題【程序改錯】--------------------------------------------------------功能:從m個學生的成績中統(tǒng)計出高于和等于平均分的學生人數(shù),此人數(shù)由函數(shù)值返回。平均分通過形參傳回,輸入學生成績時,用-1結(jié)束輸入,由程序自動統(tǒng)計學生人數(shù)。例如:若輸入8名學生的成績,輸入形式如下:6072988864-1結(jié)果為:Thenumberofstudents:4Ave=。------------------------------------------------------*/#include<>#include<>#defineN20intfun(float*s,intn,float*aver){floatav,t;intcount,i;count=0;t=;for(i=0;i<n;i++)t+=s[i];av=t/n;printf("ave=%f\n",av);for(i=0;i<n;i++)/**********FOUND**********/if(s[i]<av)count++;/**********FOUND**********/aver=av;/**********FOUND**********/returncount}main(){floata,s[30],aver;intm=0;printf("\nPleaseentermarks(-1toend):\n");scanf("%f",&a);while(a>0){s[m]=a;m++;scanf("%f",&a);}printf("\nThenumberofstudents:%d\n",fun(s,m,&aver));printf("Ave=%6.2f\n",aver);}答案:1).if(s[i]>=av)count++;2).*aver=av;3).returncount;第10題【程序改錯】--------------------------------------------------------功能:根據(jù)以下公式求π值,并作為函數(shù)值返回。例如:給指定精度的變量eps輸入時,應當輸出Pi=。π1121231234—=1+—+—x—+—x—x—+—x—x—x—+...23353573579------------------------------------------------------*/#include<>doublefun(doubleeps){doubles,t;intn=1;s=;t=1;/**********FOUND**********/while(t<=eps){s+=t;/**********FOUND**********/t=n/(2*n+1)*t;n++;}/**********FOUND**********/returns;}main(){doublex;scanf("%lf",&x);printf("\neps=%lf,Pi=%lf\n\n",x,fun(x));}答案:1).while(t>eps)或while(eps<t)或while(t>=eps)或while(eps<=t)或while(t>eps)或while(eps<t)或while(t>=eps)或while(eps<=t)2).t=t*n/(2*n+1);或t=*n/(2*n+1)*t;或t=n/(2*n+*t;或t=n/*n+1)*t;或t=n/*n+*t;或t=*n/*n+*t;3).return2*s;或return(2*s);或return(2*s);或return(s*2);或return(s*2);第11題【程序改錯】--------------------------------------------------------功能:實現(xiàn)兩個字符串的連接。例如:輸入dfdfqe和12345時,則輸出dfdfqe12345.------------------------------------------------------*/#include<>main(){chars1[80],s2[80];voidscat(chars1[],chars2[]);gets(s1);gets(s2);scat(s1,s2);puts(s1);}voidscat(chars1[],chars2[]){inti=0,j=0;/**********FOUND**********/while(s1[i]=='\0')i++;/**********FOUND**********/while(s2[j]=='\0'){/**********FOUND**********/s2[j]=s1[i];i++;j++;}/**********FOUND**********/s2[j]='\0';}答案:1).while(s1[i]!='\0')或while(s1[i])或while(s1[i]!=0)2).while(s2[j]!='\0')或while(s2[j])或while(s2[j]!=0)3).s1[i]=s2[j];4).s1[i]='\0';或*(s1+i)='\0';或s1[i]=0;第12題【程序改錯】--------------------------------------------------------功能:求二分之一的圓面積,函數(shù)通過形參得到圓的半徑,函數(shù)返回二分之一的圓面積。例如:輸入圓的半徑值:輸出為:s=。------------------------------------------------------*/#include<>#include<>/**********FOUND**********/doublefun(r){doubles;/**********FOUND**********/s=1/2**r*r;/**********FOUND**********/returnr;}main(){floatx;printf("Enterx:");scanf("%f",&x);printf("s=%f\n",fun(x));}答案:1).floatfun(floatr)或doublefun(floatr)或doublefun(doubler)2).s=2**r*r;3).returns;第13題【程序改錯】--------------------------------------------------------功能:利用二維數(shù)組輸出如圖所示的圖形。*******************************----
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025招標控制價建設工程造價咨詢合同
- 2025儀器儀表購銷合同
- 2024年刮泥機項目投資申請報告
- 醫(yī)療健康產(chǎn)業(yè)對宏觀經(jīng)濟的拉動作用研究
- 2025年滬教版必修3生物上冊階段測試試卷含答案
- 2025年粵人版選擇性必修3地理下冊月考試卷
- 2024年滬教新版必修1物理上冊月考試卷
- 二零二五版牛只運輸與養(yǎng)殖基地環(huán)保責任合同3篇
- 二零二五年度模具加工環(huán)保工藝與技術(shù)改造合同4篇
- 二零二五年度園林綠化苗木育種合同3篇
- 開展課外讀物負面清單管理的具體實施舉措方案
- 2025年云南中煙工業(yè)限責任公司招聘420人高頻重點提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場未來發(fā)展趨勢及前景調(diào)研分析報告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 系統(tǒng)動力學課件與案例分析
- 《智能網(wǎng)聯(lián)汽車智能傳感器測試與裝調(diào)》電子教案
- 客戶分級管理(標準版)課件
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 人教版數(shù)學七年級下冊數(shù)據(jù)的收集整理與描述小結(jié)
評論
0/150
提交評論