C程序設(shè)計教程課后習(xí)題答案吉順如版_第1頁
C程序設(shè)計教程課后習(xí)題答案吉順如版_第2頁
C程序設(shè)計教程課后習(xí)題答案吉順如版_第3頁
C程序設(shè)計教程課后習(xí)題答案吉順如版_第4頁
C程序設(shè)計教程課后習(xí)題答案吉順如版_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第 2 章習(xí)題一、選擇題1 、 A2、D3、C4、D5、B6、C7、C8、B9、B10、A二、填空題1 、一,函數(shù)體2、main(主),main(主)3、編譯,目標(biāo)4、 .c, .obj, .exe5、縮進(jìn),無影響,/* */三、程序分析題1、*Very good!*2、a=12,b=5a=17,b=223、r= 5.50,s=95.033098四、編程題1 用 printf() 函數(shù)在屏幕上輸出自己的班級、學(xué)號、姓名。#include"stdio.h"void main()printf(" 班級: BX1109n");printf(" 學(xué)號:

2、111003530901n");printf(" 姓名:王孟榮n");2從鍵盤輸入兩個整數(shù),計算它們的和、差、積、商,并在屏幕上輸出結(jié)果。#include<stdio.h>void main()int x,y,a,b,c;float d;printf("Please Input Two Integers:n");scanf("%d%d",&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf("a=%dnb=%dnc=%dnd=%fn",a,b,c,

3、d);第 3 章習(xí)題一、選擇題1 5 BCDCD610 DBBCA二、填空題2 單精度浮點型、雙精度浮點型、字符型3 04 x%10*10+x/105 5.56 5.7 207 sin(sqrt(x*x)/(a*b)8 ,9 1111011 173 7B10 3 311 3三、程序分析題1 7,8,102 1,33 5 F4 (int)i=12,12.505 461579112四、編程題1 編寫程序,求表達(dá)式c=21%9-(float)a+4/b*b 的值,假設(shè)表達(dá)式中a 和 b 的值分別由鍵盤輸入。#include<stdio.h>void main( )int a,b;floa

4、t c;printf("Please input data a,b: ");scanf("%d%d",&a,&b);c=21%9-(float)a+4/b*b;printf("c=%5.2fn", c);2 . 編寫程序,從鍵盤輸入兩個整數(shù)存入變量a 和 b 中,求 a2-b2 的值并輸出。#include<stdio.h>void main( )int a,b,c;printf("Please input data a,b: "); scanf("%d%d",&am

5、p;a,&b);c=a*a-b*b;printf("c=%dn", c);第 4 章習(xí)題一、選擇題12345678910DCA、B ABBB、C BDD二、填空題1. 有窮性 確定性 可行性2. #3. 從終端(鍵盤)輸入一個字符4. m d5. 97, g6. 123.456000, 123.46, 1237. 格式控制符不正確(輸入數(shù)據(jù)時不能控制列寬和小數(shù)位數(shù))8. 63,63,77,3f9. %f%f &x,&y10. <stdio.h> ch ch三、程序分析題1. c=112. a=123 f=4573. x=345y=3.46

6、00004. a=1,b=3a=3,b=15. (題目需修改為:從鍵盤輸入一個除a 和 z 以外的小寫字母)程序的功能:從鍵盤輸入一個除a和z以外的小寫字母,求出該字母對應(yīng)的大寫字母的前趨和后繼字母,然后順序輸出此三個大寫字母,每個字母所占列寬為3。運行結(jié)果:假如輸入:f '輸出:E F G四、編程題1 編寫程序,計算的值并輸出(保留3 位小數(shù) ),其中a、 b 的值由鍵盤輸入。#include <stdio.h>#include<math.h>void main( ) float a, b,x;scanf("%f%f", &a, &

