




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
/第一章習題1、對C語言來說,下列標示符中哪些是合法的,哪些是不合法的?Total,_debug,Large&Tall,Counter1,begin_答:合法的:_debug、Counter1、begin_。不合法的:Total、Large&Tall。2、改寫1.4節中的流程圖1.2,求1—100中能被6整除的全部整數的和。SSum=0,i=1I<=100I能被6整除?sum=sum+ii=i+1真假打印sum3、改寫1.4節中的程序,求1—100中能被6整除的全部整數的和,并在編程環境中驗證該程序的運行結果。答:程序為:#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、對于給定的整數n(n>1),請設計一個流程圖判別n是否為一個素數(只能被1和自己整除的整數),并分析該流程圖中哪些是依次結構、哪些是分支結構和循環結構。起先起先結束輸入ni=2r=n/i的余數r=0?i=i+1i>=(n-1)輸出n“是素數”輸出n“不是素數”假真真假起先起先結束輸入ni=2r=n/i的余數r=0?i=i+1i>=(n-1)輸出n“是素數”輸出n“不是素數”假真真假其次章作業1.編寫程序,輸入兩個整數num和num2,計算并輸出她們的和、差、積、商。答:程序:#include<stdio.h>voidmain(){ intnum1,num2,y1,y2,y3,y5; doubley4; printf("請輸入兩個數:num1,num2\n"); 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=%d\nnum1,num2差y2=%d\nnum1,num2積y3=%d\nnum1,num2商y4=%lf\nnum1,num2余y5=%d\n",y1,y2,y3,y4,y5);}2.為了提倡居民節約用電,某省電力公司執行“階梯電價”,安裝一戶一表的居民用戶電價分為兩個“階梯”:月用電量50千瓦時以內的,電價為0.53元/千瓦時;超出50千瓦時的用電量,電價上調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.編寫程序,輸入實數x和正整數n,計算xn,,不允許調用pow()函數求冪。答:程序:#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);}4.編寫程序,輸入兩個正整數m和n,求∑(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.編寫程序,輸入一個正整數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.某用戶為購房辦理商業貸款,選擇了按月等額本息還款法,計算公式如下,在貸款本金(loan)和月利率(rate)肯定的狀況下,住房貸款的月還款(money)取決于還款月數(month)??蛻魷蕚湓?—30年的范圍內選擇還清貸款的年限,想得到一張“還款年限—月還款額表”以供參考。編寫程序,輸入貸款本金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.編寫程序,輸入一個正整數n,求∑2i(i從1到n),可調用pow()函數求冪。答:程序:#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.編寫程序,輸入一個正整數n,求e=∑i!(i從0到n)。要求定義和調用函數fact(n)計算n!,函數類型是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;}第三章作業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=%.2lf\n三角形的面積area=%.2lf\n",perimeter,area); }}2、#include<stdio.h>#include<math.h>voidmain(){ doublesalary,tax,rate; printf("請輸入職工的月薪:salary\n"); 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("請輸入一個數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++; else E++; } printf("平均成果=%lf\n",total/n); printf("等級成果個數:\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);}第四章作業2、#include"stdio.h"#include"math.h"doublefact(intn);voidmain(){ inti,n;doublex,s; printf("請輸入一個實數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("請輸入一個整數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("位數=%d\n",count); printf("各個位數之和為:%d\n",sum); return0;}5、#include"stdio.h"voidmain(){ inta,n,i=1,s=0,t=0; printf("請輸入兩個正整數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=%d\n",s);}7、#include"stdio.h"voidmain(){ inti,j,k,l,n; printf("1-10000之間的水仙花數有:\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("請輸入一個多位整數:\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); 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("請輸入兩個正整數:\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("最大公約數為:%d\n",n); printf("最小公倍數為:%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("請輸入一個數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("輸入一個數:"); 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("請輸入兩個正整數m和n(m>=1,n<=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("輸入兩個數m和n(m>=1,n<=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("請輸入一個正整數:\n"); scanf("%d",&x); reverse(x); return0;}intreverse(intnumber){ while(number!=0) { printf("%d",number%10); number=number/10; } printf("\n"); returnnumber;}第七章作業1.#include<stdio.h>voidmain(){ inti,j=0,k=0,n,p,q,max,min; inta[10]; printf("請輸入n(1<n<10)的值:\n"); scanf("%d",&n); printf("請輸入%d個數:\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(1<=m,n<=6)的值:\n"); scanf("%d%d",&m,&n); printf("請輸入%d個數:\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個數:\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][max1]); 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++]; else break; } for(i=0;s[i]!='\0';i++) putchar(s[i]); return0;}第八章作業1.#include<stdio.h>intmain(void){ charch; inta[10]; inti,j,temp; printf("請輸入10個整數:\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-1)); printf("學生的最低成果是:%d\n",*p); return0;}第九章作業1.#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("請輸入%d名工人的基本信息:\n",N); for(i=0;i<N;i++) { printf("請輸入第%d名工人的基本信息:\n",i+1); 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實發工資\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].zc,gz[i].sfgz=gz[i].jbgz+gz[i].jj-gz[i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中期公用事業行業能源轉型進行時開啟降本周期
- 2025年保險行業數字化理賠服務與保險科技融合研究報告
- 投資銀行在新興產業融資中的角色創新與業務拓展策略研究報告
- 2025年互聯網云計算+物聯網+大數據行業融合研究報告:云物聯網數據與產業升級
- 2025年老舊小區電梯加裝項目居民滿意度調查報告
- 管理溝通案例分析法
- 全球鈾礦資源分布特點及2025年核能產業技術創新方向分析報告
- 幼兒園財產分級管理制度
- 2025年云南省中考英語真題(解析版)
- 客房部員工培訓管理制度
- 2021年江西省中考生物真題(含解析)
- 鹽酸小檗堿對癌癥的抑制作用
- 糖尿病老年人飲食護理
- 解憂雜貨鋪ppt讀書分享
- 銀行對公業務培訓課件
- 廈門大學2021年826物理化學考研真題
- 汽修企業安全生產雙重預防機制培訓資料
- 信息安全、網絡安全和隱私保護-信息安全控制風險清單(雷澤佳編制2024A0)
- 農村財會培訓課件
- 建筑施工企業特殊過程確認記錄
- 2024年A證(安全員)作業模擬考試題庫全套
評論
0/150
提交評論