版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 按揭購(gòu)房貸款合同范本
- 展覽宣傳活動(dòng)合同
- 企業(yè)資產(chǎn)抵押貸款合同
- 2024購(gòu)車(chē)協(xié)議書(shū)合同范本
- 批量購(gòu)房合同協(xié)議
- 2024企業(yè)員工勞動(dòng)合同樣本
- 企業(yè)資產(chǎn)買(mǎi)賣(mài)合同模板
- 房屋轉(zhuǎn)讓協(xié)議標(biāo)準(zhǔn)合同范本
- 2024建設(shè)施工合同有些分類(lèi)
- 2024公司股權(quán)轉(zhuǎn)讓及后續(xù)合伙經(jīng)營(yíng)合同
- 公司組織架構(gòu)圖模板課件
- 遼寧省葫蘆島市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 植物種子的傳播方式課件
- 電纜敷設(shè)施工方案及安全措施
- 百合干(食品安全企業(yè)標(biāo)準(zhǔn))
- 肺血栓栓塞癥臨床路徑(縣級(jí)醫(yī)院版)
- 國(guó)開(kāi)成本會(huì)計(jì)第10章綜合練習(xí)試題及答案
- 《西游記》-三打白骨精(劇本臺(tái)詞)精選
- T∕CSCS 012-2021 多高層建筑全螺栓連接裝配式鋼結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)-(高清版)
- 充電站項(xiàng)目合作方案-高新
- 急診科臨床診療指南-技術(shù)操作規(guī)范更新版
評(píng)論
0/150
提交評(píng)論