c語言程序設(shè)計教程課后題及模擬題參考答案_第1頁
已閱讀1頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  習(xí)題1</b></p><p><b>  1-1 填空題</b></p><p><b>  1. 函數(shù)</b></p><p>  2. 主函數(shù)main(),主函數(shù)main()</p><p>  3. 主函數(shù)main()</p>

2、<p>  4. 函數(shù)首部,函數(shù)體</p><p><b>  5. {, }</b></p><p><b>  6. /*, */</b></p><p>  7. 順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)</p><p>  8. .c, .obj, .exe</p><p

3、><b>  1-2 思考題</b></p><p>  1. 結(jié)構(gòu)化程序設(shè)計是指:為使程序具有一個合理的結(jié)構(gòu)以保證程序正確性而規(guī)定的一套如何進行程序設(shè)計的原則。其基本結(jié)構(gòu)包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種。</p><p>  2. 算法是對具體問題求解步驟的一種描述。計算機算法的表達(dá)工具通常采用以下幾種方法:(1)用自然語言表示算(2)用流程圖表示算法(3

4、)用偽代碼表示算法(4)用程序設(shè)計語言表示算法</p><p>  3. 語言簡潔、緊湊,使用方便、靈活; 支持結(jié)構(gòu)化程序設(shè)計;運算符豐富;數(shù)據(jù)類型豐富;較強的編譯預(yù)處理功能;C語言的可移植性好;C語言本身既有一般高級語言的優(yōu)點,又有低級(匯編)語言的特點;語法限制不太嚴(yán)格,程序設(shè)計自由度大。</p><p><b>  1-3 編程題</b></p>

5、<p>  1. 試參照本章例題編寫計算梯形面積的C語言程序,梯形的上底、下底和高分別用a,b,h表示,并用a=10,b=20,h=5測試所編寫的程序。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p>  { float a, b, h,

6、s;</p><p>  a=10; b=20;</p><p>  h=5; s=(a+b)*h/2;</p><p>  printf("s=%f\n" , s );</p><p><b>  }</b></p><p>  2. 編寫程序顯示如圖1.11所示信

7、息。</p><p>  圖1.11 顯示信息</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p>  { printf("******************************\n");</

8、p><p>  printf("* hello world *\n");</p><p>  printf("******************************\n"); }</p><p><b>  習(xí)題2</b></p><p><b

9、>  2-1 單選題</b></p><p>  1~5 DBDCA 6~10 DCABA 11~12 CA</p><p><b>  2-2 思考題</b></p><p>  1.2.000000</p><p><b>  2.1,0.5</b></

10、p><p><b>  3.9,2</b></p><p><b>  4.6</b></p><p><b>  5.100,d</b></p><p>  6.(1)20 (2)0 (3)60</p><p>  7. (1)10,6,4 (2)

11、6,9,15 (3)3,60,83</p><p><b>  8. 55</b></p><p><b>  習(xí)題3</b></p><p><b>  3-1 選擇題</b></p><p>  1-5 BDABC 6-10 ADCAC 11-12 BB</p&

12、gt;<p><b>  3-2 填空題</b></p><p><b>  1. 3</b></p><p><b>  2. 0261</b></p><p><b>  3. 0x10</b></p><p>  4. 2, 1  

13、互換a,b的值</p><p><b>  5. 6.6</b></p><p><b>  6. –003</b></p><p><b>  8. 7</b></p><p>  7. 5.0,4,c=3<Enter></p><p> 

14、 8. i=10,j=20<Enter></p><p><b>  9. (1) 65</b></p><p>  (2) 65,A</p><p>  (3) 56.123400,123.456001</p><p>  (4) 3.141600</p><p>

15、;  (5) 8765.432</p><p>  (6) 5.864000e+002</p><p>  (7) 3.141600e+000</p><p>  (8) 3.1416</p><p>  (9) 8765</p><p>  (10) 3.1416,8765.43

16、</p><p>  10. a=2 b=5x=8.8 y=76.34c1=65 c2=97</p><p><b>  3-3 編程題</b></p><p>  1. 編寫程序?qū)崿F(xiàn)從鍵盤輸入兩個十進制整型數(shù)據(jù)10和8給變量x和y,并按下列格式輸出。</p><p>   x

17、 y</p><p>  十進制數(shù) 108</p><p>  八進制數(shù)1210</p><p>  十六進制數(shù)a8</p><p>  #include "stdio.h"</p><p><b>  main()</b></p&g