7、amp;b);x=(a*a+b*b)/sqrt(3*(a+b);printf("x=%.3fn",x);2 .編寫程序,從鍵盤輸入一個梯形的上底a、下底b和高h(yuǎn),輸出梯形的面積 s。#include <stdio.h>#include<math.h>void main( ) float a, b,h,s;scanf("%f,%f,%f", &a,&b,&h);s=(a+b)*h/2;printf(" 梯形面積s=%.2fn",s);3編寫程序,在屏幕上輸入你姓名的第一個字母,顯示出該字母

8、以及下面的信息:Hello!This is a c program.My name is 第一個字母#include <stdio.h>void main( )char name;name=getchar();putchar(name);printf("nHello!n");printf("This is a c program.n");printf("My name is %cn",name);第 4 章習(xí)題一、選擇題12345678910BBCBCA CBACC二、填空題1. ! && |2. 13.

9、a b4. 15. 06. x%4= =0 && x%100!=07. 5 68. A9. x<0 | x>10 && x<5010. -1三、程序分析題1 No2 -23 5324 #&5 (1)2(2)3CCa=2,b=2,c=4四、編程題1. 有一個函數(shù)如下:x2-2(x<5)y= 3x+5(5 & x<50)x- (x > 50)編寫程序,輸入x的值,計算相應(yīng)的y值輸出(保留3位小數(shù))。#include<stdio.h>#include<math.h>void main() fl

10、oat x,y;scanf("%f", &x);if(x<5) y=x*x-2;else if(x<50) y=3*x+5;else y=x-sqrt(4*x-1);printf("x=%f, y=%.3fn", x,y);2編寫一個程序,根據(jù)輸入的三角形的三條邊判斷是否能組成三角形,如果可以則輸出它的面積和三角形類型(等邊、等腰、直角、一般三角形)。#include<stdio.h>#include<math.h>void main( ) float a, b, c, s, area;scanf("

11、%f,%f,%f", &a,&b,&c);if(a+b>c && b+c>a && a+c>b) s=(a+b+c)/2;area=sqrt(s*(s*(s-a)*(s-b)*(s-c);printf("area=%fn",area);if(a=b && b=c)printf(" 等邊三角形n");else if(a=b | a=c | b=c)printf("等腰三角形n");else if(a*a + b*b= c*c)|(a*a

12、+ c*c= b*b)|(b*b + c*c = a*a) printf("直角三角形n");else printf("一般三角形 n");else printf(" 不能組成三角形n");3設(shè)獎金稅率r 有如下的要求(n 代表獎金) :0n<10005% 1000 < n<2000r= 8% 2000 & n<300010% 3000 < n<600015% 6000 Wn用 switch 多分支選擇語句編寫程序,輸入獎金值,計算并輸出相應(yīng)的稅率和實際應(yīng)得獎金值。#include<s

13、tdio.h>void main( ) float n, r, s;int m;printf(" 請輸入獎金值:");scanf("%f", &n);if(n>=6000) m=6;else m=n/1000;switch(m) case 0: r=0; break;case 1: r=0.05; break;case 2: r=0.08; break;case 3:case 4:case 5: r=0.1; break;case 6: r=0.15; break;s=n-r*n;printf("稅率 r=%.0f%,獎金值

14、 n=%.2f,實際應(yīng)得獎金值 s=%.2fn",r*100, n, s); 4 .從鍵盤輸入任意4個數(shù)a、b、c、d,按照從大到小的順序排列后重新輸出。#include<stdio.h>void main( ) int a, b, c, d,t;scanf("%d,%d,%d,%d", &a,&b,&c,&d);if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;if(a<d)t=a;a=d;d=t;if(b<c)t=b;b=c;c=t;if(b<d)t=b;b=d

15、;d=t;if(c<d)t=c;c=d;d=t;printf("%d %d %d %dn", a,b,c,d);1234,5 . 給出一個不超過4 位數(shù)的正整數(shù),判斷它是幾位數(shù),并按逆向輸出各位數(shù)字。例輸出為 4321 。#include<stdio.h>void main( ) int num,i,j,k,m;printf(" 輸入一個少于4 位的正整數(shù):");scanf("%d",&num);if(num>=0 && num<=9999) if(num>1000 &

16、;& num<=9999) printf(" 是一個 4 位數(shù) n");m=num%10;/*求個位上的數(shù)字*/k=num/10%10;/* 求十位上的數(shù)字*/j=num/100%10;/* 求百位上的數(shù)字*/i=num/1000;/*求千位上的數(shù)字*/printf(" 逆序數(shù)為:%d%d%d%dn",m,k,j,i);else if(num>=100) printf(" 是一個 3 位數(shù) n");m=num%10;/*求個位上的數(shù)字*/k=num/10%10;/* 求十位上的數(shù)字*/j=num/100;/* 求百

17、位上的數(shù)字*/printf(" 逆序數(shù)為:%d%d%dn",m,k,j);else if(num>=10)printf(" 是一個 2 位數(shù) n");m=num%10; /* 求個位上的數(shù)字*/k=num/10; /* 求十位上的數(shù)字*/printf(" 逆序數(shù)為:%d%dn",m,k);elseprintf(" 是一個 1 位數(shù) n");printf(" 逆序數(shù)為:%dn",num);else printf(" 是一個無效的數(shù)n");第 6 章習(xí)題一、選擇題12345

