2021年C語言程序設(shè)計(jì)第三版習(xí)題庫答案_第1頁
2021年C語言程序設(shè)計(jì)第三版習(xí)題庫答案_第2頁
2021年C語言程序設(shè)計(jì)第三版習(xí)題庫答案_第3頁
2021年C語言程序設(shè)計(jì)第三版習(xí)題庫答案_第4頁
2021年C語言程序設(shè)計(jì)第三版習(xí)題庫答案_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語言程序設(shè)計(jì)(第三版)習(xí)題庫1、設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計(jì)算成果,輸出時(shí)規(guī)定文字闡明,取小數(shù)點(diǎn)后兩位數(shù)字。請(qǐng)編程序。#include<stdio.h>main(){floatr,h,C1,Sa,Sb,Va,Vb;scanf(__”%f”__,&r);scanf(”%d”,__&h_);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f”,Cl,Sa,Sb,Va,Vb);}2、輸入一種華氏溫度,規(guī)定輸出攝氏溫度。公式為c=5(F-32)/9輸出規(guī)定有文字闡明,取位2小數(shù)。#include<stdio.h>main(){floatF,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函數(shù):寫一程序,輸入x值,輸出y值。#include<stdio.h>main(){intx,y;printf("輸入x:");scanf("%d",&x);if(x<1){/*x<1*/y=x;printf("x=%3d,y=x=%d\n",x,y);}elseif(____x<10_______){/*1≤x-10*/_____y=2*x-1_______;printf("x=%3d,y=2*x-1=%d\n",x,y);}else{/*x≥10*/y=3*x-11;printf("x=%3d,y=3*x-11=%d\n",x#include"stdio.h"main(){intx,y;scanf("%d",&x);if(x<1) {y=x;}elseif(x>=1&&x<10) {y=2*x-1;}else {y=3*x-11;}printf("%d",y);}#include"stdio.h"main(){intx,y;scanf("%d",&x);if(x<1) {y=x;}elseif(x>=1&&x<10) {y=2*x-1;}else {y=3*x-11;}printf("%d\n",y);}#include"stdio.h"main(){intx,y;scanf("%d",&x);if(x<1) {y=x;}elseif(x>=1&&x<10) {y=2*x-1;}else {y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1) {y=x;}elseif(x>=1&&x<10) {y=2*x-1;}else {y=3*x-11;}#include"stdio.h"main(){intx,y;scanf("%d",&x);if(x<1) y=x;elseif(x>=1&&x<10) y=2*x-1;else y=3*x-11;printf("%d",y);},y);}}4、給定一種不多于5位正整數(shù),規(guī)定:①求它是幾位數(shù);②按逆序打印出各位數(shù)字。例如原數(shù)為321,應(yīng)輸出123。#include<stdio.h>main(){longintnum,m=0;inti=0;scanf("%ld",&num);while(num>0){i++;/*記錄長(zhǎng)度*/m=m*10+num%10;num=num/10;}printf("數(shù)字長(zhǎng)度為:%d",i);printf("逆序數(shù)字為:%d\n",m);}5、如下程序?qū)崿F(xiàn)功能:求三個(gè)數(shù)最大值#include<stdio.h>main(){ inta,b,c,max; scanf("%d%d%d",&a,&b,&c); if(a>b){ if(a>c)max=a; else max=c; }else{ if(b>c) max=b; else max=c; } printf("max=%d",max);}#include<stdio.h>main(){ intx,y,z,t=0; scanf("%d%d%d",&x,&y,&z); if(x>y) {t=y;y=x;x=t;} if(x>z) {t=z;z=x;x=t;} if(y>z) {t=z;z=y;y=t;} printf("%d\n",z);}6、輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。/*枚舉法*/#include<stdio.h>main(){longm,n,i=1,j,s;scanf("%ld,%ld",&m,&n);for(;i<=m&&i<=n;i++){if(m%i==0&&n%i==0)s=i;}if(m>=n)j=m;elsej=n;for(;!(j%m==0&&j%n==0);j++);printf("s=%ld,j=%ld\n",s,j);}#include<stdio.h>main(){ inta,b,k,temp,i,p; scanf("%d,%d",&a,&b);if(a>b) temp=b; else temp=a; for(i=2;i<=temp;i++) {if(a%i==0&&b%i==0)k=i; } printf("%d\n",k);p=a*b/k;printf("%d\n",p);}/*輾轉(zhuǎn)相除*/#include<stdio.h>main(){intm,n,k,j,p,r=1;scanf("%d,%d",&m,&n);k=m>n?m:n;j=m>n?n:m;do{r=k%j;k=j;j=r;}while(r!=0);printf("%d,%d",k,m*n/k);}/*重復(fù)減法*/#include<stdio.h>main(){intm,n,k,j,p,r=1;scanf("%d,%d",&m,&n);k=m>n?m:n;j=m>n?n:m;do{p=k-j;if(j>p){k=j;j=p;}elsek=p;}while(p!=0);printf("%d,%d",k,m*n/k);}7、輸入一行字符,分別記錄出其中英文字母、空格、數(shù)字和其她字符個(gè)數(shù)。#include"stdio.h"main(){charc;inti=0,j=0,k=0,l=0;while((c=getchar())!=’\n’){if(c>=’A’&&c<=’Z’||c>=’a’&&c<=’z’)i++;//英文字母記錄elseif(c>=’0’&&c<=’9’)j++;//數(shù)字記錄elseif(c==’’)k++;//空格記錄elsel++;}printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);}8、求Sn=a+aa+aaa+…+aa…aaa(有n個(gè)a)之值,其中a是一種數(shù)字。例如:2+22+222+2222+22222(n=5),n由鍵盤輸入。#include<stdio.h>main(){inta,n;longb=0,sum=0;scanf(“%d%d”,&a,&n);for(i=1;i<=n;i++){b=b*10+a;sum=sum+b;}printf(“%ld”,sum);}9、打印出所有"水仙花數(shù)",所謂"水仙花數(shù)"是指一種三位數(shù),其各位數(shù)字立方和等于該自身。例如:153是一種水仙花數(shù),由于153=13+53+33?!境绦?】#include<stdio.h>main(){inti,m,n,k;for(i=100;i<1000;i++){m=__i%10__; n=_i/10%10__; k=i/100; if(__m*m*m+n*n*n+k*k*k==i__) printf("%5d",i);}}【程序2】#include<stdio.h>main(){inti,a,n,s;for(i=100;i<=999;i++){n=i;s=0;while(n>0){a=__n%10__;s+=a*a*a;n/=__10__;}if(__s==i__)printf(“%d”,i);}10、一種數(shù)如果正好等于它因子之和,這個(gè)數(shù)就稱為"完數(shù)"。例如,6因子為1、2、3,而6=1+2+3,因而6是"完數(shù)"。編程序找出1000之內(nèi)所有完數(shù),并按下面格式輸出其因子:6itsfactorsare1、2、3#include<stdio.h>main(){inta,i,m;for(a=1;a<=1000;a++){for(__i=1,m=0__;i<=a/2;i++)if(!(a%i))__m+=i__;if(m==a)printf(“%4d”,a);}}11、運(yùn)用:/4=1-1/3+1/5-1/7+….級(jí)數(shù)求值,直到最后一項(xiàng)絕對(duì)值不大于10-6為止。求絕對(duì)值函數(shù)為fabs()。#__include<stdio.h>__#include<math.h>main(){inti=1,flag=1;doublesum=0.0,s;do{s=__1.0/(2*i-1)__;sum+=s*flag;i++;__flag=-flag__;}while(__fabs(s)>1e-6__);/**/printf("pi=%f",__4*sum__);}11、有一分?jǐn)?shù)序列:2/1,3/2,5/3,求出這個(gè)數(shù)列前20項(xiàng)之和。#include<stdio.h>#defineN20main(){inti=1;doublex=1,y=2,sum=0;while(__i<=20__){sum=sum+__y/x__;y=___x+y__;x=__y-x__;i++;}printf("%f\n",sum);}12、一球從100米高度自由下落,每次落地后返回原高度一半,再落下。求它在第10次落地時(shí)共通過多少米?第10次反彈多高?#include<stdio.h>main(){inti,n=10;doubleh=100,s=100;for(i=2;i<=n;i++){h*=__0.5__; s=__s+h*2__;}printf("s=%f,h=%f\n",s,h);}13、猴子吃桃問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還但是癮,又多吃了一種。第二天早上又將剩余桃子吃掉一半,又多吃一種。后來每天早上都吃了前一天剩余一半零一種。到第10天早上想再吃時(shí),見只剩余一種桃子了。求第一天共摘多少桃子。#include<stdio.h>#defineN10main(){inti=1,sum=1;while(i++<N)sum=__(sum+1)*2__;printf("sum=%d\n",sum);}14、用迭代法求。求平方根迭代公式為:規(guī)定先后兩次求出得差絕對(duì)值少于0.00001。#include<stdio.h>#include<math.h>main(){floatx0,x1,a;scanf("%f",&a);x1=a/2;do{x0=x1;x1=__(x0+a/x0)/2__;}while(__x1>1e-5__);printf("%g\n",x1);}15、用牛頓迭代法求方程在1.5附近根。#include<stdio.h>#include__<math.h>__#definef(x)2*x*x*x-4*x*x+3*x-6main(){doublex,y;x=__1.5__;do{y=f(x);x=x-y/(6*x*x-8*x+3);}while(fabs(y)>1e-6);printf("x=%.3f\n",x);}16、用二分法求方程在(-10,10)之間根#include<stdio.h>#include<math.h>#definef(x)2x*x*x-4*x*x+3*x-6main(){doublex1=-10,x2=10,x,y;do{x=(x1+x2)/2;y=f(x);if(y<0)x1=x;elsex2=x;}while(fabs(y)>1e-6);printf("x=%g\n",x);}17、如下程序功能是:輸入一種百分制成績(jī),輸出一種五級(jí)制成績(jī)級(jí)別。例如輸入75,輸出C。請(qǐng)完畢填空#include<stdio.h>main(){intscore;scanf("__%d__",&score);switch(__score/10__){ case1:case2:case3:case4:case5: printf(“gradeE\n”);___break__; case6:printf(“gradeD\n”);break; case7:printf(“gradeC\n”);break; case8:printf(“gradeB\n”);break; case9:printf(“gradeA\n”);break;__default__:printf("Errorinput!\n");}}18、該程序功能:對(duì)x=1,2,...,10,求f(x)=x*x-5*x+sin(x)最大值。#include<stdio.h>#include<math.h>#definef(x)x*x-5*x+sin(x)voidmain(){intx;floatmax; __max=f(1)__; for(x=2;x<=10;x++) __if(max<f(x))max=f(x)__; printf("%f\n",max);}19、程序功能:輸入整數(shù)a和b值,若a2+b2不不大于100,則輸出a2+b2百位以上數(shù)字,否則輸出兩數(shù)之和。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=__a*a+b*b__;if(s>100)printf("%d",__s/100__);elseprintf("%d",___a+b__);}20、有1020個(gè)西瓜,第一天賣一半多兩個(gè),后來每天賣剩余一半多兩個(gè),如下程序記錄賣完所需天數(shù)。#include<stdio.h>main(){intday,x1,x2;day=0;x1=1020;while(__x1>0__){x2=__x1/2-2__;x1=x2;day++}printf(“day=%d”,day);}21、找出整數(shù)所有因子#include<stdio.h>main(){inti,x;scanf(“%d”,&x);i=1;for(;__i<=x/2__;){if(x%i==0)printf(%d”,i);i++;}}22、記錄取數(shù)字0-9可以構(gòu)成多少個(gè)各位上數(shù)字沒有重復(fù)3位偶數(shù)。#include<stdio.h>main(){intn=0,i,j,k;for(i=1;i<=9;i++)for(k=0;k<=8;__k+=2__)if(k!=i)for(j=0;j<=9;j++)if(__j!=i&&j!=k__)n++;printf(“n=%d\n”,n);}23、用100元換成1、2、5元所有兌換方案。#include<stdio.h>main(){inti,j,k,l=0;for(i=0;i<=20;i++)for(j=0;j<=50;j++){k=__(100-i-2*j)/5__;if(__i+j*2+k*5==100__){printf(“%2d%2d%2d”,i,j,k);l=l+1;if(l%5==0)printf(“\n”);}}}24、輸出1-100之間滿足每位數(shù)乘積不不大于每位數(shù)和數(shù)#include<stdio.h>main(){intn,k=1,s=0,m;for(n=1;n<=100;n++){k=1;s=0;__m=n__;while(__m>0__){k*=m%10;s+=m%10;___m/=10__;}if(k>s)printf(“%d”,n);}25、從3個(gè)紅球、5個(gè)白球、6個(gè)黑球中任意取出8個(gè)球,且其中必要有白球,輸出所有也許方案。#include<stdio.h>main(){inti,j,k;for(i=0;i<=3;i++)for(__j=1__;j<=5;j++){k=8–i–j;if(__k>=0__)printf(“%3d%3d%3d\n”,i,j,k);}}26、如下程序功能是:判斷一種四位數(shù)與否滿足這樣條件:它9倍剛好是它反序數(shù)。反序數(shù)是指整數(shù)各個(gè)位上數(shù)字逆序所形成整數(shù)。請(qǐng)完畢程序填空。#include<stdio.h>main(){ inti,a,b,c,d,m; for(i=1000;;i++){ a=__i%10__; b=i/10%10; c=i/100%10; d=i/1000; m=__a*1000+b*100+c*10+d__; if(___m==i*9__)__break__; } printf("i=%d",i);}27、如下程序完畢兩整數(shù)互換。#include<stdio.h>main(){inta,b;printf(“請(qǐng)依次輸入a,b值:”);scanf(“%d,%d”,__&a,&b__);a=a+b;__b=a-b__;__a=a-b__;printf(“互換后:a=%d,b=%d”,a,b);}28、如下程序功能是判斷輸入年份與否為閏年,若是則輸出”yes”,否則輸出”No”。#include<stdio.h>main(){intyear

