【計(jì)算機(jī)等級(jí)考試】二級(jí)上機(jī)改錯(cuò)題100題_第1頁(yè)
【計(jì)算機(jī)等級(jí)考試】二級(jí)上機(jī)改錯(cuò)題100題_第2頁(yè)
【計(jì)算機(jī)等級(jí)考試】二級(jí)上機(jī)改錯(cuò)題100題_第3頁(yè)
【計(jì)算機(jī)等級(jí)考試】二級(jí)上機(jī)改錯(cuò)題100題_第4頁(yè)
【計(jì)算機(jī)等級(jí)考試】二級(jí)上機(jī)改錯(cuò)題100題_第5頁(yè)
已閱讀5頁(yè),還剩112頁(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)介

改錯(cuò)題

1、給定程序中fun函數(shù)的功能是:根據(jù)整型形參m的值,計(jì)算如下

111

t二]_____________.?????______

2*23*3~

公式的值:

例如,若m中的值為5,則應(yīng)輸出0.536389o

請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)

構(gòu)!

#include<stdio.h>

doublefun(intm)

{doubley=1.0;

inti;

/★*************found**************/

for(i=2;i<m;i++)改為:for(i=2;i<=m;i++)

/**************found**************/

y-=1/(i*i);改為:y-=1.0/(i*i);

return(y);

)

main()