18、678910BCBCABDBAB二 填空題1. 循環(huán) switch2. 4,73. 64. # #5. 0 26. 187. 18. sum=809. c=getchar()n:m10. i %13= =0break三 程序分析題1. output1:21 6output2: 5 6output3: 5 7 72. n=73. Max=18Min=34. 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=95. 0 1 2 31 2 3 02 3 0 13 0 1 2四、編程題1. 從鍵盤上輸入若干字符,以按Enter鍵結(jié)束,統(tǒng)計其中字符 A或a的個數(shù)。#include &quo

19、t;stdio.h"main() char ch;int k=0;while(ch=getchar()!='n') if(ch='A' | ch='a')k=k+1; printf("%dn",k);2. 利用二X 的前100項之積計算p的值。 #include <stdio.h>main()double term, result = 1; /* 累乘項初值應(yīng)為1*/int n;for (n=2; n<=100; n = n + 2) term=(double)( n * n)/(n-1)*(n+1

20、); /* 計算累乘項*/result = result * term;printf("result = %fn", 2*result);3. 用 1 元 5 角錢人民幣兌換5 分、 2 分和 1 分的硬幣(每一種都要有)共100 枚,問共有幾種兌換方案?每種方案各換多少枚?#include<stdio.h>main()int x,y,z,count=0;for(x=1;x<=28;x+)for(y=1;y<=73;y+)z=100-x-y;if(5*x+2*y+z=150)count+;printf("%d,%d,%dn",x,

21、y,z);printf("count=%dn",count);4. 雞兔同籠,共有98 個頭, 386 只腳,編程求雞、兔各多少只。#include <stdio.h>main() int x, y;for (x=1;x<=97;x+) y=98-x;if(2*x+4*y=386) printf("雞=%d=%d",x,y);5. 將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5 。#include <stdio.h>main() int n,i;printf("nplease input a n

22、umber:n");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i+)while(n!=i)if(n%i=0) printf("%d*",i); n=n/i;else break;printf("%d",n);6. 從鍵盤任意輸入一個4位數(shù)x,編程計算x的每一位數(shù)字相加之和。例如,輸入x為1234,則由 1234 分離出其千位1、百位2、十位3、個位4,然后計算1+2+3+4=10,并輸出10。#include<stdio.h>#inc

23、lude<math.h>main()int i1,i2,i3,i4,k,n;printf("Inputdatais:");scanf("%d",&n);k=fabs(n); /* 取絕對值*/i1=k/1000; /* 分離出千位*/i2=(k-i1*1000)/100; /* 分離出百位*/i3=(k-i1*1000-i2*100)/10;/* 分離出十位*/i4=k%10; /* 分離出個位*/printf("The sum of the total bit is %dn",i1+i2+i3+i4); 7. 打

24、印出所有"水仙花數(shù)",所謂 "水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153 是一個水仙花數(shù),因為153=13+53+33。#include <stdio.h>void main()int i,j,k,n;printf("parcissus numbers are:n");for (n=100;n<1000;n+)i=n/100;j=n/10-i*10;k=n%10;if (n=i*i*i+j*j*j+k*k*k) printf("%dn",n);8. 利用泰勒級數(shù)sin(x

