C語言程序設(shè)計方案(何欽銘)課后習題作業(yè)_第1頁
C語言程序設(shè)計方案(何欽銘)課后習題作業(yè)_第2頁
C語言程序設(shè)計方案(何欽銘)課后習題作業(yè)_第3頁
C語言程序設(shè)計方案(何欽銘)課后習題作業(yè)_第4頁
C語言程序設(shè)計方案(何欽銘)課后習題作業(yè)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章習題1、對C語言來說,下列標示符中哪些是合法的,哪些是不合法的?Total, _debug, Large & Tall, Counterl, begin_答:合法的:_debug、Counted、begin不合法的:Total、Large & Tall。2、改寫1.4節(jié)中的流程圖1.2,求1 100中能被6整除的所有整數(shù)的和。3、改寫1.4節(jié)中的程序,求1 100中能被6整除的所有整數(shù)的和,并在編程環(huán)境中驗證 該程序的運行結(jié)果。答:程序為:#include<stdio.h>int main(void)int i,sum=0。for(i=1。i<=100。

2、i+)if(i%6=0)sum=sum+i 。printf("sum=%dn",sum)。return 0。4、對于給定的整數(shù) n (n>1),請設(shè)計一個流程圖判別n是否為一個素數(shù)(只能被 1和自己整除的整數(shù)),并分析該流程圖中哪些是順序結(jié)構(gòu)、哪些是分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。開始第二章作業(yè)1編寫程序,輸入兩個整數(shù)num 和 num2 ,計算并輸出她們的和、差、積、商。答:程序:#include<stdio.h>void main()int num1,num2,y1,y2,y3,y5 。double y4 。printf(" 請輸入兩個數(shù): num1,n

3、um2n") 。scanf("%d%d",&num1,&num2) 。y1=num1+num2 。y2=num1-num2 。y3=num1*num2 。y4=num1*1.0/num2 。y5=num1%num2 。printf("num1,num2 和 y1=%dnnum1,num2 差 y2=%dnnum1,num2y3=%dnnum1,num2 商 y4=%lfnnum1,num2 余 y5=%dn",y1,y2,y3,y4,y5) 。2為了倡導(dǎo)居民節(jié)約用電,某省電力公司執(zhí)行“階梯電價”,安裝一戶一表的居民用戶50 千電

4、價分為兩個“階梯”:月用電量50 千瓦時以內(nèi)的,電價為 0.53 元/千瓦時;超出瓦時的用電量,電價上調(diào) 0.05 元/千瓦時。編寫程序,輸入用戶的月用電量(千瓦時),計算并輸出該用戶應(yīng)支付的電費(元)。答:程序:#include<stdio.h>void main()double x,y 。printf(" 請輸入月用電量: xn") 。scanf("%lf",&x) 。if(x<=50)y=0.53*x 。printf(" 電費 y=%lfn",y) 。else y=0.58*x 。printf(&quo

5、t; 應(yīng)支付電費y=%lfn",y) 。3.編寫程序,輸入實數(shù)x和正整數(shù)n,計算xn,不允許調(diào)用pow ()函數(shù)求哥。答:程序:#include<stdio.h> void main()double x,power 。int i,n 。printf(" 請輸入: x,nn") 。scanf("%lf%d",&x,&n) 。power=1.0 。for(i=1 。 i<=n 。 i+)power=power*x 。printf("power ( x,n ) =%lfn",power) 。4.編

6、寫程序,輸入兩個正整數(shù)m和n,求匯(i2+1/i) (i從m到n。)答:程序:#include<stdio.h>void main()int i,m,n 。double sum。sum=0。printf("input:m,nn") 。scanf("%d%d",&m,&n) 。for(i=m 。 i<=n 。 i+)sum=sum+(i*i+1.0/i) 。printf("sum=%lfn",sum) 。5.編寫程序,輸入一個正整數(shù) n,計算1-2/3+3/5-4/7+5/9-6/11 +的前n項之和。

7、答:程序:#include<stdio.h>void main()int i,n 。double sum,item,flag 。flag=1 。 sum=0 。printf("input:nn") 。scanf("%d",&n) 。for(i=1 。 i<=n 。 i+)item=(flag*i)/(2*i-1) 。flag=-flag 。sum=sum+item 。printf("sum=%lfn",sum) 。6某用戶為購房辦理商業(yè)貸款,選擇了按月等額本息還款法,計算公式如下,在貸款本金(loan )和月