{intn=5;

printf("\nTheresultis%lf\n",fun(n));

2、給定程序中fun函數(shù)的功能是:將s所指字符串的正序和反序進(jìn)

行連接,形成一個(gè)新串放在t所指的數(shù)組中。

例如,當(dāng)s所指字符串為“ABCD”時(shí),則t所指字符串的內(nèi)容應(yīng)為

“ABCDDCBA”

#include<stdio.h>

#include<string.h>

************found************

voidfun(chars,chart)改為:voidfun(char*s,char*t)

{inti,d;

d=strlen(s);

for(i=0;i<d;i++)t[i]=s[i];

for(i=0;i<d;i++)t[d+i]=s[d-1-i];

*****★★*★★**found**********★★

t[2*d-1]='\0';改為:t[2*d]='\0';

)

main()

{chars[100],t[100];

printf("\nPleaseenterstringS:");scant("%s",s);

fun(s,t);

printf("\nTheresultis:%s\n",t);}

3、給定程序中fun函數(shù)的功能是:將s所指字符串中位于奇數(shù)位置

的字符或ASCII碼為偶數(shù)的字符放入t所指數(shù)組中(規(guī)定第一個(gè)字符

放在第0位中)。

例如:字符串中的數(shù)據(jù)為:AABBCCDDE日干貝IJ應(yīng)輸出ABB8DEFF。

#include<stdio.h>

#include<string.h>

#defineN80

voidfun(char*s,chart[])

{inti,j=0;

for(i=0;i<strlen(s);i++)

/***********found**********/

if(i%2&&s[i]%2==0)改為:if(i%2==0||s[i]%2==0)

t[j++]=s[i];

/***********found**********/

t[i]='\o';改為:t[j=\(y;

)

main()

{chars[N],t[N];

printf("\nPleaseenterstrings:");gets(s);

fun(s,t);

printf("\nTheresultis:%s\n",t);

)

4、給定程序中fun函數(shù)的功能是:計(jì)算n!。例如,給n輸入5,則

輸出120.000000o

#include<stdio.h>

doublefun(intn)

{doubleresult=1.0;

/************found************/

ifn==0改為:if(n==0)

return1.0;

while(n>1&&n<170)

/************found************/

result*=n-改為:result*=n-;

returnresult;

)

main()

{intn;

printf("lnputN:");

scanf("%d",&n);

printf("\n\n%d!=%lf\n\n",n,fun(n));

)

5、給定程序中fun函數(shù)的功能是:先從鍵盤(pán)上輸入一個(gè)3行3列的

矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。

#include<stdio.h>

intfun()

{inta[3][3],sum;

inti,j;

…*…**found**********

改為:sum=O

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

/*********found**********

scanf("%d",a[i][j]);改為:scanf("%d",&a[i][j]);

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf("Sum=%d\n",sum);

main()

{fun();}

6、給定程序中fun函數(shù)的功能是:求,(此處aa..aa表示n個(gè)a,a

和n的值在1至9之間)。例如,a=3,n=6,則以上表達(dá)式為:

s=333333-33333-3333-333-33-3,其值是:296298。a和n是fun

函數(shù)的形參。

#include<stdio.h>

longfun(inta,intn)

{intj;

/**************found**************/

longs=0,t=1;改為:longs=0,t=0;

/**************found**************/

for(j=0;j<=n;j++)改為:for(j=0;j<n;j++)

t=t*10+a;

s=t;

for(j=1;j<n;j++){

/******★★******found****★★*★★*****/

t=t%10;改為:t=t/10;

s=s-1;}

return(s);

main()

{inta,n;

printf("\nHeaseenteraandn:");

scant("%d%d",&a,&n);

printf("Thevalueoffunctionis:%ld\n",fun(a,n));

)

7、給定程序中fun函數(shù)的功能是:求k!(k<13),所求階乘的值作為

函數(shù)值返回。例如:若k=10,則應(yīng)輸出3628800。

#include<stdio.h>

longfun(intk)

(

廣***********弋ound************I

ifk>0改為:if(k>0)

return(k*fun(k-1));

/************found************/

elseif(k=0)改為:elseif(k==0)

return1L;

)

main()

{intk=10;

printf("%d!=%ld\n",k,fun(k));}

8、給定程序中fun函數(shù)的功能是:由形參給定n個(gè)實(shí)數(shù),輸出平均

值,并統(tǒng)計(jì)在平均值以上(含平均值)的實(shí)數(shù)個(gè)數(shù)。

例如,n=8時(shí),輸入:

193.99,195.673,195.757,196.051,196.092,196.596,196.579,196.76

3,所得平均值為:195.838745,在平均值以上的實(shí)數(shù)個(gè)數(shù)應(yīng)為:5。

#include<stdio.h>

intfun(floatx[],intn)

(

/************found************/

intj,c=0,floatxa=0.0;改為:intj,c=0;floatxa=0.0;

for(j=0;j<n;j++)

xa+=x[j]/n;

printf("ave=%f\n",xa);

for(j=0;j<n;j++)

/******★★★***found******★**★★*/

if(x[j]=>xa)改為:if(x[j]>=xa)

C++;

returnc;

main()

{floatx[100]={193.199,195.673,195.757,196.051,

196.092,196.596,196.579,196.763};

printf("%d\n",fun(x,8));}

9、給定程序中fun函數(shù)的功能是:將tt所指字符串中的小寫(xiě)字母都

改為對(duì)應(yīng)的大寫(xiě)字母,其它字符不變。例如:若輸入“Ab,cD",則輸

出“AB,8”

#include<stdio.h>

#include<string.h>

char*fun(chartt[])

{inti;

for(i=0;tt[i];i++)

/**********!QUP|£|***********/

if(('a,<=tt[i])||(tt[i]<=N))改為:if{(tt[i]>='a')&&(tt[i]<=

N))

/**********!QUP^|***********/

tt[i]+=32;改為:tt[i]-=32;

return(tt);

main()

{chartt[81];

printf("\nPleaseenterastring:");

gets(tt);

printf("\nTheresultstringis:\n%s",fun(tt));}

10、給定程序中fun函數(shù)的功能是:在p所指字符串中找出ASQI

碼值最大的字符,將其放在第一個(gè)位置上;并將該字符前的原字符向

后順序移動(dòng)。例如,調(diào)用fun函數(shù)這前給字符串輸入:ABCDeFGH,

調(diào)用后字符串中的內(nèi)容為:eABCDFGHo

#include<stdio.h>

/**********found**********/

fun(char*p)改為:voidfun(char*p)

{charmax,*q;inti=0;

max=p[i];

while(p[i]!=0)

{if(max<p[i])

{max=p[i];

/**********found**********/

q=p+l改為:q=p+i;

)

i++;}

/**********found**********!

wihle(q>p)改為:while(q>p)

{*q=*(q-1);

q-;)

p[O]=max;

)

main()

{charstr[80];

printf("Enterastring:");gets(str);

printf("\nTheoriginalstring:");puts(str);

fun(str);

printf("\nThestringaftermoving:puts(str);printf("\n\n");}

11、給定程序MODI1.CJ是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)

函數(shù)為各結(jié)點(diǎn)賦值。給定程序中fun函數(shù)的功能是將單向鏈表結(jié)點(diǎn)

(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并作為函數(shù)值返回。

#include<stdio.h>

#include<stdlib.h>

typedefstructaa

{intdata;structaa*next;}NODE;

intfun(NODE*h)

{intsum=0;

NODE*p;

/***********found******

p=h;改為:p=h->next;

/**********found**********

while(p->next)改為:while(p)

{if(p->data%2==0)sum+=p->data;

/***********found**********/

p=h->next;改為:p=p->next;

)

returnsum;

)

NODE*creatlink(intn)

{NODE*h,*p,*s,*q;

inti,x;

h=p=(NODE*)malloc(sizeof(NODE));

for(i=1;i<=n;i++)

{s=(NODE*)malloc(sizeof(NODE));

s->data=rand()%16;s->next=p->next;

p->next=s;p=p->next;}

p->next=NULL;

returnh;

outlink(NODE*h,FlLE*pf)

{NODE*p;

p=h->next;

fprintf(pf,"\n\nTHELIST:\n\nHEAD");

while(p)

{fprintf(pf,"->%d",p->data);p=p->next;}

fprintf(pf,"\n");

)

outresult(ints,FlLE*pf)

{fprintf(pf,"\nThesumofevennumbers:%d\n",s);}

main()

{NODE*head;inteven;

head=creatlink(12);

head->data=9000;

outlink(head,stdout);

even=fun(head);

printf("\nTheresult:\n");outresult(even,stdout);

)

12、給定程序中fun函數(shù)的功能是:求三個(gè)數(shù)的最小公倍數(shù)。例如,

給主函數(shù)中的變量x1,x2,x3分別輸入15112,則輸出結(jié)果應(yīng)當(dāng)是:

330o

#include<stdio.h>

/★★★★★★★★★★★★found************I

fun(intx,y,z)改為:fun(intx,inty,intz)

{intj,t,n,m;

/************found************/

j=1;改為:j=X;

t=j%x;m=j%y;n=j%z;

/*★★***★★***★found**★★******★★I

while(t!=0&&m!=0&&n!=0)改為:while(t!=0||m!=0||n!=0)

{j=j+1;t=j%x;m=j%y;n=j%z;}

/************found************/

returni;改為:returnj;

)

main()

{intx1,x2,x3,j;

printf("lnputx1x2x3:");scanf("%d%d%d",&x1,&x2,&x3);

printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);

j=fun(x1,x2,x3);

printf("Theminimalcommonmultipleis:%d\n",j);}

13、給定程序中fun函數(shù)的功能是:先將在字符串s中的字符按正序

存放到t串中,然后把s中的字符按逆序連接到t串的后面。例如:

當(dāng)s聽(tīng)字符串為"ABODE'時(shí),則t中的字符串應(yīng)為“AB8EEDCBA”。

#include<stdio.h>

#include<string.h>

voidfun(char*s,char*t)

{inti,si;

si=strlen(s);

/************found************/

for(i=0;i<=s1;i++)改為:for(i=0;i<si;i++)

t[i]=s[i];

for(i=0;i<sl;i++)

t[sl+i]=s[sl-i-1];

/*★**★****found************/

t[sl]='\0';改為:t[2*sl]='\0';

)

main()

{chars[100],t[100];

printf("\nPleaseenterstrings:");scanf("%s",s);

fun(s,t);

printf("Theresultis:%s\n",t);

14、給定程序中fun函數(shù)的功能是:從s所指字符串中刪除所有小寫(xiě)

字母Co

#include<stdio.h>

voidfun(char*s)

{inti,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

/*★*****★*★*★found**★★********I

s[j]=s[i];改為:s[j++]=s[i];

/************found************/

s[i]='\0';改為:s[j]='\O';

)

main()

{chars[80];

printf("Biterastring:");gets(s);

printf("Theoriginalstring:");puts(s);

fun(s);

printf("Thestringafterdeleted:");puts(s);printf("\n\n");

)

15、給定程序中fun函數(shù)的功能是:從整數(shù)1到55之間,選出能被

3整除、且有一位上的數(shù)是5的那些數(shù),并把這些數(shù)放在b所指的數(shù)

組中,這些數(shù)的個(gè)數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中a1放個(gè)位數(shù),

a2放十位數(shù)。

#include<stdio.h>

/************found************/

fun(int*b)改為:intfun(int*b)

{intk,a1,a2,i=0;

/************found************/

for(k=10;k<=55;k++){改為:for(k=10;k<55;k++){

/************found************/

a2=k/1O;改為:a2=k/10;

a1=k-a2*10;

if((k%3==0&&a2==5)||(k%3==0&&a1==5))

{b[i]=k;i++;}

)

/************found************/

returnk;改為:returni;

)

main()

{inta[100],k,m;

m=fun(a);

printf("Theresultis:\n");

for(k=0;k<m;k++)printf("%4d",a[k]);printf("\n");

16、給定程序中fun函數(shù)的功能是:求S的值。

S=-(2歲

1?33?55?7(2上-1)(2上+1),

例如,當(dāng)k為10時(shí),函數(shù)值應(yīng)為:1.533852。

#include<stdio.h>

#include<math.h>

************found************

voidfun(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++;

/************found************/

returns改為:returns;

)

main()

{printf("%f\n",fun(10));}

17、給定程序中fun函數(shù)的功能是:將十進(jìn)制正整數(shù)m轉(zhuǎn)換成

k(2<=k<=9)進(jìn)制數(shù),并按高位到低位順序輸出。

例如,若輸入8和2,則應(yīng)輸出1000(即十進(jìn)制數(shù)8轉(zhuǎn)換成二進(jìn)制

表示是1000)。

#include<conio.h>

#include<stdio.h>

/*★********found**********/

fun(intm,intk)改為:voidfun(intm,intk)

{intaa[20],i;

for(i=0;m;i++)

(

/**********found**********/

aa[i]=m/k;改為:aa[i]=m%k;

m/=k;

for(;i;i-)

**★★★★★★★★found★★★★★*★★★*

printf("%d",aa[i]);改為:printf("%d",aa[i-1]);

main()

{intb,n;

printf("\nPleaseenteranumberandabase:\n");scanf("%d%d",

&n,&b);

fun(n,b);printf("\n");}

18、給定程序中fun函數(shù)的功能是:根據(jù)整型形參n,計(jì)算如下公式

4==---,A=―--,4=---

1+431+^2

的值。

例如:若n=10,則應(yīng)輸出0.617977.

#include<stdio.h>

************found************

intfun(intn)改為:floatfun(intn)

{floatA=1;inti;

…*********Nnd…*……**

for(i=2;i<n;i++)改為:for(i=2;i<=n;i++)

A=1.0/(1+A);

returnA;}

main()

{intn;

printf("\nPleaseentern:");

scanf("%d",&n);printf("A%d=%f\n",n,fun(n));}

19、給定程序中fun函數(shù)的功能是:輸出M行M列整數(shù)方陣,然后

求兩條對(duì)角線上元素之和,返回此和數(shù)。

#include<stdio.h>

#defineM5

************found************

intfun(intn,intxx[][])改為:intfun(intn,int

{inti,j,sum=O;

printf("\nThe%dx%dmatrix:\n",M,M);

for(i=0;i<M;i++)

{for(j=0;j<M;j++)

************found************

printf("%f",xx[i][j]);改為:printf("%4d",xx[i][j]);

printf("\n");}

for(i=0;i<n;i++)

sum+=xx[i][i]+xx[i][n-i-1];

return(sum);

)

main()

{intaa[M][M]={{1,2,3,4,5},{4,3,2,1,0},

(6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7});

printf("\nThesumofallelementson2diagnalsis%d.",fun(M,

aa));}

20、給定程序中fun函數(shù)的功能是:求出s所指字符串中最后一次出

現(xiàn)的t所指子字符串的地址,

通過(guò)函數(shù)值返回,在主函數(shù)中從此地址開(kāi)始的字符串;若未打到,則

函數(shù)值為NULL0

例如:當(dāng)字符串中的內(nèi)容為:“abcdabfabcdx”,t中的內(nèi)容為“ab”時(shí),

輸出結(jié)果為:abcdxo當(dāng)字符串中的內(nèi)容為:"abcdabfabcdx",t中的

內(nèi)容為“abd”時(shí),則程序輸出未打到住處:notbefound!

#include<stdio.h>

#include<string.h>

char*fun(char*s,char*t)

{char*p,*r,*a;

/************found************!

a=Null;改為:a=NULL;

while(*s)

{p=s;r=t;

while(*r)

/************found************/

if(r==p)改為:if(r*==*p)

{r++;p++;}

elsebreak;

if(*r=='\0')a=s;

s++;}

returna;

)

main()

{chars[100],t[100],*p;

printf("\nPleaseenterstringSscant("%s",s);

printf("\nPleaseentersubstringtscant("%s",t);

p=fun(s,t);

if(p)printf("\nTheresultis:%s\n",p);

elseprintf("\nNotfound!\n");

21、給定程序中fun函數(shù)的功能是:統(tǒng)計(jì)一個(gè)無(wú)符號(hào)整數(shù)中各位數(shù)字

值為零的個(gè)數(shù),通過(guò)形參傳叵I主函數(shù),并把該整數(shù)中各位上最大的數(shù)

字值作為函數(shù)值返回。例如,若輸入無(wú)符號(hào)整數(shù)30800,則數(shù)字值為

零的個(gè)數(shù)為3,各位上數(shù)字值最大的是8。

#include<stdio.h>

intfun(unsignedn,int*zero)

{intcount=0,max=0,t;

do

{t=n%10;

/**************found**************/

if(t=O)改為:if(t==O)

count++;

if(max<t)max=t;

n=n/10;

}while(n);

/**************found**************/

zero=count;改為:*zero=count;

returnmax;

)

main()

{unsignedn;intzero,max;

printf("\nlnputn(unsigned):");scanf("%d",&n);

max=fun(n,&zero);

printf("\nTheresult:max=%dzero=%d\n",max,zero);

)

22、給定程序中fun函數(shù)的功能是:求整數(shù)x的y次方的低3位值。

例如,整數(shù)5的6次方為15625,此值的低3位值為6250

#include<stdio.h>

longfun(intx,inty,long*p)

{inti;

longt=1;

/**************found**************/

for(i=1;i<y;i++)改為:for(i=1;i<=y;i++)

t=t*x;

*p=t;

/**************found**************/

t=t/1OOO;改為:t=t%1000;

returnt;

)

main()

{longt,r;intx,y;

printf("\nlnputxandy:");scant("%Id%Id",&x,&y);

t=fun(x,y,&r);

printf("\n\nx=%d,y=%d,r=%ld,last=%ld\n\n",x,y,r,t);

23、給定程序中fun函數(shù)的功能是:給一維數(shù)組a輸入任意4個(gè)整數(shù),

并按下列的規(guī)律輸出。例如輸入1,2,3,4,程序運(yùn)行后輸出以下

方陣。

4123

3412

2341

1234

#include<stdio.h>

#defineM4

*************Hound**************

voidfun(inta)改為:voidfun(inta[M])

{int

printf("Enter4number:");

for(i=0;i<M;i++)scanf("%d",&a[i]);

printf("\n\nTheresult:\n\n");

for(i=M;i>0;i-)

{k=a[M-1];

for(j=M-1;j>0;j-)

**************found**************

aa[j]=a[j-1];改為:a[j]=a[j-1];

a[O]=k;

for(m=0;m<M;m++)printf("%d",a[m]);

printf("\n");

)

)

main()

{inta[M];

fun(a);printf("\n\n");}

24、在主函數(shù)中從鍵盤(pán)輸入若干個(gè)數(shù)放入數(shù)組中,用0結(jié)束輸入并放

在最后一個(gè)元素中。給定程序中fun函數(shù)的功能是:計(jì)算數(shù)組元素中

值為正數(shù)的平均值(不包括0)。例如,數(shù)組中元素中值依次為:39,

-47,21,2,-8,15,0,則程序運(yùn)行結(jié)果為19.250000。

#include<stdio.h>

doublefun(intx[])

(

/************found************/

intsum=0.0;改為:doublesum=0.0;

intc=0,i=0;

while(x[i]!=0)

{if(x[i]>0){sum+=x[i];C++;}

i++;}

**★★★★★*★***found****★★**

sum\=c;改為:sum/=c;

returnsum;

main()

{intx[1000];inti=0;

printf("\nHeaseentersomedata(endwith0):");

do{scanf("%d",&x[i]);}while(x[i++]!=0);

printf("%f\n",fun(x));

25、給定程序中fun函數(shù)的功能是:根據(jù)整形形參m,計(jì)算如下公式

1111

y=1+--------+---------+---------+.......+----------

2*23*34*4iri*in~

的值:~

例如,若m中的值為5,則應(yīng)輸出1.463611。

#include<stdio.h>

doublefun(intm)

{doubley=1.0;

inti;

**************found**************

for(i=2;i<m;i++)改為:for(i=2;i<=m;i++)

**************found**************

y+=1/(i*i);改為:y+=1.0/(i*i);

return(y);

main()

{intn=5;

printf("\nTheresultis%lf\n",fun(n));}

26、給定程序中fun函數(shù)的功能是:將p所指字符串中每個(gè)單詞的最

后一個(gè)字母改成大寫(xiě)。(這里的“單詞”是指由空格隔開(kāi)的字符串)。例

如,若輸入"Iamastudenttotaketheexamination.",則應(yīng)輸出“IaM

AstudenTtOtakEthEexaminatioN."。

#include<ctype.h>

#include<stdio.h>

voidfun(char*p)

{intk=0;

for(;*p;p++)

if(k)

**********found***********

if(p==")改為:if(*p==")

{k=0;

/**********found***********

*(p-1)=toupper(*(p-1))改為:*(p-1)=toupper(*(p-1));

elsek=1;

main()

{charchrstr[64];

intd;

printf("\nHeaseenteranEnglishsentencewithin63letters:");

gets(chrstr);d=strlen(chrstr);

chrstr[d]='';chrstr[d+1]=0;

printf("\n\nBeforechanging:\n%s",chrstr);

fun(chrstr);

printf("\nAfterchanging:\n%s",chrstr);

27、給定程序中fun函數(shù)的功能是:將n個(gè)無(wú)序整數(shù)從小到大排序。

#include<stdio.h>

#include<stdlib.h>

fun(intn,int*a)

{inti,j,p,t;

for(j=0;j<n-1;j++)

{P=j;

/************found************/

for(i=j+1;i<n-1;i++)改為:for(i=j+1;i<n;i++)

if(a[p]>a[i])

/************found************/

t=i;改為:p=i;

if(p!=j){t=a[j];a[j]=a[p];a[p]=t;}

)

)

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]={9,3,0,4,1,2,5,6,8,10,7},n=11;

printf("\n\nBeforesorting%dnumbers:\n",n);putarr(n,aa);

fun(n,aa);

printf("\nAftersorting%dnumbers:\n",n);putarr(n,aa);}

28、給定程序中fun函數(shù)的功能是:將s所指字符串中的字母轉(zhuǎn)換為

按字母序列的后續(xù)字母(但Z轉(zhuǎn)換為A,z轉(zhuǎn)換為a),其它字符不變。

#include<stdio.h>

#include<ctype.h>

voidfun(char*s)

(

/**********found***********/

while(*s!='@')改為:while(*s!='\0')

{if(*s>='A'&*s<='Z'||*s>='a'&&*s<='z')

{if(*s=='Z')*s='A';

elseif(*s=='z')*s='a';

else*s+=1;

)

/★★********found***********I

(*s)++;改為:S++;

main()

{chars[80];

printf("\nEnterastringwithlength<80.:\n\n");gets(s);

printf("\nThestring:\n\n");puts(s);

fun(s);

printf("\n\nTheCords:\n\n");puts(s);

)

29、給定程序中fun函數(shù)的功能是:在字符串的最前端加入n個(gè)*號(hào),

形成新串,并且覆蓋原串。(注意:字符串的長(zhǎng)度最長(zhǎng)允許為79)。

#include<stdio.h>

#include<string.h>

I**********found***********/

voidfun(chars[],intn)改為:voidfun(char*s,intn)

{chara[80],*p;

inti;

/**********founcT**********/

s=p;改為:p=s;

for(i=0;i<n;i++)a[i]='*';

do

{a[i]=*p;

i++;}

I**********found***********/

while(*p);改為:while(*p++);

a[i]=0;

strcpy(s,a);

)

main()

{intn;chars[80];

printf("\nEnterastring:");gets(s);

printf("\nThestring\"%s\"\n",s);

printf("\nEntern(numberof*):");scanf("%d",&n);

fun(s,n);

printf("\nThestringafterinster:\"%s\"\n",s);

)

30、給定程序中fun函數(shù)的功能是:實(shí)現(xiàn)兩個(gè)整數(shù)的交換。例如給a

和b分別輸入60和65,輸出結(jié)果為a=65b=60。

#include<stdio.h>

/**********found**********/

voidfun(inta,b)改為:voidfun(int*a,int*b)

{intt;

/**********found**********!

t=b;b=a;a=t;改為:t=*b;*b=*a;*a=t;

main()

{inta,b;

printf("Entera,b:scant("%d%d",&a,&b);

fun(&a,&b);

printf("a=%db=%d\n",a,b);

)

31>給定程序中fun函數(shù)的功能是:首先把b所指字符串中的字符按

逆序存放,然后將?a所指字符串中的字符和b所指字符串中的字符,

按排列的順序交叉合并到c所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在c所指

數(shù)組的尾部。例如,當(dāng)a所指字符串中的內(nèi)容為“abcdefg",b所指字

符串中的內(nèi)容為“1234”時(shí),c所指數(shù)組中的內(nèi)容應(yīng)該為

“a4b3c2dlefg";而當(dāng)a所指字符串中的內(nèi)容為“1234”,b所指字符

串中的內(nèi)容為時(shí)“abcdefg”,c所指數(shù)組中的內(nèi)容應(yīng)該為

"1g2f3e4dcba,,o

#include<stdio.h>

#include<string.h>

voidfun(char*a,char*b,char*c)

{inti,j;charch;

i=0;j=strlen(b)-1;

**★★★★★*★***found****★★**

while(i>j)改為:while(i<j)

{ch=b[i];b[i]=b[j];b[j]=ch;

i++;j-;}

while(*a11*b){

if(*a){*c=*a;C++;a++;}

if(*b){*c=*b;C++;b++;}

************found************

c=0;改為:*c='\0'

main()

{chars1[100],s2[100],t[200];

printf("\nEnters1string:");scanf("%s",s1);

printf("\nEnters2string:");scanf("%s",s2);

fun(s1,s2,t);

printf("\nTheresultis:%s\n",t);

32、給定程序中fun函數(shù)的功能是:讀入一個(gè)字符串(長(zhǎng)度<20),

將該字符串中的所有字符按ASCII碼升序排序后輸出。例如:若輸入

edcba,則應(yīng)輸出abode。

#include<stdio.h>

voidfun(chart[])

{charc;

inti,j;

I**********found***********/

for(i=strlen(t);i;i-)改為:for(i=strlen(t);i>0;i-)

for(j=0;j<i;j++)

/**********found***********/

if(t[j]<t[j+1])改為:1])

{c=t[j];t[j]=t[j+1];t[j+1]=c;}

)

main()

{chars[81];

printf("\nHeaseenteracharacterstring:");

gets(s);

printf("\n\nBeforesorting:\n\"%s\"",s);

fun(s);

printf("\nAftersortingdecendingly:\n\"%s\"",s);

33、給定程序中fun函數(shù)的功能是:將一個(gè)八進(jìn)制數(shù)字字符組成的字

符串轉(zhuǎn)換為其面值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包

含5位八進(jìn)制數(shù)字字符。例如,若輸入77777,則輸出將是32767。

#include<stdio.h>

intfun(char*p)

{intn;

/★★★★★★★★★★found**********I

n=*P-'o';改為:n=*p-'O';

P++;

while(*p!=0){

/**********found**********/

n=n*7+*P-,o*;改為:n=n*8+*p-'O';

P++;}

returnn;

)

main()

{chars[6];inti;intn;

printf("Enterastring(Ocataldigits):");gets(s);

if(strlen(s)>5){printf("Error:Stringtoolonger!\n\n");exit(0);}

for(i=0;s[i];i++)

if(s[i]<'01||s[i]>(71)

{printf("Error:%cnotisocataldigits!\n\n",s[i]);exit(O);}

printf("Theoriginalstring:");puts(s);

n=fun(s);

printf("\n%sisconveredtointegernumber:%d\n\n",s,n);

)

34、給定程序中fun函數(shù)的功能是:求出以下分?jǐn)?shù)序列的前n項(xiàng)之和。

23581321

1235813,

和的值通過(guò)函數(shù)值返回main函數(shù)。

#include<stdio.h>

**************found**************

fun(intn)改為:doublefun(intn)

{inta=2,b=1,c,k;

doubles=0.0;

for(k=1;k<=n;k++)

{s=s+1.0*a/b;

★*★***********found**************

c=a;a+=b;b+=c;改為:c=a;a+=b;b=c;

return(s);

main()

{intn=5;

printf("\nThevalueoffunctionis:%lf\n",fun(n));}

35、給定程序中fun函數(shù)的功能是:從s所指字符串中,找出與t所

指字符串相同的子串的個(gè)數(shù)作為函數(shù)值返回I。例如,當(dāng)s所指字符串

中的內(nèi)容為“abcdabfab",t所指字符串的內(nèi)容為“ab”,則函數(shù)返回整

數(shù)3.

#include<stdio.h>

#include<string.h>

intfun(char*s,char*t)

{intn;char*p,*r

n=0;

while(*s)

{p=s;r=t;

while(*r)

************found************

if(r==p){改為:if(*r==*p){

**********found…*……**

r++;p++改為:r++;p++;

elsebreak;

/************found************

if(r=='\0')改為:if(*r=='\0')

n++;

s++;

)

returnn;

main()

{chars[100],t[100];intm;

printf("\nPleaseenterstringS:");scant("%s",s);

printf("\nPleaseentersubstringt:");scant("%s",t);

m=fun(s,t);

printf("\nTheresultis:m=%d\n",m);}

36、給定程序中fun函數(shù)的功能是:先將s所指字符串中的字符按逆

序存放到t所指字符串中,然后把s所指串中的字符按正序連接到t

所指串的后面。例如,當(dāng)s所指的字符串為"ABCDE時(shí),則t所指的

字符串應(yīng)為"EDCBAABCDE,

#include<stdio.h>

#include<string.h>

voidfun(char*s,char*t)

/************found************/

inti;改為:inti,s1;

si=strlen(s);

for(i=0;i<sl;i++)

/*★*****★*★*★found**★★********I

t[i]=s[sl-i];改為:t[i]=s[sl-i-1];

for(i=0;i<sl;i++)

t[sl+i]=s[i];

t[2*sl]='\0';

)

main()

{chars[100],t[100];

printf("\nPleaseenterstrings:");scant("%s",s);

fun(s,t);

printf("Theresultis:%s\n",t);}

37、給定程序中fun函數(shù)的功能是:依次取出字符串中所有數(shù)字字符,

形成新的字符串,并取代原字符串。

#include<stdio.h>

voidfun(char*s)

{inti,j;

for(i=0,j=0;s[i]!='\O';i++)

if(s[i]>='O'&&s[i]<='9')

******★★★*found**********

s[j]=s[i];改為:s[j++]=s[i];

I**********found**********

s[j]="\O";改為:s[j]='\0';

main()

{charitem[80];

printf("\nEnterastring:");gets(item);

printf("\n\nThestringis:\"%s\"\n",item);

fun(item);

printf("\n\nThestringofchangingis:\"%s\"\n",item);}

38、給定程序中fun函數(shù)的功能是:統(tǒng)計(jì)字符串中各元音字母(即

A,E,I,O,U)的個(gè)數(shù)。注意,字母不分大小寫(xiě)。例如輸入:THIsisaboot,

則輸出應(yīng)該是:1、0、2、2、0o

#include<stdio.h>

**********found**********

fun(char*s,intnum[5])改為:voidfun(char*s,intnum[5])

{intk,i=5;

for(k=0;k<i;k++)

/**********found**********

num[i]=0;改為:num[k]=0;

for(;*s;s++)

{i=-1;

I**********found**********

switch(s)改為:switch(*s)

{case'a':case'A':{i=0;break;}

case'e':case'E':{i=1;break;}

case'i':caseT:{i=2;break;}

case'o':case'O':{i=3;break;}

case'u':case'll':{i=4;break;}}

if(i>=0)num[i]++;}

)

main()

{chars1[81];intnum1[5],i;

printf("\nPleaseenterastring:");gets(s1);

fun(s1,num1);

for(i=0;i<5;i++)printf("%d",num1[i]);printf("\n");}

39、給定程序中fun函數(shù)的功能是:計(jì)算正整數(shù)num的各位上的數(shù)

字之積。例如,若輸入252,則輸出應(yīng)該是20。若輸入202,則輸出

應(yīng)該是0。

#include<stdio.h>

longfun(longnum)

(

/************found************/

longk;改為:longk=1;

do

{k*=num%10;

/************found************/

num\=10;改為:num/=10;

}while(num);

return(k);

)

main()

{longn;

printf("\Pleaseenteranumber:");scanf("%ld",&n);

printf("\n%ld\n",fun(n));}

40、假定整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。給定程序中fun

函數(shù)的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素

的個(gè)數(shù)。

#include<stdio.h>

#defineN20

fun(int*a,intn,intx)

{intp=0,i;

a[n]=x;

while(x!=a[p])

P=P+1;

/*★********found★*★★******/

if(p==n)return-1;改為:Wp==n)return-1;

else

{for(i=p;i<n;i++)

/**********found**********/

a[i+1]=a[i];改為:a[i]=a[i+1];

returnn-1;}

)

main()

{intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%5d",w[i]);

printf("\nlnputx(todelete):");scanf("%d",&x);

printf("Delete:%d\n",x);

n=fun(w,n,x);

if(n==-1)printf("***Notbefound!***\n\n");

else

{printf("Thedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%5d",w[i]);printf("\n\n");}

41、給定程序中fun函數(shù)的功能是:計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)

之和直到大于q為止,q的值通過(guò)形參傳入。

?234N+l

=—+—+—+…+------

123N

例如,若q的值為50.0,則函數(shù)值為49.394948。

#include<stdio.h>

doublefun(doubleq)

{intn;doubles,t;

n=2;

s=2.0;

while(s<=q)

{t=s;

************found************

s=s+(n+1)/n;改為:s=s+(double)(n+1)/n;

n++;}

printf("n=%d\n",n);

/************found************/

returns;改為:returnt;

)

main()

{printf("%f\n",fun(50));}

42、給定程序中fun函數(shù)的功能是:根據(jù)輸入的三個(gè)邊長(zhǎng)(整型值),

判斷能束構(gòu)成三角形,構(gòu)成的是等邊三解形還是等腰三角形。若能構(gòu)

成等邊三角形函數(shù)返回3,若能構(gòu)成等腰三角形函數(shù)返回2,若能構(gòu)

成一般三角形函數(shù)返回1,若不能構(gòu)成三角形函數(shù)返回0。

#include<stdio.h>

#include<math.h>

/**************found**************I

voidfun(inta,intb,intc)改為:intfun(inta,intb,intc)

{if(a+b>c&&b+c>a&&a+c>b){

if(s==b&&b==c)

/**************found**************/

return1;改為:return3;

elseif(a==b||b==c||a==c)

return2;

**************found**************

elseretrun1改為:elsereturn1;

)

elsereturn0;

main()

{inta,b,c,s

溫馨提示

  • 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)論