18、t;<p>  { int x, y ;</p><p>  scanf("%d%d" , &x, &y);</p><p>  printf(" x y\n");</p><p>  printf("%4d%4d\n", x, y );</p><

19、p>  printf("%4o%4o\n", x, y );</p><p>  printf("%4x%4x\n", x, y );</p><p><b>  }</b></p><p>  2. 編寫一個程序,輸入一個大寫英文字符('B'~'Y'),輸出它的前導(dǎo)

20、字符、該字符本身及其后續(xù)字符。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p>  { char c;</p><p>  scanf(“%c”, &c );</p><p>  printf

21、(“%c, %c, %c\n”, c-1, c, c+1 );</p><p><b>  }</b></p><p>  3. 編寫一個程序,輸入一個3位正整數(shù),要求反向輸出對應(yīng)的整數(shù),如輸入123,則輸出321。編寫程序并給出相應(yīng)的程序流程圖。</p><p>  #include "stdio.h"</p&g

22、t;<p><b>  main()</b></p><p>  { int a, a1, a2, a3;</p><p>  scanf(“%d”, &a );</p><p>  a1=a%10 ; a=a/10;</p><p>  a2=a%10; a=a/10;</p>

23、<p>  a3=a%10; </p><p>  printf(“%d%d%d\n”, a1, a2, a3);</p><p><b>  }</b></p><p>  4. 編寫程序,讀入3個double型數(shù)據(jù),求它們的平均值,保留此平均值小數(shù)點后1位數(shù),對小數(shù)點后第2位數(shù)進行四舍五入,最后輸出結(jié)果。</p>

24、<p>  #include "stdio.h"</p><p><b>  main()</b></p><p>  { double a, b, c, ave;</p><p>  scanf(“%lf%lf%lf”, &a, &b, &c );</p><p&g

25、t;  ave=(a+b+c)/3 ;</p><p>  printf(“%8.2f\n”, ave);</p><p><b>  }</b></p><p>  5. 編寫程序,讀入3個整數(shù)給變量a、b、c,然后交換它們的值,把a原來的值給b,把b原來的值給c,把c原來的值給a。</p><p>  #includ

26、e "stdio.h"</p><p><b>  main()</b></p><p>  { int a, b, c, t;</p><p>  scanf(“%d%d%d”, &a, &b, &c );</p><p>  t=a; a=c; c=b ; b=t ;&

27、lt;/p><p>  printf(“a=%d, b=%d, c=%d\n”, a, b, c );</p><p><b>  }</b></p><p><b>  習(xí)題4</b></p><p><b>  4-1單選題</b></p><p>  

28、1~5 AADAD 6~10 ACB BB 11~12BA</p><p><b>  4-2填空題</b></p><p><b>  1. 1</b></p><p>  2. (1) a>0 || b>0 (2) x>0 && x<=10<

29、/p><p>  (3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c </p><p>  3.(1)0 (2)1 (3)1(4)0 (5)1</p><p>  4. (max=a>b?a:b)>c?max:c </p><

30、p><b>  5.-4</b></p><p><b>  6.1</b></p><p><b>  7.5,0,3</b></p><p>  8. (1) (a==0) (2) (b==0)(3) (disc<0)</p><p><b> 

31、 4-3 編程題</b></p><p>  1.輸入3個實型數(shù)值a、b、c,如果能用它們作為三角形的3條邊形成一個三角形,則輸出三角形的面積,并畫出實現(xiàn)該算法的N-S流程圖并編程實現(xiàn)。</p><p>  #include "stdio.h"</p><p>  #include “math.h”</p><p&

32、gt;<b>  main()</b></p><p>  { float a,b,c,s,area;</p><p>  scanf(“%f,%f,%f”,&a,&b,&c);</p><p>  if (a+b>c && a+c>b && b+c>a)</p&g

33、t;<p>  { s=(a+b+c)/2;</p><p>  area=sqrt(s*(s-a)*(s-b)*(s-c));</p><p>  printf(“%f”,area);</p><p><b>  }</b></p><p><b>  }</b></p>

34、<p>  2.輸入整數(shù)x、y,若x2+y2>1000,則輸出x2+y2百位以上的數(shù)字,否則輸出兩數(shù)之和。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p>  { int x,y;</p><p>  sc

35、anf(“%d,%d”,&x,&y);</p><p>  if (x*x+y*y>1000) </p><p>  printf(“%d\n”,(x*x+y*y)/100);</p><p><b>  else</b></p><p>  printf(“%d\n”,x+y);</p>

36、;<p><b>  }</b></p><p>  3. 輸入一個整數(shù),判斷它能否同時被3、5、7整除,并輸出“yes”或“no”字樣。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p>&

37、lt;b>  { int x,</b></p><p>  scanf(“%d”,&x);</p><p>  if(x%3==0 && x%5==0 && x%7==0)</p><p>  printf(“yes\n”);</p><p><b>  else</b

38、></p><p>  printf(“no\n”);</p><p><b>  }</b></p><p>  4.對任意輸入的x,用下式計算并輸出y的值。</p><p>  #include "stdio.h"</p><p>  #include “math.h

39、”</p><p><b>  main()</b></p><p>  { float x,y;</p><p>  scanf(“%f”,&x);</p><p>  if(x<-2) y=x*x-sin(x);</p><p>  else if (x<=2) y=pow

40、(2,x)+1;</p><p>  else y=sqrt(x*x+x+1);</p><p>  printf(“%f\n”,y);</p><p><b>  }</b></p><p>  5. 編寫程序輸入一個5位整數(shù),判斷它是不是回文數(shù)?;匚臄?shù)是指一個數(shù)從右到左和從左到右的對應(yīng)數(shù)碼相同,如12321是回文數(shù),