;scanf(“%d”,&year);if(__year%400==0||year%4==0&&year%100!=0__)printf(“yes”);elseprintf(“No”);}29、如下程序運(yùn)用冒泡排序法對(duì)輸入10個(gè)數(shù)進(jìn)行排序。#include<stdio.h>#defineN10voidmain(){inta[N];inti,j,t;printf(″input10numbers:\n″);for(i=0;i<N;i++)scanf("%d",__&a[i]__);printf("\n");for(j=0;j<N-1;j++)for(i=0;i<__N-j-1__;i++)if(__a[i]>a[i+1]__){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(″thesortednumbers:\n″);for(i=0;i<N;i++)printf(″%d″,a[i]);printf(″\n″);}30、用篩法求100之內(nèi)素?cái)?shù)。篩法素?cái)?shù)思想是:1、取最小數(shù)2,并聲明它是素?cái)?shù),同步篩去它及它倍數(shù)。2、取未篩去數(shù)中最小數(shù),并聲明它是素?cái)?shù),同步篩去它及它倍數(shù)。3、重復(fù)環(huán)節(jié)2至篩中無數(shù),得到所有素?cái)?shù)。#include<stdio.h>

#defineM100//范疇#defineN((M+1)/2)//奇數(shù)個(gè)數(shù)voidmain(){

