程序設(shè)計(jì)答案壓縮版_第1頁
程序設(shè)計(jì)答案壓縮版_第2頁
程序設(shè)計(jì)答案壓縮版_第3頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.1. 判斷 m 是否為素?cái)?shù)。 int i,k=1;if(m<=1) k=0;for(i=2;i<m;i+) if(m%i=0) k=0; return k;2. 請編一個(gè)函數(shù) void fun(int ttMN,int ppN) , tt 指向一個(gè) M 行 N 列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入 pp 所指一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中賦予。答案: int i,j;for(j=0;j<N;j+)ppj=tt0j;for(i=1;i<M;i+)if(ttij>ppj)ppj=ttij;3. 從鍵盤上輸入任意實(shí)數(shù),求出其所對應(yīng)的函數(shù)值。z=

2、e 的 x 次冪( x>10)z=log(x+3) (x>-3)z=sin(x)/(cos(x)+4)答案: double z;if(x>10) z=exp(x);else if(x>-3) z=log(x+3);else z=sin(x)/(cos(x)+4);return(z);4. 求給定正整數(shù) n 以內(nèi)的素?cái)?shù)之積。 ( n<28)答案: long i,k;long s=1;for(i=2;i<=n;i+)for(k=2;k<i;k+)if(i%k=0)break;if(k=i)s=s*i;return s;5. 計(jì)算并輸出給定整數(shù)的所有因子之積