41、個位與萬位相同,十位與千位相同。</p><p>  #include "stdio.h"</p><p><b>  main( )</b></p><p>  {long ge,shi,qian,wan,x;</p><p>  scanf("%ld",&x);<

42、/p><p>  wan=x/10000;</p><p>  qian=x%10000/1000;</p><p>  shi=x%100/10;</p><p><b>  ge=x%10;</b></p><p>  if (ge==wan&&shi==qian)/*個位等于萬位

43、并且十位等于千位*/</p><p>  printf("this number is a huiwen\n");</p><p><b>  else</b></p><p>  printf("this number is not a huiwen\n");</p><p>&

44、lt;b>  }</b></p><p>  6. 編寫程序用于計算某運輸公司的運費。設(shè)每公里每噸貨物的基本運費為p,貨物重量為w,路程為s(單位為km),折扣為d,總費用計算公式為:f=p*w*s*(1?d)</p><p>  運費計算標(biāo)準(zhǔn)見表4.5。</p><p>  表4.5 某運輸公司運費計算標(biāo)準(zhǔn)</p><p&g

45、t;  #include "stdio.h"</p><p><b>  main()</b></p><p>  {float p,w,s,d,f;</p><p>  scanf(“%f,%,%f”,p,s,w);</p><p>  if (s>3000) d=0.15</p>

46、<p>  else if( s>=2000) d=0.1;</p><p>  else if(s>=1000) d=0.08;</p><p>  else if(s>=500) d=0.05;</p><p>  else if(s>=250) d=0.02;</p><p><b>  

47、else d=0</b></p><p>  f=p*w*s*(1-d);</p><p>  printf(“%f”,f);</p><p><b>  }</b></p><p><b>  習(xí)題5</b></p><p><b>  5-1單選題

48、</b></p><p>  1~5 CDABA 6~10 ABDDB11~14 DBCB</p><p><b>  5-2填空題</b></p><p><b>  1.20</b></p><p><b>  2.333 </b></p>

49、<p>  3.(1) i<10 (2) j%3!=0</p><p>  4. (1) flag*(float)k/(k+1) (2) flag=-flag</p><p>  5.(1) max=x (2) x!=-1 (3) scanf("%d", &x)</p><p><

50、b>  5-3 編程題</b></p><p>  1. 用3種循環(huán)語句編寫程序?qū)崿F(xiàn)下列算式:</p><p> ?。?)1+22+33+…+100100</p><p> ?。?)e=,當(dāng)最后一項的值小于10?6時為止。</p><p><b>  (1)</b></p><p&g

51、t;  #include "stdio.h" </p><p><b>  main()</b></p><p>  { int i; lont s=0;</p><p>  for(i=1;i<=100;i++)</p><p><b>  s+=i*i;</b><

52、/p><p>  printf(“%ld”,s);</p><p><b>  }</b></p><p><b>  (2) </b></p><p>  #include "stdio.h"</p><p><b>  main()</b&