inti,j,a[N];

a[0]=2;

for(i=1;i<N-1;i++)

/*初始數(shù)組實(shí)現(xiàn)第一步篩選*/

a[i]=2*i+1;

for(i=1;i<N-1;i++)

/*第二步篩選*/

if(__a[i]!=0__)

for(j=i+1;j<N;j++)

if(__a[j]%a[i]==0__)/*倍數(shù)時(shí)置零篩去*/

a[j]=0;

printf("\nTheprimerare[2-%d]:\n",M);

for(i=0,j=0;i<N;i++){

/*顯示得到素?cái)?shù)*/

if(__a[i]!=0__)

{

printf("%5d",a[i]);

if((++j)%10==0)

/*十個(gè)數(shù)換行*/

printf("\n");

}

}

getch();

}31、用選取法對(duì)10個(gè)整數(shù)從小到大排序。#include<stdio.h>#defineN10main(){inta[N],i,j,k,t;for(i=0;i<N;i++)scanf(“%d”,&a[i]);for(i=0;i<N-1;i++){k=__i__;for(j=i+1;j<N;j++)if(a[j]<a[k])k=__j__;if(__a[i]>a[k]__){t=a[k];a[k]=a[i];a[i]=t;}}for(i=0;i<N;i++)printf(“%d”,a[i]);}32、求一種N×N矩陣主對(duì)角線元素、次對(duì)角線之和。#defineN3#include<stdio.h>main(){inti=0,j=0,a[N][N],s1=0,s2=0;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=0;i<N;i++)for(j=0;j<N;j++){if(__i==j__)s1+=a[i][j];//主對(duì)角線if(__i+j==N-1__)s2+=a[i][j];//次對(duì)角線}printf("s1=%d,s2=%d\n",s1,s2);}33、已有一種已排好數(shù)組今輸入一種數(shù)規(guī)定按本來排序規(guī)律將它插入數(shù)組中。#defineN10#include<stdio.h>main(){inti,t,a[N]={1,7,8,17,23,24,59,62,101};scanf("%d",&t);for(i=N-2;i>0;i--){if(t<a[i])__a[i]=a[i-1]__;elsebreak;a[i+1]=__t__;for(i=0;i<10;i++)printf("%5d",a[i]);}34、將一種數(shù)組值按逆序重新存儲(chǔ),例如,本來順序?yàn)椋?,6,5,4,1。規(guī)定改為:1,4,5,6,8。#include<stdio.h>#defineN11main(){inti,a[N],tmp;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;__i<N/2__;i++){tmp=a[i];a[i]=__a[N-i-1]__;__a[N-i-1]__=tmp;}for(i=0;i<N;i++)printf("%5d",a[i]);}35、打印“魔方陣”,所謂魔方陣是指這樣方陣,它每一行、每一列和對(duì)角線之和均相等。例如,三階魔方陣為816357492規(guī)定打印出由1~n2自然數(shù)構(gòu)成魔方陣。#defineN3

