C語(yǔ)言程序設(shè)計(jì)教程課后答案(第2版)楊路明_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后答案(第2版)楊路明_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后答案(第2版)楊路明_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后答案(第2版)楊路明_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程課后答案(第2版)楊路明_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章C語(yǔ)言程序設(shè)計(jì)概述習(xí)題答案1 算法的描述有哪些基本方法? 答 1、自然語(yǔ)言2、專用工具 2 C語(yǔ)言程序的基本結(jié)構(gòu)是怎樣的?舉一個(gè)例子說(shuō)明。 答 1、C語(yǔ)言程序由函數(shù)構(gòu)成;2、“/*”與“*/”之間的內(nèi)容構(gòu)成C語(yǔ)言程序的注釋部分;3、用預(yù)處理命令#include、#define可以包含有關(guān)文件或預(yù)定義信息;4、大小寫字母在C語(yǔ)言中是有區(qū)別的;5、除main()函數(shù)和標(biāo)準(zhǔn)庫(kù)函數(shù)外,用戶也可以自己編寫函數(shù),應(yīng)用程序一般由多個(gè)函數(shù)組成,這些函數(shù)指定實(shí)際所需要做的工作。 3 C語(yǔ)言有什么特點(diǎn)? 答&

2、#160;1、具有結(jié)構(gòu)語(yǔ)言的特點(diǎn),程序之間很容易實(shí)現(xiàn)段的共享;2、主要結(jié)構(gòu)成分為函數(shù),函數(shù)可以在程序中被定義完成獨(dú)立的任務(wù),獨(dú)立地編譯代碼,以實(shí)現(xiàn)程序的模塊化;3、運(yùn)算符豐富,包含的范圍很廣;4、數(shù)據(jù)類型豐富;5、允許直接訪問(wèn)物理地址,即可直接對(duì)硬件進(jìn)行損傷,實(shí)現(xiàn)匯編語(yǔ)言的大部分功能;6、限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,這樣使C語(yǔ)言能夠減少對(duì)程序員的束縛;7、生成的目標(biāo)代碼質(zhì)量,程序執(zhí)行效率高,同時(shí)C語(yǔ)言編寫的程序的可移植性好。 4 指出合法與不合法的標(biāo)識(shí)符命名。 答 AB12- leed_3-  a*b2-×  8stu-

3、×  D.K.Jon-×  EF3_3-  PAS-  if-×  XYZ43K2-  AVE#XY-×  _762-  #_DT5-×  C.D-× 5 說(shuō)明下列Turbo C熱鍵的功能。 答 F2:源文件存盤  F10:調(diào)用主菜單  F4:程序運(yùn)行到光標(biāo)所在行(用于調(diào)試程序)  Ctrl+F9:編譯并鏈接成可執(zhí)行文件  Alt+F5:將窗口切換到 DOS 下,查看