53、gt;</p><p>  { int i=1; lont p=1;float s=0;</p><p><b>  do{</b></p><p><b>  s+=1.0/p;</b></p><p><b>  p*=++i;</b></p><p&g

54、t;  }while(1.0/p>1e-6)</p><p>  printf(“%f”,s);</p><p><b>  }</b></p><p>  2. 編寫程序求兩個正整數(shù)的最大公約數(shù)。</p><p>  #include "stdio.h"</p><p>

55、;<b>  main()</b></p><p>  {int m,n,t,a,b;</p><p>  scanf(“%d,%d” ,&m,&n) ;</p><p>  if (m<n){ t=m ;m=n ;n=t ;}</p><p>&l

56、t;b>  a=m;b=n;</b></p><p><b>  t=m%n ;</b></p><p><b>  while(t)</b></p><p>  { m=n ; n=t ;t=m%n;}</p><p>  printf(”%d,%d

57、”,n,a*b/n);</p><p><b>  }</b></p><p>  3. 編寫程序求一個整數(shù)的任意次方的最后3位數(shù),即求xy的最后3位數(shù)。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p>

58、;<p>  {int x,y,s=1;</p><p>  scanf(”%d,%d ”,&x,&y) ;</p><p>  for( ;y>0 ;y--)s*=x ;</p><p>  printf(”%d,%d,%d\n ”,s%10,s/10%10,s/100

59、%10);</p><p><b>  }</b></p><p>  4. 百雞問題。用100元錢買100只雞,其中,公雞每只5元,母雞每只3元,小雞每3只1元。編寫程序輸出各種買法。</p><p>  #include "stdio.h"</p><p><b>  main()<

60、;/b></p><p>  { int x,y,z;</p><p>  for( x=1 ; x<20 ;x++)</p><p>  for( y=1 ;y<33 ;y++)</p><p>  { z=100-x-y ;</p><p>  i

61、f (z>=0 && (5*x+3*y+z/3)-100<1e-5) </p><p>  printf(”x=%d,y=%d,z=%d\n”,x,y,z) ;</p><p><b>  }</b></p><p><b>  }</b></p><p>  

62、5. 編寫程序分別打印如下圖形:</p><p>  *****************</p><p>  (a)(b)</p><p>  (a) #include "stdio.h"</p><p><b>  main()</b></p><p>  {

63、int j,k ;</p><p>  for( j=1 ;j<=4 ;j++)</p><p>  {for(k=1;k<=4-j;k++)printf(" ");</p><p>  printf("****") ;</p><p>  printf("\n") ;&

64、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  (b) #include "stdio.h"</p><p><b>  main()</b></p><p>  {int j,k

65、;</p><p>  for( j=1 ;j<=4 ;j++)</p><p>  {for(k=1;k<=4-j;k++)printf(" ");</p><p>  for(k=1 ;k<=2*j-1 ;k++)</p><p>  printf("*") ;</p>

66、<p>  printf("\n") ;</p><p><b>  }</b></p><p><b>  }</b></p><p>  6. 請編寫程序求100~999之間所有的水仙花數(shù)。水仙花數(shù)的含義是指這樣的一個3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,371=33+73+1

