C語(yǔ)言課后習(xí)題解答北郵版_第1頁(yè)
C語(yǔ)言課后習(xí)題解答北郵版_第2頁(yè)
C語(yǔ)言課后習(xí)題解答北郵版_第3頁(yè)
C語(yǔ)言課后習(xí)題解答北郵版_第4頁(yè)
C語(yǔ)言課后習(xí)題解答北郵版_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

************

1、算法描述主要是用兩種基本方法:第一是自然語(yǔ)言描述,第二是使用專(zhuān)用工具進(jìn)行算法

描述

2、c語(yǔ)言程序的結(jié)構(gòu)如下:

1、c語(yǔ)言程序由函數(shù)組成,每個(gè)程序必須具有個(gè)main函數(shù)作為程序的主控函數(shù)。

2、,,/*,,與,,*/,,之間的內(nèi)容構(gòu)成。語(yǔ)言程序的注釋部分。

3、用預(yù)處理命令#include可以包含有關(guān)文件的信息。

4、大小寫(xiě)字母在c語(yǔ)言中是有區(qū)別的。

5、除main函數(shù)和標(biāo)準(zhǔn)庫(kù)函數(shù)以外,用戶(hù)可以自己編寫(xiě)函數(shù),程序一般由多個(gè)函數(shù)組成,

這些函數(shù)制定實(shí)際所需要做的工作。

例如:

voidmain()

{

inta,b,c,s;

a=8;b=12;c=6;

s=a+b*c;

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

}

3、c語(yǔ)言的特點(diǎn):

1、c語(yǔ)言具有結(jié)構(gòu)語(yǔ)言的特點(diǎn),程序之間很容易實(shí)現(xiàn)段的共享;

2、c語(yǔ)言的主要結(jié)構(gòu)成分為函數(shù),函數(shù)可以在程序中被定義完成獨(dú)立的任務(wù),獨(dú)立地編

譯成代碼,以實(shí)現(xiàn)程序的模塊化。

3、c語(yǔ)言運(yùn)算符豐富,運(yùn)算包含的范圍很廣;

4、c語(yǔ)言數(shù)據(jù)類(lèi)型豐富。

5、c語(yǔ)言允許直接訪(fǎng)問(wèn)物理地址,即可直接對(duì)硬件進(jìn)行操作,實(shí)現(xiàn)匯編語(yǔ)言的大部分功

能;

6、c語(yǔ)言語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,這樣是c語(yǔ)言能夠減少對(duì)程序員的束

縛;

7、用c語(yǔ)言編程,生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高,可移植性好;

4、合法標(biāo)識(shí)符:AB12、leed_3、EF3_3、J62、PAS、XYZ43K2

不合法標(biāo)識(shí)符:a*b2、8stu,D.K.Jon、if、ave#xy、#_DT5、C.D

5、F2:將當(dāng)前編輯器中文件存盤(pán)

F10:調(diào)用主菜單

F4:程序運(yùn)行到光標(biāo)所在行

Ctrl+F9:當(dāng)前編輯環(huán)境下,進(jìn)行編譯、連接且運(yùn)行程序;

Alt+F5:將窗口切換至DOS下,查看程序運(yùn)行結(jié)果

6、

(1):

welcomeyou

verygood

(2):

pleaseinputthreenumber;5,7,8

maxnumberis:8

7、main

8、Userscreen>Alt+F5

9、標(biāo)識(shí)符必須是字母或下劃線(xiàn)開(kāi)頭,大小寫(xiě)字母含義不同。由數(shù)字、字母和下劃線(xiàn)組成;

關(guān)鍵字是一種語(yǔ)言中規(guī)定具有特定含義的標(biāo)識(shí)符。關(guān)鍵字不能作為變量或函數(shù)名來(lái)使用,

用戶(hù)只能根據(jù)系統(tǒng)的規(guī)定使用它們。

10、選擇主菜單File項(xiàng)下拉子菜單中Save項(xiàng)或直接按F2鍵存盤(pán)。

************

1、符合C語(yǔ)法規(guī)定的常數(shù)為:Oxle,"ab\n'\l.e5

2、(1):

錯(cuò)誤如下:intx,y=5,z=5,aver;

x=7;

aver=(x+y+x)/3;

結(jié)果如下:AVER=5

(2):

錯(cuò)誤如下:charcl='a',c2='b',c3='c';

printf("a=%db=V%c\'\"end\"\n",a,b);

結(jié)果如下:a=3b='A"'end"

aabccabc

4、(1):9,11,9,10

(2):3,1,0,0

(3):11,19,31,1

5、(1):0