4、程序運(yùn)行結(jié)果。 6 說(shuō)明下列Turbo C方式下輸入并運(yùn)行下列程序,記錄下運(yùn)行結(jié)果。  main() printf("*n");  printf("   welcome you   n");  printf("    very good  n);  printf("*n");   main()   int a,b,c,t;

5、60;   printf("please input three numbers;");    scanf("%d,%d,%d",&a,&b,&c); /*教材S是錯(cuò)誤的*/    t=max(max(a,b),c);    printf("max number is:%dn",t);    int max(int x, int y)  int z;  

6、  if(x>y)z=x;    else z=y;    return(z);   答 運(yùn)行結(jié)果:*     welcome you      very good* 運(yùn)行結(jié)果:please input three numbers;3,1,4 /*左側(cè)下劃線內(nèi)容為鍵盤輸入*/max number is:4 7 一個(gè)C程序是由若干個(gè)函數(shù)構(gòu)成的,其中有且只能有一個(gè)函數(shù)。

7、60;答 main() 8 在Turbo C環(huán)境下進(jìn)行程序調(diào)試時(shí),可以使用Run下拉菜單的命令或按鍵轉(zhuǎn)到用戶屏幕查看程序運(yùn)行結(jié)果。 答 1、User screen2、Alt+F5 9 C語(yǔ)言對(duì)標(biāo)識(shí)符與關(guān)鍵字有些什么規(guī)定? 答 1、標(biāo)識(shí)符用來(lái)表示函數(shù)、類型及變量的名稱,它是由字母、下劃線和數(shù)字組成,但必須用字母或下劃線開頭。2、關(guān)鍵字是一種語(yǔ)言中規(guī)定具有特定含義的標(biāo)識(shí)符,其不能作為變量或函數(shù)名來(lái)使用,用戶只能根據(jù)系統(tǒng)的規(guī)定使用它們。 10 C源程序輸入后是如何進(jìn)行保存的? 答&

8、#160;是以C為擴(kuò)展名保存的純文本文件。  第二章C語(yǔ)言程序的基本數(shù)據(jù)類型與表達(dá)式習(xí)題答案1 指出下列常數(shù)中哪些是符合C語(yǔ)法規(guī)定的。 答 ''-×  '101'-×  ""-×  e3-×  019-  0x1e-  "abn"-  1.e5-×  (2+3)e(4-2)-×  5.2e2.5-× 2&#

9、160;請(qǐng)找出下列程序中的錯(cuò)誤,改正后寫出程序運(yùn)行結(jié)果。  void main() int x,y=z=5,aver;  x=7  AVER=(x+y+z)/3  printf("AVER=%dn",aver);   void main()   char c1='a'c2='b'c3='c'    int a=3.5,b='A'    printf(&q

10、uot;a=%db='"endn",a,b);    printf("a%cb%cbc%ctabcn",c1,c2,c3);   答   main() int x,y=5,z=5,aver;  x=7;  aver=(x+y+z)/3;  printf("AVER=%dn",aver);  運(yùn)行結(jié)果:AVER=5 main()   char c1='a', c2=

11、'b', c3='c'    int a=3,b='A'    printf("a=%d,b='%c'"end"n",a,b);    printf("a%cb%cbc%ctabcn",c1,c2,c3);  運(yùn)行結(jié)果:a=3,b='A'"end"aabcc       

12、; abc 3 寫出下列賦值的結(jié)果,表格中寫了數(shù)值的是要將它賦給其他類型的變量,將所有的空格填上賦值后的數(shù)據(jù)(實(shí)數(shù)保留到小數(shù)點(diǎn)后兩位)。int 99     -1 char  'h'     unsigned int   66    float    55.78   long int

13、     68   答 int 99 104 66 55 68 -1 char 'c' 'h' 'B' '7' 'D'  unsigned int 99 104 66 55 68 65535 float 99.

14、00 104.00 66.00 55.78 68.00 -1.00 long int 99 104 66 55 68 -1  4 寫出程序運(yùn)行結(jié)果。  void main() int i,j;  i=8,j=10;  printf("%d,%d,%d,%dn",i,j,+i,j+);   main()   int a=1,b=2,c=30

15、;    printf("%d,%d,%d,%dn",a=b=c,a=b=c,a=(b=c),a=(b=c);  注意:a=b=c,a=b=c之間應(yīng)為逗號(hào),教材有誤 答 運(yùn)行結(jié)果:9,11,9,10 運(yùn)行結(jié)果:30,1,0,0  void main() int a=10,b=20,c=30,d;  d=+a<=10|b->=20|c+;  printf("%d,%d,%d,%dn",a,b,c,d);   

16、; 答 運(yùn)行結(jié)果:11,19,30,1  5 寫出下面表達(dá)式的值(設(shè)a=10,b=4,c=5,d=1,x=2.5,y=3.5)。a%=(b%=3)n+,a+=a-=a*=a(float)(a+c)/2+(int)x%(int)ya*=b+c+a-c+b+a-c+ba<b?x:'A'b+=ca+b,18+(b=4)*3,(a/b,a%b)x+a%3*(int)(x+y)%2/4+sizeof(int)a<b?a:c<d?c:db+=ca*=b=c=2a=b=c 答 0 0 9.500000 9

17、0 10 10 'A' 2 4.5 1 0 20 0  6 下列每組表達(dá)式中,被執(zhí)行后結(jié)果完全等價(jià)的是哪些(設(shè)a、b、m是已被賦值的整型變量)?  m=(a=4,4*5)與m=a=4,4*5(float)(a/b)與(float)a/b(int)a+b與(int)(a+b)m%=2+a*3與m=m%2+a*3m=1+(a=2)+(b=3)與a=2,b=3,m=1+a+b 答 前面是賦值表達(dá)式,而后面的是一個(gè)逗號(hào)表達(dá)式,所以一定不同;前面的表達(dá)式中a/b結(jié)果為一整數(shù),結(jié)果已經(jīng)取整,精度可能受到影響,之后強(qiáng)制float后才

18、為浮點(diǎn)型,后面的是先將a轉(zhuǎn)換為float后再與b相除,其值保證了精度,所以不同。因?yàn)閍、b均為整數(shù),其前后兩個(gè)表達(dá)式的計(jì)算結(jié)果是一致的。前一表達(dá)式是一算術(shù)表達(dá)式,而后者為一賦值表達(dá)式,此為一點(diǎn)不同;另外,前一表達(dá)式的m只被賦過(guò)一次值,后一表達(dá)式中的m曾兩次被賦值,第一次賦值時(shí)與第一表達(dá)式中的值一致,第二次賦值后即不再相同。前后表達(dá)式的計(jì)算結(jié)果應(yīng)該是一致的:a=2, b=3, m=6 7 條件表達(dá)式x>0?x:-x的功能是什么? 答 如果x的值是一正數(shù),則表達(dá)式的值為x值;如果x的值是一非正數(shù),則表達(dá)式的值為-x。其實(shí)該表達(dá)式的值即為x的絕對(duì)值,C語(yǔ)

19、言中提供了一個(gè)函數(shù)fabs(x)即可完成此功能,該函數(shù)包含在math.h頭文件中。 8 用一個(gè)條件表達(dá)式描述從a、b、c中找出最大都賦給max. 答 max=a>(b>c?b:c)?a:(b>c?b:c); 9 若x為int型變量,則執(zhí)行以下語(yǔ)句后x的值為()。x=6;x+=x-=x*x;A. 36  B. -60  C. 60  D. -24 答 B. 10 若有以下類型說(shuō)明語(yǔ)句:char w;  int x;  float

20、y;  double z;則表達(dá)式w*x+z-y的結(jié)果為()類型。A. float  B. char  C. int  D. double 答 D.  第三章順序結(jié)構(gòu)程序設(shè)計(jì)習(xí)題答案1 變量k為float類型,調(diào)用函數(shù)scanf("%d",&k),不能使變量k得到正確數(shù)值的原因是。 答 格式修飾符與變量類型不一致。因?yàn)?d輸入的數(shù)據(jù)類型應(yīng)該為十進(jìn)制整數(shù),而&k為占用4個(gè)字節(jié)的float類型變量的地址。 2 a=1234,b=12,

21、c=34,則執(zhí)行“printf("|%3d%3d%-3d|n",a,b,c);”后的輸出是。 答 |1234 1234 |分析如下:%3d為右對(duì)齊輸出變量,且指定輸出變量的值寬度為3個(gè)字符位,如果變量實(shí)際位數(shù)小于3,則左端補(bǔ)空格,如果變量實(shí)際位數(shù)大于3,則按實(shí)際長(zhǎng)度輸出,不受限制。%-3d為左對(duì)齊輸出變量,在輸出變量時(shí),如是變量實(shí)際位數(shù)小于3,則在右端補(bǔ)空格,否則按實(shí)際輸出。 3 設(shè)有“int a=255,b=8;”,則“printf("%x,%on",a,b);”輸出是。 答 ff,10如果“print

22、f("%X,%on",a,b);”則輸出為FF,10。說(shuō)明在輸出十六進(jìn)制字母時(shí),其大小寫受格式修飾符的限制,如果是“%x”則輸出小寫,如果是“%X”則輸出大寫。如果希望在輸出十六進(jìn)制時(shí)輸出前導(dǎo)符0x或0X,則以上輸出語(yǔ)句應(yīng)改“printf("%#x,%on",a,b);”為或“printf("%#X,%on",a,b);”。本條解釋不必須掌握。 4 以下程序輸出的結(jié)果是。main()    int a1=1,a2=0,a3=2;    printf(&qu

23、ot;%d,%d,%dn",a1,a1+a2+a3,a3-a1); 答 1,3,1 5 printf函數(shù)中用到格式符%5s,其中5表示輸出字符占用5列。如果字符串長(zhǎng)度大于5,則按輸出;如果字符串長(zhǎng)度小于5,則按輸出。 答 實(shí)際左端補(bǔ)空格 6 已定義變量如下:int a1,a2;char c1,c2;若要求輸入a1、a2、c1和c2的值,正確的輸入函數(shù)調(diào)用語(yǔ)句是。 答 scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2);&#

24、160;7 輸入兩個(gè)整型變量a、b的值,輸出下列算式以及運(yùn)算結(jié)果。a+b、a-b、a*b、a/b、(float)a/b、a%b每個(gè)算式占一行。如a=10,b=5,a+b輸出為:10+5=15 答 設(shè)int a=10,b=5;以下為輸出語(yǔ)句及結(jié)果:printf("%d+%d=%dn",a,b,a+b);        10+5=15printf("%d-%d=%dn",a,b,a-b);      

25、  10-5=5printf("%d*%d=%dn",a,b,a*b);        10*5=50printf("%d/%d=%dn",a,b,a/b);        10/5=2printf("%(float)d/%d=%fn",a,b,(float)a/b);     (float)10/5=2.000000printf("%d

26、%d=%dn",a,b,a%b);        10%5=0 8 輸入一個(gè)非負(fù)數(shù),計(jì)算以這個(gè)數(shù)為半徑的圓周長(zhǎng)和面積。 答 #define PI 3.1415926main()      float r,l,area;      printf("Input a positive:");      scanf("

27、;%f",&r);      l=2*PI*r;      area=PI*r*r;      printf("l=%ftarea=%fn",l,area); 9 輸入任意一個(gè)3位數(shù),將其各位數(shù)字反序輸出(例如輸入123,輸出321)。 答 main()   int x,y;   printf("Input a numb

28、er(100-999):");   scanf("%d",&x);   y=100*(x%10)+10*(x/10%10)+x/100;   /*注意分析此處算法*/   printf("%d->%dn",x,y); 10 輸入任意大小的3個(gè)整數(shù),判斷其中是否有兩個(gè)奇數(shù)一個(gè)偶數(shù)。若是則輸出YES,不是則輸 出NOT(要求用條件表達(dá)式進(jìn)行判斷,不使用if語(yǔ)句)。 答 main()   int x

29、,y,z,oddcount=0;/*奇數(shù)數(shù)計(jì)數(shù)變量*/   printf("Input x,y,z:");   scanf("%d,%d,%d",&x,&y,&z);   x%2=1?oddcount+:0;   y%2=1?oddcount+:0;   z%2=1?oddcount+:0;   oddcount=2?printf("YES"):printf("NOT");

30、 11 求前驅(qū)字符和后繼字符。輸入一個(gè)字符,找出它的前驅(qū)字符和后繼字符,并按ASCII碼值,按從大到小的順序輸出這3個(gè)字符及其對(duì)應(yīng)的ASCII碼值。 答 本題考查同學(xué)們對(duì)字符類型數(shù)據(jù)的認(rèn)識(shí),如果在ASCII范圍內(nèi)則即可以顯示為字符,又可以顯示為整數(shù)值;無(wú)論是否能夠顯示為字符,字符類型數(shù)據(jù)是可能參與數(shù)值運(yùn)算的,切記。main()   char c;   printf("Input character:");   scanf("%c",&c);

31、0;  printf("%c->%dn",c-1,c-1);   printf("%c->%dn",c,c);   printf("%c->%dn",c   +1,c+1);   getch();   /*為便于調(diào)試程序,運(yùn)行至此程序停頓,此時(shí)可以看到運(yùn)行結(jié)果,按任意鍵程序真難得結(jié)束并返回到編輯環(huán)境*/ 12 輸入三角形的邊長(zhǎng),求三角形面積(面積sqrt(s(s-a)(s-b)(s-c),

32、s=(a+b+c)/2)。 答 #include"math.h"   /*由于程序中使用了開平方函數(shù)sqrt(),所以需要包含數(shù)學(xué)頭文件*/main()   float a,b,c,s,area;   int ok=0;   printf("Input a,b,c:");   scanf("%f,%f,%f",&a,&b,&c);   a+b>c?ok+:0;

33、0;  /*以下3條語(yǔ)句為判斷是否輸入的數(shù)據(jù)是否構(gòu)成封閉三角形*/   a+c>b?ok+:0;   b+c>a?ok+:0;   ok=3?(s=(a+b+c)/2,area=sqrt(s*(s-a)*(s-b)*(s-c),printf("area=%f",area):printf("error");   getch(); 第四章選擇結(jié)構(gòu)程序設(shè)計(jì)習(xí)題答案1 設(shè)x、t均為int型變量,則執(zhí)行語(yǔ)句“x=10;t=x&&

34、x>10;”后,t的值為。 答 0 2 假定所有變量均已正確定義,則程序段:int a=0, y=10;if(a=0)y- -; else if(a>0)y+;else y+=y;運(yùn)行后 y 的值是; 答 20 3 能表述 20<x<30 或 x<-100 的C 語(yǔ)言表達(dá)式是。 答 x>20&&x<30|+x<-100 4 若有定義語(yǔ)句“int a=25,b=14,c=19;”,則以下語(yǔ)句執(zhí)行結(jié)果是。if(a<=25

35、 && b<=2 && c)    printf("*a+b=%d, a-b=%d*n", a+b, a-b);else printf("*a=%d, b=%d, c=%d*n",a, b, c); 答 *a=25, b=14, c=19* 5 假定 i 和 j 為 int 型變量,則執(zhí)行以下語(yǔ)句后 i 的值是。int i=1;switch(i)    case 1: for(j=0; j<9; j+) i+=j

36、; break;    case 2: for(j=1; j<10; j+) i+=j; break;    case 3: i+; 答 37分析:執(zhí)行了case 1: 和case 3: 中的代碼。同時(shí)case 1:語(yǔ)句中的是可以取消的。 6 以下兩條 if 語(yǔ)句可合并成一條 if 語(yǔ)句,即。if(a<=b) x=1;else y=2;if(a>b)printf("*y=%dn", y);else printf("*x=%dn",x);&

37、#160;答 if(a<=b) printf("*x=%dn",x=1);else printf("*y=%dn", y=2); 7 輸入兩個(gè)字符,若這兩個(gè)字符的序號(hào)(ASCII碼)之差為偶數(shù),則輸出它們的后繼字符,否則輸出它們的前驅(qū)字符。 答 main()    char a,b;    printf("Input two chatacter a,b:");    scanf("

38、%c,%c",&a,&b);    if(a-b)/2=0)    printf("%c,%c",a+1,b+1);    else printf("%c,%c",a-1,b-1); 8 輸入整數(shù) a 和 b ,如果 a 能被 b 整除,就輸出算式和商,否則輸出算式、整數(shù)商和余數(shù)。 答 main()    int a,b;    printf(&quo

39、t;Input two integer numbers a,b:");    scanf("%d,%d",&a,&b);    if(b!=0&&a%b=0)        printf("%d/%d=%d",a,b,a/b);    else        printf("%

40、d/%d=%d.%d",a,b,a/b,a%b); 9 輸入某個(gè)點(diǎn) A 的平面坐標(biāo) (x,y),判斷(輸出)A點(diǎn)是在圓內(nèi)、圓外還是在圓周上,其中圓心坐標(biāo)為 (2,2),半徑為 1。 答 include"math.h"main()    float x,y,d;    printf("Input x,y:");    scanf("%f,%f",&x,&y);  

41、  d=sqrt(x-2)*(x-2)+(y-2)*(y-2);    if(d>1)printf("outside");    else if(d<1)printf("inside");    else printf("inside"); 10 輸入年號(hào)和月份,輸出這一年該月的天數(shù)(一個(gè)年份,先判斷是否閏年)。 答 main()    int y,m,d

42、,f;    printf("Input year and month y-m:");    scanf("%d-%d",&y,&m);    f=(y%4=0&&y/100!=0|y/400=0);    if(m=2)      d=28+f; /*依據(jù)是否閏年決定2月份的實(shí)際天數(shù),若是閏年,則f=1,d即為29天*/   

43、; else      d=31-(m=4)+(m=6)+(m=9)+(m=11);/*m=4時(shí)其值為1,則本月為30天,典型算法,重要啊*/    printf("%d-%d is %d days.n",y,m,d); 11 請(qǐng)將以下語(yǔ)句改寫成 switch 語(yǔ)句(a>0)。if(a<30)         m=1;else if(a<40)   

44、 m=2;else if(a<50)    m=3;else if(a<60)    m=4;else             m=5 答 switch(a/10)    case 1:    case 2:    case 3:m=1;break;    case

45、4:m=2;break;    case 5:m=3;break;    case 6:m=4;break;    default:m=5; 12 有一函數(shù)    x-1    -5<x<0y=  x      x=0    x+1    0<x<8編寫一程序,要求輸入 x 的值,輸出

46、 y 的值。分別用不嵌套的 if 語(yǔ)句,嵌套的 if 語(yǔ)句,switch語(yǔ)句編寫。 答 使用不嵌套的 if 語(yǔ)句程序如下:main()    float x,y;    printf("Input x:");    scanf("%f",&x);    if(x>-5&&x<0)y=x-1;    if(x=0)y=0;  

47、0; if(x>0&&x<8)y=x+1;    printf("y=%fn",y);  使用嵌套的 if 語(yǔ)句程序如下:main()    float x,y;    scanf("%f",&x);    if(x>-5&&x<8)        if(x<0)y=x-1; &

48、#160;      else if(x=0)y=0:             else y=x+1;    printf("y=%fn",y);main()    float x,y;    scanf("%f",&x);    if(x<8) 

49、;       if(x>0)y=x+1;        else if(x=0)y=0;             else if(x>-5)y=x-1;    printf("y=%fn",y); 使用多分支語(yǔ)句程序如下:main()    fl

50、oat x,y;    int m;    printf("Input x:");    scanf("%f",&x);    if(x>-5&&x<8)        if(x<0)m=-1;        else if(x=0)m=0: &#

51、160;           else m=1;    switch(m)            case -1:y=x-1;break;        case  0:y=0;break;        case

52、60; 1:y=x+1;break;        printf("y=%fn",y); 以下為假設(shè)對(duì)int類型的變量進(jìn)行處理,但畢竟不算完美m(xù)ain()    int x,y;    printf("Input x:");    scanf("%d",&x);    switch(x)     &#

53、160;      case -4:        case -3:        case -2:        case -1: y=x-1; break;        case  0: y=0; break;   

54、0;    case 1:        case 2:        case 3:        case 4:        case 5:        case 6:   

55、0;    case 7: y=x+1; break;        printf("y=%dn",y); 第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)習(xí)題答案1 輸入 n 個(gè)整數(shù),求這 n 個(gè)數(shù)之中的偶數(shù)平均值,并輸出。 答 main()    int n,i,x,sum=0,count=0;    printf("Input n:");    scanf(

56、"%d",&n);    for(i=0;i<n;i+)            printf("Input %d:",i+1);        scanf("%d",&x);        if(x%2=0)sum+=x;count+; 

57、       printf("Average is:%fn",(float)sum/count);    getch(); 2 輸入一串字符,直到輸入一個(gè)星號(hào)()為止,統(tǒng)計(jì)(輸出)其中的字母?jìng)€(gè)數(shù)和數(shù)字字符個(gè)數(shù)。 答 #include"stdio.h"main()    char ch;    int charcnt=0,numcnt=0;    w

58、hile(ch=getchar()!='*')            if(ch>='a'&&ch<='z'|ch>='A'&&ch<='Z')charcnt+;        if(ch>='0'&&ch<='9')numcnt+;

59、        printf("Characters number:%dnDigits number:%dn",charcnt,numcnt);    getch(); 3 從鍵盤輸入一個(gè)正整數(shù) n,計(jì)算該數(shù)的各位數(shù)字之和并輸出。例如,輸入數(shù)是5246,則計(jì)算5+2+4+617并輸出。 答 #include"stdio.h"main()    int n,i,sum=0,count=0; 

60、0;  printf("Input n:");    scanf("%d",&n);    while(n/10)!=0)            count+;        sum+=n%10;        printf("%d

61、+",n%10);        n/=10;        printf("=%d",sum+n);    getch(); 4 輸入一個(gè)字符串,將其中的大寫字母改為小寫字母,小寫字母改為大寫字母,然后輸出。 答 #include"stdio.h"main()    char ch;   

62、; printf("Input string:");    while(ch=getchar()!='n')            if(ch>='a'&&ch<='z')printf("%c",ch-32);        if(ch>='A'&&am

63、p;ch<='Z')printf("%c",ch+32);        getch(); 5 設(shè)某縣2000年工業(yè)總產(chǎn)值為200億元,如果該縣預(yù)計(jì)平均年工業(yè)總產(chǎn)值增長(zhǎng)率為4.5%,那么多少年后該縣年工業(yè)總產(chǎn)值將超500億元。 答 main()    float x=200;    int n=0;    do     

64、60;      x*=(1+0.045);        n+;    while(x<500);    printf("n=%d",n);    getch(); 6 輸出1999中能被3整除,而且至少有一位數(shù)字是5的所有數(shù)字。 答 main()    int x,y,flag; 

65、;   for(x=1;x<1000;x+)            flag=0;        y=x;        if(y%3=0)/*余數(shù)為0說(shuō)明該數(shù)能夠被3整除*/              

66、      while(y%10!=0)                            if(y%10=5)flag=1;/*依個(gè)位、十位、百位順序判斷是否余數(shù)為5*/         

67、60;      y/=10;                    if(flag=1)printf("%dt",x);                getch(); 7 求愛因斯坦數(shù)學(xué)題。有一條

68、長(zhǎng)階,若每步跨2階,則最后剩1階,若每步跨3階,則最后剩2階,若每步跨5階,則最后剩4階每步跨6階,則最后剩5階每步跨7階,最后正好1階。 答 main()    int x=0,flag=0;    while(1)            x+;        if(x%2=1)     

69、0;  if(x%3=2)        if(x%5=4)        if(x%6=5)        if(x%7=0)                    printf("%d&

70、quot;,x);            break;                getch(); 8 輸入一個(gè)3位數(shù),判斷是否是一個(gè)“水仙花數(shù)”。水仙花數(shù)是指3位數(shù)的各位數(shù)字的立方和等于這個(gè)3位數(shù)本身。例如,1531*1*1+5*5*5+3*3*3 答 main()    int x

71、,a,b,c;    printf("Input number:");    scanf("%d",&x);    a=x/100;/*變量a中記錄x的百位數(shù)字*/    b=x/10%10;/*變量b中記錄x的十位數(shù)字*/    c=x%10; /*變量c中記錄x的個(gè)位數(shù)字*/    if(a*a*a+b*b*b+c*c*c=x)   

72、        printf("%d=%d*%d*%d+%d*%d*%d+%d*%d*%dn",x,a,a,a,b,b,b,c,c,c);        printf("YES");        else        printf("NOT"); 

73、0;  getch(); 9 計(jì)算斐波那契分?jǐn)?shù)序列前n項(xiàng)之和(n是某個(gè)常數(shù),波那契分?jǐn)?shù)序列為2/1,3/2,5/3,8/5,.)。 答 main()    int i,n=10;    float f1=1,f2=2,f,sum=0;    for(i=0;i<n;i+)            sum+=f2/f1;   