3、(包括自身)。規(guī)定這個(gè)整數(shù)的值不大于50。答案:longs=1,i;for(i=2;i<=n;i+)if(n%i=0)s=s*i;return s;6.產(chǎn)生 20 個(gè)30,120上的隨機(jī)整數(shù)放入二維數(shù)組a54中 , 求其中的最小值。答案: int i,j,s;s=a00;for(i=0;i<5;i+)for(j=0;j<4;j+)if(s>aij)s=aij;return(s);7.編寫函數(shù)判斷一個(gè)整數(shù)能否同時(shí)被3 和 5 整除,若能則返回值為1,否則為 0。調(diào)用該函數(shù)求出 15300之間能同時(shí)被 3和 5 整除的數(shù)的個(gè)數(shù)。答案:if(n%3=0&&n%

4、5=0) return(1);return(0);8.編寫函數(shù) fun求 1!+2!+3!+n! 的和 ,在 main 函數(shù)中由鍵盤輸入 n 值,并輸出運(yùn)算結(jié)果。請編寫 fun函數(shù)。例如:若n 值為 5,則結(jié)果為 153。答案: int i;float f=1,s=0;for(i=1;i<=n;i+)f=f*i;s=s+f;return s;9.對某一正數(shù)的值保留 2 位小數(shù),并對第三位進(jìn)行四舍五入。答案:int i;i=(int)(h*1000)%10;if(i>=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;

5、10. 能計(jì)算從 1 開始到 n 的自然數(shù)的和, n 由鍵盤輸入,并在 main()函數(shù)中輸出。答案: int sum,i;sum =0;for(i=1;i<=n;i+)sum=sum+i;return(sum);11. 求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組的值在主函數(shù)中賦予。答案:int s=0;int i,j;for(i=0;i<M;i+)s=s+ai0+aiN-1;for(j=1;j<N-1;j+) s=s+a0j+aM-1j; return s;12.功能求一個(gè)四位數(shù)的各位數(shù)字的立方和。答案int d,s=0;while (n>0)d=n%10;s

6、+=d*d*d;n/=10;return s;13.對長度為 8 個(gè)字符的字符串,將8 個(gè)字符按降序排列。例如:原來的字符串為CEAedcab,排序后輸出為edcbaECA。答案:int i,j;char t;for(i=0;i<num;i+)for(j=i+1;j<num;j+)if(si<sj) t=si;si=sj;sj=t;14. 編寫函數(shù) fun 計(jì)算下列分段函數(shù)的值:x2+x+6x<0 且 x-3f(x)= x2-5x+60 x<10 且 x2 及 x 3x2-x-1其它答案:float y;if (x<0 && x!=-3.0)

7、y=x*x+x+6;else if(x>=0&& x<10.0 && x!=2.0 &&x!=3.0)y=x*x-5*x+6;elsey=x*x-x-1;return y;15. 求 n 階方陣主、副對角線上的元素之積。答案:int i,j;float t=1;for(i=0;i<N;i+)for(j=0;j<N;j+)if(i=j|i+j=N-1)t=t*arrij;return(t);16. 從字符串 s 中刪除指定的字符c。答案: int i,k=0;for(i=0;si!='0'i+)if(si!=

8、c) sk+=si;sk='0'17.對任意輸入的x,用下式計(jì)算并輸出y 的值。5x<10y=0x=10-5x>10答案: int m;if(n<10)m=5;else if(n=10) m=0;else m=-5;return m;18.編寫函數(shù)用冒泡排序法對數(shù)組中的數(shù)據(jù)進(jìn)行從小到大的排序。答案:int i,j,t;for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(aj>aj+1) t=aj;aj=aj+1;aj+1=t;精選文檔.19. 把 20 個(gè)隨機(jī)數(shù)存入一個(gè)數(shù)組,然后輸出該數(shù)組中的最大值。答案: int

9、i,max=0;for(i=1; i <size; i+)if(listmax<listi) max=i; return max;20.把 20 個(gè)隨機(jī)數(shù)存入一個(gè)數(shù)組,然后輸出該數(shù)組中的最小值。其中確定最小值的下標(biāo)的操作在fun 函數(shù)中實(shí)現(xiàn),請給出該函數(shù)的定義。 答案: int i,min=0;for(i=1; i <size; i+)if(listmin>listi) min=i; return min;21.給定 n 個(gè)數(shù)據(jù) , 求最小值出現(xiàn)的位置(如果最小值出現(xiàn)多次,求出第一次出現(xiàn)的位置即可) 。答案: int i,k; k=0; for(i=1;i<n;i

10、+)if(si<sk) k=i; return(k);22.求 1 到 100 之間的偶數(shù)之積。答案: doubley=1;int i;for(i=1;i<=m;i+)if(i%2=0)y*=i;return y;23.求一組數(shù)中大于平均值的數(shù)的個(gè)數(shù)。例如:給定的一組數(shù)為1,3,6,9,4,23,35,67,12,88時(shí),函數(shù)值為 3。答案:int i,k=0; float s=0,ave;for(i=0;i<n;i+)s+=ai;ave=s/n;printf("%f",ave);for(i=0;i<n;i+)if(ai>ave)k+;etur

11、n k;24·判斷一個(gè)整數(shù)w 的各位數(shù)字平方之和能否被5 整除,可以被5 整除則返回1,否則返回0。答案:int k,s=0; dos=s+(w%10)*(w%10);w=w/10;while(w!=0); if(s%5=0)k=1;else k=0;return(k);25. 找出一批正整數(shù)中的最大的偶數(shù)。答案:inti,amax=-1;for(i=0;i<n;i+)if(ai%2=0)if(ai>amax)amax=ai; return amax;26. 編寫函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中輸入任意三個(gè)數(shù)據(jù),調(diào)用函數(shù)對這三個(gè)數(shù)據(jù)從大到小排序。答案: int k; k

12、=*a;*a=*b; *b=k;27.輸入華氏溫度求攝氏溫度。轉(zhuǎn)換公式為c=5/9 ( f-32),輸出結(jié)果取兩位小數(shù)。答案: float n;n=(5.0/9.0)*(m-32); return n;28.能計(jì)算從 1 開始到 n 的自然數(shù)中偶數(shù)的平方的和,n 由鍵盤輸入,并在main()函數(shù)中輸出。( n 是偶數(shù))答案: int sum,i;sum =0;for(i=2;i<=n;i=i+2)sum=sum+i*i;return(sum);29.編寫函數(shù)求表達(dá)式的和( n 的值由主函數(shù)輸入) 。1-1/2+1/3-1/4+.+1/m例如:當(dāng) n=20 時(shí),表達(dá)式的值為 0.66877

13、1。答案: float s=0;int i,k=1;for(i=1;i<=n;i+) s=s+k*1.0/i;k=-k;return(s);30. 求大于 lim ( lim 小于 100 的整數(shù))并且小于100 的所有素?cái)?shù)并放在aa 數(shù)組中,該函數(shù)返回所求出素?cái)?shù)的個(gè)數(shù)。答案:int n=0; int i,j; for(i=lim;i<=100;i+) for(j=2;j<i;j+)if(i%j=0) break;if(j=i) aan+=i;return n;31. 將從鍵盤上輸入的每個(gè)單詞的第一個(gè)字母轉(zhuǎn)換為大寫字母,輸入時(shí)各單詞必須用空格隔開,用.結(jié)束輸入。答案 if (

14、*c= ' ') return 1;else if(status && *c <= 'z' && *c >= 'a')*c += 'A' - 'a'return 0;32.用 while 語句求 1 100 的累計(jì)和。答案:int i=1,sum=0;while(i<=n) sum=sum+i;i+;return sum;33. 從字符串中刪除指定的字符。同一字母的大、小寫按不同字符處理。例如:若程序執(zhí)行時(shí)輸入字符串為: turbocandborlandc+ 從鍵盤