25、)計算sin(x)的值。要求最后一項的絕對值小于10-5,并統(tǒng)計出此時累加了多少項(x 由鍵盤輸入)。#include <math.h>#include <stdio.h>main()int n=1,count=1;float x;double sum,term; /* 因為位數(shù)多,所以定義為雙精度*/printf("Input x: ");scanf("%f", &x);sum=x;term=x; /* 賦初值 */doterm=-term*x*x/(n+1)*(n+2);sum=sum+term; /* 累加 */n=

26、n+2;count+;while(fabs(term)>=1e-5);printf("sin(x)=%.1f,count=%dn",sum,count);9. 編寫一個猜數(shù)游戲:任意設(shè)置一個整數(shù),請用戶從鍵盤上輸入數(shù)據(jù)猜想設(shè)置的數(shù)是什么,告訴用戶是猜大了還是小了。10 次以內(nèi)猜對,用戶獲勝;否則,告訴用戶設(shè)置的數(shù)據(jù)是什么。#include <stdio.h>void main()int num=123,x,n;printf("hint:0<number<1000n"); /* 給出數(shù)據(jù)范圍的提示信息*/for(n=1;n&l

27、t;=10;n+)printf("guess:");scanf("%d",&x);if(x=num) printf("Win!n");break;if(x>num) printf("bigger!n");if(x<num) printf("smaller!n");if(n=11) printf("Lost!the number is %dn",x);10. 編程輸出以下圖案。*#include <stdio.h> main()int i,j;f

28、or(i=1;i<=4;i+)for (j=20-i;j>=1;j-) printf("%c",' ');for (j=0;j<2*i-1;j+) printf("*");printf("n");for (i=3;i>=1;i-)for (j=20-i;j>=1;j-) printf("%c",' ');for (j=0;j<2*i-1;j+) printf("*");printf("n");第 7 章習(xí)題一

29、、選擇題12345678910DADBDCBDBD二 填空題1. 02. 14 m3. 10 74. 數(shù)據(jù)類型5. strcpy(S2,S1) #include<string.h>6. 0 37. 7,68. sum=0i=jaij9. 410. Tony三 程序分析題1. max=85min=5sum=180aver=30.002. a=2b=2c=2d=2e=1f=2g=23. j=454. Ti_saCPormTss_Pgm5. 1 1 1 5四、編程題1 從鍵盤輸入15 個整數(shù),存放在數(shù)組中,找出其中最小數(shù)并指出其所在的位置。#include<stdio.h>#

30、define N 15main()int min,i,j,aN;printf("Enter N integers:n");for(i=0;i<N;i+)scanf("%d",&ai);min=a0;for(i=1;i<N;i+)if(min>ai) min=ai;j=i;printf("%d,%d",min,j);2將輸入的十進(jìn)制正整數(shù)化為十六進(jìn)制數(shù)。#include <stdio.h>main()int i,x,j,a20;printf(" 請輸入一個正整數(shù):");while

31、(1)scanf("%d",&x);if(x<0)printf(" 數(shù)據(jù)輸入錯誤,請重新輸入一個正整數(shù):");else break;i=0;while(x)ai=x%16;x=x/16;i+;for(j=i-1;j>=0;j-)if(aj<=9)printf("%d",aj);else if(aj<=15)printf("%c",aj+'A'-10);printf("n");3從鍵盤輸入一行字符,統(tǒng)計其中有多少單詞,假設(shè)單詞之間以逗號分隔。#inc

32、lude <stdio.h>void main()char string81;int i,num=0,word=0;char c;gets(string);for (i=0;(c=stringi)!='0'i+)if(c=',') word=0;else if(word=0) word=1;num+;printf("There are %d words in the line.n",num);4從鍵盤輸入一字符串,放在字符數(shù)組a 中,將字符數(shù)組a 中下標(biāo)值為偶數(shù)的元素按從小到大排序。#include<stdio.h>#

