C語(yǔ)言筆試-程序改錯(cuò)題_第1頁(yè)
C語(yǔ)言筆試-程序改錯(cuò)題_第2頁(yè)
C語(yǔ)言筆試-程序改錯(cuò)題_第3頁(yè)
C語(yǔ)言筆試-程序改錯(cuò)題_第4頁(yè)
C語(yǔ)言筆試-程序改錯(cuò)題_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言機(jī)試程序改錯(cuò)題gc22.c程序是輸入一個(gè)字符串,將此字符串中最長(zhǎng)的單詞輸出,程序在注釋行附近有兩個(gè)錯(cuò)誤,請(qǐng)?jiān)囌{(diào)試改正,但調(diào)試改正中不得增刪語(yǔ)句。intalph(charc){if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))return(1);elsereturn(0); /*find1 */}intlongest(charstr)//////////////intlongest(char*str){intlen=0,i,length=0,flag=1,point,place;for(i=0;i<=strlen(str);i++)if(alph(str[i]))if(flag){flag=0;point=i;}elselen++;else /*Find2 */{flag=0; /////////////flag=1;if(len>length){length=len;place=point;len=0;}}return(place);}main(){inti;charline[100];printf("Enterstring\n");gets(line);printf("thelongestis:");for(i=longest(line);alph(line[i]);i++)printf("%c",line[i]);printf("\n");}2下列程序是建立一個(gè)包含學(xué)生有關(guān)數(shù)據(jù)的單向鏈表。但該程序有2個(gè)錯(cuò)誤,錯(cuò)誤出現(xiàn)在每個(gè)注釋行附近,請(qǐng)調(diào)試改正。調(diào)試改正中,不得改變程序結(jié)構(gòu),也不得增刪語(yǔ)句。#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment…………… */intn;structstudcreate() ////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/* comment */head=NULL;while(p1!=0) //////////while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc56.c程序用于將字符串中的小寫字母轉(zhuǎn)換為大寫字母,程序中有兩處錯(cuò)誤,請(qǐng)調(diào)試改正之,但不得增刪語(yǔ)句.#include<stdio.h>voidmain(void){chars[255];inti;scanf("%s",s);for(i=0;s[i];i++)if(s[i]>='b'&&s[i]<='z') //////s[i]>='a'&&s[i]<='zs[i]=s[i]+'a'+'A'; //////s[i]=s[i]-'a'+'A'printf("%s",s);}gc57.c的功能是互換給定數(shù)組中的最大數(shù)和最小數(shù)。如將下面8個(gè)數(shù):5,3,1,4,2,8,9,6變成:5,3,9,4,2,8,1,6程序中,最大數(shù)與最小數(shù)的互換操作通過(guò)函數(shù)調(diào)用來(lái)實(shí)現(xiàn),讓指針max和min分別指向最大數(shù)和最小數(shù)。程序有二處錯(cuò)誤,請(qǐng)改正。注意:不得增行和刪行,也不得修改程序的結(jié)構(gòu)。main(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}voidjhmaxmin(p,n)intp,n; ////////int*p,n;{intt,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;q<end;q++){if(*q>*max)max=q;if(*q<max)min=q;////////*q<*min}t=*max;*max=*min;*min=t;}gc101.c的功能為:輸入8個(gè)整數(shù),使用指針以選擇法對(duì)其進(jìn)行排序(從小到大).