8、利率(rate ) 一定的情況下,住房貸款的月還款(money)取決于還款月數(shù)( month )??蛻舸蛩阍? 30 年的范圍內(nèi)選擇還清貸款的年限,想得到一張“還款年限月還款額表”以供參考。編寫程序,輸入貸款本金loan 和月利率 rate ,輸出“還款年限月還款額表”,還款年限的范圍是5 30 年,輸出時分別精確到年和元。Money=loan*rate(1+rate) month/(1+rate) month-1答:程序:#include<stdio.h>#include<math.h>void main()int lower,upper,month,year,loa

9、n 。double money,rate 。lower=5 。 upper=30 。printf(" 請輸入貸款本金:loann") 。scanf("%d",&loan) 。printf(" 請輸入月利率:raten") 。scanf("%lf",&rate) 。printf(" 還款年限 t 月還款額 n") 。for(year=lower 。 year<=upper 。 year+)month=year*12 。money=(loan*rate*pow(1+rate),

10、month)/(pow(1+rate),month)-1) 。 printf("%dtt%lfn",year,money) 。 7 .編寫程序,輸入一個正整數(shù)n,求匯2i (i從1到n),可調(diào)用pow ()函數(shù)求哥。答:程序:#include<stdio.h>#include<math.h>void main()int i,n 。double sum,item 。sum=0。printf("input:nn") 。scanf("%d",&n) 。for(i=0 。 i<=n 。 i+)item=p

11、ow(2,i) 。sum=sum+item 。 printf("sum=%lfn",sum) 。8 .編寫程序,輸入一個正整數(shù)n,求e=Ei! (i從0到n)。要求定義和調(diào)用函數(shù)fact(n)計算 n! ,函數(shù)類型是double.答:程序:#include<stdio.h>double fact(int n) 。void main()int i,n 。double sum。sum=0。printf("input:nn") 。scanf("%d",&n) 。for(i=0 。 i<=n 。 i+) sum=su

12、m+fact(i) 。 printf("sun=%lfn",sum) 。double fact(int n) int i 。 double product 。product=1.0 。for(i=1 。 i<=n 。 i+) product=product*i 。 return product 。第三章作業(yè)1、#include<stdio.h>#include<math.h>void main()int a,b,c。double s,area,perimeter。printf(" 請輸入三角形三條邊: a,b,cn") 。s

13、canf("%d%d%d",&a,&b,&c) 。if(a+b>c&&a+c>b&&b+c>a)perimeter=a+b+c。s=(a+b+c)/2.0。area=sqrt(s*(s-a)*(s-b)*(s-c) 。printf(" 三 角 形 的 周 長 perimeter=%.2lfn 三 角 形 的 面 積area=%.2lfn",perimeter,area) 。2、#include<stdio.h>#include<math.h>void mai

14、n()double salary,tax,rate。printf(" 請輸入職工的月薪: salaryn") 。scanf("%lf",&salary) 。if(salary<=850) rate=0 。else if(salary<=1350) rate=5 。else if(salary<=2850) rate=10 。else if(salary<=5850) rate=15 。else rate=20。tax=rate*(salary-850)/100 。printf(" 職工應(yīng)繳個人所得稅tax=%.2

15、lfn",tax) 。3、#include<stdio.h>void main()double m,n,y 。printf(" 請輸入行駛里程(公里 ) : mn 等待時間(分鐘) : nn") 。scanf("%lf%lf",&m,&n) 。if(m+n/5.0)<=3) y=10 。else if(m+n/5.0)<=10) y=2*(m+n/5.0) 。else y=2*10+3*(m+n/5.0-10) 。printf(" 乘客應(yīng)付車費y=%dn",(int)(y*10+0.5

16、)/10.0) 。4、#include<stdio.h>void main()int i,n,A,B,C,D,E 。double score,total 。printf(" 請輸入一個數(shù)n: n") 。scanf("%d",&n) 。total=0 。 A=0 。 B=0 。 C=0。 D=0 。 E=0。for(i=1 。 i<=n 。 i+)printf(" 請輸入第 #%d 個學(xué)生成績: n",i) 。scanf("%lf",&score) 。total=total+scor

17、e 。if(score>=90)A+ 。else if(score>=80)B+ 。else if(score>=70)C+ 。else if(score>=60)D+ 。elseE+。printf(" 平均成績 =%lfn",total/n) 。printf(" 等 級 成 績 個nA=%dnB=%dnC=%dnD=%dnE=%dn",A,B,C,D,E)。5、#include<stdio.h>void main()int year 。printf("21 世紀所有的閏年: n") 。for(ye