67、3,所以371是一個水仙花數(shù)。</p><p>  程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p><b>  {</b>&

68、lt;/p><p>  int i,j,k,n;</p><p>  printf("'water flower'number is:");</p><p>  for(n=100;n<1000;n++)</p><p><b>  {</b></p><p>

69、;  i=n/100;/*分解出百位*/</p><p>  j=n/10%10;/*分解出十位*/</p><p>  k=n%10;/*分解出個位*/</p><p>  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)</p><p><b>  {</b></p><p&

70、gt;  printf("%-5d",n);</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p>&

71、lt;p><b>  習(xí)題6</b></p><p><b>  6-1單選題</b></p><p>  1-5 CBBAD 6-10 DBCCD 11-15 DCABC</p><p><b>  6-2填空題</b></p><p><b>  1. 

72、 120</b></p><p><b>  2.  x</b></p><p>  3 . 3,2,2,3 </p><p>  4. fac/i</p><p><b>  5.  8,17</b></p><p><b>  6.  9<

73、/b></p><p>  7.  1.0/(i*i) </p><p>  8.  fun-in:30,20,10</p><p>  fun-end:1015,35,1050 </p><p><b>  10,20,30</b></p><p>  9.  012345 </

74、p><p>  10. 93636 </p><p><b>  6-3 編程題</b></p><p>  1. 編寫一函數(shù)把字符串中的小寫字母轉(zhuǎn)換成大寫字母,其他字符不變。</p><p>  void zhuan( )</p><p>  { char ch;</p><

75、p>  while((ch=getchar())!=’\n’)</p><p>  { if(ch>=’a’ && ch<=’z’) ch=ch-32;</p><p>  putchar(ch);</p><p><b>  }</b></p><p><b>  }<

76、;/b></p><p>  2. 編寫一函數(shù)求e=</p><p>  float expp(int n)</p><p>  { int k, fac=1;</p><p>  float sum=0;</p><p>  for(k=1; k<=n; k++)</p><p>

77、<b>  { fac*=k;</b></p><p>  sum+=1.0/fac ;</p><p><b>  }</b></p><p>  return(sum);</p><p><b>  }</b></p><p>  3. 編寫一函數(shù)求

78、一個整數(shù)的任意次方的最后3位數(shù),即求xy的最后3位數(shù)。</p><p>  int xy3( int x, int y)</p><p>  { int k, num=1;</p><p>  for(k=1;k<=y ; k++)</p><p><b>  num*=x ;</b></p>&l

79、t;p>  num=num%1000 ;</p><p>  return num ;</p><p><b>  }</b></p><p>  4. 有5個人坐在一起,第5個人說他比第4個人大2歲,第4個人說他比第3個人大2歲,第3個人說他比第2個人大2歲,第2個人說他比第1個人大2歲,第1個人說他10歲,請問第5個人多大?</

80、p><p>  int age( int n)</p><p><b>  { int c;</b></p><p>  if(n==1) c=10 ;</p><p>  else c=age(n-1)+2 ;</p><p>  return c ;</p><p><

81、;b>  }</b></p><p><b>  習(xí)題7</b></p><p><b>  7-1單選題</b></p><p>  1-5 DBCCB 6-8 BDC</p><p><b>  7-2填空題</b></p><p&

82、gt;<b>  1. c</b></p><p><b>  2. 60</b></p><p>  3. 1000 10</p><p><b>  4. 16 </b></p><p><b>  7-3 編程題</b></p><

83、;p>  1. 編寫程序計算下列公式中的f值,使用帶參數(shù)的宏來實現(xiàn)。</p><p>  #include “math.h”</p><p>  #define F(a) a*a+ sqrt(3*a*a+2*a+1)</p><p><b>  main()</b></p><p>  { float x,

84、f;</p><p>  scanf(“%f”, &x );</p><p>  f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x) ;</p><p>  printf(“%f\n”, f);</p><p><b>  }</b></p><p>&

85、lt;b>  習(xí)題8</b></p><p><b>  8-1單選題</b></p><p>  1~15 CADAC 6~10 CCDAB 11~15 CBBCD </p><p><b>  8-2填空題</b></p><p>  1 (1) 2 3 4 5

86、 (2) 10010 (3) QuickC (4)</p><p>  2. (1) j+=2 (2) a[i]>a[j]</p><p>  3. (1) r+b[k] (2) *x</p><p><b>  8-3 編程題</b></p><p>  1.設(shè)數(shù)組

87、a中的元素都為正整數(shù),編程求其中偶數(shù)的個數(shù)和偶數(shù)的平均值。</p><p>  #include "stdio.h"</p><p>  #define N 10 </p><p><b>  main()</b></p><p>  { int a[N]={1,2,3,4,5,6,7,8,9,0},

88、osum=0, ocount=0, j;</p><p>  for(j=0;j<10;j++)</p><p>  if(!( j%2)){ ocount++; osum+=a[j];}</p><p>  printf(“ocount =%d, osum =%d\n”, ocount, osum);</p><p><b&

89、gt;  }</b></p><p>  2. 有一個已排好序的數(shù)組,輸入一個數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中,插入后數(shù)組仍然有序,請編程實現(xiàn)。</p><p>  #include "stdio.h"</p><p>  #define N 10</p><p><b>  main()<

90、;/b></p><p>  { int a[N]={10,20,30,40,50,60,70,80,90}, j, k, x;</p><p>  scanf(“%d”,&x);</p><p>  for(j=0;j<N;j++)</p><p>  if (x<a[j]) break;</p>

91、<p>  for(k=N-1; k>j; k--)a[k]=a[k-1];</p><p><b>  a[j]=x;</b></p><p>  for(j=0;j<N;j++) printf(“%d”,a[j]);</p><p><b>  }</b></p><p&