程序中有兩處錯(cuò)誤代碼,請(qǐng)改正.注意,不得改變程序結(jié)構(gòu)。#include<stdio.h>main(){inta[8],*p=a;inti,j;inttempmin,tempcode;printf("\ninputthenumbers:\n");for(i=0;i<8;i++)scanf("%d",p+i);tempmin=*p;for(i=0;i<7;i++){for(j=i;j<8;j++)//////////tempmin=*(p+j);/////////////*(p+i)=tempmin;if(j==i||*(p+j)<tempmin)//////////tempmin=*(p+j);/////////////*(p+i)=tempmin;{tempmin=*(p+i);tempcode=j;};if(tempcode!=i){*(p+tempcode)=*(p+i);*(p+j)=tempcode;}}for(i=0;i<8;i++)printf("%d,",*(p+i));return(1);}gc137.c中的sub函數(shù)的功能是:將s所指字符串的反序和正序進(jìn)行連接形成一個(gè)新串放在t成一個(gè)新串放在t所指的數(shù)組中。例如,t所指數(shù)組中的內(nèi)容為“DCBAABCD”。得出正確的結(jié)果。注意:不要改動(dòng)main序的結(jié)構(gòu)。#include"stdio.h"#include"conio.h"#include"string.h"voidsub(char*s,char*t){當(dāng)s所指字符串的內(nèi)容為“ABCD”時(shí),請(qǐng)改正函數(shù)sub中的兩個(gè)錯(cuò)誤,使它能函數(shù),不得增行或刪行,也不得修改程inti,d;///////for(i=0;i<d;i++)d=strlen(s);///////for(i=0;i<d;i++)for(i=1;i<d;i++)t[i]=s[d-1-i];for(i=0;i<d;i++)t[d+i]=s[i];t[2*d]='/0'; /////////t[2*d]='\0';}main(){chars[100],t[100];clrscr();printf("\nPleaseenterstringS:");scanf("%s",s);sub(s,t);printf("\nTheresultis:%s\n",t);}gc155.c的功能是從鍵盤輸入一行字符,分別統(tǒng)計(jì)其中的字母、數(shù)字、空格和其它字符的個(gè)數(shù)。但該程序中有2處錯(cuò)誤,請(qǐng)調(diào)試并改正。不允許改變程序結(jié)構(gòu)和增刪語(yǔ)句。#include<stdio.h>main(){intc;intletter=0,digit=0,space=0,other=0;printf("Pleaseinputastring:\n");while(c=getchar()!='\n') //////while((c=getchar())!='\n')if(c>='a'&&c<='z'||c>='A'&&c<='Z')letter++;elseif(c>='0'&&c<='9')digit++;elseif(c='') //////////elseif(c=='')space++;elseother++;printf("letter=%d,",letter);printf("digit=%d,",digit);printf("space=%d,",space);printf("other=%d\n",other);}gc163.c的功能是實(shí)現(xiàn)求1000以內(nèi)的自然數(shù)中的完數(shù)及其個(gè)數(shù)(所謂完數(shù),指它恰好等于除它本身之外的因子之和,如:6=1+2+3,28=1+2+4+7+14),并顯示結(jié)果。但該程序中有2處錯(cuò)誤,請(qǐng)調(diào)試并改正。不允許改變程序結(jié)構(gòu)和增刪語(yǔ)句。#include<stdio.h>voidmain(void){inti,k,m,n,s,p; //////////////////p=0inta[100];printf("\n10000以內(nèi)的自然數(shù)中的完數(shù)有:");for(i=2;i<=10000;i++){s=0;m=0;for(k=1;k<=i/2;k++){if(i%k==0){s=s+k;a[m]=k;m=m+1;}}if(s=i) ////////if(s==i){p=p+1;printf("\n%d=%d",s,a[0]);n=1;while(n<m){printf("+%d",a[n]);n=n+1;}}}printf("\n總個(gè)數(shù)為:%d\n",p);}gc165.c程序中的函數(shù)find_str()用來(lái)返回字符串s2在字符串si中第一次出現(xiàn)的首地址;如果字符串s2不是si的子串,則該函數(shù)返回空指針NULL?,F(xiàn)在程序中發(fā)現(xiàn)有兩個(gè)錯(cuò)誤,錯(cuò)誤就出現(xiàn)在那些注釋行的附近,請(qǐng)你找出錯(cuò)誤并將它們改正過(guò)來(lái),要求在調(diào)試過(guò)程中不允許改變程序結(jié)構(gòu),更不得增刪語(yǔ)句。include<stdio.h>#include<string.h>char*find_str(char*si,char*s2){inti,j,ls2;ls2=strlen(s2);for(i=0;i<=strlen(si)-ls2;i++){for(j=0;j<ls2;j++)if(si[j+i]!=s2[j])break;/* commentone */if(j==ls2)return(si+j); //////return(si+j+i)}returnNULL;}voidmain(){char*a="dos6.22windows98office2000",*b="windows",c;///////*c/* commenttwo */c=find_str(a,b);if(c!=NULL)printf("%s\n",c);elseprintf("未找到字符串%s\n",b);}gc166.c程序的功能是:計(jì)算并輸出從鍵盤輸入的任一正整數(shù)的各位數(shù)字之和s以及各位數(shù)字之積t。例如,當(dāng)輸入的正整數(shù)為237時(shí),s的值為12,t的值為42。請(qǐng)改正程序中的兩個(gè)錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得增行或刪行,也不得修改程序的結(jié)構(gòu)。#include"stdio.h"main(){intn,yw,s=0,t=0; /////////t=1scanf("%d",&n);while(n!=0){yw=n%10;s=s+yw;t=t*yw;n=n%10; ////////////n=n/10}printf("s=%d,t=%d\n",s,t);}gc171.c的功能是實(shí)現(xiàn)求1000以內(nèi)的自然數(shù)中的完數(shù)及其個(gè)數(shù)(所謂完數(shù),指它恰好等于除它本身之外的因子之和,如:6=1+2+3,28=1+2+4+7+14),并顯示結(jié)果。但該程序中有2處錯(cuò)誤,請(qǐng)調(diào)試并改正。不允許改變程序結(jié)構(gòu)和增刪語(yǔ)句。#include<stdio.h>voidmain(void){inti,k,m,n,s,p;////////////////////p=0inta[100];printf("\n10000以內(nèi)的自然數(shù)中的完數(shù)有:");for(i=2;i<=10000;i++){s=0;m=0;for(k=1;k<=i/2;k++){if(i%k==0){s=s+k;a[m]=k;m=m+1;}}if(s=i) ////////////////////s==i{p=p+1;printf("\n%d=%d",s,a[0]);n=1;while(n<m){printf("+%d",a[n]);n=n+1;}}}printf("\n總個(gè)數(shù)為:%d\n",p);}gc227.c中函數(shù)fun的功能是:使輸入的一個(gè)字符串按反序存放,并在主函數(shù)中輸出。請(qǐng)改正函數(shù)fun中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<string.h>#include<stdio.h>main(){charstr[100];printf("Inputstring:");scanf("%s",str);fun(str);printf("Theresult:%s\n",str);}fun(str)charstr[];{chart;inti,j;for(i=0,j=strlen(str);i<strlen(str)/2;i++,j++) ///////j--{t=str[i];str[i]=str[j-1];str[j+1]=t;} //////{t=str[i];str[i]=str[j-1];str[j-1]=t;}}gc228.c代碼功能為:使用指針將數(shù)組a中10個(gè)整數(shù)按相反的順序存放。程序中有兩處錯(cuò)誤代碼,請(qǐng)指出并改正之.voidinv(x,n)int*x,n;{int*p,t,*i,*j,m=(n-1)/2;i=x;j=n; ///////////j=x+n-1;p=x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}return;}main(){inta[10],i;printf("input10number");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("Theoriginalarray:\n");for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");inv(a,n); /////////////////inv(a,10);printf("Thearrayhasbeeninverted:\n");for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");}gc234.c中函數(shù)fun的功能是:求S的值。設(shè)S=((2*2)/3)*((4*4)/(3*5))*...*((2*k*2*k)/((2*k-1)*(2*k+1)))請(qǐng)改正函數(shù)fun中的兩個(gè)錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include"stdio.h"#include"dos.h"fun(intk) ////////////////floatfun(intk){intn;floats,w,p,q;n=1;s=1.0;while(n<=k){w=2.0*n;p=w-1.0;q=w+1.0;s=s*w*w/p/q;n++;}returns /////////////returns;}main(){clrscr();printf("%f\n",fun(10));}gc273.c功能是:一個(gè)偶數(shù)總能表示為兩個(gè)素?cái)?shù)之和。請(qǐng)改正程序的兩個(gè)錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include"stdio.h"#include"math.h"main(){inta,b,c,d;scanf("%d",a); ///////////scanf("%d",&a);for(b=3;b<=a/2;b+=2){for(c=2;c<=sqrt(b);c++)if(b%c==0)break;if(c>sqrt(b))d=a+b; ////////////d=a-b;elsebreak;for(c=2;c<=sqrt(d);c++)if(d%c==0)break;if(c>sqrt(d))printf("%d=%d+%d\n",a,b,d);}}本程序用于輸出如下所示的圖形。請(qǐng)將源程序文件中的兩個(gè)錯(cuò)誤改正過(guò)來(lái),注意在答題過(guò)程中不得對(duì)源程序增行或刪行,也不得更改程序的結(jié)構(gòu)。1121123211234321123454321123456543211234567654321123456787654321123456789876543211234567890987654321123456789876543211234567876543211234567654321123456543211234543211234321123211211#include<stdio.h>#include<math.h>main(){inti,j,n;chars[20]="1234567890987654321";printf("\n\n");/* comment1 */n=10; //////////////////////n=19;for(i=-n/2;i<=n/2;i++){for(j=0;j<=15+abs(i);j++)printf("%c",'');/* comment2 */for(j=0;j<=n/2-abs(i);j++)printf("%c",s[j]);for(j=n/2-abs(i);j<19;j++)printf("%c",s[j]);///////////j=n/2+abs(i)+1printf("\n");}}gc279.c的功能:函數(shù)prn_star(m,left)輸出正菱形圖案,其中參數(shù)m代表圖案的行數(shù)(為一奇數(shù)),left代表圖案距屏幕左邊的列數(shù)。函數(shù)prt_str(mJeft)中有兩處錯(cuò)誤代碼,請(qǐng)指出并改正之。#include<stdio.h>voidprn_star(m,left)intm,left;{inti,j,p;for(i=1;i<m;i++) /////////for(i=1;i<=m;i++){if(i<=m)p=i;////////if(i<=m/2)elsep=m+1-i;for(j=1;j<=left+(m-(2*p-1))/2;j++)printf("");for(j=1;j<=2*p-1;j++)printf("o");printf("\n");}}main(){intm,left;printf("請(qǐng)輸入正菱形圖案的行數(shù):”);scanf("%d",&m);printf("請(qǐng)輸入正菱形圖案距屏幕左邊的列數(shù):”);scanf("%d",&left);prn_star(m,left);}gc280.c功能為:M個(gè)人圍成一圈,從第一個(gè)人開(kāi)始依次從1至N循環(huán)報(bào)數(shù),每當(dāng)報(bào)數(shù)為N時(shí),此人出圈,直到圈中只剩下一個(gè)人為止。請(qǐng)按退出次序輸出出圈人原來(lái)的編號(hào)以及留在圈中的最后一個(gè)人原來(lái)的編號(hào)。程序中有兩處錯(cuò)誤代碼,請(qǐng)指出并改正之。#include<stdio.h>#defineM10/*numberofperson*/#defineN2/*eliminateapersonforNcompartment*/voidmain(){inti,j,k,n;statica[M];intb[M];/*eliminatepersonsfromarrayatoarrayb*/for(n=0j=k=M-1;n<k;--n) ////〃〃--n改成++n{for(i=0;i<N;++i)while(1){if(++j>k)j=0;if(!a[j])continue; ///////"continue;改成break;}b[n]=j+1;/*recordNo.ofeliminatedperson*/a[j]=-1;/*output*/for(i=0;i<k;++i)printf("%d",b[i]);for(i=0;i<M;++i)if(!a[i])printf("%d\n",i+1);}gc304.c中的函數(shù)fun()的功能是:先將在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序連接到t串的后面。例如:當(dāng)s中的字符串為:"abc12"時(shí),則t中的字符串應(yīng)為:"abc1221cba"?,F(xiàn)在程序中發(fā)現(xiàn)有兩個(gè)錯(cuò)誤,錯(cuò)誤就出現(xiàn)在那些注釋行的附近,請(qǐng)你找出錯(cuò)誤并將它們改正過(guò)來(lái),要求在調(diào)試過(guò)程中不允許改變程序結(jié)構(gòu),更不得增刪語(yǔ)句。#include<stdio.h>#include<string.h>voidfun(char*s,char*t){inti,st;st=strlen(s);/* comment one */for(i=0;i<st;i++)t[st]=s[i]; //////////////t[i]=s[i];for(i=0;i<st;i++)t[st+i]=s[st-i-1];/* comment two */t[st]='\0'; /////////////t[2*st]='\0';}voidmain(){chars[100],t[100];printf("\nPleaseenterstrings:");gets(s);fun(s,t);printf("Theresultis:%s\n",t);}gc305.c程序的功能是:對(duì)由n個(gè)一位數(shù)數(shù)字組成的數(shù)字串,使其前面各數(shù)順序向后移n-m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)。請(qǐng)改正程序中的兩個(gè)錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!main(){intnumber[20],n,m,i;}}printf("thenumberlenthis:");scanf("%d",&n);printf("backm:");scanf("%d",&m);for(i=0;i<n-1;i++)scanf("%d",&number[i]);scanf("%d",&number[n-1]);move(number,n,m);for(i=0;i<n-1;i++)printf("%d,",number[i]);printf("%d",number[n-1]);}move(array,n,m)intn,m,array[20];{int*p,array_end;array_end=*(array+n-1);for(p=array+n-1;p>array;p--)*p=*(p+1); ////////*p=*(p-1);array=array_end; ///////*array=array_end;m--;if(m>0)move(array,n,m);}gc306.c輸出如下圖案。AAAAAAA#BBBBBB##CCCCC###DDDD####EEE程序中有2處錯(cuò)誤,請(qǐng)指出改正之。#include<stdio.h>main(){inti,j;charch='A';for(i=0;i<7;i++) //////for(i=0;i<5;i++){for(j=1;j<=i;j++)printf("#");for(j=1;j<7;j++) //////for(j=0;j<7-i;j++)printf("%c",ch);printf("\n");ch++;gc307.c功能為:使用指針將數(shù)組中元素按升序排序。程序中有兩處錯(cuò)誤代碼,請(qǐng)指出并改正之。#include<stdio.h>main(){intk,m,change,a[10];int*p1;int**p2=p1;p1=a;printf("Pleaseinputdatasonebyone:\n");for(k=0;k<10;k++)scanf("%d",p1+k);for(k=0;k<9;k++){for(m=0;m<9+k;m++) 〃//〃m<9+k改成m<9-k{if((*p2)[m]>(*p2)[m+1]){change=(*p2)[m];(*p2)[m]=(*p2)[m+1];(*p2)[m+1]=change;}}}for(k=0;k<10;k++)printf("%d",*(*p2+k));return(1);}gc342.c的功能是:計(jì)算字符串中子串出現(xiàn)的次數(shù)請(qǐng)改正程序中的兩個(gè)錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include"string.h"#include"stdio.h"main(){charstr1[20],str2[20],*p1,*p2;intsum=0;printf("pleaseinputtwostrings\n");scanf("%s%s",str1,str2);p1=str1;p2=str2;while(*p1!='\0'){if(*p1==*p2){while(*p1==*p2||*p2!='\0') ////////////////||改為&&{p1++;p2++;}}elsep2++; ///////////////p1++;if(*p2=='\0')sum++;p2=str2;}printf("%d\n",sum);getch();}gc367.c通過(guò)接受鍵盤輸入的月數(shù)量,再根據(jù)當(dāng)前的月份,可以計(jì)算出某一年的月份。例如,當(dāng)前的月份是10,加輸入的月數(shù)量5,月份是3;加輸入的月數(shù)量-13,月份是9。程序中輸出的月份以英文字符顯示。CURRENT為當(dāng)前月份。程序有兩處錯(cuò)誤,請(qǐng)找出并修正,使之符合上述要求。不得增加行或刪除行,也不得更改程序結(jié)構(gòu)。#defineCURRENT11#include<stdio.h>main(){intmonth,monthnum;char*ch;char*month_name(int);printf("InputMonthNumber:");scanf("%d",&monthnum);/* FoundMistakeBelow */if(monthnum>=0)month=(CURRENT-1+monthnum)%12+1;elsemonth=(12+(CURRENT-1+monthnum))%12+1;ch=month_name(month);printf("Currentmonthis%d\n",CURRENT);printf("Add%dMonthsis:%s\n",month,ch); //////////month改為monthnum}/* FoundMistakeBelow */char*month_name(intn){char*name[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};////"Jan"前加"0"return(name[n]);}gc369.c功能為:找出一個(gè)二維數(shù)組中的鞍點(diǎn),即該位置上的元素在該行上最大,在該列上最小。也可能沒(méi)有鞍點(diǎn)。程序中有兩處錯(cuò)誤代碼,請(qǐng)指出并改正之。不得增加行或刪除行,也不得更改程序結(jié)構(gòu)。*Findthesaddlepoint*/#include<stdio.h>#defineN5#defineM5main(){inti,j,k,flag1,flag2,a[N][M],max,maxi,maxj;for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%d",&a[i][j]);flag2=0;for(i=0;i<N;i++){max=a[j][0]; /////////////max=a[i][0]for(j=0;j<M;j++)if(a[i][j]>max){max=a[i][j];maxj=j;}for(k=0,flag1=1;k<N&&flag1;k++)if(max>a[k][maxj])flag1=0;if(flag1){printf("\nThesaddlepointis:%d,%d,%d\n",i,maxj,max);flag2=1;}}if(flag2)////////////!flag2printf("\nThereisnosaddlepointintheMatrix\n");}gc393.c程序通過(guò)接受鍵盤輸入的字符串,通過(guò)調(diào)用函數(shù)trimspace(),實(shí)現(xiàn)去掉字符串的前空格和尾空格。程序有兩處錯(cuò)誤,請(qǐng)找出并修正,使之符合上述要求。不得增加行或刪除行,也不得更改程序結(jié)構(gòu)。#include<string.h>main(){charstr[100];voidtrimspace(char*);gets(str);trimspace(str);puts(str);}/* FoundMistakeBelow */voidtrimspace(char*p){char*q;if(*p!='\0')q=strlen(p); ////////////////*q=strlen(p)elsereturn;/* FoundMistakeBelow */for(;*q=='';q--);*q='\0';for(q=p;*q=='';q++);strcpy(p,q);return; 〃〃〃〃〃〃〃/冊(cè)除return}Agc394.c中函數(shù)strl的功能是輸入一個(gè)英文句子(字符串),將其中每個(gè)單詞的最后一個(gè)字母改寫成大寫,然后輸出此句子。(這里的"單詞"是指由空格隔開(kāi)的字符串)。例如:若輸入:"thisisabook",則應(yīng)輸出:"thiSiSAbooK"請(qǐng)改正函數(shù)strl中的兩個(gè)錯(cuò)誤,使程序能輸出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include"stdio.h"#include"ctype.h"#include"conio.h"voidstr1(char*p){intk=0;for(;*p;p++)if(k){if(p=='') /////////////*p==''{k=0;*p=toupper(*(p-1));///////////*(p-1)=toupper(*(p-1))}}elsek=1;}voidmain(){charstr[100];intd;clrscr();printf("\npleaseinputastring:");gets(str);str1(str);printf("\nafterchanging:\n%s",str);}Agc397.c功能為:設(shè)數(shù)組a[10]包括10個(gè)整型元素,求出a[10]中各相鄰二個(gè)元素之和,并將這些和存儲(chǔ)在數(shù)組b[10]中,最后按每行三個(gè)輸出。程序中有三處錯(cuò)誤代碼,請(qǐng)改正.注意,不得改變程序結(jié)構(gòu)。#include<stdio.h>main(){inta[10],b[10],i;for(i=0;i<=10;i++) ///////////for(i=0;i<10;i++){scanf("%d",a[i]);//////////&a[i]}for(i=1;i<10;i++){b[i]=a[i]+a[i-1];}for(i=1;i<10;i++){printf("%3d",b[i]);if((i/3)==0)printf("\n");//////i%3==0}}gc398.c功能為:輸入一個(gè)大寫字母,打印出一個(gè)菱形。該菱形中間一行由此字母組成,其相鄰的上下兩行由它前面的一個(gè)字母組成,按此規(guī)律,直到字母A出現(xiàn)在第一行和最末行為止。程序中有三處錯(cuò)誤代碼,請(qǐng)指出并改正之。例如:輸入字母D,打印出如下圖形:ABBBCCCCCDDDDDDDCCCCCBBBA#include<stdlib.h>////////////////#include<stdio.h>main(){inti,j,k;charch;scanf("%c",&ch);k=ch-'A'+1;for(i=1;i<=k;i++){for(j=40;j>=i;j--)printf("%c",'');for(j=1;j<=i-1;j++) //////////////////for(j=1;j<=2*i-1;j++)printf("%c",'A'+i-1);printf("\n");}k=ch-'A';for(i=k;i>=1;i--){for(i=40;i>=i;i--) ///////////////for(j=40;j>=i;i--)printf("%c",'');for(j=1;j<2*i-1;j++) //////////////for(j=1;j<=2*i-1;j++)printf("%c",'A'+i-1);printf("\n");}}gc405.c中,函數(shù)fun的功能是:'根據(jù)形參m的值(2WmW9),在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。例如,若輸入2則輸出:24若輸入4則輸出:23446836912481216程序有兩處錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<conio.h>#defineM10inta[M][M]={0};fun(int**a,intm) 〃〃〃〃〃/**a改為a[M][M]{intj,k;for(j=0;j<m;j++)for(k=1;k<m;k++) ////〃〃〃/k=1改為k=0a[j][k]=(k+1)*(j+1);}main(){inti,j,n;clrscr();printf("Entern:");scanf("%d",&n);fun(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("\n");}}在給定gc406.c程序中,函數(shù)fun的功能是:將長(zhǎng)整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為:87653142時(shí),t中的數(shù)為:7531。請(qǐng)改正函數(shù)fun中的三處錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得改變程序的結(jié)構(gòu)和算法,也不能增加或刪減程序行#include<conio.h>#include<stdio.h>voidfun(longs,long*t){intd;longsl=1;/************found************/t=0; /////////*t=0while(s>0){d=s%10;/************found************/if(d%2==0) ////////d%2!=0{*t=d*sl+*t;sl*=10;}/************found************/s=10; ///////s/=10}}main(){longs,t;clrscr();printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}gc407.c程序的功能是:讀入一個(gè)數(shù)字b,求sum=b+bb+bbb。例如:讀入數(shù)字7,則輸出下列表達(dá)式的和sum=7+77+777。請(qǐng)指正程序中的三處錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得改變程序的結(jié)構(gòu)和算法,也不能增加或刪除程序行。#include"stdio.h"#include"math.h"main(){inti=-1,j;longintb,temp,sum;scanf("%ld",b);//////////&bdo{i++;temp=0;for(j=0;j<=i;j++)temp=temp+(longint)pow(10,j-1)*b;//////temp=(longint)pow(10,j)*bsum+=temp;}while(i<=3); //////////while(i<3)printf("sum=%ld\n",sum);}gc453.c程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其它元素不變。程序有兩處錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h>main(){chara[]="clanguage",t;inti,j,k;k=strlen(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<=k;j++)////////for(j=i+2;j<=k;j+=2)if(a[i]<a[j]) ////////a[i]>a[j]{t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf("\n");}gc461.c程序功能為:使用冒泡法對(duì)數(shù)組data中的數(shù)據(jù)按升序排列,如data中數(shù)據(jù)為5,6,3,8,7,則輸出為3,5,6,7,8。程序中有三處錯(cuò)誤代碼,請(qǐng)指出并改正之.注意,不得改變程序結(jié)構(gòu)。main(){inti,data[]={5,6,3,8,7};sort(4,data[1]);///////sort(5,data)printf("TheSortednumbers:\n");for(i=1;i<=4;i++) ///////for(i=0;i<5;i++)printf("%d",data[i]);}sort(intn,intarray[]){inti,j,t;for(i=0;i<n;i++){for(j=0;j<=n-1;j++) ///////////for(j=0;j<n-i;j++)if(array[j]>array[j+1]){array[j]

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論