15、上輸入字符:n,則輸出后變?yōu)椋簍urbocadborladc+ ,如果輸入的字符在字符串中不存在,則字符串照原樣輸出。答案:char *q=s; for(; *q; q+) if(*q != c) *(s+)=*q;*s=0;34. 從鍵盤上輸入任意實(shí)數(shù) x,求出其所對應(yīng)的函數(shù)值。z=(x-4)的二次冪( x>4)z=x 的八次冪 (x>-4) z=z=4/(x*(x+1)(x>-10)z=|x|+20(其他)答案: float z;if(x>4) z=sqrt(x-4); else if(x>-4) z=pow(x,8);else if(x>-10) z=

16、4/(x*(x+1);else z=fabs(x)+20;return(z); 35. 刪除所有值為 y 的元素。數(shù)組元素中的值和 y 的值由主函數(shù)通過鍵盤輸入。答案:int i,j;for(i=0;i<*n;) if(bbi=y)for(j=i;j<*n;j+)bbj=bbj+1;*n=*n-1;elsei+; 36. 給定 n 個(gè)數(shù)據(jù) , 求最大值出現(xiàn)的位置(如果最大值出現(xiàn)多次,求出第一次出現(xiàn)的位置即可)。答案:int i,k;k=0;for(i=1;i<=n;i+)if(si>sk) k=i;return(k+1);精選文檔.37. 從低位開始取出長整型變量s 奇

17、數(shù)位上的數(shù), 依次構(gòu)成一個(gè)新數(shù)放在t 中。例如:當(dāng) s 中的數(shù)為: 7654321時(shí), t 中的數(shù)為: 7531。答案:long sl=10; t = s % 10;while(s > 0) s = s/100;t = s%10*sl + t;sl = sl * 10;38. 求給定正整數(shù)m 以內(nèi)的素?cái)?shù)之和。例如:當(dāng)m=20 時(shí),函數(shù)值為77。答案:int i,k,s=0;for(i=2;i<=m;i+)for(k=2;k<i;k+)if(i%k=0)break;if(k=i)s=s+i;return s;39. 將字符串中的小寫字母轉(zhuǎn)換為對應(yīng)的大寫字母,其它字符不變。答案:

18、 int i;for(i=0;stri!='0'i+)if(stri>='a' && stri<='z') stri=stri-32;40. 統(tǒng)計(jì)出若干個(gè)學(xué)生的平均成績,最高分以及得最高分的人數(shù)。例如:輸入10 名學(xué)生的成績分別為92,87, 68, 56, 92, 84,67,75, 92, 66,則輸出平均成績?yōu)?7.9,最高分為92,得最高分的人數(shù)為3 人。答案:int i;float sum=0,ave; Max=array0;for(i=0;i<n;i+)if(Max<array i) Max=a

19、rray i;sum=sum+arrayi;ave=sum/n;for(i=0;i<n;i+)if(array i=Max) J+;return(ave);41. 求一批數(shù)中小于平均值的數(shù)的個(gè)數(shù)。答案: int i,sum=0,k=0;double average;for(i=0;i<n;i+)sum=sum+ai; average=sum*1.0/n;for(i=0;i<n;i+)if(average>ai) k+;return(k);42.從鍵盤輸入一個(gè)大寫字母,要求改用小寫字母輸出。答案:c=c+32; return c;43.從鍵盤輸入一個(gè)大于 3 的整數(shù),調(diào)用