92、gt;  3.編程求一個矩陣對角元素之和,其中矩陣元素值由數(shù)組初始化時給定。</p><p>  #include "stdio.h"</p><p>  #define M 3</p><p><b>  main()</b></p><p>  {int a[M][M]={{1,2,3},{4,5

93、,6},{7,8,9}},j,sum1=0,sum2=0;</p><p>  for( j=0;j<M;j++)</p><p>  {sum1+=a[j][j];</p><p>  sum2+=a[j][M-(j+1)]; }</p><p>  printf(“%d,%d\n”,sum1,sum2);</p>&l

94、t;p><b>  }</b></p><p>  4. 編一個程序檢查二維數(shù)組是否對稱(即對所有的i和j,都有a[i][j]=a[j][i])。</p><p>  #include "stdio.h"</p><p>  #define M 3</p><p><b>  main

95、()</b></p><p>  {int a[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;;</p><p>  for( j=0;j<M;j++)</p><p>  for(k=0;k<M;k++)</p><p>  if (a[j][k]!=a[k][j]) { fl

96、ag=0; break;}</p><p>  if (flag) printf(“ok”);</p><p>  else printf(”NO”);</p><p><b>  }</b></p><p>  5.編程比較兩個字符串的大小(不用strcmp( )函數(shù))。</p><p>  #

97、include "stdio.h"</p><p>  #include “string.h”</p><p><b>  main()</b></p><p>  { char c1[10],c2[10],j;</p><p>  gets(c1);gets(c2);</p><

98、;p>  for(j=0; (c1[j]==c2[j]) && c1[j] && c2[j]; j++);</p><p>  printf(“%d\n”,c1[j]-c2[j]);</p><p><b>  }</b></p><p>  6. 有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計出

99、其中英文大寫字母、小寫字母、數(shù)字、空格及其他字符的個數(shù)。</p><p>  #include "stdio.h"</p><p>  #include ”string.h”</p><p>  #define M 3</p><p>  #define N 80</p><p><b>

100、  main()</b></p><p>  { char a[M][N],j,k,n[5]={0};</p><p>  for( j=0;j<M;j++) gets(a[j]);</p><p>  for(j=0;j<M;j++)</p><p>  for(k=0;a[j][k];k++)</p>

101、;<p>  if( a[j][k]>=’A’ && a[j][k]<=’Z’) n[1]++;</p><p>  else if (a[j][k]>=’a’ && a[j][k]<=’z’) n[2]++;</p><p>  else if (a[j][k]>=’0’ && a[j][k]&l

102、t;=’9’) n[3]++;</p><p>  else if (a[j][k]=’ ’ ) n[4]++;</p><p>  elsen[5]++;</p><p>  for(j=0;j<5;j++)</p><p>  printf(“%4d”, n[j]);</p><p><b>  

103、}</b></p><p><b>  習(xí)題9</b></p><p><b>  9-1單選題</b></p><p>  1~5 DDACB 6~10 ACBAD11~15CDB CC </p><p><b>  9-2填空題</b></p&g

104、t;<p>  1 . (1) 2,1 (2) 10#30# (3) FOUR,O (4) 60</p><p>  2. (1) 49 (2) 2 (3)2 (4) 7 5 3 1 9 (5)15</p><p><b>  (6)</b>&

105、lt;/p><p><b>  (7)</b></p><p>  3. (1) *x (2) t</p><p>  4. (1) '\0'或0 (2) n++或n+=1或n=n+1</p><p><b>  5. 024</b></p><p>

106、<b>  9-3 編程題</b></p><p>  1. 按以下要求編寫一個程序。定義三個變量用于存放輸入的三個整數(shù);另定義三個指向整型變量的指針變量,并利用它們實現(xiàn)將輸入的三個整數(shù)按由小到大的順序輸出。</p><p>  #include "stdio.h"</p><p><b>  main()<