18、ar=2000 。 year<3000 。 year+)if(year%4=0&&year%100!=0|year%400=0)printf("%dn",year) 。第四章作業(yè)2、#include"stdio.h"#include"math.h"double fact(int n) 。void main()int i,n 。 double x,s 。printf(" 請輸入一個實數(shù)x:n") 。scanf("%lf",&x) 。s=0。 i=1 。while(po

19、w(x,i)/fact(i)>=0.00001) s=pow(x,i)*1.0/fact(i)+s 。 i+ 。printf("s=%.2lfn",s) 。double fact(int n)int i 。double result 。result=1 。for(i=1 。 i<=n 。 i+) result=result*i 。return result 。3、#include"stdio.h"int main(void)int x,a,count,sum 。printf(" 請輸入一個整數(shù)x:n") 。scanf(&q

20、uot;%d",&x) 。sum=0。 count=0 。if(x<0) x=-x 。doa=x%10 。sum=sum+a。x=x/10 。count+。while(x!=0) 。printf(" 位數(shù) =%dn",count) 。printf(" 各個位數(shù)之和為 :%dn",sum) 。return 0 。5、#include"stdio.h"void main()int a,n,i=1,s=0,t=0 。printf(" 請輸入兩個正整數(shù)a,n=:n") 。scanf("%d

21、%d",&a,&n) 。while(i<=n)t=t+a。s=s+t。a=a*10 。+i 。printf("a+aa+aaa+ +aa a='%d。7、#include"stdio.h"void main()int i,j,k,l,n 。printf("1-10000 之間的水仙花數(shù)有:n") 。for(n=10 。 n<10000 。 n+)i=n/1000 。j=n/100%10 。k=n/10%10 。l=n%10。if(i*1000+j*100+k*10+l=i*i*i+j*j*j+k*k

22、*k+l*l*l)printf("%-5d",n) 。printf("n") 。9、#include"stdio.h"#include"math.h"void main()int i,n,m,j,k 。i=0 。printf(" 請輸入一個多位整數(shù):n") 。scanf("%d",&n) 。k=n 。while(k!=0)i+ 。k=k/10 。k=n 。m=pow(10,i-1) 。printf(" 逐位輸出: %d",n/m%10) 。prin

23、tf(",") 。for(j=m/10 。 j>0 。 j=j/10)n=k/j 。printf("%d",n%10) 。if(j!=1)printf(",") 。11、#include"stdio.h"void main()int p,r,n,m,temp 。printf(" 請輸入兩個正整數(shù):n") 。scanf("%d%d",&n,&m) 。if(n<m)temp=n。n=m。m=temp。p=n*m 。while(m!=0)r=n%m 。n

24、=m。m=r。printf(" 最大公約數(shù)為:%dn",n) 。printf(" 最小公倍數(shù)為:%dn",p/n) 。13、#include"stdio.h"void main()int i,j 。for(i=0 。 i<=3 。 i+)for(j=0 。 j<=2-i 。 j+) printf(" ") 。for(j=0 。 j<=2*i 。 j+) printf("*") 。printf("n") 。for(i=0 。 i<=2 。 i+)for(

25、j=0 。 j<=i 。 j+) printf(" ") 。for(j=0 。 j<=4-2*i 。 j+) printf("*") 。printf("n") 。第五章1.#include<stdio.h>#include <math.h> long fac(int n,int a) long sum。if(n=1)sum=a。elsesum=(long)(pow(10,n-1)*a)+fac(n-1,a) return(sum)。main()int a,n,i 。long temp,sum=0 。

26、printf(" 請輸入一個數(shù)a,nn") 。scanf("%d%d",&a,&n) 。for(i=1 。 i<=n 。 i+)temp=fac(i,a) 。sum+=temp 。printf(" 它們的和是=%ld",sum) 。return 0 。2.#include<stdio.h>int countdight(int number,int dight) 。int main(void)int number。printf(" 輸入一個數(shù):") 。scanf("%d&q

27、uot;,&number) 。countdight(number,2) 。return 0 。 countdight(int number,int dight)int a,count 。count=0。while(number!=0)a=number%10 。number=number/10 。if(a=dight)count+。printf("%dn",count) 。return count 。3.#include<stdio.h>int fib(int n) 。int main(void)int m,n,num1 。num1=1 。printf(&

