C語言程序設(shè)計——答案_第1頁
C語言程序設(shè)計——答案_第2頁
C語言程序設(shè)計——答案_第3頁
C語言程序設(shè)計——答案_第4頁
C語言程序設(shè)計——答案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、程序設(shè)計- 注意: 部分源程序給出如下。請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun 的花括號中填入所編寫的若干語句。-*/ 題目 1:調(diào)用函數(shù)fun 判斷一個三位數(shù)是否水仙花數(shù)。 在 main 函數(shù)中從鍵盤輸入一個三位數(shù),并輸出判斷結(jié)果。請編寫 fun 函數(shù)。 所謂水仙花數(shù) 是指一個3 位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如, 153 是一個水仙花數(shù),因為153=13+53+33。#include stdio.h int fun(int n) /*program*/ /* end */ int main(void) int n,flag; scanf(%d,&n);

2、 flag=fun(n); if(flag) printf(%d 是水仙花數(shù) n,n); else printf(%d 不是水仙花數(shù)n,n); return 0; 答案: - int bw,sw,gw; bw=n/100;sw=(n-bw*100)/10;gw=n%10; if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return 0; - 題目 2:請編寫一個函數(shù)fun,函數(shù)的功能是: 求出nm 整型數(shù)組的最大元素及其所在的行坐標及列坐標(如果最大元素不唯一,選擇位置在最前面的一個)。例如:輸入的數(shù)組為: 1 2 3 4 15 6 12 18

3、 9 10 11 2 求出的最大數(shù)為18,行坐標為2, 列坐標為1。#define n 4 #define m 3 #include int row,col; int fun(int arraynm) /*program*/ /* end */ int main(void) int anm,i,j,max,row,col; printf(input a array:); for(i=0;in;i+) for(j=0;jm;j+) scanf(%d,&aij); for(i=0;in;i+) for(j=0;jm;j+) printf(%d,aij); printf(n); max=fu

4、n(a); printf(max=%d,row=%d,col=%d,max,row,col) ;return 0; 答案: - int max,i,j; max=array 00; row=0; col=0; for(i=0;in;i+) for(j=0;jm;j+) if(maxarray ij) max=array ij; row=i; col=j; return(max); - 題目 3:編寫函數(shù)判斷一個整數(shù)m 的各位數(shù)字之和能否被 7 整除 , 可以被 7 整除則返回1,否則返回0。調(diào)用該函數(shù)找出100200 之間滿足條件的所有數(shù)。#include stdio.h int sub(in

5、t m) /*program*/ /* end */ int main(void) int i; for(i=100;i=200;i+) if(sub(i)=1)printf(%4d,i); 答案: - int k,s=0; do s=s+m%10; m=m/10; while(m!=0); if(s%7=0)k=1; else k=0; return(k); - 題目 3:編寫函數(shù)fun,函數(shù)的功能是: 求一分數(shù)序列 2/1, 3 /2,5/3, 8/5,13/8,21/13的前 n項之和。每一分數(shù)的分母是前兩項的分母之和 , 每一分數(shù)的分子是前兩項的分子之和. 例如:求前20 項之和的值為

6、32.660259。#include stdio.h float fun(int n) /*program*/ /* end */ int main(void) float y; y=fun(20); printf(y=%fn,y); return 0; 答案: - 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; - 題目 4: 編寫函數(shù)fun 其功能是在鍵盤上輸入一個3行 3 列矩陣的各個元素的值(值為整數(shù)), 然后輸出主對角線元素的平方和,并在 fun(

7、)函數(shù)中輸出。#include stdio.h int main(void) int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(sum=%dn,s); return 0; int fun(int a33) /*program*/ /* end */ 答案: - int sum; int i,j; sum=0; for(i=0;i3;i+) sum=sum+aii*aii; return sum; - 題目 5:編寫函數(shù)fun,函數(shù)的功能是: 求給定正整數(shù) m 以 內(nèi)的素數(shù)之和。例如

8、:當m=20 時,函數(shù)值為77。#include stdio.h int fun(int m) /*program*/ /* end */ int main(void) int y; y=fun(20); printf(y=%dn,y); return 0; 答案: - int i,k,s=0; for(i=2;i=m;i+) for(k=2;k4) z=x8(x-4) z=4 /(x*(x+1) (x-10) z=|x|+20 (其他)#include #include stdio.h float y(float x) /*program*/ /* end */ int main(void)

9、 float x; scanf(%f,&x); printf(y=%fn,y(x); return 0; 答案: - float z; if(x4) z=sqrt(x-4); else if(x-4) z=pow(x,8); else if(x-10) z=4/(x*(x+1); else z=fabs(x)+20; return(z); - 題目 7:編寫函數(shù)fun ,函數(shù)的功能是:求1 到 100之間的偶數(shù)之積。#include stdio.h double fun(int m) /*program*/ /* end */ int main(void) printf(ji=%fn,

10、fun(100); 答案: - double y=1; int i; for(i=1;i=m;i+) if(i%2=0)y*=i; return y; - - 題目 8:輸入三個字符串,按由小到大順序輸出。編寫交換函數(shù)fun,用交換指針的方式實現(xiàn)交換。#include int main(void) static char s120,s220,s320; char fun(); printf( 輸入三個字符串:n); scanf(%s,s1); scanf(%s,s2); scanf(%s,s3); if(strcmp(s1,s2)0) fun(s1,s2); if(strcmp(s1,s3)0

11、) fun(s1,s3); if(strcmp(s2,s3)0) fun(s2,s3); printf( 排序結(jié)果是: n%sn%sn%sn,s1,s2,s3); char fun(char *p1,char *p2) /*program*/ /* end */ 答案: - char *p=null; strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); - 題目 9:編寫函數(shù)fun,函數(shù)的功能是: 計算并輸出給定整數(shù)n 的所有因子之和(不包括1 與自身)。規(guī)定 n 的值不大于1000。例如: n 的值為 855 時,應(yīng)輸出704。#include stdio.

12、h int fun(int n) /*program*/ /* end */ int main(void) printf(s=%dn,fun(855); 答案: - int s=0,i; for(i=2;in;i+) if(n%i=0)s=s+i; return s; - 題目 10: 用函數(shù)求一個n 階方陣右下三角元素的和(包括副對角線上的元素)。#include #include stdio.h #define n 3 int sum(int an) /*program*/ /* end */ int main(void) int ann,i,j; clrscr(); for(i=0;in

13、;i+) for(j=0;jn;j+) aij=random(10)+10; printf(%3d,aij); printf(n); printf(=n); printf(sum=%5dn,sum(a); return 0; 答案: - int i,j,k=0; for(i=0;in;i+) for(j=n-1-i;jn;j+) k=k+aij; return(k); - 題目 11:編寫函數(shù)fun ,函數(shù)的功能是:求一組數(shù)中大于平均值的數(shù)的個數(shù)。例如:給定的一組數(shù)為1,3,6,9,4,23,35,67,12,88 時,函數(shù)值為 3。#include stdio.h int fun(int a

14、,int n) /*program*/ /* end */ int main(void) int a10=1,3,6,9,4,23,35,67,12,88; int y; y=fun(a,10); printf(y=%dn,y); return 0; 答案: - int i,k=0; float s=0,ave; for(i=0;in;i+) s+=ai; ave=s/n; printf(%f ,ave); for(i=0;iave)k+; return k; - 題目 12: 求一批數(shù)中最大值和最小值的差。int max_min(int a,int n) /*program*/ /* end */ #define n 30 #include stdlib.h #include stdio.h int main(void) int an,i,k; clrscr(); for(i=0;in;

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論