107、/b></p><p><b>  {</b></p><p>  int n1,n2,n3;</p><p>  int *pointer1,*pointer2,*pointer3;</p><p>  printf("please input 3 number:n1,n2,n3:");<

108、;/p><p>  scanf("%d,%d,%d",&n1,&n2,&n3);</p><p>  pointer1=&n1;</p><p>  pointer2=&n2;</p><p>  pointer3=&n3;</p><p>  if(n1

109、>n2) swap(pointer1,pointer2);</p><p>  if(n1>n3) swap(pointer1,pointer3);</p><p>  if(n2>n3) swap(pointer2,pointer3);</p><p>  printf("the sorted numbers are:%d,%d,%d\

110、n",n1,n2,n3);</p><p><b>  }</b></p><p>  swap(p1,p2)</p><p>  int *p1,*p2;</p><p><b>  {int p;</b></p><p>  p=*p1;*p1=*p2;*p2=

111、p;</p><p><b>  }</b></p><p>  2. 編寫函數(shù),得到兩個整數(shù)相除的商和余數(shù)。要求通過指針在函數(shù)間傳遞商和余數(shù)這兩個數(shù)據(jù)。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p>

112、;<p>  { int a,b,d ;double c;</p><p>  void fun(int a,int b,float *c, int *d);</p><p>  scanf("%d,%d",&a,&b);</p><p>  fun(a,b,&c,&d);</p>&l

113、t;p>  printf("%lf,%d\n",c,d);</p><p><b>  }</b></p><p>  void fun(int a,int b,double *c, int *d)</p><p>  { if (b) { *c=(double)a/b; *d=a%b;}}</p>&l

114、t;p>  3. 輸入10個整數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。編寫三個函數(shù):①輸入10個數(shù);②進行處理;③輸出10個數(shù)。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p><p>  {void input (int *);

115、 void output (int *); void chuli (int *);</p><p>  int a[10];</p><p>  input(a); chuli(a); output(a);</p><p><b>  }</b></p><p>  void input(int *a)</p&

116、gt;<p><b>  { int j;</b></p><p>  for(j=0;j<10;j++)</p><p>  scanf("%d", a+j);</p><p><b>  }</b></p><p>  void chuli(int *a)

117、</p><p>  {int j,minl=0,maxl=0;</p><p>  for(j=0;j<10;j++)</p><p>  {if(a[maxl]<*(a+j)) maxl=j;</p><p>  if(a[minl]>*(a+j)) minl=j;</p><p><

118、;b>  }</b></p><p>  j=a[0]; a[0]=a[minl];a[minl]=j;</p><p>  j=a[9];a[9]=a[maxl];a[maxl]=j;</p><p><b>  } </b></p><p>  void output(int *a)</p&g

119、t;<p><b>  {int j;</b></p><p>  for(j=0;j<10;j++)</p><p>  printf("%4d", *(a+j));</p><p>  printf("\n");</p><p><b>  }&l

120、t;/b></p><p>  4.按下列要求輸入和輸出下列數(shù)據(jù)陣列:</p><p>  輸入陣列如下: 1 2 3 4</p><p>  5 6 7 8</p><p>  9 10 11 12</p><p><b>  輸出陣列如下:</b>&l

121、t;/p><p>  12 11 10 9</p><p>  8 7 6 5</p><p>  4 3 2 1</p><p>  # define M 3</p><p>  #define N 4</p><p><b>  main()</b&

122、gt;</p><p>  { int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12},k,j,*p=a,t;</p><p>  for(k=0,j=M*N-1;k<j;k++,j--)</p><p>  { t=*(p+k); *(p+k)=*(p+j); *(p+j)=t;}</p><p>  for

123、 (k=0 ;k<M ;k++)</p><p>  {for(j=0 ;j<N ;j++)</p><p>  printf("%4d ",a[k][j]);</p><p>  printf(“\n”);</p><p><b>  }</b>&

124、lt;/p><p><b>  }</b></p><p>  5.. 編寫一個函數(shù),求一個字符串的長度。在main( )函數(shù)中輸入字符串,并輸出其長度。</p><p>  #include "stdio.h"</p><p><b>  main()</b></p>

125、<p><b>  {</b></p><p>  int len,length(p);</p><p>  char *str[20];</p><p>  printf("please input a string:\n");</p><p>  scanf("%s"

126、;,str);</p><p>  len=length(str);</p><p>  printf("the string has %d characters.\n",len);</p><p><b>  }</b></p><p>  int length(p)</p><

127、p><b>  char *p;</b></p><p><b>  {</b></p><p><b>  int n=0;</b></p><p>  while(*p!='\0')</p><p><b>  {</b><

128、/p><p><b>  n++;</b></p><p><b>  p++;</b></p><p><b>  }</b></p><p><b>  return n;</b></p><p><b>  }</