28、quot; 請輸入兩個正整數(shù)m 和 n(m>=1,n<=10000)n") 。scanf("%d%d",&m,&n) 。if(num1>=m&&num1<=n)fib(n) 。return 0 。 int fib(int n)int i,x1,x2,x,t 。x1=1 。x2=1 。for(i=0 。 i<n 。 i+)x=x1+x2 。printf("%5d",x) 。t=x。x1=x2 。x2=t。printf("n") 。return x 。5.#inclu

29、de<stdio.h>void is(int num) 。int main(void)int n,m,num1 。num1=1 。printf(" 輸入兩個數(shù)m 和 n(m>=1,n<=1000)n") 。scanf("%d%d",&m,&n) 。if(num1>=m&&num1<=n)is(num1) 。return 0 。 void is(int num)int i,j,k 。for(num=1 。 num<1000 。 num+) i=num/100 。j=num/10%10

30、 。k=num%10 。if(i*100+j*10+k*1=i*i*i+j*j*j+k*k*k) printf("%5d",num) 。 printf("n") 。6.#include<stdio.h>int reverse(int number) 。int main(void)int x。printf(" 請輸入一個正整數(shù):n") 。scanf("%d",&x) 。reverse(x)。return 0 。int reverse(int number)while(number!=0)print

31、f("%d",number%10) 。number=number/10 。printf("n") 。return number 。第七章作業(yè)1.#include<stdio.h>void main()int i,j=0,k=0,n,p,q,max,min 。int a10。printf(" 請輸入 n(1<n<10) 的值 : n") scanf("%d",&n) 。printf(" 請輸入 d個數(shù):n",n)。for(i=0 。 i<n 。 i+)scan

32、f("%d",&ai)。min=a0 。 max=a9 。if(ai<min)min=ai 。k=i 。if(ai>max)max=ai 。j=i 。p=a9 。 a9=aj。 aj=p 。q=a0 。 a0=ak。 ak=q 。for(i=0 。 i<n 。 i+)printf("%8d",ai) 。printf("n") 。4.#include<stdio.h>int main(void)int m,n,i,j,sum 。int a66,x80。printf(" 請輸入 m,n(1&

33、lt;=m,n<=6) 的值 : n") 。scanf("%d%d",&m,&n) 。printf(" 請輸入 d個數(shù):n",m*n)。for(i=0 。 i<m 。 i+)for(j=0 。 i<n 。 j+)scanf("%d",&aij)。for(i=0 。 i<m 。 i+)for(j=0 。 j<n 。 j+)printf("%4d",aij)。printf("n") 。for(i=0 。 i<m 。 i+)sum=

34、0。for(j=0 。 j<n 。 j+)sum=sum+aij xi=sum 。for(i=0 。 i<m 。 i+)printf("%dn",xi) 。return 0 。5.#include<stdio.h>void main()int a33,max,max1,max2,i,j,flag=1printf(" 請輸入 9 個數(shù) : n") 。for(i=0 。 i<=2 。 i+)for(j=0 。 j<=2 。 j+)scanf("%d",&aij)for(i=0 。 i<=2

35、 。 i+)max=ai0 。for(j=0 。 j<=2 。 j+)if(aij>max)max=aij 。max1=j 。for(max2=0 。 max2<=2。 max2+)if(max>amax1max2)flag=0 。break 。if(flag=1) printf(" 鞍點是 %dn",amax2max1)。if(flag=0) printf("no numbern")。flag=1 。8.#include<stdio.h>#include<string.h>int main(void)in

36、t i,n 。 char s80 。printf(" 請輸入 n(n<80) 的值 : n") 。scanf("%d",&n) 。printf(" 請輸入d個字符:n",n)。for(i=0。 i<n 。 i+)scanf("%s",s) 。for(i=0。 si!='0'。i+)if(si>='A'&&si<='Z') si=155-si。for(i=0 。 si!='0'。 i+)putchar(si

37、) 。printf("n") 。return 0 。#include<stdio.h>#include<string.h>int main(void)int i, n 。 char f,s80。printf("Enter a string: ")。 /* 輸入字符串 */i = 0 。while(si = getchar( ) != 'n') i+ 。si = '0'。for(i = 0。 si != '0'。 i+)if(si <= 7f&& si >=

38、 20)si=si+。elsebreak 。for(i = 0。 si != '0'。 i+)putchar(si) 。return 0第八章作業(yè)1.#include<stdio.h>int main(void)char ch 。int i,j,temp 。printf(" 請輸入 10 個整數(shù) :n") 。for(i=0 。 i<10 。 i+)scanf("%d",&ai)。printf(" 請輸入 A或 D:")。scanf(" %c",&ch