(2):0

(3):9.500000

(4):90

(5):10

(6):10

(7):65

(8):4

(9):4.500000

(10):1

(11):0

(12):20

(13):0

6、(5)

7、求x的絕對(duì)值

8、c>(max=a>b?a:b)?c:max;

9、B

10、D

二十::4二二1二二1::1二:4^

1、輸入函數(shù)scanf的參數(shù)錯(cuò)誤,應(yīng)該為:scanf("%f”,&k);

2、1123412341

3、fflO

4、1,3,1

5、原字符串

左邊加空格再加字符串本省,字符個(gè)數(shù)總和為5個(gè)

6、scanf("%d,%d,%c,%c",&al,&a2,&cI,&c2);

7、printf("a+b=%d\n",a+b);

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

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

printf(Ha/b=%d\nn,a/b);

printf(H(float)a/b=%AnM,(float)a/b);

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

8、voidmain()

(

floatr;

floats,c;

printf(npleaseinputthenumber:1');

scanf(,"%f',&r);

if(r>=0)

(

s=3.14*r*r;

c=2*3.14*r;

printf(ns=%f,c=%f\n*',s,c);

}

else

printf("youinputnumberiserror!");

)

9、voidmain()

(

intn;

printf(npleaseinputthenumber:");

scanf(n%dH,&n);

if(n>=100&&n<=999)

printf(n%d%d%d';n%10,(n/10)%10,n/100);

else

printf("youinputnumberiserror!");

)

10、voidmain()

inti,j,k;

scanf(n%d,%d,%dn,&i,&j,&k);

((i%2!=0?l:0)+(j%2!=0?l:0)+(k%2!=0?l:0))==2?printf(,'YES\nH):printf("NO\n");

)

11>voidmain()

(

chara;

scanf("%c”,&a);

printf("%c,%c,%c”,a-1,a,a+1);

printf("%d,%d,%d”,a-1,a,a+1);

)

12>voidmain()

(

floata,b,c,s,Area;

scanf("%f,%f,%f,,&a,&b,&c);

if(a+b>cIIa+c>bIIb+c>a)

(

s=(a+b+c)/2;

Area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("%f\n",Area);

)

else

printf("youinputthenumberiserror!\nn);

)

******第四章******

1:0

2:20

3:(x<30&&x>20)ll(x<-l00)

4:***a=25,b=14,c=16***

5:37

6:if(a<=b)printf(nlM);

elseprintf(,,2n);

7、

#include<stdio.h>

voidmain()

{chara,b,tl,t2;

scanf(n%c,%cM,&a,&b);

tl=a>b?a:b;

t2=a<b?a:b;

if((t1-t2)%2==0)printf(',%c,%c,',a4-l,b+l);

elseprintf(n%c,%cu,a-1,b-1);

getch();

)

8、

#include<stdio.h>

voidmain()

{inttempi=0,temp2=0,x,y,i=l;

printf("Pleaseinput(x,y):");

scanf("%d,%d”,&x,&y);

while((i*y)<=x)

{if(x==(i*y)){templ=l;break;}

temp2=i;

i++;

)

if(templ)

printf("%d/%d=%d",x,y,i);

else

printf(n%d/%d—>shang=%d,yushu=%d",x,y,temp2,x-y*temp2);

getch();

)

9、

#include<stdio.h>

voidmain()

{floatx,y,m=0,n=0;

scanf(n%f,%f;&x,&y);

n=(x-2)*(x-2);

m=(y-2)*(y-2);

if((m+n)<=l)

printf(M(%.3f,%.3f)Intheyuan'1,x,y);

else

printf(n(%.3f,%.3f)outoftheyuan",x,y);

getch();

)

10、

#include<stdio.h>

voidmain()

{inttemp=0,month,year;

printf("Pleaseinput(year,month):");

scanf(,,%d,%d,',&year,&month);

if((year%400==0)ll(year%4==0&&year%100!=0))

temp=1;

if(month==2)

{if(temp)printf(u%dyear%dmonthhave29",year,month);

elseprintf("%dyear%dmonthhave28",year,month);

)

elseif(month%2==0)

printf(n%dyear%dmonthhave30H,year,month);

elseprintf("%dyear%dmonthhave31",year,month);

getch();

11、

switch(a/10)

{case5:m=4;break;

case4:m=3;break;

case3:m=2;break;

case2:m=l;break;

default:m=5;

)

12、

方法一:

#include<stdio.h>

voidmain()

{intx,y;

scanf(H%d",&x);

if(x<0&&x>-5)

y=x-l;

elseif(x==0)

y=x;

elseif(x>0&&x<8)

y=x+l;

printf("%d”,y);

getch();

)

方法二:

#include<stdio.h>

voidmain()

{intx,y;

scanf("%d",&x);

if(x<8&&x>-5)

{if(x==0)y=x;

elseif(x>0&&x<8)y=y=x+1;

elsey=x-l;

printf(n%dn,y);

)

elseprintf(nInputerror!!!”);

getch();

)

方法三:

#include<stdio.h>

voidmain()

{intx,y,i;

scanf(u%d",&x);

if(x<8&&x>-5)

{if(x==O)i=l;

elseif(x>0&&x<8)i=2;

elsei=3;

)

elsei=4;

switch(i)

{case1:y=x;printf("%d",y);break;

case2:y=x+l;printf("%dH,y);break;

case3:y=x-l;printf(u%d",y);break;

case4:printf(nInputerror!!u);break;

}getch();

)

******第五章

1、voidmain()

(

intn,value;

inti,count=0;

floataverage=0;

longintsum=0;

scanf("%d",&n);

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

(

scanf(u%du,&value);

if(value%2==0)

(

sum+=value;

count++;

)

)

average=sum/(float)count;

printf(ntheaverageis%f\n",average);

)

2、

#include"stdio.h1'

voidmain()

(

charch;

intzm=0,sz=0;

ch=getchar();

while(ch!='*')

if((ch>=4&&chv=2')II(ch>=&&ch<N))

zm++;

if(ch>=V&&ch<='9')

sz++;

ch=getchar();

)

printf("zm=%d;sz=%d\nn,zm,sz);

)

3、

voidmain()

(

longLvalue;

intsum=0;

inttemp=0;

scanf(H%ld",&i_value);

if(i_value<0){printf(nyouinputtheintiserror!\n");return;}

for(;;)

(

temp=i_value%10;

i_value=i_value/10;

sum+=temp;

printf(n%d+n,temp);

if(i_value==0)break;

)

printf(''\b=%d\n,,,sum);

)

4、

#include"stdio.h"

voidmain()

{

charch;

ch=getchar();

while(ch!=7)

(

if((ch>=W&&chv=Z))

(

ch=ch+32;

putchar(ch);

)

elseif((ch>='a'&&ch<'z'))

ch=ch-32;

putchar(ch);

)

else

putchar(ch);

ch=getchar();

)

printf(M\nn);

)

5、

voidmain()

(

floatsum=200;

intcount=0;

for(;;)

(

sum=sum+sum*0.045;

count++;

if(sum>500)break;

)

printf(Hthe%dyearslatercomplete!\n",count);

)

6、

voidmain()

(

inti,temp=0,bit=0;

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

(

if(i%3==0)

{

temp=i;

for(;temp!=0;)

(

bit=temp%10;

if(bit==5){printf("%d,n,i);break;}

temp=temp/10;

)

)

)

printf(H\b\nu);

}

7、

#include<stdio.h>

intmain(void)

intsteps=29,i=1;

while(steps%7)

(

steps=(30*++i)-1;

)

printfC'Totalsteps:%d\n",steps);

return0;

)

8、

main()

(

inti,j,k,n;

printf("thenarcissusnumberis:\n");

for(n=100;n<1000;n++)

{i=n/100;

j=n/10-i*10;

k=n%10;

if(i*i*i+j*j*j+k*k*k==n)printf(',%d\n,,,n);

)

)

9、

main()

{floati,j,temp,n,sum;

intt;

i=2;j=l;sum=0;

scanf(H%dn,&t);

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

{sum=sum+i/j;

temp=i;i=i+j;j=temp;

)

printf(',2/l+3/2+5/3+8/5+13/8+...=%i\n,',sum);

)

10、

voidmain()

(

intnWidth,a,b;

scanf("%dH,&nWidth);

for(a=(nWidth%2);a<=nWidth;a+=2)

(

for(b=0;b<nWidth;b++)

charchOut=

intnleft=(nWidth-a)/2;

intnright=(nWidth+a)/2;

if(b>=nleft&&b<nright)

(

chOut

}

printf("%c",chOut);

)

printf("\n");

)

)

11、

voidmain()

(

inti=l,j=l;

for(i=l;i<=9;i++)

(

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

printf(,,%d*%d=%dH,i,j,i*j);

printf(n\nn)

)

)

12、

#include"stdio.h"

voidmain()

(

charc;

//count1是正數(shù)的個(gè)數(shù)

//count2是負(fù)數(shù)的個(gè)數(shù)

intcount1=0,count2=0;

//suml是正數(shù)之和

//sum2是負(fù)數(shù)之和

intsuml=0,sum2=0;

intflage=0;

c=getchar();

while(c!='*')

(

if(c==*-*)flage=1;

if(flage==0)

{sum1+=(c-48);countl++;}

else

{if(c!=-,){sum2-=(c-48);flage=0;count2++;}}

c=getchar();

printf("%d,%d\n”,countl,count2);

printf("%f,%f\n",suml/countl,sum2/count2);

)

13、

voidmain()

(

inti,j;

ints=0;

for(i=100;i<=999;i++)

(

s=0;

for(j=l;j<i-l;j++)

(

if(i%j==O)s=s+j;

)

if(s==i)printf(n%5d",i);

)

)

14、

#include<stdio.h>

#include<math.h>

voidmain()

(

intn;

longk=1;

floate=1;

n=1;

clrscr();

while(fabs(1.0/k)>=0.000001)

(

n++;

e=e+1.0/k;

k=k*n;

)

printf("%f\n”,e);

)

15、

#include"math.h"

main()

{floatx0,xl,x2,fO,fI,f2;

xl=-10;

fl=2*xPxPxl-4*x1*x1+3*x1;

x2=10;

f2=2*x2*x2*x2-4*x2*x2+3*x2;

do

{x0=(xl+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0;

if<(fO*fl)<O)

{x2=x0;f2=f0;}

else

{xl=xO;fl=fO;}

)

while(fabs(fO)>1e-6);

printf("2*x*x*x-4*x*x+3*x=0\nn);

printf("therootis%f\nn,xO);

)

******第六章******

1、

#include<stdio.h>

intdivisor(inta,intb)

{intr;

while((r=a%b)!=0)

{a=b;

b=r;

)

returnb;

)

intmultiple(inta,intb)

{intd;

d=divisor(a,b);

returna*b/d;

)

voidmain()

{inta,b,c,d;

printf(nintput(a,b):");

scanf(”%d,%d”,&a,&b);

c=divisor(a,b);

d=multiple(a,b);

printf(H\ndivisor=%d\t\tmultiple=%d",c,d);

)

2、

#include<stdio.h>

voidtongji(chara[J)

{intb[3]={0,0,0},i=0;

while(a[i]!=,\0,)

{if((a[i]<=90&&a[i]>=65)ll(a[i]<=122&&a[i]>=97))

b⑼++;

elseif(a[i]<=57&&a[i]>=48)

b[l]++;

else

b⑵++;

i++;

)

printf(Mzimuhave:%d;shuzihave:%d;qitahave:%dn,b[0],b[l],b[2]);

getch();

)

voidmain()

{chara[100];

printf("PIeaseinputastring:");

gets(a);

tongji(a);

)

3、

#include<stdio.h>

intflower(intn)

{intx=0,i,j,k;

i=(n%10);

j=(n/10%10);

k=(n/100);

x=i*i*i+j*j*j+k*k*k;

if(x==n)return1;

elsereturn0;

)

voidmain()

{inti,n;

printf("Pleaseintputn:");

scanf(u%du,&n);

if(n>999lln<100)printf(nInputerror!!!1');

else

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

if(flower(i))printf(n%d”,i);

}getch();

)

4、

#include<stdio.h>

#defineSWAP(a,b)t=b;b=a;a=t;

main()

{floatx,y,t;

printf(HEntertwonumber(x,y):'*);

scanf(u%f,%f",&x,&y);

SWAP(x,y);

printfC'VnXnExchanged:x=%f,y=%f',x,y);

getch();

5、

#include<stdio.h>

intfib(intn)

{intp;

if(n==O)p=O;

elseif(n==l)p=l;

elsep=fib(n-l)+fib(n-2);

returnp;

)

voidmain()

{intn;

printf("Pleaseinputfib:");

scanf("%d",&n);

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

)

6、

#include<stdio.h>

longfac(intn)

{longf;

if(n==0)f=l;

elsef=n*fac(n-l);

returnf;

)

voidmain()

{intm,n;

longf;

printf("Pleaseinput(m,n):");

scanf(n%ld,%ld",&m,&n);

f=fac(n+m)+fac(n);

printf(''\n\nfibonacci=%ld',,f);

)

7、

#include<stdio.h>

voidlist()

{inti,j;

for(i=l;i<=9;i++)

{for(j=l;j<=i;j++)

printf(n%d*%d=%d”<

printf(H\nn);

voidmain()

{list();

)

8、

#include<stdio.h>

inihe(intn)

{inti,s=0;

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

if(n%i==0)s+=i;

returns;

)

voidmain()

{inti,j;

for(i=l;i<30000;i+4-)

{for(j=l;j<3OOOO;j++)

if((he(i)==j)&&(he(j)==i)&&(i!=j))

printf(n%d<—>%dn,i,j);

)

}

9、

#include<stdio.h>

#definemax100

structwork

{longsid;

charname[15];

}worker[max];

intsize=0;

structwork*set」ist()

{do

{printf(H\n\nPleaseinput(sid,name):");

scanf("%ld,%s”,&worker|size].sid,worker[size].name);

size++;

}while(worker[size-l].sid!=0);

returnworker;

}

voidpaixu(structworka[J)

{inti,j,k;longt;charv[15];

for(i=0;i<size-1-2;i++)

{k=i;

for(j=i;j<size-2;j++)

if(a[i].sid>a[j].sid)k=j;

if(k!=i)

{t=a[i].sid;a[i].sid=afj].sid;a[j].sid=t;

strcpy(v,a[);strcpy(a[,a[);strcpy(a[j].name,v);

for(i=0;i<=size-2;i++)

printf(Hsid:%ld\tname:%s\n\n,\a[i].sid,a[i].name);

getch();

)

voidselect(structworka[])

{inti=0,found=1;longnum;

printf("Inputselectsid:");

scanf(,,%ld,',&num);

for(i=0;i<=size-2;i++)

{if(a[i].sid==num)

{found=0;

printf(u%ld:%sH,num,a[i].name);

break;

}

)

if(found)printf("\n\nNOthissid!!!”);

getch();

)

voidmain()

{structwork*p;

p=set_list();

paixu(p);

select(p);

)

10、

#include<stdio.h>

floatjiecheng(intn)

{longs=l;inti;

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

s=s*i;

returns;

)

floatchengfang(floatx,intn)

{floats=l;inti;

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

s=s*x;

returns;

)

floatf(floatx,intn)

{floats=l,t=O;inti=l,j=-l;

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

{t=j*chengfang(x,2*i)/jiecheng(2*i);

s+=t;

j=j*j;

returns;

main()

floats1=0,s2=0,s3=0,s4=0,x=5.6;intn=7;

sl=f(x,n);

s2=f(x+2.3,n);

s3=f(x-3.2,n+3);

s4=sl/(s2+s3);

printf(n%f';s4);

getch();

******第七章******

(1)D

(2)A

(3)D

(4)B

(5)D

2:(1)1544

678

23

4

(2)6333

3:(1)a[8]=data;k>=0a[k]=tempbreakk<=8

⑵“%s”str[i]<=,Z,c[str[i]+26--a,]++i+'a'

4、/*題目:求-組成績(jī)的平均分?jǐn)?shù)以及高于平均分的成績(jī)。*/

#include<stdio.h>

#definemax100

voidmain()

(

floata[max],s=0,average=0;

inti,n;

printf("PleaseinputN:");/*輸入要處理元素的個(gè)數(shù)*/

scanf(n%dn,&n);

printf("\nPleaseinput%dgeshu:M,n);/*輸入90,85,92,77,80,62*/

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

scanf(n%f',&a[i]);

s+=a[i];

)

average=s/n;

printf("\naverage=%.2f\n",average);/*輸81.00*/

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

if(a[i]>average)

printf(n%.2fn,a[i]);/*輸出90.00,85.00,92.00*/

)

5、

/*題目:編寫(xiě)程序,輸入一組整數(shù),將他們排序后由小到大輸出。*/

#include<stdio.h>

#definemax100

voidmain()

(

inta[max],j,i,k=0,t=0,n=0;

printf("PleaseinputN:”);/*輸入要處理元素的個(gè)數(shù)*/

scanf(n%d",&n);

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

scanf("%d”,&a[i]);

for(i=0;i<n-l;i++)/*比較n-1遍*/

{k=i;

for(j=i+1;j<n;j++)/*每遍比較n-(i+l)次*/

if(a[kl>a[j])

k=j;

if(k!=i)/*元素排序前下標(biāo)與排序后下標(biāo)不符,則交換其值*/

{t=a[i];

a[i]=a[k];

a[k]=t;

)

)

printf("\n\nn);

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

printf(M%dn,a[i]);

)

6、

/*題目:從鍵盤(pán)輸入一個(gè)4x4的整數(shù)矩陣,以主對(duì)角線(xiàn)(\)為對(duì)稱(chēng)軸*/

/*將左下角元素中較大者替換右上角元素,并將右上角含對(duì)稱(chēng)軸輸出。

#include<stdio.h>

#include<string.h>

voidmain()

(

intd[4][4]={{0,0,0,0}),i,j;

clrscr();

printf(n\nPleaseinput16num:");

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

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

scanf("%dM,&d[i][j]);

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

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

if(d[i][j]>d[j][i])/*左下角元素大于右上角元素則交換*/

dU][i]=d[i][j];

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

{printf(”\n\n\n\n\n”);/*為T(mén)保持每行的間隔與每列的相同呆

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

ifO>=i)

printf(”\t%d”,d[i][j]);/*為了使位數(shù)不同的數(shù)輸出依然保持三角型*/

else

printf(u\tM);

7、

*題目:輸入一個(gè)3x4的二維數(shù)組,然后分別按行和按列輸出。刃

#include<stdio.h>

#include<string.h>

voidmain()

(

intd[3][4]={{0,0,0,0}},i,j;

printf("Pleaseinput12num:");

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

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

scanf(H%dn,&d[i][j]);

printf("\n\nAnhang:");

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

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

printfC'%dH,d[i]|j]);

printf(n\n\nAnlie:");

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

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

printf(u%d\d[j][i]);

)

8、

/*題目:編寫(xiě)程序,將兩個(gè)字符串連接起來(lái),不用strcat函數(shù)。*/

#include<stdio.h>

#include<string.h>

voidmain()

{charsl[50],s2[50];

inti=Oj=O,t=O;

printf("Inputone:");

gets(sl);

while(sl[i]!=,\O,)i++;/*統(tǒng)計(jì)si中字符個(gè)數(shù)*/

printf(n\n\nlnputsecond:");

gets(s2);

while(s2[j]!=,\(nj++;/*統(tǒng)計(jì)s2中字符個(gè)數(shù)*/

for(t=0;t<=j;t++)/*把s2中字符連接到si后面*/

{sl[i]=s2[t];i++;)

printf("\n\none+second:");

puts(sl);

)

9、

/*輸入一行字符串,統(tǒng)計(jì)字符對(duì)ab的個(gè)數(shù)。*/

#include<stdio.h>

#include<string.h>

#defineMAX100

voidmain()

(

charstr[MAXl;

inti=0,flage=0;

intcount=0;

printf("\nPleaseinputastring:");

gets(str);

while(strlij)

{if(str[i]=='a,)

flage=l;

elseif(str[i]==*b')

(

if(flage==1)

{count++;flage=0;}

)

elseflage=0;

i++;

)

printf(Mthedoublechar\"ab\"countis%d\nM,count);

)

10、

#include<stdio.h>/*相對(duì)于第一種方法,這種方法能把同為最大的字符串全部打印出來(lái)。*/

#include<string.h>

intpaixu(inta[],intn)/*構(gòu)造對(duì)長(zhǎng)度為n的數(shù)組排序的函數(shù)*/

(

inti,j,t,k,temp;

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

{k=i;

for(j=i+l;j<n;j++)

if(a[k]>a[j])

k=j;

if(k!=i)

{t=a[i];

a[i]=a[k];

a[k]=t;

)

)

temp=a[n-l];

returntemp;/*返回最大字符串的長(zhǎng)度的值*/

)

voidmain()

(

charstr1[50],str2[50],str3[50],str4[50],str5[50],str6[50];

charstr7[5O],str8[5O],str9[5O],strlO[5O];

intcount[10]={0},temp[10]={0},i,j;

inipaixu(inta[],intn);

for(i=l;i<=10;i++)/*輸入10個(gè)字符串*/

(

printf("\nPleaseinput%dstring:",i);

if(i==l)

{gets(strl);while(strl[count[0]]){count[0]++;temp[0]++;}}

if(i==2)

{gets(str2);while(str2[count[1]]){count[l]++;temp[1]++;}}

if(i==3)

{gets(str3);while(str3[count[2]]){count[2]++;temp[2]++;}}

if(i==4)

{gets(str4);while(str4[count[3]]){count[3]++;temp[3]++;}}

if(i==5)

{gets(str5);while(str5[count[4]]){count[4]++;temp[4]++;}}

if(i==6)

{gets(str6);while(str6[count[5]]){count[5]++;temp[5]++;}}

if(i==7)

{gets(str7);while(str7[count[6]]){count[6]++;temp[6]++;}}

if(i==8)

{gets(str8);while(str8[count[7]]){count[7]++;temp[7]++;}}

if(i==9)

{gets(str9);while(str9[count[8]]){count[8]++;temp[8]++;}}

if(i==10)

{gets(strl0);while(strl0[count[9]]){count[9]++;temp[9]++;}}

j=paixu(temp,10);

for(i=l;i<=10;i++)

if(count[i-l]==j)

/*只要字符串長(zhǎng)度與最大長(zhǎng)度相等就打印出來(lái)*/

switch(i)

{casekputs(strl);printf("\nu);break;

case2:puts(str2);printf(',\nn);break;

case3:puts(str3);printf(u\nH);break;

case4:puts(str4);printf(n\nn);break;

case5:puts(str5);printf(H\n");break;

case6:puts(str6);printf("\nu);break;

case7:puts(str7);printf("\n");break;

case8:puts(str8);printf(H\n");break;

case9:puts(str9);printf("\n");break;

case10:puts(str10);printf(,,\n");break;

11、

/*給數(shù)組a輸入m個(gè)按升序排列的數(shù),給數(shù)組b輸入n個(gè)按降序排列的數(shù)*/

/*將a與b中的元素按降序排列存在數(shù)組c中。*/

#include<stdio.h>

voidmain()

(

inta[100],b[100],c[100],i,m,n,j,k,temp=0,s;

printf("\nm=");scanf("%d",&m);/*確定M的個(gè)數(shù)*/

printf("\nn=");scanf("%d”,&n);/*確定N的個(gè)數(shù)*/

printf(M\nPleaseinputmgeshu:”);

for(s=0;s<m;s++)

scanf("%d'\&a[s]);

printf(H\nPleaseinputngeshu:");

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

scanf("%d",&b[s]);

i=m-l;j=0;k=0;/*i,j,分別標(biāo)記a口與b口且都是從最大元素開(kāi)始做標(biāo)記*/

for(;;)

{if(i==0)/**中只有一個(gè)數(shù)或者叫處理到了最后一個(gè)元素*/

{if(a[i]<=b[j])/*如果a口的最后一個(gè)元素v=b口中當(dāng)前元素*/

{c[k]=b|jj;k++;j++;}

else

{c[k]=a[i];

k++;

for(;;)/*把b口數(shù)組接到c口后面*/

{c[k]=b|j];

j++;

k++;

if(j==n)/*如果b□處理完,結(jié)束。并做標(biāo)記temp=l*/

{temp=l;break;}

)

)

}if(temp==l)break;/*標(biāo)記temp=l,全部處理結(jié)束*/

if((a[i]<=b[j])&&(i!=O)&&(j!=n))

{c[k]=b[j];j++;k++;}

if((a[i]>b[j])&&(i!=O)&&(j!=n))

{c[k]=a[i];i--;k++;)

if(j==n)/*b[]處理到完*/

{for(;;)/*把b口數(shù)組接到c口后面*/

{if(i==O)/*如果叫處理完,結(jié)束。并做標(biāo)記temp=l*/

{c[k]=a[i];temp=l;break;}

c[k]=a[i];

i-;

k++;

}

}if(temp==l)break;/*標(biāo)記temp=1,全部處理結(jié)束*/

)

for(s=0;s<m+n;s++)

printf(M%dM,c[s]);

getch();

)

******第八章******

1:(1)A

(2)B

(3)D

2:(1)1011101110

(2)pogam

3:(1)*p!=O&&*q!=O*p>=*q;q++

(2)i<ll&a[i]{i-;if(i==O)break;}i!=0

4、

題目:輸入一個(gè)字符串,再刪除指定的字符*/

/*如果字符串中沒(méi)有指定字符,則輸出原字符串。*/

#include<stdio.h>

voidfun(char*str,charc)

{char*p;

for(p=str;*p!='\0';p++)

if(*p!=c)

*str++=*p;

*str=\O';

voidmain()

{charstr[8O],c;

printf(M\nPleaseinputastring:");

gets(str);

printf(M\n\nPleaseinputdeletechai*:");

scanf(n%c'\&c);

fun(str,c);

puts(str);

getch();

)

5、

/*從鍵盤(pán)輸入單詞,每個(gè)單詞之間用空格隔開(kāi),號(hào)結(jié)束輸入,*/

/*將每個(gè)單詞的第一個(gè)字母轉(zhuǎn)化成大寫(xiě)字母。*/

#include<stdio.h>

#include<string.h>

charzhuanhua(charc)/*定義將小寫(xiě)字母轉(zhuǎn)化為大寫(xiě)字母的函數(shù)可

{charC;

if(c>士a&&cv=N)/*是小寫(xiě)字母就轉(zhuǎn)化,不是則原樣返回*/

C=c-32;

elseC=c;

returnC;

}/*此函數(shù)防止有標(biāo)點(diǎn)符號(hào)或者第一個(gè)字母本身是大寫(xiě)字母*/

voidmain()

{charallOOJ,*p=a;

inti=lj;

a[0]=';p++;/*為方便下面的if語(yǔ)句,初始化a⑼為空格*/

printf(H\nPleaseinputastring:");

for(;;)

{scanf(',%c,,,p);

if(*p==7)

break;

p++;i++;

)

aLi]='\O';

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

{…&&a[j]!±?*第一個(gè)字母前面可能有很多空格*/

a[j]=zhuanhua(a[j]);/*調(diào)用轉(zhuǎn)化函數(shù),使其變?yōu)榇髮?xiě)字母*/

)

p=a;

while(*p)

{printf("%c",*p);p++;}

getch();

6、

/*輸入8個(gè)數(shù),排序后輸出。*/

#include<stdio.h>

#include<string.h>

voidmain()

{intdata[8],i,*p1,*p2,temp;

pl=data;

printf(n\nlnput8number:");

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

{scanf("%d",pl);pl++;}

for(p1=data;p1<data+8-l;p1++)

for(p2=pl+l;p2<data+8;p2++)

if(*pl<*p2)

{temp=*p1;*p1=*p2;*p2=temp;}

for(i=0,p1=data;i<8;i++,p1++)

printf("%dn,*pl);

getch();

)

7、

/*題目:輸入一個(gè)字符串,將此字符串的m個(gè)字符開(kāi)始的第n個(gè)字符復(fù)制到另一個(gè)字符串。

*/

#include<stdio.h>

voidmain()

{intm,n,i;

chara[100],b[100],*p,*q;

printf("Pleaseinputastring:");

gets(a);

p=a;q=b;

printf(M\n\nPleaseinputmandn(like1,1):");

scanf("%d,%d”,&m,&n);

if((strlen(a)>=m)&&((strlen(a)-m+1)>=n))/*復(fù)制的位置要符合要求*/

{p+=m-l;/*指針指向第一個(gè)要復(fù)制的字符*/

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

{*q=*p;p++;q++;}

*q='0';

printf("Stringais:%s\n",a);

printf(Mstringbis:%s\nH,b);

)

elseprintf(H\nError!!!!");/*復(fù)制的位置不符合要求,打印錯(cuò)誤*/

getch();

)

8、

/*輸入8個(gè)數(shù),將最大的數(shù)與第一個(gè)數(shù)對(duì)換。*/

/*將最小的數(shù)與最后一個(gè)數(shù)對(duì)換*/

#include<stdio.h>

voidmain()

inta[100],temp1=0,temp2=0,max=0,min=0,k;

printf("\nPleaseinput8geshu:”);

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

{scanf(n%dM,&a[k]);

if(a[k]<a[min])min=k;/*用標(biāo)記min最小值的下標(biāo)*/

if(a[k]>a[max])max=k;/*用標(biāo)記max最大值的下標(biāo)*/

)

if(min==0)

{if(max==7)

{templ=a[0];a[0]=a[7];a[7]=temp1;}

else

{temp2=a[7];a[7]=a[min];

a[0]=a[max];a[max]=temp2;

elseif(max==0)

{if(min!=7)

{temp2=a[7];a[7]=a[min];a[min]=temp2;}

)

else

{if(min==7)

{temp1=a[0];a[O]=a[max];a[max]=templ;}

elseif(max==7)

{temp2=a[7];a[7]=a[min];

a[min]=a[0];a[0]=temp2;

}

else

{templ=a[0];temp2=a[7];

a[0]=a[max];a[7]=a[min];

a[min]=temp2;a[max]=templ;

)

)

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

printf(M%dM,a[kJ);

getch();

)

9、

/*輸入n個(gè)數(shù),并排序后輸出。*/

#include<stdio.h>

#inc1ude<string.h>

int*paixu(intdata[],intn)

{inti,*pl,*p2,temp;

pl=data;

for(p1=data;p1<data+n-l;p1++)

for(p2=p1+1;p2<data+n;p2++)

if(*pl<*p2)

{temp=*p1;*p1=*p2;*p2=temp;}

pl=data;

returnpl;

)

voidmain()

{intn,a[100],i,*p=a;

printf(MPleaseinputn:");

scanf("%cT,&n);

printf("\n\nPleaseenter%dgeshu:",n);

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

{scanf("%d",p);p++;}

p=paixu(a,n);

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

printf(n%d”產(chǎn)p);

getch();

)

10、

#includenstdio.hn

#definemax1042

main()

(

floatj,a[max];intt,i=0;

charb[max],*p=b;clrscr();

printf("Enterastring:'1);

gets(b);

while(*p!

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論