20、函數(shù) fun 判斷其是否素?cái)?shù),然后在main 函數(shù)中輸出相應(yīng)的結(jié)論信息。例如: 7 是素?cái)?shù), 8 不是素?cái)?shù)。請編寫fun 函數(shù)。素?cái)?shù)是僅能被1 和自身整除的數(shù)。答案:int i;int j;j=1;for(i=2;i<n;i+)if(n%i=0) j= 0;return j;44. 求小于 lim 的所有素?cái)?shù)并放在 aa數(shù)組中,該函數(shù)返回所求出素?cái)?shù)的個(gè)數(shù)。答案:int n=0; int i,j;for(i=2;i<=lim;i+)for(j=2;j<i;j+)if(i%j=0) break;if(j=i) aan+=i;return n;45. 求一個(gè)給定字符串中的字母的個(gè)數(shù)

21、。答案:int i,k=0;for(i=0;si!='0'i+)if(si>='a'&&si<='z'|si>='A'&&si<='Z')k+;return k;46. 將主函數(shù)中輸入的字符串反序存放。例如:輸入字符串“ abcdefg”,則應(yīng)輸出“ gfedcba”。答案: int i,j; char c;for(i=0,j=n-1;i<j;i+,j-) /* 或 for(i=0,j=n-1;i<n/2;i+,j-)*/c=*(str+i);*(

22、str+i)=*(str+j);*(str+j)=c;47·將兩個(gè)兩位數(shù)的正整數(shù) a、 b 合并形成一個(gè)整數(shù)放在c 中。合并的方式是:將a 數(shù)的十位和個(gè)位數(shù)依次放在 c 數(shù)的百位和個(gè)位上,b 數(shù)的十位和個(gè)位數(shù)依次放在c 數(shù)的十位和千位上。例如:當(dāng)a45,b=12 。調(diào)用該函數(shù)后, c=2415。答案: *c=a/10*100+a%10+b/10*10+b%10*1000;48. 將兩個(gè)兩位數(shù)的正整數(shù)a、b 合并形成一個(gè)整數(shù)放在c 中。合并的方式是:將 a 數(shù)的十位和個(gè)位數(shù)依次放在 c 數(shù)的個(gè)位和百位上 , b 數(shù)的十位和個(gè)位數(shù)依次放在c 數(shù)的十位和千位上。例如:當(dāng) a=45,b=12

23、 , 調(diào)用該函數(shù)后,c=2514。答案:*c=a/10+a%10*100+b/10*10+b%10*1000;49. 求一個(gè)大于 10 的 n 位整數(shù)的后 n-1 位的數(shù),并作為函數(shù)值返回。答案: int n=0;int i=1;while(w>10)n=n+i*(w%10);w/=10;i*=10;return n;50. 求一個(gè) n 位自然數(shù)的各位數(shù)字的積。( n 是小于 10 的自然數(shù))答案:long d,s=1; while (n>0)d=n%10;s*=d;n/=10;return s;51. 編寫 main 程序調(diào)用函數(shù) fact 求解從 m 個(gè)元素選 n 個(gè)元素的組合

24、數(shù)的個(gè)數(shù)。計(jì)算公式是:組合數(shù) m!/(n!.(m-n)!) 。要求 :m 不能小于 n,否則應(yīng)有容錯(cuò)處理。說明:函數(shù)fact(x)的功能是求x!。答案:while(m<n) printf("m和 n 輸入錯(cuò)!請重新輸入:n");scanf("%d%d",&m,&n);zhsgs=fact(m)/(fact(n)*fact(m-n);52.求出菲波那契數(shù)列的前一項(xiàng)與后一項(xiàng)之比的極限的近似值。例如:當(dāng)誤差為 0.0001時(shí),函數(shù)值為0.618056。答案: float f1=1,f2=1,f3;float r1=2,r2;dor2=r1

25、;r1=f1/f2;f3=f1+f2;f1=f2;f2=f3;while(fabs(r1-r2)>1e-4);return r1;53. 調(diào)用函數(shù)fun 判斷一個(gè)三位數(shù)是否"水仙花數(shù) " 。在 main 函數(shù)中從鍵盤輸入一個(gè)三位數(shù),并輸出判斷結(jié)精選文檔.果。請編寫fun 函數(shù)。說明:所謂"水仙花數(shù) " 是指一 3 位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)水仙花數(shù),因?yàn)?53=1+125+27 。答案:int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n=bw*bw*bw+sw*sw*s