39、)。if(ch='A')for(i=0 。 i<9 。 i+)for(j=i+1 。 j<10 。 j+)if(ai>aj)temp=ai 。ai=aj。aj=temp 。for(i=0 。 i<10 。 i+)printf("%dn",ai) 。else if(ch='D')for(i=0 。 i<9 。 i+)for(j=i+1 。 j<10 。 j+)if(ai<aj)temp=ai 。ai=aj。aj=temp 。for(i=0 。 i<10 。 i+) printf("%dn

40、",ai) 。return 0 。5.#include<stdio.h>#include<string.h>void mcopy(char *s,int m) 。int main(void)int i,m,l 。char str100。printf(" 請輸入您要輸入的字符串 :") 。gets(str) 。printf("您將從原字符串的第m位復(fù)制新字符串,請輸入 m:n")scanf("%d",&m) 。printf("復(fù)制后,新的字符串為:") 。mcopy(str,

41、m) 。return 0 。void mcopy(char *s,int m)printf("%sn",s+m-1) 。11.#include<stdio.h>#include<string.h>void fushu(char *p)。int main(void)char str80。printf("請輸入一個英語名詞單詞:")oscanf("%s",str) 。fushu(str) o puts(str) oreturn 0 。void fushu(char *p)(int i,l o 1 = 0 o for

42、(i=0 o *(p+i)!='0'。i+)I + + o)if(*(p+l-1)='y')*(p+l)='e' o*(P+I+1) = 'S'o*(p+l+2)='0' o ) else if(*(p+l-1)='s')|(*(p+l-1)='x')|(*(p+l-2)='c')&&(*(p+l-1)=h)|(*(p+l-2)=M)&&(*(p+l-D=h)*(p+l)='e' o*(P+I+1) = 'S&#

43、39;o*(p+l+2)='0' o ) else if(*(p+l-1)='o') *(p+l)='e' o *(P+I+1) = 'S'o*(p+l+2)='0' o ) else *(p+l)='s' o *(P+l+1) = '0'o) )12.#include<stdio.h>#include<stdlib.h> int main(void)int i,j,a,n,sum,avg 。int *p 。printf("Enter n:"

44、;)。scanf("%d",&n) 。if(p=(int*)calloc(n,sizeof(int)=NULL) printf("Not able to allocate memory.n") exit(1) 。printf(" 請輸入d個學(xué)生的成績:n",n)。for(i=0 。 i<n 。 i+) scanf("%d",p+i) 。sum=0。for(i=0 。 i<n 。 i+)sum=sum+*(p+i) 。avg=sum/n。for(i=0 。 i<n-1 。 i+)for(j=

45、i+1 。 j<n 。 j+) if(*(p+i)>*(p+j)a=*(p+i) 。*(p+i)=*(p+j)。*(p+j)=a 。printf("學(xué)生的平均成績是:%dn",avg) 。printf("學(xué)生的最高成績是:%dn",*(p+n-1)printf("學(xué)生的最低成績是:%dn",*p) 。return 0 。第九章作業(yè)1.#include<stdio.h>structint hour,minute,second 。time 。int main(void)scanf("%d:%d:%d&qu

46、ot;,time.hour,time.minute,time.second) time.second+ 。if(time.second=60)time.minute+ 。time.second=0 。if(time.minute=60)time.hour+ 。time.minute=0 。if(time.hour=24)time.hour=0 。printf("%d:%d:%d",time.hour,time.minute,time.second) return 0 。2.struct s1char c1,c2 。int n 。struct s2int n 。struct

47、s1 m 。int main(void)printf("nt%dt%dt%cn",m.n,m.m,m.n,m.m.c1,m.m.c2) return 0 。8.#include<stdio.h>#define N 10struct personchar num10 。char name20 。double jbgz,jj,zc,sfgz 。struct person gzN 。int main() int i,index 。printf(" 請輸入d名工人的基本信息:n”, N)。for(i=0 。 i<N 。 i+)printf("

48、請輸入第d名工人的基本信息:n",i+1)。scanf("%s%s%lf%lf%lf",gzi.num,,&gzi.jbgz,&gzi.jj,&gzi.zc) 。printf("%d 名工人的基本信息: n",N) 。printf(" 編號 t 姓名 t 基本工資 t 獎金 t 支出 t 實發(fā)工資 n") 。for(i=0 。 i<N 。 i+)printf("%st%st%.2lftt%.2lft%.2lft%.2lfn",gzi.num,,gzi.jb

溫馨提示

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

評論

0/150

提交評論