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

下載本文檔

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

文檔簡介

1、第1章C語言概述 一、簡答題 1. (1)語言簡潔、緊湊,使用方便、靈活;(2)運算符豐富;(3)具有豐富的數(shù)據(jù)類型; (4)具有結(jié)構(gòu)化的控制語句;(5)語法限制不太嚴(yán)格,程序設(shè)計自由度大;(6) C語言允 許直接訪問物理地址,能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接訪 問硬件;(7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;(8)用C語言寫的程序可移植性好, 基本上不作修改就能用于各種型號的計算機和各種操作系統(tǒng)。 2. 順序結(jié)構(gòu),分支結(jié)構(gòu),循環(huán)結(jié)構(gòu) 3. 所謂算法就是為解決一個問題而采取的方法和步驟。 算法的特性:有窮性、確定性、輸入、輸出、可行性。 表示算法的方式:(1)用自

2、然語言表示;(2)用流程圖表示;(3)用N-S流程圖表示; (4)用偽代碼表示;(5)用計算機語言表示。 二、算法 1. 瓶子A里盛有醋 瓶子B里盛有醬油 那一個空瓶C 將A中的醋倒入C 將B中的醬油倒入A 將C中的醋倒入B 2. 輸入一個數(shù)放在a中 max = a 以下步驟重復(fù)9次: 輸入一個數(shù)放在a中 如果 amax, max=b 打印max的值 3. 如果 aa templ=a temp2=b b=templ c=temp2 否則 如果 cb temp=b b=c c=temp 打印a,b,c的值 4. i=l sum 二 0 以下程序循環(huán)100遍: sum二sum+i i=i+l 打印

3、sum的值 5. 如果(n除以3的余數(shù)為0并且n除以5的余數(shù)為0) n能夠同時被3和5整除 否則 n不能夠同時被3和5整除 6. i=101 以下語句循環(huán)50遍: J=2 flag=l 當(dāng)j (i除以2的整數(shù)部分)時循環(huán)以下語句: 如果i除以j的余數(shù)為零 flag=0 退出該循環(huán) 如果flag=l 打印i的值 i=i+l 7. 如果m0 .(-b + Q data) xl = 2a a (-Z? - data) x2 = 2a 否則如果data=0 xl=x2=b/2 否則 無實數(shù)解 三、編程題 1 main () printf(“將和和#出曲#牯出糊#); printf(“How do yo

4、u do?n printf(” 2 main () int a,b,c; scanf(“d%d%d” , c=(5. 0/9. 0)*(f-32); printf( “攝氏溫度為:%6. 2fn t c); 第四章循環(huán)程序設(shè)計 一、選擇題 1. D 2. D 3.D 4.C 5.D 6. A 7. B 8. B 9. A 10. D. 11. B 12. A 13. B 14. C 15. C 16. C 17. D 18. B 19. D 20. D 21. A 二、填空題 1 585858 20 32 0 4 8921 5 2 0, 0 66 7 1 ,3,2 8. Year%400=0

5、year%100!=0 count+ 三、編程題 1. main() ( long a; scanf ( %ld” a); if (a=10000 2. main() int a; int g.s,b;/個位、十位、百位 printf (水仙花數(shù)有:n); for (a=100;i=999;a+) (g=a%10; s=a/10%10; b=a/100; if (a=g*g*g+s*s*s+b*b*b) printf(%d n,a); printf Cn): 4、 main() (int i,n; printf(ninput n:”): scanf (M%d, else z+ printf(英

6、文字母個數(shù):%dn ,w); printf (空格個數(shù):%dn ,x); printf (數(shù)字個數(shù):%dn” ,y): printf( “其他字母個數(shù):%dn” ,z); 6, main() float h=100.t; int j; for(j=l;j10;j+) t=h/2; h+=(t*2); printf (共經(jīng)過:%f 米n .h); printf( “第十次反彈%f米n” ,t); 第五章數(shù)組 一、單項選擇題 1. B 2. A 3. C 4. C 5. D 6. B 7. C 8. B 9. C 10. B 二. 寫出下列程序的運行結(jié)果 1. S=368 2. * * * * *

7、 3. Sl=18 S2=10 4. !m3TgorP 5. 數(shù)字0的出現(xiàn)次數(shù)是:3 數(shù)字1的出現(xiàn)次數(shù)是:2 數(shù)字2的出現(xiàn)次數(shù)是:2 數(shù)字3的出現(xiàn)次數(shù)是:2 數(shù)字4的出現(xiàn)次數(shù)是:0 數(shù)字5的出現(xiàn)次數(shù)是:1 數(shù)字6的出現(xiàn)次數(shù)是:1 數(shù)字7的出現(xiàn)次數(shù)是:1 數(shù)字8的出現(xiàn)次數(shù)是:1 數(shù)字9的出現(xiàn)次數(shù)是:1 三、編程題 1. include stdio.h main() int all; int i,j,t; printf(input 10 number:nu); for (i=l;il1;i+) scanf printf(the sorted number is:nw); for (i=l;ill;

8、i+) printf(n%4d,ai); 2 #include stdio. h main() int all,i.b; printf(Himput 10 sorted number:n); for (i二0;i二0 /*輸入5個整數(shù)權(quán) /*逆序存放*/ /*逆序存放后重新輸出*/ printf(input 5 integer:nn) for (i=0;i5;i+) scanfi+) printfai); 4. ttinclude stdio.h main() /*紿二維數(shù)組每個元素賦值*/ (int i, j,a1010=l), 1,1; for (i=2;i10;i+) ai0=l; fo

9、r (j=l;j=i;j+) aij=ai-lj-l+ai-lj; for (i=0;i10;i+) for (j=0;j=i;j+) printf(%-5d,aij): printf (n); 5. include stdio. h main() (int a34,i.j,max,row.col; printf(input 3*4 matrix: nn): for (i二0; i3; i+)/*輸入 3*4 矩陣*/ for (j=0;j4;j+) scanf(n%dH,j4;j+) if (maxai j) max=aij: row=i, col=j; printf (n數(shù)組中最大的數(shù)是%

10、d,其行號是%d,列號是%dn,max, row,col); 6. #define N 3 itdefine M 4 #include stdio.h main() int aNM.itj,k,max,row,col; printf(input %d*%d matrix: nHfN,M); for (i二0; iN; i+)/*輸入二維矩陣*/ for (j=0;jM;j+) scanf(H%d, col=j; for (k=O;kN;k+)/*判斷每一行的最大值在其所在列是否聶大*/ if (akcolmax) break; if (k=N)/*得到鞍點*/ printf(nthe poin

11、t is %d,row=%d,co1=%dntmax,rowtco1);break: if (i=N)/*沒有鞍點*/ printf (wno pointXn1): 7. include stdio. h main() (int numO,word=0; /word=0表示未出現(xiàn)單詞,如出現(xiàn)單詞就置word為1. num用來統(tǒng)計單詞個數(shù)*/ char c; printf(please input a string :n); while (c=getchar()!=1n1) if(C=) word=0; else if (word=0) word=l; num+; printf(HThere a

12、re %d words in the linen,num): 8. include stdio. h main() int i,j,uppn,1own.dign,span.othn; /*uppn, 1 own,dign, span,othn分別存放英文大寫字母、小寫字母、數(shù)字、空格和其他 字符的個數(shù)*/ char text380: uppn=l own=d i gn 二 spDrF=ot hn=0 ; for(i=0;i3;i+) gets(texti); for(j=0;j=rA* char str120t str220: printf(* input two strings: nn):

13、gets(strl); /*求字符串1的長度*/ /*字符串合并*/ /*加上字符串結(jié)束標(biāo)志*/ gets(str2); j=strlen(strl); for (i=0;str2i!=,0f;i+,j+) strlj=str2i; strlj=0,; puts(strl); 10. include stdio.h main() (int i,n; char str120,str220; printf(input two strings:(no more than 20 characters)nw): gets(strl); gets(str2); n=strlen (strl) strlen

14、 (str2) ?str len (strl): strlen(str2) ; /*n 中存放較短字符串的長 度*/ for (i=0; i0):rT); scanf , printf(input a string:n); gets(str); inverse(str); printf(the reversed string is:%snn,str): inverse(char str) char t; int i,j; for (i=0,j=strlen(str)-l;ij;i+,j) t=stri: stri=strj; strj=t; 4. include concat(char str

15、l ,char str2) int i=0,j; while (strli!=0) i+; for (j=0;str2j!=,0,;i+,j+) strli=str2j; strli=,0,; main() ( char strl100tstr2100: gets (strl):gets(str2); concat(strl,str2); puts(strl); 5. main() char str80: printf(Hinput a string (4 ge shu zi zi fu):n): scanfstr); insert(str); printf(result is:n%sn9st

16、r); insert(char str) int i; for (i=strlen(str);i0;i一一) str2*i=str i: str2*i-l=, *; 6. include stdio. h int indight,nwhite,nletter,nother; count(char str) n dight=nwhiteFletter 二 n other二0; for (i=0;stri! = =,0* 7. #def ine N 10 it include sort(char str) (int i,j; char t; for (i=l;iN;i+) for (j=0;jst

17、rj+l) t=strj:strj=strj+l ;strj+l=t; main() char strN; int i ; printf(Input 10 ge zi fu:nH): gets(str); sort(str); printf(The sorted result:n); for(i=0:iN;i+) printf(n%cM t stri); 8. #include #inelude ttdefine N 10 void input e(int mim,char nameN8) (int i; for (i=0;iN;i+) printf(input gong hao:: scan

18、f (哪d. if(11=二門ummid) find=l: printfname is:%snn,n,namemid); else if (nnummid) bott=mid-l; else top二mid+1; if (find=-l) | (find0) printf(w%d is not foundnn, n); main() int numN,number,c,flag; char nameN8: input e(num,name): sort(num,name); for (flag=l;flag;) printf (,rplease input chazhao de gonghao

19、:,r):/*輸入查找的工號*/ seanf (. printf(input a string: nn): gets (str); #if (CHANGE) for (i=0;stri!=,0,;i+) if (stri=,a printf(please input matrix:n); for(i=0;i3;i+) for(j=0;j3;j+) scanf (rT%d, ptr15=malloc(20); printf (,nrr); printf(original string:n); for (i=0;i5;i+) printf(n%snHtptr1 i); printf(ninput

20、search string:nH): temp=malloc(20); gets(temp); i=binary (ptil. temp, 5); printf (Mi=%dnMt i); insert(ptrl,temp, 5, i); printf(output strings:nn): for (i=0;i6;i+) printf(M%snptrli); int binary(char *ptr,char *str,int n) int hig,low,mid; low=0; hig二nT ; if(strcmp(strtptr0)0) ieturn(n); while(low=hig)

21、 mid=(low+hig)/2; if(strcmp(str.ptrmid)0) low二mid+1; else return(mid): return(low); void insert (char *ptr,char *str,int n,int i) int j; for(j=n; ji; j) strcpy (ptrj ptrj-l); strcpy(ptri,str); 4、main() int i: char *p6,str620; for(i=0;i6;i+) pi=stri: printf(Input 6 strings:n); for(i=0;i6;i+) scanf (r

22、t%spil); sort (p); printf(Now the strings:Xn); for(i=0;i6;i+) printf (rr%snw, pi); sort(char *qE ) int i,j; char *t; for(i=0;i5;i+) for(j=0;j0) t二*(q+j); *(q+j)=*(q+j+l); *(q+j+l)=t; 5、main() int m; char strl20tstr220,*pl,*p2; printf(please input two strings:n); scanf(w%sn,strl); scanf C%s,str2); pl

23、=strl; p2=str2; m=stringcmp(pl, p2); printf(result is %d:n,m); stringcmp(char *pl,char *p2) int i二0; whi le (* (pl+i) = (p2+i) if(*(p1+(i+)=0*) return(0): return(*pl+i)-*(p2+i); 6、main() char strl30t str230,str3100: int i=0,j=Otk=O; printf(please input two strings:nn): scanf (氓s. strl); scanf (%srr

24、str2); while(strli!=,Of while(strli! =0 *) str3k+=strli+; while(str2j!=101) str3k+=str2j+: str3k=,Or; printf(n%sn,str3); 第八章 結(jié)構(gòu)體 一、選擇題 U C 2、B 3、C 4、 D5、 B 二.填空題 4、10, x 8、C 2、0 5、 364041 9、 C10、 B 三.編程題 1、 struct complex i float x; /*實部*/ float y; 虛部*/ main() struct complex cl=5f3tc2=2,6: float tl,

25、t2; tl=cl. x*c2. x - cl. y*c2. y; t2=cl. x*2. y + cl. y*c2. x; printf( The two complexs product is: M ); printf( “ 2f%+ 2f inw ,tl,t2); 2. struct student char int name10:/*/ number;/* 學(xué)號*/ floatx; floaty; /*成績*/ /*成績*/ main() struct student s45; int i; void max(): void average(); void sort (); for (

26、i二0;i45;i+) scanf( a%s%d%f%dv ,si. name, average(st45); sort (s,45); void max(struct student *a,int n) float temp; char nal0: int i tnum; te叩=a0. x+b0 y; for (i=l;in;i+) if (tempai. x+ai. y)/*求總分最高的學(xué)生、學(xué)號*/ ( temp=ai x+ai y; strcmp(na,ai name); num=ai rmmber; printf( %s,%d ,na,num): void average (struct student *bt int n) float averl,aver2,si,s2; int i ; sl=s2=0; for(i二0;i45;i+)/*求每門課程的總成績*/ sl+二bi x; s2+二bi y; averl=sl/45; aver2=s2/45; for (i=0;i45; i+) if

溫馨提示

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

評論

0/150

提交評論