26、w+gw*gw*gw) return 1;else return 0;54. 在鍵盤上輸入一個(gè) 3 行 3 列矩陣的各個(gè)元素的值 (值為整數(shù)),然后輸出矩陣第一行與第三行元素之和,并在 fun()函數(shù)中輸出。 答案: int sum;int i,j;sum=0;for(i=0;i<3;i+=2)for(j=0;j<3;j+)sum=sum+aij;return sum;55. 分別統(tǒng)計(jì)字符串中字母、數(shù)字、空格和其他字符出現(xiàn)的次數(shù)(字符長度小于80)。答案:inti;for(i=0;ci!='0'i+)if(ci>='A'&&ci

27、<='Z')|(ci>='a'&&ci<='z')a=a+1;elseif(ci>='0'&&ci<='9')num=num+1;else if (ci=' ') b=b+1; else other=other+1;56. 編寫一個(gè)函數(shù), 該函數(shù)可以統(tǒng)計(jì)一個(gè)長度為2 的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。例如:假定輸入的字符串為: asdasasdfgasdaszx67asdmklo,字符串為: as,則應(yīng)輸出6。答案:int i,n=0;

28、for(i=0;i<=strlen(str)-2;i+)if(stri=substr0)&&(stri+1=substr1)n+; return n;57.對長度為 7 個(gè)字符的字符串,除首、尾字符外,將其余5 個(gè)字符按降序排列。例如:原來的字符串為CEAedca,排序后輸出為 CedcEAa。答案: - int i,j; char t; for(i=1;i<num-1;i+) for(j=i+1;j<num-1;j+) if(si<sj) t=si;si=sj;sj=t;58.編寫函數(shù) fun,求任一整數(shù) m 的 n 次方。答案: long int x

29、=1;int i;for(i=1;i<=n;i+)x=x*m;return x;59.編寫函數(shù) fun 其功能是:根據(jù)整型形參m,計(jì)算如下公式的值: y=1 1/3 1/5 1/7 1/(2m+1)例如:若 m=9 ,則應(yīng)輸出: 2.133256答案: double y=1;int i;for(i=1; i<=m; i+)y+=1.0/(2*i+1);return(y);60. 編寫函數(shù)用選擇排序法對數(shù)組中的數(shù)據(jù)進(jìn)行從小到大的排序。答案: int i,j,k,t;for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(ak>aj) k=j

30、;if(k!=i) t=ai;ai=ak;ak=t;61. 求一分?jǐn)?shù)序列2/1 ,3/2 ,5/3 , 8/5 , 13/8 ,21/13 的前 n 項(xiàng)之和。說明:每一分?jǐn)?shù)的分母是前兩項(xiàng)的分母之和,每一分?jǐn)?shù)的分子是前兩項(xiàng)的分子之和例如:求前20 項(xiàng)之和的值為 32.660259。答案:int i;float f1=1,f2=1,f3,s=0;for(i=1;i<=n;i+)f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;return s;62. 從低位開始取出長整型變量s 中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t 中。例如:當(dāng)s 中的數(shù)為: 7654321時(shí), t 中的數(shù)為:

31、 642。答案:long sl=10;s /= 10; t = s % 10;while(s > 0) s = s/100t = s%10*sl + t;sl = sl * 10;63. 編寫函數(shù)fun 將一個(gè)數(shù)組中的值按逆序存放,并在main()函數(shù)中輸出。例如:原來存順序?yàn)?,6,5,4,1。要求改為: 1,4,5,6,8。答案:int i,t;for(i=0;i<n/2;i+) t=arri;arri=arrn-1-i;arrn-1-i=t;64. 編寫函數(shù) fun 求一個(gè)字符串的長度 ,在 main 函數(shù)中輸入字符串 ,并輸出其長度。答案: char *p;int n=0;