33、include<string.h>void main()char a80,t,m;int i,j,k;printf(" 請輸入一字符串:");gets(a);k=strlen(a);for(i=0;i<=k-2;i+=2) m=i;for(j=i+2;j<=k; j+=2 )if(am>aj)m=j;if(m!=i)t=ai;ai=am;am=t;puts(a);printf("n");5編寫程序輸出以下楊輝三角形(要求輸出10 行) 。111121133114641151010 51#include<stdio.h&

34、gt;#include<string.h>void main() int i,j,a1010;for(i=0;i<10;i+) ai0=aii=1;for(j=1;j<i;j+)aij=ai-1j-1+ai-1j;for(i=0;i<10;i+) for(j=0;j<=i;j+)printf("%6d",aij);printf("n");6編程將s 數(shù)組中的字符串的正序和反序進(jìn)行連接,形成一個新串放在t 數(shù)組中。例如,當(dāng)s數(shù)組中字符串為"ABCD"時,則t數(shù)組中的內(nèi)容應(yīng)為:"ABCDDCB

35、A、#include<stdio.h>#include<string.h>main()char s100, t100;int i,d;printf("Please enter string S:");scanf("%s",s);d=strlen(s);for(i=0;i<d;i+) ti=si;for(i=0;i<d;i+) td+i=sd-1-i;t2*d='0'printf("The result is: %sn",t);7某公司在傳輸數(shù)據(jù)過程中為了安全要對數(shù)據(jù)進(jìn)行加密,若傳遞的

36、是四位的整數(shù),對其進(jìn)行加密的規(guī)則為:每位數(shù)字都加上5,然后用和除以10 的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。如:輸入數(shù)字7659,則加密后的數(shù)字為4012#include<stdio.h>main() int a,i,aa4,t;printf(" 輸入一個需加密的四位數(shù)整數(shù):");scanf("%d",&a);aa0=a%10;aa1=a%100/10;aa2=a%1000/100;aa3=a/1000;for(i=0;i<=3;i+)aai+=5;aai%=10;for(i=0;i<=3/2;i

37、+)t=aai;aai=aa3-i;aa3-i=t;printf(" 加密后的數(shù)字為:");for(i=3;i>=0;i-)printf("%d",aai);printf("n");8編寫程序查找數(shù)值18 在以下二維數(shù)組中第一次出現(xiàn)的位置。3 4 5 188 12 16 5443 34 18 7#include <stdio.h>main() int i,j,a34=3,4,5,18, 8,12,16,54, 43,34,18,7;for(i=0;i<3;i+) for(j=0;j<4;j+)if(aij

38、=18) break;if(j<4)break;printf(" 數(shù)值 18 第一次出現(xiàn)的位置在%d 行 ,第 %d 列 n",i+1,j+1);9.設(shè)有4行4列的數(shù)組a,其元素aij=3*i+2*j-6。編寫程序,實現(xiàn)如下功能:( 1 )求第二行4 元素的累加和;( 2) 求第四列4 元素的平均值;( 3) 求主對角線4 元素中負(fù)數(shù)的個數(shù)。#include <stdio.h>void main() int a44,i,j,s=0,m=0;float n=0;for(i=0;i<4;i+)for(j=0;j<4;j+)aij=3*i+2*j-6

