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

下載本文檔

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

文檔簡介

第一章

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

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

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

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

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

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

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

際所需要做的工作。

例如:

voidmain()

(

inta,b,c,s;

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

s=a+b*c;

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

)

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

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

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

程序的模塊化。

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

4、c語言數(shù)據(jù)類型豐富。

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

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

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

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

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

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

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í)符必須是字母或下劃線開頭,大小寫字母含義不同。由數(shù)字、字母和下劃線組成;

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

統(tǒng)的規(guī)定使用它們。

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

第二章

1、符合C語法規(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=rb',c3='c,;

printf("a=%db=V%c^"endV,\nH,a,b);

結(jié)果如下:a=3b='AM,endH

aabccabc

3、略

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

(2)31,0,0

(3):11,19,31,1

5、(1):0

(2):0

(3):9.500000

(4):90

(5):10

(6):10

(7):65

(8):2

(9):4.500000

(10):1

(H):0

(12):20

(13):0

6、(5)

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

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

9、B

10、D

第三章

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

2、1123412341

3、fflO

4、1,3,1

5、原字符串

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

6、scanf(n%d,%d,%c,%cn,&ah&a2,&cl,&c2);

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

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

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

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

printf("(float)a/b=%f\n",(float)a/b);

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

8^voidmain()

(

floatr;

floats,c;

printf(Hpleaseinputthenumber:");

scanf(H%f',&r);

if(r>=0)

(

s=3.14*r*r;

c=2*3.14*r;

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

)

else

printf(nyouinputnumberiserror!'1);

)

9、voidmain()

(

intn;

printfC'pleaseinputthenumber:u);

scanf(u%d",&n);

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

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

else

printf("youinputnumberiserror!1');

)

10、voidmain()

inti,j,k;

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

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

)

11、voidmain()

(

chara;

scanf("%c",&a);

primf(”%c,%c,%c”,a-l,a,a+l);

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

)

12、voidmain()

(

floata,b,c,s,Area;

scanf(u%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(u%f\nn,Area);

)

else

printf("youinputthenumberiserror!\n,');

第四章

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(T);

elseprintf(u2M);

7、

#include<stdio.h>

voidmain()

{chara,b,tl,t2;

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

tl=a>b?a:b;

t2=a<b?a:b;

if((tl-t2)%2==0)printf(n%c,%cn,a+1,b+1);

elseprintf("%c,%c'\a-1,b-1);

getch();

)

8、

#include<stdio.h>

voidmain()

{inttemp1=0,temp2=0,x,y,i=1;

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

scanf(u%d,%dM,&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(u%d/%d—>shang=%d,yushu=%du,x,y,temp2,x-y*temp2);

getch();

}

9、

#include<stdio.h>

voidmain()

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

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

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

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

if((m+n)<=l)

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

else

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

getch();

)

10、

#include<stdio.h>

voidmain()

{inttemp=0,month,year;

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

scanf(u%d,%d",&year,&month);

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

temp=l;

if(month==2)

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

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

)

elseif(month%2==0)

printf(u%dyear%dmonthhave301year,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(M%d",&x);

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

y=x-l;

elseif(x==0)

y=x;

elseif(x>0&&x<8)

y=x+l;

printf(M%dM,y);

getch();

)

方法二:

#include<stdio.h>

voidmain()

{intx,y;

scanf(n%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(u%dn,y);

elseprintf("Inputerror!!!");

getch();

方法三:

#include<stdio.h>

voidmain()

{intx,y,i;

scanf(M%dM,&x);

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

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

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

elsei=3;

)

elsei=4;

switch(i)

{case1:y=x;printf(n%dH,y);break;

case2:y=x+l;printf(n%dn,y);break;

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

case4:printf("Inputerror!!n);break;

}getch();

第五章

1、voidmain()

(

intn,value;

inti,count=0;

floataverage=0;

longintsum=0;

scanf("%d",&n);

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

(

scanf("%d",&value);

if(value%2==0)

(

sum+=value;

count++;

)

)

average=sum/(float)count;

printf(Htheaverageis%An",average);

2、

#include"stdio.h*'

voidmain()

(

charch;

intzm=0,sz=0;

ch=getchar();

while(ch!='*')

(

if((ch>=*A,&&chv=2')II(ch>='a,&&ch<'z'))

zm++;

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

sz++;

ch=getchar();

)

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

)

3、

voidmain()

(

longi_value;

intsum=0;

inttemp=0;

scanf(M%ld',,&i_value);

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

for(;;)

(

temp=i_value%10;

i_value=i_value/10;

sum+=temp;

printf(u%d4-n,temp);

if(i_value==0)break;

}

printf("\b=%d\nH,sum);

#include"stdio.h"

voidmain()

(

charch;

ch=getchar();

while(ch!=*.')

(

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(n\nH);

)

voidmain()

(

floatsum=200;

intcount=0;

for(;;)

(

sum=sum+sum*0.045;

count++;

if(sum>500)break;

)

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

)

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;',i);break;}

temp=temp/10;

)

)

)

printf(n\b\nH);

)

7、

#include<stdio.h>

intmain(void)

(

intsteps=29,i=1;

while(steps%7)

(

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

)

printf(HTotalsteps:%d\nu,steps);

return0;

)

8、

main()

(

inti,j,k,n;

printf(Hthenarcissusnumberis:\nn);

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(u%d",&t);

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

{sum=sum+i/j;

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

)

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

}

10、

voidmain()

(

intnWidth,a,b;

scanf(u%d",&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("%cu,chOut);

)

printf("\n");

)

)

11、

voidmain()

(

inti=lj=l;

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

(

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

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

printfCAn1')

)

)

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);count1++;}

else

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

c=getchar();

)

printf("%d,%d\n",count1,count2);

printf(n%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==0)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\nH,e);

}

15、

#include"math.h"

main()

{floatx0,xl,x2,f0,fl,f2;

xl=-10;

fl=2*xl*xl*xl-4*xl*xl+3*xl;

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=fO;}

else

{xl=xO;fl=fO;}

}

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

printf("2*X*X*X~4*X*X+3*X==0\n"):

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

、,

第Aft八早

1、

#include<stdio.h>

intdivisor(inta,intb)

{intr;

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

{a=b;

b=r;

)

returnb;

}

intmultiple(inta,intb)

{intd;

d=divisor(a,b);

returna*b/d;

voidmain()

{inta,b,c,d;

printf(*'intput(a,b):");

scanf(u%d,%d",&a,&b);

c=divisor(a,b);

d=multiple(a,b);

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

)

2、

#include<stdio.h>

voidtongji(chara[])

{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[0]++;

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

b[lj++;

else

b[2]++;

i++;

)

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

getch();

)

voidmain()

{chara[100];

printf(*'Pleaseinputastring:*');

gets(a);

tongji(a);

)

3、

#include<stdio.h>

intflower(intn)

{intx=O,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(nPleaseintputn:");

scanf(',%d,,,&n);

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

else

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

if(flower(i))printf("%dH,i);

}getch();

)

4、

#include<stdio.h>

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

main()

{floatx,y,t;

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

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

SWAP(x,y);

printf(,,\n\nExchanged:x=%f,y=%f,',x,y);

getch();

)

5、

#include<stdio.h>

intfib(intn)

{intp;

if(n==0)p=0;

elseif(n==l)p=l;

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

returnp;

)

voidmain()

{intn;

printf(nPleaseinputfib:*');

scanf(H%d",&n);

printf(n\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;

printfC'Pleaseinput(m,n):");

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

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

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

)

7、

#include<stdio.h>

voidlist()

{intij;

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

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

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

printf(M\nu);

)

)

voidmain()

{list();

)

8、

#include<stdio.h>

inthe(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++)

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

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

printf(n%d<-->%d

)

)

9、

#include<stdio.h>

#definemax100

structwork

{longsid;

charname[15];

)worker[max];

intsize=0;

structwork*set_list()

{do

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

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

size++;

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

returnworker;

)

voidpaixu(structworka[])

{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=a[j].si(i;a[j].sid=t;

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

1

)

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

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

getch();

)

voidselect(structworkalJ)

{inti=0,found=1;longnum;

printf("Inputselectsid:");

scanf(u%ld",&num);

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

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

{found=0;

printf(n%ld:%s",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=0;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()

{floatsl=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(”%f”,s4);

getch();

第七章

1:(1)D

(2)A

(3)D

(4)B

(5)D

2:(1)1544

678

23

4

(2)6333

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

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

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

#include<stdio.h>

#definemax100

voidmain()

(

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

inti.n;

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

scanf(H%d'\&n);

printf("\nPleaseinput%dgeshu:”,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);/*輸fli81.00*/

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

if(a[ij>average)

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

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

#include<stdio.h>

#definemax100

voidmain()

(

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

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

scanf("%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[k]>a[j])

k=j;

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

{t=a[i];

a[i]=a[k];

a[k]=t;

printf(n\n\nn);

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

printf(M%d",a[i]);

)

6^

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

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

#include<stdio.h>

#include<string.h>

voidmain()

(

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

clrscr();

printf(H\nPleaseinput16num:");

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

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

scanf(n%dn,&dLiJ[jJ);

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

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

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

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

{prinlf("\n\n\n\n\n");/*為了保持每行的間隔與每列的相同*/

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

ig)

為了使位數(shù)不同的數(shù)輸出依然保持三角型*/

else

printf(n\tn);

7、

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

#include<stdio.h>

#include<string.h>

voidmain()

(

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

printf(nPleaseinput12num:");

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

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

scanf(n%d",&d[i][jl);

printf(n\n\nAnhang:");

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

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

printf("%d",d[i][j]);

printf("\n\nAnlie:");

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

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

printf("%d",d[j][i]);

)

8、

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

#include<stdio.h>

#include<string.h>

voidmain()

{charsl[5O],s2[5O];

inti=O,j=O,t=O;

printf("Inputone:");

gets(sl);

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

printf(n\n\nInputsecond:");

gets(s2);

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

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

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

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

puts(sl);

)

9、

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

#include<stdio.h>

#include<string.h>

#defineMAX100

voidmain()

(

charstrfMAX];

inti=0,flage=0;

intcount=0;

printf(n\nPleaseinputastring:");

gets(str);

while(str[ij)

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

flage=l;

elseif(str[i]==b')

if(flage==1)

{count++;flage=0;}

elseflage=O;

i++;

)

printf("thedoublecharV'ab\ucountis%d\n',,count);

)

10、

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

#include<string.h>

intpaixu(inta[J,intn)/*構(gòu)造對(duì)長度為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=ali];

a[i]=a[k];

a[k]=t;

)

)

temp=a[n-l];

returntemp;/*返回最大字符串的長度的值*/

)

voidmain()

(

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

charstr7[50],str8[50],str9[50],strl0[50];

intcountll0J={0},tempi10]={0},ij;

intpaixu(inta[],intn);

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

(

printf(n\nPleaseinput%dstring:"j);

if(i==l)

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

if(i==2)

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

if(i==3)

{gets(str3);while(str3[counl[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[4J++;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(strlO);while(strlO[count[9]]){count[9]-H-;temp[9]++;}}

}

j=paixu(temp,10);

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

(

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

{/*只要字符串長度與最大長度相等就打印出來*/

switch(i)

{casekputs(strl);printfCXn'1);break;

case2:puts(str2);printf("\n");break;

case3:puts(str3);printf("\n");break;

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

case5:puts(str5);printf(',\nn);break;

case6:puts(str6);printf('^\n^^);break;

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

case8:puts(str8);printf(M\nn);break;

case9:puts(str9);printfCXn'1);break;

case10:puts(strl0);printf(n\nn);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],k,temp=0,s;

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

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

printf("\nPleaseinputmgeshu:");

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

scanf(M%dn,&a[s]);

printf(H\nPleaseinputngeshu:");

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

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

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

for(;;)

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

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

{c[k]=b[j];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=I*/

{temp=l;break;}

)

)

}if(temp==1)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)/*如果a口處理完,結(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=l,全部處理結(jié)束*/

)

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

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

getch();

第八章

(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è)字符串,再刪除指定的字符*/

/*如果字符串中沒有指定字符,則輸出原字符串。*/

#include<stdio.h>

voidfun(char*str,charc)

{char*p;

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

if(*p!=c)

*str++=*p;

*slr=V)';

)

voidmain()

{charstr[8O],c;

printf(''\nPleaseinputastring:");

gets(str);

printf(H\n\nPleaseinputdeletechar:");

scanf(u%c",&c);

fun(str,c);

puts(str);

getch();

)

5、

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

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

#include<stdio.h>

#include<string.h>

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

{charC;

if(c>='a,&&c<=,z,)/*是小寫字母就轉(zhuǎn)化,不是則原樣返回可

C=c-32;

elseC=c;

returnC;

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

voidmain()

{chara[1001,*p=a;

inti=lj;

a[0]=f,;p++;/*為方便下面的if語句,初始化a[0]為空格*/

printf(M\nPleaseinputastring:");

for(;;)

{scanf("%c”,p);

if(*p=Y)

break;

p++;i++;

)

a[i]=W;

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

{if(aU-l]=='&&30]!=')/*第一個(gè)字母前面可能有很多空格*/

a|jkzhuanhua(a|jD;/*調(diào)用轉(zhuǎn)化函數(shù),使其變?yōu)榇髮懽帜?/

)

p=a;

while(*p)

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

getch();

)

6、

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

#include<stdio.h>

#include<string.h>

voidmain()

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

p1=data;

printf("\nlnput8number:");

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

{scanf(n%dn,pl);pl++;}

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

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

if(*pl<*p2)

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

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

printf(H%dn,*pl);

getch();

)

7、

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

#include<stdio.h>

voidmain()

{intm,n,i;

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

printf(nPleaseinputastring:");

gets(a);

p=a;q=b;

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

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

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

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

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

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

*q='\0';

printf(HStringais:%s\nH,a);

printf("stringbis:%s\nu,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(H\nPleaseinput8geshu:");

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

{scanf(H%d,',&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[0J;a[0]=a[7];a[7]=templ;}

else

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

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

)

}

elseif(max==0)

{if(min!=7)

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

)

else

{if(min==7)

{temp1=a[OJ;alO]=a[max];a[maxJ=temp1;}

elseif(max==7)

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

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

)

else

{temp1=a[OJ;temp2=a[7];

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

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

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

printf("%dn,a[k]);

getch();

)

9、

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

#include<stdio.h>

#include<string.h>

int*paixu(intdata[],intn)

{inti,*pl,*p2,temp;

pl=data;

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

for(p2=p1+1;p2vdala+n;p2++)

if(*pl<*p2)

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

pl=data;

returnpI;

)

voidmain()

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

printf(HPleaseinputn:");

scanf(u%du,&n);

printf(H\n\nPleaseenter%dgeshu:u,n);

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

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

p=paixu(a,n);

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

printf("%dn,*p);

getch();

)

10、

#include"stdio.h"

#definemax1042

main()

(

floatj,almaxj;intt,i=0;

charb[m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論