#include<stdio.h>main(){

inti,j,k,a[N][N];/*初始化魔方陣——置為0,作為有無數(shù)字判斷*/

for(i=0;i<N;i++)

for(j=0;j<N;j++)

a[i][j]=__0__;

j=N/2;

a[0][j]=1;/*存儲(chǔ)第一種數(shù)字*//*存儲(chǔ)2——n*n*/

for(k=2;k<=N*N;k++)

{

i--;//數(shù)存儲(chǔ)前一數(shù)行數(shù)減1、列數(shù)加1

__j+=1__;if(i<0&&j>N-1){//到達(dá)右上角位置i=i+2;j--; }else{

if(i<0)

i=__n-1__;//上一數(shù)行數(shù)為0,下一數(shù)行數(shù)為n-1if(j>N-1)

j=0;//上一數(shù)列數(shù)為n-1時(shí),下一數(shù)列數(shù)為0

}

if(__a[i][j]!=0__){//若下一數(shù)位置上已有數(shù)字,//則下一數(shù)存到上一種數(shù)行數(shù)加1位置i=(i+2)%N;

j=(j-1+N)%N;

} a[i][j]=__k__;//填數(shù)

}for(i=0;i<N;i++)

{//輸出魔方陣

printf("");

for(j=0;j<N;j++)

printf("%4d",a[i][j]);

printf("\n\n");

}}36、找出一種二位數(shù)組中鞍點(diǎn),即該位置上元素在該行上最大,在該列上最小,也也許沒有鞍點(diǎn)。#include<stdio.h>#defineM5#defineN4main(){