129、b></p><p>  6. 請編寫一個程序,運行時輸出命令行參數(shù)的個數(shù)及參數(shù)名。</p><p>  #include “stdio.h”</p><p>  main(int argc,char *argv[])</p><p><b>  { int k;</b></p><p> 

130、 printf(“argc=%d”,argc);</p><p>  for (k=1;k<argc; k++)</p><p>  printf(“%s”,argv[k]);</p><p><b>  }</b></p><p>  7。用指針數(shù)組操作將輸入的5個字符串按由小到大的順序。</p>

131、<p>  #include "stdio.h"</p><p>  #include "string.h"</p><p><b>  main()</b></p><p><b>  {</b></p><p>  char *str1[5],c

132、h[5][20],k; void sort(char **);</p><p>  for(k=0;k<5;k++)</p><p>  {str1[k]=ch[k];</p><p>  gets(str1[k]);}</p><p>  sort(str1);</p><p>  for(k=0;k<5

133、;k++)</p><p>  puts(str1[k]);</p><p><b>  }</b></p><p>  void sort(char **str1)</p><p>  { int k,j,t;char *c;</p><p>  for(k=0;k<4;k++)</

134、p><p><b>  { t=k;</b></p><p>  for(j=k+1;j<5;j++)</p><p>  if(strcmp(*(str1+t),*(str1+j))>0) t=j;</p><p>  c=*(str1+t);</p><p>  *(str1+t)=*

135、(str1+k) ;</p><p>  *(str1+k)=c ;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  習(xí)題10</b></p><p><b>  10-1單選題<

136、;/b></p><p>  1-5 CDBBB 6-10 BBBAD 11-15 CCBDA </p><p><b>  10-2填空題</b></p><p>  1. 所有結(jié)構(gòu)體成員所占存儲空間的總和</p><p>  2. 與占用存儲空間最大的那個成員相等</p><p

137、>  3.  (1) 結(jié)構(gòu)體 (2) 3 (3) sa.a (4) 9 (5) psa=&sa</p><p><b>  4. 80</b></p><p>  5. struct node</p><p><b>  6. 0</b></p><p><b>  10-3

138、 編程題</b></p><p>  1. 定義一個包含20個學(xué)生基本情況(包括學(xué)號、姓名、性別、C語言成績)的結(jié)構(gòu)體數(shù)組,編程實現(xiàn)下列功能:</p><p>  (1)輸入20個學(xué)生的學(xué)號、姓名、性別、C語言成績;</p><p> ?。?)分別統(tǒng)計男女生的人數(shù),求出男、女生的平均成績;</p><p>  (3)按照學(xué)生的C語

139、言成績從高到底進行排序。</p><p>  struct student</p><p><b>  {</b></p><p>  long num;</p><p>  char name[20];</p><p>  char sex;</p><p>  f

140、loat score;</p><p><b>  };</b></p><p><b>  main()</b></p><p>  { struct student s[20], temp;</p><p>  int j,k, man=0, woman=0;</p><

141、;p>  float summan=0,sumwoman=0, aveman, avewoman;</p><p>  for(k=0; k<20; k++)</p><p>  { scanf("%ld %s %c%f",&s[k].num,s[k].name,&s[k].sex,&s[k].score);</p><p>  

142、if(s[k].sex==’m’) </p><p>  { summan+=s[k].score; man++;}</p><p><b>  else </b></p><p>  { sumwoman+=s[k].score;woman++ ;}</p><p><b>  }</b><

143、/p><p>  aveman=summan/man;</p><p>  avewoman=sumwoman/woman;</p><p>  printf("%d\t%f\t%d\t%f\n",man,aveman,woman,avewoman);</p><p>  for(k=0; k<19; k++)</p><

144、;p>  for(j=0;j<20-k;j++)</p><p>  if(s[j].score<s[j+1].score)</p><p>  { temp=s[j];s[j]=s[j+1];s[j+1]=temp;}</p><p>  printf("the sorted numbers:\n");</p><p> 

145、 for(k=0;k<20;k++)</p><p>  printf("%ld\t%s\t%c\t%5.1f\n",s[k].num,s[k].name,s[k].sex,s[k].score);</p><p><b>  }</b></p><p><b>  習(xí)題11</b></p><p

146、><b>  11-1單選題</b></p><p><b>  1-4 BADD</b></p><p><b>  11-2填空題</b></p><p>  1. 3d3d330</p><p>  2. (1) 28 (2) 20 (3) 0 (4) -9<

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論