39、;printf(" 原始數(shù)組為:n");for(i=0;i<4;i+) for(j=0;j<4;j+)printf("%3d",aij);printf("n");for(j=0;j<4;j+)s+=a1j;printf(" 第二行 4 元素累加和為:%dn",s);for(j=0;j<4;j+)n+=aj3;printf(" 第四列 4 元素平均值為:%.2fn",n/ 4.0);for(i=0;i<4;i+)if(aii<0)m+;printf("

40、 主對角線4元素中負(fù)數(shù)的個數(shù)為:%dn",m);10約瑟夫環(huán)問題:編號為1,2,3,.,n 的 n 個人按順時針方向圍坐一圈,每人持有一個正整數(shù)密碼。一開始任選一個正整數(shù)m 作為報數(shù)上限值,從第一個人開始按順時針報數(shù),報到m 時停止,報m 的人出列,將他的密碼作為新的m 值,從他在順時針方向的下一個人開始重新從 1 報數(shù),如此下去,直到所有人全部出列為止。設(shè)計程序求出出列順序。分析:設(shè)整型數(shù)組a 中保存 n 個人的密碼,對應(yīng)的人出列后,數(shù)組元素置0 作為標(biāo)志。順時針確定下一個人的方法,可將下標(biāo)加1 ,再對 n 求余。#include <stdio.h>#define N

41、100main() int a100;int i,j,m,n,k=0;printf(" 輸入人數(shù)n 和任選的一個正整數(shù)m:");scanf("%d%d",&n,&m);printf(" 輸入 n 個人的密碼: ");for (i=0;i<n;i+)scanf("%d",&ai);printf("n 出列順序為: ");for(i=0;i<n;i+) j=1;while(j<m) while(ak=0) /* 跳過已出列的人*/k=(k+1)%n;j+;k

42、=(k+1)%n;while(ak=0) /* 跳過已出列的人*/k=(k+1)%n;printf("%d ",k+1);m=ak;ak=0;12345678910ADDBADCDBA二 填空題1. main()2. main()3函數(shù)首部4. 解決函數(shù)必須“定義在前,使用在后”的原則問題5. int6. 定義 調(diào)用7. 地址傳遞值傳遞8. return void9. void f(float a,float b) float f(float a,float b)10. static三 程序分析題1. a=482. 8,173. 27214. BASICCCOBOLFORT

43、RANPASCALSmalltalk5. 61 2 36 5 4四、編程題1 寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。#include <stdio.h>#include<math.h>void main()int prime(int);int n;printf("Input an integer:");scanf("%d",&n);if (prime(n)printf("n %d is a prime.n",n);elseprintf("n %d is not a p

44、rime.n",n);int prime(int n)int flag=1,i;for (i=2; i<sqrt(n) && flag=1;i+)if (n%i=0)flag=0;return(flag); 2 .寫一個函數(shù),用于實現(xiàn)函數(shù)strcmp()的功能,能將兩個字符串進(jìn)行比較,將兩個字符串中第一個不相同字符的ASCII碼值之差作為函數(shù)的返回值。#include <stdio.h>int MyStrcmp(char s, char t);main()char str120,str220;printf("Input string:&qu

45、ot;);gets(str1);printf("Input another string:");gets(str2);if (MyStrcmp(str1,str2)>0)printf("str1>str2n");else if (MyStrcmp(str1,str2)<0)printf("str1<str2n"); elseprintf("str1=str2n");int MyStrcmp(char s, char t)int i;for (i=0;si=ti; i+)if (si='

46、;0') return 0 ;return (si-ti);3 .寫一個函數(shù),用于實現(xiàn)函數(shù)strcat()的功能,能將兩個字符串連接。#include <stdio.h>void main()void concatenate(char string1,char string2,char string);char s1100,s2100,s100;printf("input string1:");scanf("%s",s1);printf("input string2:");scanf("%s",

47、s2);concatenate(s1,s2,s);printf("nThe new string is %sn",s);void concatenate(char string1,char string2,char string)int i,j;for (i=0;string1i!='0'i+)stringi=string1i;for(j=0;string2j!='0'j+)stringi+j=string2j;stringi+j='0'4 . 從鍵盤任意輸入10 個整數(shù),用函數(shù)編程實現(xiàn)將其中最大數(shù)與最小數(shù)的位置對換后,再輸出

48、調(diào)整后的數(shù)組。#include <stdio.h>#define ARRSIZE 10void MaxMinExchang(int a, int n)int maxValue=a0, minValue=a0, maxPos=0, minPos=0;int i, temp;for (i=1; i<n; i+)if (ai > maxValue)maxValue = ai;maxPos = i;else if (ai < minValue)minValue = ai;minPos = i;temp = amaxPos;amaxPos = aminPos;aminPos

