C語(yǔ)言程序設(shè)計(jì)實(shí)用教程 參考答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)用教程 參考答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)用教程 參考答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)用教程 參考答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)用教程 參考答案_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章課后習(xí)題參考答案一、(略)二、單選題1、C2、D3、C4、A5、C6、D7、C8、B9、D10、A三、填空題1、12、8803、100000104、000011115、111100006、3.5000000四、寫程序運(yùn)行結(jié)果1、2,12、03、164、35、1五、編程題解:設(shè)雞有X只,兔有Y只,根據(jù)題意可得方程如下:x+y=a2x+4y=b解方程組可得到:x=(4*a-b)/2y=(b-2a)/s編程如下:#include<stdio.h>#include<math.h>main(){intx,y,a,b;printf(“Pleaseinputtwointergernumbers:\n”);scanf(“%d,%d”,&a,&b);x=(4*a-b)/2;y=(b-2*a)/2;printf(“Thereare%dchicken.\n”,x);printf(“Thereare%drabbit.\n”,y);}2、(題意看書上:求三角形面積)#include<stdio.h>#include<math.h>main(){inta,b,c;floats,area;printf(“Pleaseinput3numbersfortriangle:\n”);scanf(“%d,%d,%d”,&a,&b,&c);s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%f”,area);}第3章課后習(xí)題參考答案單選題B2、BC3、A4、D5、B6、C7、C8、C9、A10、A11、C12、C13、B14、C15、B16、B寫出下列程序的運(yùn)行結(jié)果1、a=20,b=40,c=202、233、684、a=%d,b=%d5、1651.56.56、a=3.140000,3.1400000e+00,3.140e+00,3.140e+00b=-3.141,-3.1415e+00,-3.1415e+007、x=4y=118k=49x=4.900000y=410**********填空題1、(1)d,e(2)(a>b)(3)(d>c)輸出顯示:max=72、(1)k=1;break;(2)k=2;break;(3)k=3;break;(4)k=4;break;(5)k=5;break;34、(i%3==0)&&(i%5==0)&&(i%7==0)5、i=0,j=0,n;scanf(“%d”,&n);四、編程題1.要求從大到小打印三個(gè)整數(shù),a,b,c.main(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}printf("bigtosmall:%d%d%d\n",a,b,c);}2.編程求一元二次方程的根#include<math.h>main(){floata,b,c,disc,x1,x2,realpart,imagpart;printf("inputcanshua,b,c");scanf("%f,%f,%f",&a,&b,&c);printf("Theequation");if(fabs(a)<=1e-6)printf("isnota2cifangcheng.");elsedisc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("hastwoequalroots:%f\n",-b/2*a);elseif(disc>1e-6){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);printf("hasdistinctrealroots:%fand%f\n",x1,x2);}else{realpart=-b/2*a;imagpart=sqrt(-disc)/(2*a);printf("hascomplexroots:\n");printf("%f+%fi\n",realpart,imagpart);printf("%f-%fi\n",realpart,imagpart);}}3.main(){floata,r,rate,bonus;printf("inputa(jiangjin):");scanf("%f",&a);if(a<500)rate=0;elseif(a>=500&&a<1000)rate=(a-500+1)*0.05;elseif(a>=1000&&a<2000)rate=(a-1000+1)*0.08+500*0.05;elseif(a>=2000&&a<3000)rate=(a-2000+1)*0.1+1000*0.08+500*0.05;elserate=(a-3000+1)*0.15+1000*0.1+1000*0.08+500*0.05;bonus=a-rate;printf("rate=%f,bonus=%f\n",rate,bonus);}3’main(){floata,r,rate,bonus,t;printf("inputa(jiangjin):");scanf("%f",&a);t=a/500;if(t>6)t=6;switch((int)(t)){case0:rate=0;break;case1:rate=(a-500+1)*0.05;break;case2:case3:rate=(a-1000+1)*0.08+500*0.05;break;case4:case5:rate=(a-2000+1)*0.1+1000*0.08+500*0.05;break;case6:rate=(a-3000+1)*0.15+1000*0.1+1000*0.08+500*0.05;break;}bonus=a-rate;printf("rate=%f,bonus=%f\n",rate,bonus);}4.編程,將2000到3000年之間的閏年輸出main(){inty;for(y=2000;y<=3000;y++){if(y%4==0&&y%100!=0||y%400==0)printf("%d",y);}}5.從鍵盤輸入若干字符,統(tǒng)計(jì)其中字母符號(hào)(區(qū)分大小寫),數(shù)字符號(hào)和其他字符的個(gè)數(shù)。#include<stdio.h>main(){charc;intbletter=0,sletter=0,digit=0,other=0;printf("inpursomechars:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z')sletter++;elseif(c>='A'&&c<='Z')bletter++;elseif(c>='0'&&c<='9')digit++;elseother++;}printf("bletter:%d,sletter:%d,digit:%d,other:%d\n",bletter,sletter,digit,other);}6、求階乘的前20項(xiàng)的和main(){floats=0,t=1;intn;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf(“1!+2!+3!+…….+20!=%e\n”,s);}7.編程求所有的水仙花數(shù)。main(){inti,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*i*i+j*j*j+k*k*k==n)printf("%4d",n);}printf("\n");}8.(題意看書上)main(){inti,j,k,n;for(n=200;n<300;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*j*k==42&&i+j+k==12)printf("%4d",n);}printf("\n");}9.編程計(jì)算1——100之間能同時(shí)被3和4整除的所有的整數(shù)的和。main(){intn,sum=0;clrscr();for(n=1;n<100;n++){if(n%3==0&&n%4==0){printf("%d",n);sum=sum+n;}}printf("\nsum=%d",sum);}10、編程計(jì)算1——100之間所有的偶數(shù)的和。main(){intn,s=0;for(n=1;n<100;n++){if(n%2==0)s=s+n;}printf(“s=%d”,s);}11.(題意看書上)main(){intt;printf("studentsnumbermaybe:");for(t=500;t<1000;t++){if(t%5==2&&t%7==3&&t%3==1)printf("%4d",t);}printf("\n");}第4章課后習(xí)題參考答案一選擇題CCDABC二程序填空1、(1)&a[i](2)continue2、{s[j]=s[i];j++;}三編程main(){inta[3][3],sum=0;intij;printf(“pleaseinputdata:\n”);for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(“%d”,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][j];printf(“sum=%6d\n”,sum);}插入法排序main(){inta[10];inti,j,x;printf(“Pleaseinput10numbers:\n”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=1;i<10;i++){x=a[i];j=x-1;while(j>=0&&a[j]>x){a[j+1]=a[j];j--;}a[j+1]=x;}3#include<stdio.h>#defineN15//定義字符常量表示數(shù)組長(zhǎng)度main(){inti,j,number,top,bott,mid,loca,a[N],flag=1,sign=1;charc;printf(“Pleaseinputdata:\n”);//數(shù)組數(shù)據(jù)的輸入scanf(“%d”,&a[i]);i=1;while(i<N){scanf(“%d”,&a[i]);if(a[i]>=a[i-1])//按照從小到大的輸入i++;elseprintf(“Inputthisdataagain:”);printf(“\n”);for(i=0;i<N;i++)printf(“%d”,a[i]);//數(shù)組輸出顯示printf(“\n”);flag=1;//如果是有序數(shù)組就將Flag=1while(flag){printf(“Pleaseinputnumbertolookfor:”);scanf(“%d”,&number);//輸入要查找的數(shù)據(jù)loca=0;//查找成功與否的開關(guān)變量top=0;//查找區(qū)間的開始元素下標(biāo)bott=N-1;//查找區(qū)間的結(jié)束元素下標(biāo)if((number<a[0])||(number>a[N-1]))//要查找的數(shù)據(jù)超出范圍loca=-1;//沒(méi)有找到while((sign==1)&&(top<=bott)){mid=(bott+top)/2;//折半(取中間位置的數(shù)據(jù))if(number==a[mid]){loca=mid;printf(“Find%d,itspositionis%d\n”,number,loca+1);sign=0;//找到}elseif(number<a[mid])bott=mid-1;//查找區(qū)間變化elsetop=mid+1;}if(sign==1||loca==-1)//沒(méi)有找到printf(“%disnotfound.\n”,number);printf(“continueornot(Y/N)?”);scanf(“%c”,&c);if(c==’N’||c==’n’)flag=0;}}4矩陣相乘main(){inta[3][4],b[4][5],c[3][5];inti,j,k,n=0;//定義矩陣I,j分別為矩陣a的行和列;j,k分別為矩陣b的行printf(“\nPleaseinputa:\n”);for(i=0;i<3;i++)和列for(k=0;k<4;k++)scanf(“%d”,&a[i][k]);//輸入矩陣aprintf(“Pleaseinputb:\n”);for(k=0;k<4;k++)for(j=0;j<5;j++)scanf(“%d”,&b[k][j]);//輸入矩陣bfor(i=0;i<3;i++)for(j=0;j<5;j++){c[i][j]=0;for(k=0;k<4;k++)c[i][j]+=a[i][k]*b[k][j];//計(jì)算出矩陣c}for(i=0;i<3;i++)for(j=0;j<5;j++){printf(“%4d”,c[i][j]);n=n+1;//輸出矩陣cif(n==5){printf(“\n”);n=0;}//輸出5個(gè)數(shù)據(jù)后換行}}5合并字符串(用strcat()函數(shù))#include<stdio.h>main(){charst1[80],st2[10];printf(“pleaseinputstrings:\n”);gets(st1);gets(st2);puts(st1);puts(st2);printf(“%s\n”,strcat(st1,st2));}#include<stdio.h>main(){inti=0,j=0;charst1[80],st2[10];printf("pleaseinputstrings:\n");gets(st1);gets(st2);while(st1[i]!='\0')i++;while(st2[j]!='\0'){st1[i]=st2[j];i++;j++;}st1[i]='\0';puts(st1);}5合并字符串(不用strcat()函數(shù))main(){chars1[80],s2[10];inti=0,j=0;printf(“\nPleaseinputstring1:”);scanf(“%s”,s1);printf(“\nPleaseinputstring2:”);scanf(“%s”,s2);while(s1[i]!=’\0’)i++;while(s2[j]!=’\0’)s1[i++]=s2[j++];s1[i]=’\0’;printf(“Thenewstringis:%s”,s1);}6查找數(shù)組中的一個(gè)指定字符,并輸出該字符的位置#include<stdio.h>#include<math.h>main(){chara[20],ch;inti,j=0,flag=0;printf(“Pleaseinputnumbers:\n”);scanf(“%s\n”,a);scanf(“%c”,ch);for(i=0;a[i]!=’\0’;i++,j++)if(strcmp(a[i],ch)==0){flag=1;printf(“Find%c,itspositionis%d\n”,ch,j);break;}if(flag=0)printf(“Notfind,%d\n”,-1);}0第5章課后習(xí)題參考答案一、選擇題1、A2、C3、C4、D5、C6、A7A8、C9、B寫程序運(yùn)行結(jié)果1、242、1810編程題1編寫函數(shù),通過(guò)指針將一個(gè)字符串反向。main(){inta[10],i,*p;p=a;printf(“Pleaseinputastring:\n”);for(i=0;i<10;i++,p++)scanf(“%c”,p);p=&a[9];for(i=0;i<10;i++)printf(“%c”,*(p-i));}編寫程序,輸入字符串,分別統(tǒng)計(jì)字符串中所包含的各個(gè)不同的字符及其字符的數(shù)量。#include<stdio.h>main(){intbigletter=0,smallletter=0,digit=0;intspace=0,other=0,i=0;char*p,s[20];printf("Pleaseinputastring:");while((s[i]=getchar())!='\n')i++;p=s;while(*p!='\n'){if('A'<=*p&&*p<='Z')++bigletter;elseif(('a'<=*p)&&(*p<='z'))++smallletter;elseif(*p=='')++space;elseif((*p<='9')&&(*p>='0'))++digit;elseother++;p++;}printf("bigletter:%dsmallletter:%d",bigletter,smallletter);printf("space:%dother:%ddigit:%d",space,other,digit);}有n人圍成一圈,順序排號(hào)。從第1個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留下的是原來(lái)的第幾號(hào)的那位?main(){inti,k,m,n,num[50],*p;printf("Pleaseinputnumberofperson:n=");scanf("%d",&n);p=num;for(i=0;p<=num+n;i++,p++)*p=i+1;i=0;k=0;m=0;p=num;while(m<n-1){if(*(p+i)!=0)k++;if(k==3){*(p+i)=0;k=0;m++;}i++;if(i==n)i=0;}while(*p==0)p++;printf("ThelastoneisNO%d\n",*p);}第6章課后習(xí)題參考答案1、單項(xiàng)選擇題1、B2、B3、B4、D5、A6、B7、C8、C9、A10、B11、B12、B13、D14、A15、B16、A17、A18、A19、D二、編程題從鍵盤輸入三個(gè)整數(shù),調(diào)用函數(shù)求其中最大數(shù)。#include<stdio.h>main(){intx,y,z,big;intmax(inta,intb,intc);//函數(shù)聲明,注意前面的類型,后面的分號(hào)printf(“Pleaseinputthreenumbers:\n”);scanf(“%d,%d,%d”,&x,&y,&z);big=max(x,y,z);//函數(shù)調(diào)用,注意前面不再有類型,后面的分號(hào)printf(“max=%d.\n”,big);}intmax(inta,intb,intc)//用戶自定義函數(shù)–首部{intt;if(a<b)//完成數(shù)據(jù)交換{t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}ret

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論