74、     f=f1+f2;        f1=f2;        f2=f;        printf("total=%dnsum=%f",n,sum);    getch(); 10 輸入一個(gè)正整數(shù),各輸出n行的正(倒)三角形寶塔圖案。 答 main()

75、0;   int n,i,j;    printf("Input n:");    scanf("%d",&n);    for(i=0;i<n;i+)            for(j=i+1;j<n;j+)printf(" ");      &#

76、160; for(j=0;j<2*i+1;j+)printf("*");        printf("n");        for(i=0;i<n-1;i+)            for(j=0;j<i+1;j+)printf(" ");    

77、    for(j=2*i-1;j<n+1;j+)printf("*");        printf("n");        getch(); 11 輸出九九乘法表。 答 main()    int i,j;    for(i=1;i<=9;i+)   

78、         for(j=1;j<=i;j+)        printf("%d*%d=%-3d",j,i,i*j);        printf("n");        getch(); 12 輸入一串字符,直到輸入一個(gè)星號(hào)為止,統(tǒng)計(jì)(輸出)其中的正整數(shù)

79、和負(fù)整數(shù)個(gè)數(shù)以及所有正整數(shù)的平均值和所有負(fù)整數(shù)的平均值。 答 #include"stdio.h"#include"math.h"main()    char ch;    int x=0,y=1,f=0,pcnt=0,ncnt=0;    float psum=0,nsum=0;    while(ch=getchar()!='*')      