32、p=p1;while(*p+)n+;return n;65. 判斷整數(shù) x 是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1;否則返回0。x 的值由主函數(shù)從鍵盤讀入,要求不大于 100。說明:所謂“同構(gòu)數(shù)”是指這樣的數(shù),這個(gè)數(shù)出現(xiàn)在它的平方數(shù)的右邊。例如:輸入整數(shù)5,5 的平方數(shù)是 25,5 是 25 中右側(cè)的數(shù),所以 5 是同構(gòu)數(shù)。答案:int k;k=x*x;if(k%10=x)|(k%100=x)return 1;elsereturn 0;66. 找出一個(gè)大于給定整數(shù)且緊隨這個(gè)整數(shù)的素?cái)?shù),并作為函數(shù)值返回。答案:int i,k;for(i=n+1;i+)for(k=2;k<i;k+)if(i%

33、k=0)break;if(k=i)return(i);67. 求出 N × M 整型數(shù)組的最大元素及其所在的行坐標(biāo)及列坐標(biāo)(如果最大元素不唯一,選擇位置在最前面的一個(gè))。例如:輸入的數(shù)組為:1234 15 612 18 910112 求出的最大數(shù)為18,行坐標(biāo)為2,列坐標(biāo)為1。答案:int max,i,j;max=array 00;Row=0;Col=0;for(i=0;i<N;i+)for(j=0;j<M;j+)if(max<array ij)max=arrayij;Row=i;Col=j;return(max);精選文檔.68. 編寫程序,實(shí)現(xiàn)矩陣(3 行 3

34、列)的轉(zhuǎn)置(即行列互換)例如:輸入下面的矩陣:100 200 300400 500 600700 800 900程序輸出:100 400 700200 500 800300 600 900答案:int i,j,t; for(i=0; i < 3; i+) for(j=0; j < i; j+) t=arrayij; arrayij=arrayji;arrayji=t; 69. 求一批數(shù)中最大值和最小值的積。答案:int i,max,min;max=min=a0;for(i=1;i<n;i+)if(ai>max) max=ai;else if(ai<min) min

35、=ai;return(max*min);70. 編寫函數(shù) fun 求 sum=d+dd+ddd+dd.d(n 個(gè) d),其中 d 為 1-9的數(shù)字。例如:3+33+333+3333+33333( 此時(shí) d=3,n=5) , d 和 n 在主函數(shù)中輸入。答案: long int s=0,t=0;int i;for(i=1;i<=n;i+) t=t+d;s=s+t;d=d*10;return s;71.計(jì)算 n 門課程的平均值,計(jì)算結(jié)果作為函數(shù)值返回。例如:若有5 門課程的成績是: 92,76,69, 58,88,則函數(shù)的值為 76.600000。答案: int i;float y=0;fo

36、r(i=0;i<n;i+)y+=ai;y=y/n;return y;72:編寫函數(shù)求 3!+6!+9!+12!+15+18!+21! 。答案: int i,j;float t,s=0;for(i=3;i<=n;i=i+3)t=1;for(j=1;j<=i;j+)t=t*j;s=s+t; return(s);73.編寫函數(shù) fun(str,i,n),從字符串 str 中刪除第 i 個(gè)字符開始的連續(xù)n 個(gè)字符(注意 :str0代表字符串的第一個(gè)字符)。答案: while(stri+n-1)stri-1=stri+n-1;i+;stri-1='0'74.求 1 到

37、w 之間的奇數(shù)之和。 ( w 是大于等于 100 小于等于 1000的整數(shù))答案: long y=0;int i;for(i=1;i<=w;i+)if(i%2=1)y+=i;return y;75. 編寫程序打印如圖 1 所示圖形。* 要 求 : 要 求 使 用abs() 。 答 案 :for(m=-i;m<=i;m+)for(n=0;n<abs(m);n+)printf("");for(n=0;n<7-2*abs(m);n+) printf("*"); printf("n");76. 求 5 行 5 列矩陣的

38、主、副對角線上元素之和。注意,兩條對角線相交的元素只加一次。例如:主函數(shù)中給出的矩陣的兩條對角線的和為45。答案: int s=0;int i,j;for(i=0;i<M;i+)s=s+aii+aiM-1-i;s=s-a(M-1)/2(M-1)/2;return s;77求一批數(shù)中最大值和最小值的差。答案: int i,max,min;max=min=a0;for(i=1;i<n;i+) if(ai>max) max=ai;else if(ai<min) min=ai;return(max-min);78編寫程序 , 求矩陣( 3 行 3 列)與 2 的乘積例如:輸入下