49、 = temp;main()int aARRSIZE,i;printf("Input %d Numbers:n",ARRSIZE);for (i=0; i<ARRSIZE; i+)scanf("%d", &ai);MaxMinExchang(a, ARRSIZE);printf("After MaxMinExchange:n");for (i=0;i<ARRSIZE; i+)printf("%4d", ai);printf("n") ;5. 寫一函數(shù),能對給定的一個二維數(shù)組(

50、3X3進(jìn)行轉(zhuǎn)置(即行列互換)#include <stdio.h>#define N 3int arrayNN;void main() void convert(int array3);int i,j;printf("input array:n");for (i=0;i<N;i+)for (j=0;j<N;j+)scanf("%d",&arrayij);printf("noriginal array :n");for (i=0;i<N;i+)for (j=0;j<N;j+)printf(&qu

51、ot;%5d",arrayij);printf("n");convert(array);printf("convert array:n");for (i=0;i<N;i+)for (j=0;j<N;j+)printf("%5d",arrayij);printf("n");void convert(int array3)int i,j,t;for (i=0;i<N;i+)for (j=i+1;j<N;j+)t=arrayij;arrayij=arrayji;arrayji=t;6.

52、寫一函數(shù),能用“起泡法 ”對輸入的10 個字符按由小到大順序排序。#include <stdio.h>#include <string.h>#define N 10char strN;void main()void sort(char str);int i,flag;for (flag=1;flag=1;)printf("input string:n");scanf("%s",str);if (strlen(str)>N)printf("string too long,input again!");els

53、eflag=0;sort(str);printf("string sorted:n");for (i=0;i<N;i+)printf("%c",stri);printf("n");void sort(char str)int i,j;char t;for(j=0;j<N-1;j+)for (i=0;(i<N-1-j)&&(stri!='0');i+)if(stri>stri+1)t=stri;stri=stri+1;stri+1=t;7. 編寫一個函數(shù),由實參傳來一個字符串,統(tǒng)計

54、此字符串中字母、數(shù)字、空格和其他字符的個數(shù)。#include <stdio.h>int letter,digit,space,others;void main()void count(char str);char text80;printf("input string:n");gets(text);printf("string:");puts(text);letter=0;digit=0;space=0;others=0;count(text);printf("nletter:%dndigit:%dnspace:%dnothers:

55、%dn",letter,digit,space,others);void count(char str)int i;for (i=0;stri!='0'i+)if (stri>='a'&& stri<='z')|(stri>='A' && stri<='Z') letter+;else if (stri>='0' && str i<='9')digit+;else if (stri=32)s

56、pace+;elseothers+;8. 編寫程序輸出310000內(nèi)的可逆素數(shù)??赡嫠財?shù)是指:一個素數(shù)將其各位數(shù)字的順序倒 過來構(gòu)成的反序數(shù)也是素數(shù)。如 157 和 751 均為素數(shù),它們是可逆素數(shù)。要求調(diào)用兩個子函數(shù)實現(xiàn)。#include<stdio.h>#include<stdlib.h>#include<math.h>int invert(int a)int s=0;while(a>0)s=10*s+a%10;a/=10;return s;int prime(int a)int i;for(i=2;i<=(int)sqrt(a);i+)if

57、(a%i=0)return 0;return 1;main()int i;for(i=3;i<10000;i+)if(prime(i)if(prime(invert(i)printf("%5d",i);printf("n");9. 編寫一個函數(shù),實現(xiàn)將一個十進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)。#include <stdio.h>#include <string.h>void main()int i,n;char a33;void trans10_8(char x,int m);printf("nInput a positive

58、integer:");scanf("%d",&n);trans10_8(a,n);for (i=strlen(a)-1;i>=0;i-) printf("%c",ai);printf("n");void trans10_8 (char x,int m)int r,i=0;while(m>0)r=m%8;xi=r+48;m=m/8;i+;xi='0'10. 編寫一個函數(shù),實現(xiàn)對由實參傳來的一個字符串,將其字符順序顛倒后重新存放。#include <stdio.h>#include <string.h>void

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論