80、60;     if(ch='-')                    if(x!=0)                       

81、60;    if(f=1)                                    x=-x;          

82、          nsum+=x;                    ncnt+;                    &

83、#160;           else                                    psum+=x;  

84、0;                 pcnt+;                                printf("

85、%dn",x);                        f=1;x=0;y=1;            continue;           

86、0;    else if(ch>='0'&&ch<='9')                    x=10*x+ch-'0'            y=10*y;   &

87、#160;        if(x!=0&&10*x<y)f=0;            continue;                else          

88、          if(x!=0)                            if(f=1)            

89、                        x=-x;                    nsum+=x;      &#

90、160;             ncnt+;                                else     &

91、#160;                              psum+=x;                    pc

92、nt+;                                printf("%dn",x);               

93、60;        f=0;x=0;y=1;            continue;                if(x!=0)            if(f=1) &#

94、160;                  x=-x;            nsum+=x;            ncnt+;        &#

95、160;       else                    psum+=x;            pcnt+;           

96、60;    printf("%dn",x);        printf("n-n");    printf("Plus:n");    printf("Count=%dn",pcnt);    printf("Average=%fn",psum/pcnt);    printf(&qu

97、ot;-n");    printf("Negative:n");    printf("Count=%dn",pcnt);    printf("Average=%fn",nsum/ncnt);    getch(); 13 一個(gè)整數(shù)等于該數(shù)所有因子之和,則稱該數(shù)是一個(gè)完數(shù)。例如,6和28都是完數(shù)。因?yàn)?1+2+3,281+2+4+7+14。輸出3位數(shù)中所有的完數(shù)。 答

98、60;main()    int k1, k2, k3, k4, k5, k6, k7, k8, k9, k10;    int i,a,n,s;    for (a = 100; a <= 999; a+)            n = 0; /* n累計(jì)因子的個(gè)數(shù) */        s = a; /* s存放未求出的因子之和,

99、初值為被測(cè)數(shù)本身 */        for (i = 1; i < a; i+)        if (a % i = 0) /* 由i到a循環(huán)檢測(cè)i是否為a的因子 */                    n+; /* 找到一個(gè)因子 */  

100、60;         s = s - i; /* 減去已找到的因子 */            switch (n) /* 將找到的因子賦紿k1, k2, . */                     &

101、#160;      case 1 : k1 = i; break;                case 2 : k2 = i; break;                case 3 : k3 = i; break;  &

102、#160;             case 4 : k4 = i; break;                case 5 : k5 = i; break;              &

103、#160; case 6 : k6 = i; break;                case 7 : k7 = i; break;                case 8 : k8 = i; break;       &

104、#160;        case 9 : k9 = i; break;                case 10 : k10 = i; break;                    

105、60;       if (s = 0) /* 已經(jīng)找到全部因子 */                    printf("%d Its factors are ", a);            if (n > 1) printf("%d,%d", k1, k2); /* n>1表示a至少有2個(gè)因子 */     

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論