39、面的矩陣 :100 200 300400 500 600700 800 900程序輸出 :200400600800 1000 1200精選文檔.1400 1600 1800答案:int i,j;for(i=0; i < 3; i+) for(j=0; j < 3; j+) arrayij=arrayij*2;79. 用函數(shù)求fibonacci 數(shù)列前 n 項(xiàng)的和。說明:fibonacci 數(shù)列為數(shù)列的第一項(xiàng)值為1,第二項(xiàng)值也為1,從第三項(xiàng)開始,每一項(xiàng)均為其前面相鄰兩項(xiàng)的和。例如:當(dāng)n=28 時(shí),運(yùn)行結(jié)果:832039答案:long f,k=f1+f2;int i;for(i=3;i

40、<=28;i+)f=f1+f2; k=k+f;f1=f2;f2=f; return(k);80 在鍵盤上輸入一個(gè)3 行 3 列矩陣的各個(gè)元素的值(值為整數(shù)),然后輸出主對角線元素的積,并在 fun() 函數(shù)中輸出。答案:int sum;int i,j;sum=1;for(i=0;i<3;i+)sum=sum*aii;return sum;81. 輸入一個(gè)字符串,過濾此串,只保留串中的字母字符,并統(tǒng)計(jì)新生成串中包含的字母個(gè)數(shù)。例如:輸入的字符串為 ab234$df4,新生成的串為 abdf 。答案:inti,j;for(i=0,j=0;*(ptr+i)!='0'i+)

41、if(*(ptr+i)<='z'&&*(ptr+i)>='a'|*(ptr+i)<='Z'&&*(ptr+i)>='A')*(ptr+j)=*(ptr+i);j+;*(ptr+j)='0'return(j);82. 根據(jù)整型形參m,計(jì)算如下公式的值:y=1/5+1/6 1/7 1/8 1/9+1/10. 1/(m+5) 。例如:若m=9 ,則應(yīng)輸出: 1.168229答案: double y=0;int i;for(i=0; i<=m; i+) y+=1

42、.0/(i+5);return(y);83:編寫程序求無理數(shù)e 的值并輸出。計(jì)算公式為:e=1+1/1!+1/2!+1/3!+.+1/n!當(dāng) 1/n!<0.000001 時(shí)e=2.718282。答案:long int j;int i,k; double e,jc;i=1;e=0.0;jc=1.0;while(jc>=0.000001) e=e+jc;j=1;for(k=1;k<=i;k+)j=j*k;jc=1.0/j;i+; return e;84 實(shí)現(xiàn)兩個(gè)整數(shù)的交換。例如:給a 和 b 分別輸入: 60 和 65,輸入為: a=65 b=60答案:int t;t=*a;*a

43、=*b;*b=t;85. 用函數(shù)求 N 個(gè) 10,60上的整數(shù)中能被 5 整除的最大的數(shù), 如存在則返回這個(gè)最大值, 如果不存在則返回0。答案:int i; for(i=0;i<n;i+)if(arri%5=0 && arri>m)m=arri;86. 輸入 2 個(gè)學(xué)生 3 門課的成績,計(jì)算學(xué)生成績平均分,課程平均分和最高分.例如:輸入2 名學(xué)生 3 門課的成績分別為92,87,68,56, 92,84 則學(xué)生 1 平均分: 82.33學(xué)生 2 平均分:77.33 課程 1 平均分: 74.00 課程 2 平均分: 89.50 課程 3 平均分: 76.00最高分為

44、: 92答案: int i,j;float sum;for(i=0;i<2;i+) /*計(jì)算第 i 個(gè)學(xué)生平均分 */um=0;for(j=0;j<3;j+)sum=sum+scoreij;StuAgvi=sum/3;for(j=0;j<3;j+)/* 計(jì)算第 j 門課的平均分 */sum=0;for(i=0;i<2;i+)sum=sum+ score ij;CouAgvj=sum/2;Max=score00;for(i=0;i<2;i+)for(j=0;j<3;j+)if(Max<=scoreij)Max=scoreij;return ;87用函數(shù)求

45、一個(gè) N 階方陣右下三角元素的和(包括副對角線上的元素)。答案: int i,j,k=0;for(i=0;i<N;i+)for(j=N-1-i;j<N;j+)k=k+aij;return(k);88.編寫函數(shù)判斷一個(gè)整數(shù) m 的各位數(shù)字之和能否被7 整除,可以被 7 整除則返回 1,否則返回 0。調(diào)用該函數(shù)找出 100200 之間滿足條件的所有數(shù)。答案: int k,s=0; dos=s+m%10;m=m/10;while(m!=0);if(s%7=0)k=1;else k=0; return(k);89.根據(jù)整型參數(shù) n,計(jì)算如圖公式的值答案:double a=1;int i;for(i=1;i<n;i+)a=1.0/(1+a);return a;90.若 x、y 為奇數(shù),求 x 到 y 之間的奇數(shù)和;若x、 y 為偶數(shù),則求 x 到 y 之間的偶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論