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

下載本文檔

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

文檔簡介

{{第一章習題1、對C語言來說,下列標示符中哪些是合法的,哪些是不合法的?Total,_debug,Large&Tall,Counter1,begin_答:合法的:_debug、Counterl、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>intmain(void)

inti,sum=0;for(i=1;i<=100;i++)if(i%6==0)sum=sum+i;printf("sum=%d\n",sum);return0;}4、對于給定的整數(shù)n(n>l),請設計一個流程圖判別n是否為一個素數(shù)(只能被1和自己整除的整數(shù)),并分析該流程圖中哪些是順序結(jié)構(gòu)、哪些是分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。i=2真假i>=(n-1)}4、對于給定的整數(shù)n(n>l),請設計一個流程圖判別n是否為一個素數(shù)(只能被1和自己整除的整數(shù)),并分析該流程圖中哪些是順序結(jié)構(gòu)、哪些是分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。i=2真假i>=(n-1)真是素數(shù)輸入n輸出n輸出n“不是素數(shù)”i=i+1假結(jié)束r=n/i的余數(shù)開始i=2真假i>=(n-l)真是素數(shù)輸入n輸出n輸出n“不是素數(shù)”i=i+1i=2真假i>=(n-l)真是素數(shù)輸入n輸出n輸出n“不是素數(shù)”i=i+1假結(jié)束r=n/i的余數(shù)開始第二章作業(yè)1編寫程序,輸入兩個整數(shù)num和num2,計算并輸出她們的和、差、積、商。答:程序:#include<stdio.h>voidmain(){intnum1,num2,y1,y2,y3,y5;doubley4;printf("請輸入兩個數(shù):numl,num2\n");scanf("%d%d",&num1,&num2);yl=numl+num2;y2=numl-num2;y3=numl*num2;y4=numl*l.0/num2;y5=numl%num2;printf("num1,num2和y1=%d\nnum1,num2差y2=%d\nnum1,num2積y3=%d\nnum1,num2商y4=%lf\nnum1,num2余y5=%d\n",y1,y2,y3,y4,y5);}2.為了倡導居民節(jié)約用電,某省電力公司執(zhí)行“階梯電價”,安裝一戶一表的居民用戶電價分為兩個“階梯”:月用電量50千瓦時以內(nèi)的,電價為0.53元/千瓦時;超出50千瓦時的用電量,電價上調(diào)0.05元/千瓦時。編寫程序,輸入用戶的月用電量(千瓦時),計算并輸出該用戶應支付的電費(元)。答:程序:#include<stdio.h>voidmain(){doublex,y;printf("請輸入月用電量:x\n");scanf("%lf",&x);if(x<=50){y=0.53*x;printf(”電費y=%lf\n",y);}else{y=0.58*x;printf("應支付電費y=%lf\n",y);}}3?編寫程序,輸入實數(shù)x和正整數(shù)n,計算x百不允許調(diào)用pow()函數(shù)求冪。答:程序:#include<stdio.h>voidmain(){doublex,power;inti,n;printf("請輸入:x,n\n");scanf("%lf%d",&x,&n);power=1.0;for(i=1;i<=n;i++)power=power*x;printf("power(x,n)=%lf\n",power);}編寫程序,輸入兩個正整數(shù)m和n,求L(i2+1/i)(i從m到n。答:程序:#include<stdio.h>voidmain(){inti,m,n;doublesum;sum=0;printf("input:m,n\n");scanf("%d%d",&m,&n);for(i=m;i<=n;i++)sum=sum+(i*i+1.0/i);printf("sum=%lf\n",sum);}5?編寫程序,輸入一個正整數(shù)n,計算1-2/3+3/5-4/7+5/9-6/11+…的前n項之和。答:程序:#include<stdio.h>voidmain(){inti,n;doublesum,item,flag;flag=1;sum=0;printf("input:n\n");scanf("%d",&n);for(i=1;i<=n;i++){item=(flag*i)/(2*i-1);flag=-flag;sum=sum+item;}printf("sum=%lf\n",sum);}6.某用戶為購房辦理商業(yè)貸款,選擇了按月等額本息還款法,計算公式如下,在貸款本金(loan)和月利率(rate)一定的情況下,住房貸款的月還款(money)取決于還款月數(shù)(month)。客戶打算在5—30年的范圍內(nèi)選擇還清貸款的年限,想得到一張“還款年限—月還款額表”以供參考。編寫程序,輸入貸款本金loan和月利率rate,輸出“還款年限一月還款額表”,還款年限的范圍是5—30年,輸出時分別精確到年和元。Money=loan*rate(1+rate)month/[(1+rate)month-1]答:程序:#include<stdio.h>#include<math.h>voidmain(){intlower,upper,month,year,loan;doublemoney,rate;lower=5;upper=30;printf("請輸入貸款本金:loan\n");scanf("%d",&loan);printf("請輸入月利率:rate\n");scanf("%lf",&rate);printf("還款年限\t月還款額\n");for(year=lower;year<=upper;year++){month=year*12;money=(loan*rate*pow((1+rate),month))/(pow((1+rate),month)-1);printf("%d\t\t%lf\n",year,money);}}7.編寫程序,輸入一個正整數(shù)n求E2i(i從1到n),可調(diào)用pow()函數(shù)求冪。答:程序:#include<stdio.h>#include<math.h>voidmain(){inti,n;doublesum,item;sum=0;printf("input:n\n");scanf("%d",&n);for(i=0;i<=n;i++){item=pow(2,i);sum=sum+item;}printf("sum=%lf\n",sum);}8.編寫程序,輸入一個正整數(shù)n,求e=Ei!(i從0到n)。要求定義和調(diào)用函數(shù)fact(n)計算n!,函數(shù)類型是double.答:程序:#include<stdio.h>doublefact(intn);voidmain(){inti,n;doublesum;sum=0;printf("input:n\n");scanf("%d",&n);for(i=0;i<=n;i++){sum=sum+fact(i);}printf("sun=%lf\n",sum);}doublefact(intn){inti;doubleproduct;product=1.0;for(i=1;i<=n;i++){product=product*i;}returnproduct;}第三章作業(yè)1.#include<stdio.h>#include<math.h>voidmain(){inta,b,c;doubles,area,perimeter;printf("請輸入三角形三條邊:a,b,c\n");scanf("%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=%.21f\n三角形的面積area=%.21f\n",perimeter,area);}2、#include<stdio.h>#include<math.h>voidmain(){doublesalary,tax,rate;printf("請輸入職工的月薪:salaryXn");scanf("%lf",&salary);if(salary<=850)rate=0;elseif(salary<=1350)rate=5;elseif(salary<=2850)rate=10;elseif(salary<=5850)rate=15;elserate=20;tax=rate*(salary-850)/100;printf("職工應繳個人所得稅tax=%.2lf\n",tax);}3、#include<stdio.h>voidmain(){doublem,n,y;printf("請輸入行駛里程(公里):m\n等待時間(分鐘):n\n");scanf("%lf%lf",&m,&n);if((m+n/5.0)<=3)y=10;elseif((m+n/5.0)<=10)y=2*(m+n/5.0);elsey=2*10+3*(m+n/5.0-10);;printf("乘客應付車費y=%d\n",(int)((y*10+0.5)/10.0));}4、#include<stdio.h>voidmain(){inti,n,A,B,C,D,E;doublescore,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個學生成績:\n",i);scanf("%lf",&score);total=total+score;if(score>=90)A++;elseif(score>=80)B++;elseif(score>=70)C++;elseif(score>=60)D++;elseE++;}printf("平均成績=%lf\n",total/n);printf("等級成績個數(shù):\nA=%d\nB=%d\nC=%d\nD=%d\nE=%d\n",A,B,C,D,E);}5、#include<stdio.h>voidmain(){intyear;printf("21世紀所有的閏年:\n");for(year=2000;year<3000;year++)if(year%4==0&&year%100!=0||year%400==0)printf("%d\n",year);}第四章作業(yè)2、#include"stdio.h"#include"math.h"doublefact(intn);voidmain(){inti,n;doublex,s;printf("請輸入一個實數(shù)x:\n");scanf("%lf",&x);s=0;i=1;while((pow(x,i)/fact(i))>=0.00001){s=pow(x,i)*1.0/fact(i)+s;i++;}printf("s=%.2lf\n",s);}doublefact(intn){inti;doubleresult;result=1;for(i=1;i<=n;i++)result=result*i;returnresult;}3、#include"stdio.h"intmain(void){intx,a,count,sum;printf("請輸入一個整數(shù)x:\n");scanf("%d",&x);sum=0;count=0;if(x<0)x=-x;do{a=x%10;sum=sum+a;x=x/10;count++;}while(x!=0);printf("位數(shù)=%d\n",count);printf("各個位數(shù)之和為:%d\n",sum);return0;}5、#include"stdio.h"voidmain(){i++;i++;i++;i++;inta,n,i=1,s=0,t=0;printf("請輸入兩個正整數(shù)a,n=:\n");scanf("%d%d",&a,&n);while(i<=n){t=t+a;s=s+t;a=a*10;++i;}printf(〃a+aa+aaa+…+aa?.?a二%nd',s);}7、#include"stdio.h"voidmain(){inti,j,k,l,n;printf("l-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*k+l*l*l){printf("%-5d",n);}}printf("\n");}9、#include"stdio.h"#include"math.h"voidmain(){inti,n,m,j,k;i=0;printf("請輸入一個多位整數(shù):\n");scanf("%d",&n);k=n;while(k!=0){k=k/10;}k=n;m=pow(10,i-1);printf("逐位輸出:%d",n/m%10);printf(",");for(j=m/10;j>0;j=j/10){n=k/j;printf("%d",n%10);if(j!=1)printf(",");}}11、#include"stdio.h"voidmain(){intp,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=m;m=r;}printf("最大公約數(shù)為:%d\n",n);printf(”最小公倍數(shù)為:%d\n",p/n);}13、#include"stdio.h"voidmain(){inti,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(j=0;j<=i;j++)printf("");for(j=0;j<=4-2*i;j++)printf("*");printf("\n");}}第五章1.#include<stdio.h>#include<math.h>longfac(intn,inta){longsum;if(n==1)sum=a;elsesum=(long)(pow(10,n-1)*a)+fac(n-1,a);return(sum);}main(){inta,n,i;longtemp,sum=0;printf("請輸入一個數(shù)a,n\n");scanf("%d%d",&a,&n);for(i=1;i<=n;i++){temp=fac(i,a);sum+=temp;}printf("它們的和是=%ld",sum);return0;2.#include<stdio.h>intcountdight(intnumber,intdight);intmain(void){intnumber;printf("輸入一個數(shù):”);scanf("%d",&number);countdight(number,2);return0;}countdight(intnumber,intdight){inta,count;count=0;while(number!=0){a=number%10;number=number/10;if(a==dight)count++;}printf("%d\n",count);returncount;}3.#include<stdio.h>intfib(intn);intmain(void){intm,n,num1;num1=1;printf("請輸入兩個正整數(shù)m和n(m>=l,nv=10000)\n");scanf("%d%d",&m,&n);if(num1>=m&&num1<=n)fib(n);return0;intfib(intn){inti,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");returnx;}5.#include<stdio.h>voidis(intnum);intmain(void){intn,m,num1;num1=1;printf("輸入兩個數(shù)m和n(m>=l,nv=1000)\n");scanf("%d%d",&m,&n);if(num1>=m&&num1<=n)is(num1);return0;}voidis(intnum){inti,j,k;for(num=1;num<1000;num++){i=num/100;j=num/10%10;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>intreverse(intnumber);intmain(void){intx;printf("請輸入一個正整數(shù):\n");scanf("%d",&x);reverse(x);return0;}intreverse(intnumber){while(number!=0){printf("%d",number%10);number=number/10;}printf("\n");returnnumber;}第七章作業(yè)1.#include<stdio.h>voidmain(){inti,j=0,k=0,n,p,q,max,min;inta[10];printf("請輸入n(l〈n〈10)的值:\n");scanf("%d",&n);printf("請輸入%d個數(shù):\n",n);for(i=0;i〈n;i++){scanf("%d",&a[i]);min=a[0];max=a[9];if(a[i]<min){min=a[i];k=i;}if(a[i]>max){max=a[i];j=i;}}p=a[9];a[9]=a[j];a[j]=p;q=a[0];a[0]=a[k];a[k]=q;for(i=0;i<n;i++){printf("%8d",a[i]);printf("\n");}4.#include<stdio.h>intmain(void){intm,n,i,j,sum;inta[6][6],x[80];printf("請輸入m,n(l〈二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",&a[i][j]);for(i=0;i〈m;i++){for(j=0;j〈n;j++)printf("%4d",a[i][j]);printf("\n");}for(i=0;i〈m;i++){sum=0;for(j=0;j〈n;j++)sum=sum+a[i][j];x[i]=sum;}for(i=0;i〈m;i++)printf("%d\n",x[i]);return0;}5.#include<stdio.h>voidmain(){inta[3][3],max,max1,max2,i,j,flag=1;printf("請輸入9個數(shù):\n");for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf("%d",&a[i][j]);for(i=0;i<=2;i++){max=a[i][0];for(j=0;j<=2;j++){if(a[i][j]>max){max=a[i][j];max1=j;}}for(max2=0;max2<=2;max2++){if(max>a[max1][max2]){flag=0;break;}}if(flag==1)printf("鞍點是%d\n",a[max2][maxl]);if(flag==0)printf("nonumber\n");flag=1;}}8.#include<stdio.h>#include<string.h>intmain(void){inti,n;chars[80];printf("請輸入n(n〈80)的值:\n");scanf("%d",&n);printf("請輸入%d個字符:\n",n);for(i=0;i〈n;i++)scanf("%s",s);for(i=0;s[i]!='\0';i++){if(s[i]>='A'&&s[i]〈='Z')s[i]=155-s[i];}for(i=0;s[i]!='\0';i++)putchar(s[i]);printf("\n");return0;}#include〈stdio.h>#include〈string.h>intmain(void){inti,n;charf,s[80];printf("Enterastring:");/*輸入字符串*/i=0;while((s[i]=getchar())!='\n')i++;s[i]='\0';n=0;for(i=0;s[i]!='\0';i++){if(s[i]〈=7f&&s[i]>=20)s[i]=s[i++];elsebreak;}for(i=0;s[i]!='\0';i++)putchar(s[i]);return0;第八章作業(yè)1.#include<stdio.h>intmain(void){charch;inta[10];inti,j,temp;printf("請輸入10個整數(shù):\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("請輸入A或D:");scanf("%c",&ch);if(ch=='A'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}for(i=0;i<10;i++){printf("%d\n",a[i]);}}elseif(ch=='D'){for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]<a[j]){{{{temp=a[i];a[i]=a[j];a[j]=temp;}}}for(i=0;i<10;i++){printf("%d\n",a[i]);}}return0;}5.#include<stdio.h>#include<string.h>voidmcopy(char*s,intm);intmain(void){inti,m,l;charstr[100];printf(〃請輸入您要輸入的字符串:〃);gets(str);printf("您將從原字符串的第m位復制新字符串,請輸入m:\n");scanf("%d",&m);printf("復制后,新的字符串為:");mcopy(str,m);return0;}voidmcopy(char*s,intm){printf("%s\n",s+m-1);}11.#include<stdio.h>#include<string.h>voidfushu(char*p);intmain(void){charstr[80];printf("請輸入一個英語名詞單詞:");scanf("%s",str);fushu(str);puts(str);return0;}voidfushu(char*p){inti,l;l=0;for(i=0;*(p+i)!='\0';i++){l++;}if(*(p+l-1)=='y'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}elseif((*(p+l-1)=='s')||(*(p+l-1)=='x')||((*(p+l-2)=='c')&&(*(p+l-1)=='h'))||((*(p+l-2)=='s')&&(*(p+l-1)=='h'))){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}elseif(*(p+l-1)=='o'){*(p+l)='e';*(p+l+1)='s';*(p+l+2)='\0';}else{*(p+l)='s';*(p+l+1)='\0';}}12.#include<stdio.h>#include<stdlib.h>.intmain(void){inti,j,a,n,sum,avg;int*p;printf("Entern:");scanf("%d",&n);if((p=(int*)calloc(n,sizeof(int)))==NULL){printf("Notabletoallocatememory.\n");exit(1);}printf("請輸入%d個學生的成績:\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=i+1;j<n;j++){if(*(p+i)>*(p+j)){a=*(p+i);*(p+i)=*(p+j);*(p+j)=a;}}}printf("學生的平均成績是:%d\n",avg);printf("學生的最高成績是:%d\n",*(p+n-l));printf("學生的最低成績是:%d\n",*p);return0;}第九章作業(yè)#include<stdio.h>struct{inthour,minute,second;}time;intmain(void){scanf("%d:%d:%d",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);return0;}2.structs1{charc1,c2;intn;};structs2{intn;structs1m;};intmain(void){printf("\n\t%d\t%d\t%c\n",m.n,m.m,m.n,m.m.c1,m.m.c2);return0;}8.#include<stdio.h>#defineN10structperson{charnum[10];charname[20];doublejbgz,jj,zc,sfgz;};structpersongz[N];intmain(){inti,index;printf("請輸入%小名工人的基本信息:\n",N);for(i=0;i<N;i++){printf("請輸入第%d名工人的基本信息:\n",i+l);scanf("%s%s%lf%lf%lf",gz[i].num,gz[i].name,&gz[i].jbgz,&gz[i].jj,&gz[i].zc)}printf("%d名工人的基本信息:\n",N);printf("編號\t姓名\t基本工資\t獎金\t支出\t實發(fā)工資\n");for(i=0;i<N;i++)printf("%s\t%s\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\n",gz[i].num,gz[i].name,gz[i].jbgz,gz[i].jj,gz[i].z

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論