C語言程序設(shè)計練習(xí)題(含程序及參考答案)_第1頁
C語言程序設(shè)計練習(xí)題(含程序及參考答案)_第2頁
C語言程序設(shè)計練習(xí)題(含程序及參考答案)_第3頁
C語言程序設(shè)計練習(xí)題(含程序及參考答案)_第4頁
C語言程序設(shè)計練習(xí)題(含程序及參考答案)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計練習(xí)題(含程序及參考答案)C語言練習(xí)題(所提供的源程序均采用自定義函數(shù)方式解決,如不采用函數(shù)方式,也可直接在main函數(shù)中借鑒該思想編程,因時間有限,所有程序未能一一驗證,僅供參考使用)1、定義一個函數(shù)intfun(inta,intb,intc),它的功能是:若a,b,c能構(gòu)成等邊三角形函數(shù)返回3,若能構(gòu)成等腰三角形函數(shù)返回2,若能構(gòu)成一般三角形函數(shù)返回1,若不能構(gòu)成三角形函數(shù)返回0。#include<stdio.h>intfun(inta,intb,intc){if(a+b>c&&b+c>a&&a+c>b){if(a==b&&b==c)return3;

elseif(a==b||b==c||a==c)return2;elsereturn1;

}elsereturn0;}voidmain(){inta,b,c,shape;printf("\nInputa,b,c:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=fun(a,b,c);printf("\n\nTheshape:%d\n",shape);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第1頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第1頁。2、編寫一個程序,將兩個變量的值交換,例如變量a中的值原為3,b中的值原為8,程序運行后a中的值為8,b中的值為3。#include<stdio.h>voidfun(int*x,int*y){ intt;t=*x;*x=*y;*y=t}voidmain(){inta=3,b=8;printf("%d%d\n",a,b);fun(&a,b);printf("%d%d\n",a,b);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第2頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第2頁。3、從鍵盤輸入3個數(shù),將最大值放在變量a中,最小值放在變量c中。例如,輸入的數(shù)為:551234,輸出結(jié)果應(yīng)當(dāng)是:a=55.0,b=34.0,c=12.0。#include<stdio.h>voidfun(float*p,float*q,float*s){floatk;

if(*p<*q){k=*p;*p=*q;*q=k;}if(*q<*s)

{k=*s;*s=*p;*p=k;}if(*p<*q){k=*p;*p=*q;*q=k;}}voidmain(){floata,b,c;printf("Inputabc:");scanf("%f%f%f",&a,&b,&c);printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);fun(&a,&b,&c);printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第3頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第3頁。4、編寫函數(shù)fun(intn),它的功能是:計算正整數(shù)n的所有因子(1和n除外)之和作為函數(shù)值返回。例如:n=120時,函數(shù)值為239。#include<stdio.h>#include<stdlib.h>intfun(intn){inti,s=0;for(i=2;i<n;i++)if(n%i==0)s=s+i;returns;}voidmain()/*主函數(shù)*/{voidNONO();printf("%d\n",fun(120));NONO();}voidNONO(){/*請在此函數(shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*wf;wf=fopen("a30.out","w");fprintf(wf,"%d\n",fun(120));fclose(wf);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第4頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第4頁。5、計算s,并輸出111S=1+──+───+……+──────1+21+2+31+2+3+…+nn通過鍵盤輸入,例如:若n的值為11時,則函數(shù)值為:1.#include<stdio.h>#include<stdlib.h>floatfun(intn){inti;floats=1.0,h=1;for(i=2;i<=n;i++){h=h+i;s=s+1.0/h;}returns;}voidmain(){intn;floats;printf("\nPleaseenterN:");scanf("%d",&n);s=fun(n);printf("theresultis:%f",s);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第5頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第5頁。6、將一個整數(shù)中的每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為:時,t中的數(shù)為:7531。#include<stdio.h>voidfun(longs,long*t){intd;longs1=1;*t=0;while(s>0){d=s%10;if(d%2!=0){ *t=d*s1+*t; s1=s1*10;}s/=10;}}main(){longs,t;printf("\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld\n",t);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第6頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第6頁。7、計算并輸出k以內(nèi)最大的10個能被13或17整除的自然數(shù)之和。k的值從鍵盤傳入,若k的值為500,則輸出4622。#include<stdio.h>intfun(intk){intm=0,mc=0,j;while((k>=1)&&(mc<10)){if((k%13==0)||(k%17==0)){m=m+k;mc++;}k--;}returnm;}voidmain(){printf("%d\n",fun(500));}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第7頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第7頁。8、已知一個數(shù)列的前三項分別為0,0,1,以后的各項都是其相鄰的前三項之和,計算并輸出該數(shù)列前n項的平方根之和sum。例如,當(dāng)n=10時,程序的輸出結(jié)果應(yīng)為:23.。#include<stdio.h>#include<math.h>doublefun(n)

{doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;for(k=4;k<=n;k++){s=s0+s1+s2;sum+=sqrt(s);s0=s1;s1=s2;s2=s;}returnsum;

}voidmain(){intn;printf("InputN=");scanf("%d",&n);printf("%f\n",fun(n));}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第8頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第8頁。9、編寫一個程序,從鍵盤輸入m,輸出大于m且緊隨m的素數(shù)。#include<stdio.h>intfun(intm){inti,k;for(i=m+1;;i++){for(k=2;k<i;k++) if(i%k==0)break;if(k>=i)return(i);}}voidmain(){intn;printf("\nPleaseentern:");scanf("%d",&n);printf("%d\n",fun(n));C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第9頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第9頁。10、判斷兩個整數(shù)m和n是否互質(zhì)(即是否有公共的因子)(m≠1,n≠1)。方法是:用2到t(t取m和n中較小的那個數(shù))之間的數(shù)分別去除m和n,若m和n能同時被某個數(shù)除盡,則m和n不互質(zhì);否則它們互質(zhì)。例如,若輸入187和85,則應(yīng)輸出No(表示它們不互質(zhì),它們有公因子17)。若輸入89和187,則應(yīng)輸出Yes(表示它們互質(zhì))。#include<stdio.h>intIsThat(intm,intn){intk,t,mk=1;t=m;if(m>n)t=n;for(k=2;k<=t;k++)

if(m%k==0&&n%k==0){mk=0;break;}returnmk;}voidmain(){intm,n;printf("\nPleaseenter2numbers:\n");scanf("%d%d",&m,&n);if(IsThat(m,n))printf("Yes\n");elseprintf("No\n");}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第10頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第10頁。11、將十進制正整數(shù)m轉(zhuǎn)換成k進制數(shù)(2≤k≤9)并輸出(m,k從鍵盤輸入)。例如,若輸入8和2,則應(yīng)輸出1000(即十進制數(shù)8轉(zhuǎn)換成二進制表示是1000)。#include<stdio.h>voidTrans(intm,intk){intaa[20],i,j;for(i=0;m;i++){aa[i]=m%k;m/=k;}for(j=i-1;j>=0;j--)printf("%d",aa[j]);

}voidmain(){intb,n;printf("\nPleaseenteranumberandabase:\n");scanf("%d%d",&n,&b);

Trans(n,b);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第11頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第11頁。12、統(tǒng)計從鍵盤輸入的50個實數(shù)中有多少個正數(shù)、多少個負(fù)數(shù)、多少個零#include<stdio.h>voidfun(int*zs,int*fs,int*l,floataa[]){ inti; for(i=0;i<50;i++) { if(aa[i]>0) (*zs)++; if(aa[i]<0) (*fs)++; if(aa[i]==0) (*l)++;} }voidmain(){ floatnum[50]; inti,czs,cfs,cl; czs=cfs=cl=0; printf("\nPleaseenter50floatnumbers:\n"); for(i=0;i<50;i++) scanf(“%f”,&num[i]); fun(&czs,&cfs,&cl,num); printf("\n正數(shù):%d,負(fù)數(shù):%d,零:%d\n",czs,cfs,cl);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第12頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第12頁。13、計算并輸出方程X2+Y2=1989的所有整數(shù)解#include<stdio.h>voidfun(){ intx,y; for(x=1;x<=44;x++) for(y=1;y<=44;y++) if(x*x+y*y==1989) printf(“x=%d,y=%d\n”,x,y);}voidmain(){ printf(“方程x^2+y^2=1989的整數(shù)解為:\n”);fun();C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第13頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第13頁。14、從鍵盤輸入10個整數(shù),求出其中的最大值。#include<stdio.h>intfun(intaa[]){ intm,i; m=aa[0]; for(i=1;i<10;i++) if(aa[i]>m) m=aa[i]; returnm;}voidmain(){ intnum[10],i; printf(“請從鍵盤輸入10個整數(shù):\n”); for(i=0;i<10;i++) scanf(“%d”,&num[i]); printf(“\n最大的數(shù)是:%d\n”,fun(num));C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第14頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第14頁。123451123411123111121111115、從鍵盤1234511234111231111211111#include<stdio.h>voidfun(intn){ inti,j; for(i=1;i<=n;i++){ for(j=1;j<=i;j++) printf(“%3d”,1); for(j=2;j<=n+1-i;j++) printf(“%3d”,j); printf(“\n”);}}voidmain(){ intn; printf(“\n請輸入圖形的行數(shù):”); scanf(“%d”,&n); fun(n);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第15頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第15頁。16、使用函數(shù)的方式,計算如下公式的值。111A1=1,A2=──,A3=──,……An=────1+A11+A21+A(n-1)例如:若n=10,則應(yīng)輸出:0.。#include<stdio.h>floatfun(intn){floatA=1;inti;for(i=1;i<=n;i++)A=1.0/(1+A);returnA;}voidmain(){intn;printf("\nPleaseentern:");scanf("%d",&n);printf("A%d=%f\n",n,fun(n));}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第16頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第16頁。*17、使用函數(shù)的方式,,按下面的公式計算并輸出數(shù)列的第m項。┌2,m=1;│3,m=2;FFF(m)=┤5,m=3;└FFF(m-3)+FFF(m-1),m>3;例如,若輸入整數(shù)9,則應(yīng)輸出:47。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第17頁。(不用做)C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第17頁。*18、使用函數(shù)的方式,按以下遞歸公式求函數(shù)值┌10(n=1)fun(n)=│└fun(n-1)+2(n>1)例如,當(dāng)給n輸入5時,函數(shù)值為18;當(dāng)給n輸入3時,函數(shù)值為14。(不用做)C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第18頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第18頁。19、計算并輸出當(dāng)0<x<0.97時下列多項式的值,直到|S(n)-S(n-1)|<0.為止。例如,在主函數(shù)中從鍵盤給x輸入0.21后,輸出為:s=1.。#include<stdio.h>#include<math.h>doublefun(doublex){intn=1; /*循環(huán)計數(shù)*/doublesn=1; /*累計數(shù)*/doublexn=1,xn1=0; /*x的n值,以及x的n-1值;*/while(fabs(xn-xn1)>=0.)/*絕對值是否合格*/{ xn=xn*x*(0.5-n+1)/n;/*表達(dá)式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/ n+=1; sn+=xn; /*sn累加上xn*/}returnsn;}voidmain(){doublex,s;printf("Inputx:");scanf("%lf",&x);s=fun(x);printf("s=%f\n",s);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第19頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第19頁。20、計算并輸出s。x^2x^3x^ns=1+x+──+──+……+──2!3!n!n,x從鍵盤輸入,例如,當(dāng)n=10,x=0.3時,函數(shù)值為1.。#include<stdio.h>doublefun(doublex,intn){inti;doublef=1.0,h=x;doubles=1;s=s+h/f;for(i=2;i<=n;i++){f=f*i;h=h*x;s=s+h/f;}returns;}voidmain(){printf("%f\n",fun(0.3,10));C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第20頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第20頁。21、從鍵盤輸入high,計算并輸出high以內(nèi)最大的10個素數(shù)之和。例如,輸入high的值為100,則輸出732。#include<stdio.h>intfun(inthigh){intsum=0,n=0,j,yes;while((high>=2)&&(n<10)){yes=1;for(j=2;j<=high/2;j++)if(high%j==0){yes=0;break;}if(yes==1) {sum+=high;n++;}high--;}returnsum;}voidmain(){printf("%d\n",fun(100));}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第21頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第21頁。22、請編寫函數(shù)floatfun(intn),它的功能是:返回n(包括n)以內(nèi)能被5或9整除的所有自然數(shù)的倒數(shù)之和。例如,n=20,返回0.。注意:要求n的值不大于100。#include<stdio.h>doublefun(intn){inti;doublesum=0.0;if(n>0&&n<=100){for(i=1;i<=n;i++) if(i%5==0||i%9==0) sum+=1.0/i;}returnsum;}voidmain(){intn;doubles;printf("\nInputn:");scanf("%d",&n);s=fun(n);printf("\n\ns=%f\n",s);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第22頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第22頁。23、請編一個函數(shù)fun(int*a,intn,int*odd,int*even),函數(shù)的功能是分別求出數(shù)組中所有奇數(shù)之和以及所有偶數(shù)之和。形參n給出數(shù)組a中數(shù)據(jù)的個數(shù);利用指針odd返回奇數(shù)之和,利用指針even返回偶數(shù)之和。例如:數(shù)組中的值依次為:1,9,2,3,11,6;則利用指針odd返回奇數(shù)之和24;利用指針even返回偶數(shù)之和8。#include<stdio.h>#defineN20fun(int*a,intn,int*odd,int*even){inti,sum_odd=0,sum_even=0;for(i=0;i<n;i++)if(a[i]%2==0)sum_even+=a[i];elsesum_odd+=a[i];*odd=sum_odd;*even=sum_even;}voidmain(){inta[N]={1,9,2,3,11,6},i,n=6,odd,even;printf("Theoriginaldatais:\n");for(i=0;i<n;i++)printf("%5d",*(a+i));printf("\n\n");fun(a,n,&odd,&even);printf("Thesumofoddnumbers:%d\n",odd);printf("Thesumofevennumbers:%d\n",even);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第23頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第23頁。24、編寫計算三角形面積的程序,注意:將計算面積定義成函數(shù)floatfun(inta,intb,intc)(a,b,c為三角形的三條邊,返回三角形的面積),在主函數(shù)中調(diào)用fun#include<stdio.h>#include<math.h>floatfun(inta,intb,intc){ floatp; p=(a+b+c)/2; returnsqrt(p*(p-a)*(p-b)*(p-c));}voidmain(){ inta,b,c; printf(“請輸入三角形三條邊:\n”); scanf(“%d%d%d”,&a,&b,&d); if(a+b>c&&b+c>a&&a+c>b) printf(“三角形面積為:%.2f”,fun(a,b,c)); else printf(“無法構(gòu)成三角形”);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第24頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第24頁。25、編寫程序,求E=1+1/1!+1/2!+……+1/n!,要求最后一項的值小于10-4#include<stdio.h>doublefun(intn){doublem=1.0;inti=1;doublep=1.0;do{m=m+1.0/p;i++;p=p*i;}while(1.0/p>=1E-4);returnm;}voidmain(){intn;doubles;printf("Inputn:");scanf("%d",&n);s=fun(n);printf("s=%f\n",s);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第25頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第25頁。26、計算并輸出給定數(shù)組(長度為9)中每相鄰兩個元素之平均值的平方根之和。例如,給定數(shù)組中的9個元素依次為12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,輸出應(yīng)為:s=35.。#include<stdio.h>#include<math.h>doublefun(doublex[9]){inti;doubleavg=0.0,sum=0.0;for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2;sum+=sqrt(avg);}returnsum;}voidmain(){doubles,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};inti;printf("\nTheoriginaldatais:\n");for(i=0;i<9;i++)printf("%6.1f",a[i]);printf("\n\n");s=fun(a);printf("s=%f\n\n",s);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第26頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第26頁。27、將1到m之內(nèi)(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中。例如,若輸入m的值為50,則在數(shù)組a中的值為:711142122283335424449#include<stdio.h>#defineM100voidfun(intm,int*a,int*n){inti,count=0;for(i=1;i<=m;i++){if(i%7==0||i%11==0){a[count++]=i;}}*n=count;}voidmain(){intaa[M],n,k;fun(50,aa,&n);for(k=0;k<n;k++)if((k+1)%20==0)printf("\n");elseprintf("%4d",aa[k]);printf("\n");C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第27頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第27頁。28、請編寫函數(shù)intfun(intm,intscore[],intbelow[]),它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,并將低于平均分的成績放在below數(shù)組中(m表示score的長度,score表示成績)。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為:10、20、30、40、50、60、70、80、90時,函數(shù)返回4,below中的數(shù)據(jù)應(yīng)為:10、20、30、40。#include<stdio.h>#include<stdlib.h>intfun(intscore[],intm,intbelow[]){ inttotal=0; intaverage=0; int*p_below=below; inti=0; intj=0; for(i=0;i<m;i++){ total=total+score[i]; } average=total/m; for(i=0;i<m;i++){ if(score[i]<average){ *p_below=score[i]; p_below++; j++; } } *p_below=NULL; return(j);}main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第28頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第28頁。n=fun(score,9,below);printf("\nBelowtheaveragescoreare:");for(i=0;i<n;i++)printf("%d",below[i]);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第29頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第29頁。29、用插入排序法將n個字符進行排序(降序)。(提示:插入法排序的思路是:先對數(shù)組的頭兩個元素進行排序,然后根據(jù)前兩個元素的情況插入第三個元素,再插入第四個元素…)。#defineN80#include"stdio.h"#include"string.h"voidinsert(char*aa){inti,j,n;charch;n=strlen(aa);

for(i=1;i<n;i++){ch=aa[i];

j=i-1; while((j>=0)&&(ch<aa[j])){aa[j+1]=aa[j];j--;}aa[j+1]=ch;}}voidmain(){chara[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";inti;printf("Theoriginalstring:%s\n",a);insert(a);printf("Thestringaftersorting:%s\n\n",a);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第30頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第30頁。30、假定整數(shù)數(shù)組a中元素的值不重復(fù)。刪除a中值為x的元素(x從鍵盤輸入)。#include<stdio.h>#defineN20fun(int*a,intn,intx){intp=0,i;a[n]=x;while(x!=a[p])p=p+1;if(p==n)return-1;

else{for(i=p;i<n;i++)a[i]=a[i+1];

returnn-1;}}voidmain(){intw[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;n=10;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%5d",w[i]);printf("\nInputx(todelete):");scanf("%d",&x);printf("Delete:%d\n",x);n=fun(w,n,x);if(n==-1)printf("***Notbefound!***\n\n");else{printf("Thedataafterdeleted:\n");for(i=0;i<n;i++)printf("%5d",w[i]);printf("\n\n");}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第31頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第31頁。31、一個已按從小到大的順序排好的數(shù)組a,編寫程序,從鍵盤輸入一個數(shù)x按原來排序的規(guī)律將它插入數(shù)組a中。#include<stdio.h>#defineM20voidInSort(int*n,intvv[],intk){inti=0,j;while(k>vv[i]&&i<*n)i++;if(i<*n)for(j=*n;j>i;j--)vv[j]=vv[j-1];vv[i]=k;++*n;

}voidmain(){intaa[M],i,k,m;system("cls");printf("\nPleaseenteranumber:\n");scanf("%d",&m);printf("\nPleaseenter%dnumbers:\n",m);for(i=0;i<m;i++)scanf("%d",&aa[i]);printf("\nPleaseenteranothernumber:\n");scanf("%d",&k);InSort(&m,aa,k);for(k=0;k<m;k++)

printf("%d",aa[k]);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第32頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第32頁。32、使用數(shù)組的方法篩選出1-100中的素數(shù)#include<stdio.h>voidfun(int*pt){inti,j,flag;*pt=2;*pt++;for(i=3;i<100;i++){flag=1;for(j=2;j<i;j++)if(i%j==0)flag=0;if(flag){*pt=i;*pt++;}}*pt=0;}voidmain(){int*pointer,a[30];pointer=a;fun(pointer);printf("Theresultis:\n");while(*pointer)printf("%d",*pointer++);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第33頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第33頁。33、已知一個數(shù)組a中包括10個整數(shù)元素,從a中第二個元素起,分別將后項減前項之差存入數(shù)組b,并按每行3個元素輸出數(shù)組b。#include<stdio.h>voidfun(inta[],intb[]){ inti; for(i=1;i<10;i++) b[i-1]=a[i]-a[i-1]; for(i=0;i<9;i++) { printf(“%3d”,b[i]);if((i+1)%3==0) printf(“\n”);}}voidmain(){ inta[10]={1,2,3,4,5,6,7,8,9,10}; intb[9]; fun(a,b);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第34頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第34頁。34、請編寫函數(shù)fun,函數(shù)的功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù)按列的順序依次放到一個字符串中。例如,二維數(shù)組中的數(shù)據(jù)為:WWWWSSSSHHHH則字符串中的內(nèi)容應(yīng)是:WSHWSHWSH。#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){intx,y;for(x=0;x<nn;x++)for(y=0;y<mm;y++){b[x*mm+y]=*(s[y]+x);(*n)++;}}voidmain(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i][j]);printf("\n");}fun(w,a,&n,3,4);printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第35頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第35頁。35、求出N×N的二維數(shù)組周邊元素的平均值|01279||19745|a=|23831||45682||59141|則返回主程序后s的值應(yīng)為:3.375。#include<stdio.h>#defineM4#defineN5intfun(inta[M][N]){inti,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++)if((i==0)||(i==M-1)||(j==0)||(j==N-1))sum+=a[i][j];returnsum;}voidmain(){intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};inti,j,y;system("cls");printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",aa[i][j]);printf("\n");}y=fun(aa);printf("\nThesum:%d\n",y);printf("\n");C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第36頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第36頁。36、求出M行N列的二維數(shù)組tt里每列中的最小元素,并依次放入pp數(shù)組中。#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){inti,j,min;for(i=0;i<N;i++){min=tt[0][i];for(j=0;j<M;j++)if(min>tt[j][i])min=tt[j][i];pp[i]=min;}}voidmain(){intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};intp[N],i,j,k;system("cls");printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",t[i][j]);printf("\n");}fun(t,p);printf("\nTheresultis:\n");for(k=0;k<N;k++)printf("%4d",p[k]);printf("\n");C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第37頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第37頁。37、請編寫程序,實現(xiàn)B=A+A',即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計算結(jié)果在main函數(shù)中輸出。例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為:|123||147||456||258||789||369|程序輸出:|2610||61014||101418|#include<stdio.h>voidfun(inta[3][3],intb[3][3]){inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[i][j]+a[j][i];}voidmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];inti,j;fun(a,t);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",t[i][j]);printf("\n");}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第38頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第38頁。38、編寫程序刪除字符串s中從下標(biāo)k開始的n個字符(n和k從鍵盤輸入)。例如,字符串內(nèi)容為:HellolloWorld!,k中的值為:5,n中的值為:3,結(jié)果為:HelloWorld!。#include<stdio.h>#defineN80voidfun(char*a,intk,intn){inti;i=k;while(a[i-1]!='\0'){a[i]=a[i+n];i=i+1;}}voidmain(){chars[N]="HellolloWorld!";intk,n;printf("\nTheoriginalstring:%s\n",s);printf("Enterindex————————k:"),scanf("%d",&k);printf("Enternumbertodelete——n:");scanf("%d",&n);fun(s,k,n);printf("\nThestringafterdeleted:%s\n",s);NONO();C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第39頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第39頁。39、編寫程序,從鍵盤輸入字符串tt,將其中每個單詞的首字符改為對應(yīng)的大寫字母,首字符后的字母都改為對應(yīng)的小寫字母。例如,若輸入字符串:"abcDbOYxy!",則輸出字符串為:"AbCdBoyxy!"。#include<stdio.h>#include<string.h>char*EXUL(chartt[]){intisfirst=1;inti,length;length=strlen(tt);for(i=0;i<length;i++){if(tt[i]>='a'&&tt[i]<='z'){tt[i]=isfirst?(tt[i]+'A'-'a'):tt[i];isfirst=0;}elseif(tt[i]>='A'&&tt[i]<='Z'){tt[i]=isfirst?tt[i]:(tt[i]-'A'+'a');isfirst=0;}elseisfirst=1;}returntt;}main(){inti;chartt[81];printf("\nPleaseenterastring:");gets(tt);printf("\nTheresultstringis:%s\n",EXUL(tt));C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第40頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第40頁。40、編寫程序,從鍵盤輸入字符串tt,字符串中'a'到'z'26個字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。例如,當(dāng)輸入字符串:abcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000#include<stdio.h>voidfun(char*tt,intpp[]){ char*p_tt=tt; inti=0; while(i<26){ pp[i]=0; i++;} for(;*p_tt!=NULL;p_tt++){ switch(*p_tt){ case'a':pp[0]++;break; case'b':pp[1]++;break; case'c':pp[2]++;break; case'd':pp[3]++;break; case'e':pp[4]++;break; case'f':pp[5]++;break; case'g':pp[6]++;break; case'h':pp[7]++;break; case'i':pp[8]++;break; case'j':pp[9]++;break; case'k':pp[10]++;break; case'l':pp[11]++;break; case'm':pp[12]++;break; case'n':pp[13]++;break; case'o':pp[14]++;break; case'p':pp[15]++;break; case'q':pp[16]++;break; case'r':pp[17]++;break; case's':pp[18]++;break;C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第41頁。 case't':pp[19]++;break;C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第41頁。 case'u':pp[20]++;break; case'v':pp[21]++;break; case'w':pp[22]++;break; case'x':pp[23]++;break; case'y':pp[24]++;break; case'z':pp[25]++;break; } }}main(){charaa[1000];intbb[26],k,n;printf("\nPleaseenteracharstring:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26;k++)printf("%d",bb[k]);printf("\n");C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第42頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第42頁。41、請編寫程序,把字符串s中所有的字符前移一個位置,串中的第一個字符移到最后。例如:原有的字符串為:Mn.123xyZ,則調(diào)用該函數(shù)后,串中的內(nèi)容為:n.123xyZM。#include<stdio.h>#include<string.h>#defineN81fun(char*s){charb[N];sprintf(b,"%s%c",s+1,*s);strcpy(s,b);}voidmain(){chara[N];printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("Thestringaftermodified:");puts(a);C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第43頁。}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第43頁。42、編寫程序,把字符串中的內(nèi)容逆置。例如:字符串中原有的內(nèi)容為:abcdefg,輸出:gfedcba。#include<string.h>#include<stdio.h>#defineN81voidfun(char*s){ inti,length; chartmp; length=strlen(s); for(i=0;i<length/2;i++) { tmp=s[i]; s[i]=s[length-i-1]; s[length-i-1]=tmp; }}voidmain(){chara[N];printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("\n");printf("Thestringaftermodified:");puts(a);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第44頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第44頁。43、編寫程序,依次取出字符串s1中所有數(shù)字字符,形成新的字符串s2。#include<stdio.h>voidfun(char*s){inti,j;for(i=0,j=0;s[i]!='\0';i++)if(s[i]>='0'&&s[i]<='9')s[j++]=s[i];s[j]='\0';}voidmain(){charitem[80];printf("\nEnterastring:");gets(item);printf("\n\nThestringis:\"%s\"\n",item);fun(item);printf("\n\nThestringofchangingis:\"%s\"\n",item);}C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第45頁。C語言程序設(shè)計練習(xí)題(含程序及參考答案)全文共53頁,當(dāng)前為第

溫馨提示

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

評論

0/150

提交評論