inta[M][N],i,j,x,y,k,max,min;//x,y分別是用來記錄鞍點(diǎn)位置intflag=0;//用于批示與否存在鞍點(diǎn)for(i=0;i<M;i++)

for(j=0;j<N;j++)scanf("%d",&a[i][j]);for(i=0;i<M;i++)

{max=a[i][0];y=0;//先默認(rèn)第一種數(shù)是最大值for(k=1;k<N;k++)

if(max<a[i][k])

{y=k;__max=a[i][k]__;}

min=a[i][y];x=i;//先默認(rèn)第一種數(shù)是最小值

for(k=0;k<5;k++)

if(min>a[k][y]){x=k;__min=a[k][y]__;}if(__i==k__){printf("a[%d][%d]=%d是鞍點(diǎn)\n",x,y,a[x][y]);flag=1;}}if(flag==0)printf(“不存在鞍點(diǎn)\n”);}37、有個(gè)15數(shù)按由小到大順序存儲(chǔ)在一種數(shù)組中,輸入一種數(shù),規(guī)定用折半查找法找出該數(shù)組中第幾種元素值。如果該數(shù)不在數(shù)組中,則打印出"無此數(shù)"#include<stdio.h>#defineN15main(){intlow,high,mid,x;inta[N]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812};low=0,high=N-1;scanf("%d",&x);do{mid=__(low+high)/2__;if(a[mid]==x)break;elseif(a[mid]<x)low=__mid+1__;elsehigh=__mid-1__;}while(low<=high);if(low<=high)printf("xisthe%dthnumber\n",mid+1);elseprintf("xnotexistinthearray\n");}38、輸入一行字符,記錄其中有多少個(gè)單詞,單詞之間用空格分隔開。#include<stdio.h>voidmain(){charstring[81];inti,num=0,word=0;charc;gets(string);for(i=0;(c=string[i])__!=’\0’__;i++)if(c==′′)word=0;elseif(word==0){word=__1__;num++;}printf(″Thereare%dwordsintheline.\n″,num);}39、輸出10行楊輝三角形。1111211331……#include<stdio.h>#defineN10main(){inti,n,k,a[N]={1};printf(“%5d\n”,a[0]);for(i=1;i<N;i++){for(j=i;j>=1;j--)a[j]=__a[j]+a[j-1]__;for(j=0;__j<=i__;j++)printf(“%5d”,a[j]);printf(“\n”);}}40、如下程序功能是:從鍵盤輸入一種整數(shù)n(n≤10)和n個(gè)整數(shù),存入數(shù)組a中,先依次輸出各個(gè)數(shù)組元素值,然后找出最大值,并輸出。#include<stdio.h>main(){ inta[10],n,i,j,__max__; printf("輸入n="); scanf("%d",&n); printf("輸入各數(shù)組元素:"); for(i=0;i<n;i++) scanf("%d",__&a[i]__); printf("輸出各數(shù)組元素:"); for(__i=0;i<n;i++__) printf("%d",__a[i]__); printf("\n"); max=__a[0]__;for(j=1;j<n;j++)if(a[i]>max)__max=a[i]__;printf("最大值:%d\n",max);}41、如下程序?qū)崿F(xiàn)功能是:將字符串s中所有字符c刪除。請(qǐng)完畢程序填充#include<stdio.h>#include<ctype.h>main(){chars[80];inti,j;gets(s);for(i=j=0;__s[i]!=’\0’__;i++)if(s[i]!='c'){s[j]=s[i];__j++__;}s[j]='\0';puts(s);}42、如下程序功能是:按順序讀入10名學(xué)生4門課程成績(jī),計(jì)算出每位學(xué)生平均分并輸出,請(qǐng)完畢程序填充。#include<stdio.h>#defineN10main(){intn,k;floatscore,sum,ave;for(n=1;n<=N;n++){__sum=0__;for(k=1;k<=4;k++){scanf("%f",&score);__sum+=score__;}__sum/=4__;printf("NO.%d:%f\n",n,ave);}}43、本程序功能是:輸入一串字符,將字符串中字符反序輸出。#include<stdio.h>#include<__string.h__>main(){inti,j,k;charstr[80];gets(str);for(i=0,j=__n-1__;i<j;i++,j--){k=str[i];str[i]=str[j];str[j]=k;}puts(__str__);}44、求方程ax2+bx+c=0根,用三個(gè)函數(shù)分別求當(dāng)b2-4ac不不大于0、等于0、和不大于0時(shí)根,并輸出成果。從主函數(shù)輸入a、b、c值。#include<stdio.h>#include<math.h>voiddoubleRoots(doublea,doubleb,doublec){doublex1,x2,delta;delta=__b*b-4*a*c__;x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);printf("Equationhastwodifferentroots:\n");printf("x1=%g,x2=%g",x1,x2);}voidSingleRoot(doublea,doubleb,doublec){doublex1;x1=__-b/2/a__;printf("Equationhastwoequalroots:\n");printf("x1=x2=%g",x1);}voidNoRoot(void){printf("Norealrootfoundfortheequation\n");}main(){doublea,b,c,delta;scanf("%lf%lf%lf",&a,&b,&c);delta=b*b-4*a*c;if(delta>0)__doubleRoots(a,b,c)__;elseif(delta<0)_NoRoot()__;else__SingleRoot(a,b,c)__;}45、寫一種判斷素?cái)?shù)函數(shù),在主函數(shù)輸入一種整數(shù),輸出與否是素?cái)?shù)消息。#include<stdio.h>#include<math.h>voidIsPrime(__intn__){inti;intk=sqrt(n);for(i=2;__i<=k__;i++)if(n%i==0)break;if(i>=k+1)printf("%disPrimenumber\n",n);elseprintf("%disnotPrimenumber\n",n);}main(){intn;scanf("%d",&n);;IsPrime(__n__);}46、用牛頓迭代法求根。方程為ax3+bx2+cx+d=0,系數(shù)a,b,c,d由主函數(shù)輸入。求x在1附近一種實(shí)根。求出后由主函數(shù)輸出。#include<stdio.h>#include<math.h>doubleEquationRoot(doublea,doubleb,doublec,doubled){doublex,y;x=1;do{y=a*x*x*x+b*x*x+c*x+d;x=x-y/(3*a*x*x+2*b*x+c);}while(__fabs(y)>1e-6__);return__x__;}main(){doublea,b,c,d,x;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);x=__EquationRoot(a,b,c,d)__;printf("x=%g",x);}47、輸入10個(gè)學(xué)生5門課成績(jī),分別用函數(shù)求:①每個(gè)學(xué)生平均分;②每門課平均分;③找出最高分所相應(yīng)學(xué)生和課程;④求平均分方差:,其中xi為一學(xué)生平均分。#include<stdio.h>#defineM5#defineN10voidEachStudentEverageMark(floata[][],intm,intn){/*求每個(gè)學(xué)生平均分。m-學(xué)生數(shù),n-課程數(shù)*/inti,j;floatsum;for(i=0;i<m;i++){sum=0.0;for(j=0;j<n;j++)sum+=a[j][i];printf("averagemarkofthe%dthstuis%g\n",i+1,sum/n);}}voidEachCourseEverageMark(__floata[][]__,intm,intn){/*每門課平均分*/inti,j;floatsum;for(i=0;i<n;i++){sum=0.0;for(j=0;j<m;j++)sum+=a[i][j];printf("averagemarkofthe%dthstuis%g\n",i+1,sum/n);}}voidMaxScore(floata[][],intm,intn){/*找出最高分所相應(yīng)學(xué)生和課程*/inti,j,s,t;floatmax=a[0][0];s=0,t=0;for(i=0;i<n;i++)for(j=0;j<m;j++){if(max<a[i][j]){max=a[i][j];s=i;t=__j__;}}printf("the%dthcourseandthe%dthstuhasthemax\n",s,t);}voidAverageVariance(floata[][],intm,intn){/*求平均分方差*/floatdelta,ave,avesq=0,avesum=0;inti,j;for(i=0;i<m;i++){ave=0;for(j=0;j<n;j++){ave+=a[j][i];}ave/=n;avesq+=ave*ave;avesum+=ave;}delta=__avesq/n-avesum*avesum/n/n__;printf("varianceofthe%dthstuis%g\n",i+1,delta);}main(){floata[M][N];inti,j;for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%f",&a[i][j]);EachStudentEverageMark(a,M,N);EachCourseEverageMark(a,M,N);MaxScore(a,M,N);AverageVariance(a,M,N);}48、寫幾種函數(shù):①輸個(gè)職工姓名和職工號(hào);②按職工號(hào)由小到大順序排序,姓名順序也隨之調(diào)節(jié);③規(guī)定輸入一種職工號(hào),用折半法找出該職工姓名,從主函數(shù)輸入要查找職工號(hào),輸出該職工姓名。#include<stdio.h>intnum[100];//職工號(hào)charname[100][100];//職工姓名intcount=0;voidinformationInput(void){//職工信息輸入inti,n;printf("howmanydoyouwanttoinput:\n");scanf("%d",&n);printf("pleaseenterthenameandnumbers:\n");for(i=count;i<n;i++){printf("%d:",i-count);scanf("%s",name[i]);scanf("%d",&num[i]);}count+=n;}voidsorting(){//按職工號(hào)進(jìn)行排序inti,j,t;charstr[100];for(i=0;i<count;i++)for(j=0;j<count-i-1;j++){if(num[j]>num[j+1]){t=num[j];strcpy(str,__name[j]__);num[j]=num[j+1];strcpy(name[j],__name[j+1]__);num[j+1]=t;strcpy(name[j+1],str);}}}voidsearch(intnb){//用職工號(hào)找出該職工姓名intlow,high,mid;low=0;high=count-1;do{mid=(low+high)/2;if(num[mid]>nb)high=mid-1;elseif(num[mid]<nb)low=mid+1;elsebreak;}while(__low<=high__);if(low>high)printf("employeenotexist\n");elseprintf("%sisfound\n",name[mid]);}main(){intk;informationInput();sorting();printf("numtofind:");scanf("%d",&k);search(k);}49、寫一函數(shù),輸入一種十六進(jìn)制數(shù),輸出相應(yīng)十進(jìn)制數(shù)。#include<stdio.h>intHexToDecimal(char*hex){intlen,i,dec;if(hex==NULL)return0;len=strlen(hex);for(i=0,dec=0;i<len;i++){if(hex[i]>='0'&&hex[i]<='9')dec=__dec*16+(hex[i]-48)__;elseif(hex[i]>='a'&&hex[i]<='f')dec=__dec*16+hex[i]-‘a(chǎn)’+10__;elseif(hex[i]>='A'&&hex[i]<='F')dec=__dec*16+hex[i]-‘A’+10___;}returndec;}main(){charhex[100];gets(hex);printf("hextodecimalis%d

溫馨提示

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