C語言編程題及答案_第1頁
C語言編程題及答案_第2頁
C語言編程題及答案_第3頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1fun,其功能是:找出2M大元素的值,并將此值返回調用函數。int fun (int a M)int i,j,maxa00; for(i0;i2;i) for(j0;jM;j)if(maxeps)/*一項*/ s1s1sss1;/*求和n;return 2311000711711nvoid fun(int *a,int *n)int i,j0;for(i1;iave0.0;for(i0;iaveaaveasi;/* 求 各 門 成 績 的 總 和 */ aaveaave/N;/*求平均分N構中,hfun求出平均分,并由函數值返回。 76 69 85 91 72 64 則平均分應當是:78.6

2、25。double fun(STREC *h)double av0.0;STREC*phnext;/*p結點,即第一個成績*/while(p!NULL) avavps;/*求總分數ppnext;return av/N;/*返回平均值*/fun1mxxk6 8 9 10 12 14 16。void fun(int m, int *k, int xx)int i,j,n0; for(i4;im;i)/*1m素數*/ for(j2;ji;j) if(i%j0) break;if(ji) xxni;*kn;/*返回非素數的個數*/fun,其功能是:求ss個數,并返回此值。12341213213int

3、fun(char *ss, char c)int i0; for(;*ss!0;ss) if(*ssc)i;/*ssreturni;fun,其功能是:計算n作為函數值返回。590.5,72,80,61.5,55數的值為:71.80。float fun (float *a, int n)float av0.0; int i;for(i0;in;i) /*求分數的總和*/ avavai;return(av/n);/*返回平均值*/sfun,其功能是:把b的學生可能不止一個,函數返回分數最高的學生的人數。int fun (STREC *a, STREC *b)int i,j0,maxa0s; for

4、(i0;iN;i) if(maxais) maxais;/* 找 出 最 大 值 */ for(i0;iN;i)if(maxais)bjai;/*maxb*/return j; /*返回最高成績的學生人數*/規(guī)定輸入的字符串中只包含字母和*fun, 其功能是:除了字符串前導的*號全部C例如,字符串中的內容為:*A*BC*DEF*G*后,字符串中的內容應當是:*ABCDEFG。void fun(char *a)int i0; char *pa;while(*p&*p*)ai*p;i;p;while(*p)if(*p!*)ai*p;i;p;ai0;voidfun(charpptt指的字符串中a到z

5、26pp例如,當輸入字符串abcdefgabcdeabc 后,程序的輸出結果應該是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00void fun(char *tt, int pp)int i; for(i0;ia&*ttz)pp*tta;規(guī)定輸入的字符串中只包含字母和*fun, 其功能是:將字符串尾部的*號全部刪除,前面和中間的*號不動。例如,字符串中的內容為:*A*BC*DEF*G*,刪除后,字符串中的內容應當是:*A*BC*DEF*GCvoid fun (char *a);while(*a!0) a;a; /*awhile(*a*)a

6、; /*指針 a 指向最后一個字母*/*(a1)0;/*符*/funCbeijingshanghai(shanghai。char *fun(char *s, char *t)int i,j;for(i0;si!0;i);/*長度*/for(j0;tj!0;j); if(ij) /*比較兩個字符串的長度*/returns;/*1*/else returnt;sfun,其功能是:函數1strcmp)。STREC fun(STREC *a, char *b)int i;STRECstr0,1;/*1)if(strcmp(ainum,b)0) /*找到指定學號的學生數據*/ strai;returns

7、tr;/*返回學生記錄*/funa、b cacbca45,b12c 5142void fun(int a,int b,long *c)*cb%10(a/10)*10(b/10)*100(a%10)*1000;funcos(x)x0 xn1cos(xn) 迭代步驟如下:取 x1 初 值 為 0.0; (2)x0 x1x1x0; (3)x1cos(x0(4)若x0 x10.000001,執(zhí)行步聚(5執(zhí)行步聚(2);(5x1cos(x)x0值返回。Root0.739086float fun()float x10.0,x0; dox0 x1; x1cos(x0);while(fabs(x0-x1)1e

8、6); return x1;規(guī)定輸入的字符串中只包含字母和*fun, 其功能是:將字符串中的前導*號全部移到字符串的尾部。例如,字符串中的內容為:*A*BC*DEF*G*,移動 后,字符串中的內容應當是:A*BC*DEF*G*Cvoid fun(char *a)inti0,n0; char *p; pa;while(*p*)/*判斷*p*號的個數*/n;p;while(*p)/*將前導*a*/ai*p;i;p;while(n!0)ai*;i;n;ai0;funa、bcacbca45,b12c1524。void fun(int a,int b,long *c)*ca/10(b%10)*10(a%

9、10)*100(b/10)*1000;fun,其功能是計算:ln(2)ln(2)ln(3)ln(m)Clog(nln(n)。log明為:double log(double x)。m20fun6.506583double fun(int m)int i;double s0.0; for(i1;im;i)sslog(i);/*sln(1)ln(2)ln(3)ln(m)*/return sqrt(s); /*s*/規(guī)定輸入的字符串中只包含字母和*fun, 其功能是:只刪除字符前導和尾部的*號都不刪除。形參nh*e*號的個數。C例如,字符串中的內容為:*A*BC*DEF*G*后,字符串中的內容應當是:

10、A*BC*DEF*G。void fun (char *a,int n ,int h , inte)int i,j0;/*母之間的字符全不刪除*/ajai;aj0;/*識*/funstsABCDEFGHIJK所指數組中的內容應是:BDFHJ。void fun(char *s,char t)inti,j0,kstrlen(s);/*k*/for(i1;ik;ii2)/*st*/tjsi;funa、bcacbca45,b12c2415void fun(int a,int b,long *c)*ca%10(b/10)*10(a/10)*100(b%10)*1000;假定輸入的字符串中只包含字母和*fu

11、n, *號之外,將字符中的其它的*號全部刪除。形參pC*A*BC*DEF*G*ABCDEFG*。void fun(char *a,char *p)char *ta; for(;tp;t) if(*t!*)*(a)*t;/*p*號的字符保 留 下 來 */ for(;*t!0;t)*(a)*t;/*p*號保留下來*/*a0;/*在字符串最后加上字符串結束標識*/sfun,其功能是:按分數降序排列學生的記錄,高分在前,低分在后。void fun (STREC a)int i,j;STREC t;for(i1;iN;i)/*N1 次比較*/for(j0;jN1;j)/*N1*/if(ajsaj1s)

12、taj;ajaj1;aj1t;/*按分數的高低排列學生的記錄,高分在前*/Nsfun,其功能是:把bndouble fun (STREC *a,STREC *b, int *n)int i;doubleav0.0;*n0; for(i0;iN;i) avavais; avav/N;/*求平均值for(i0;iN;i) if(avais) b*nai;*n*n1;/*b人數*/returnav;/*返回平均分*/fun1m 之間(含m711anm50,則程序輸出:7 11 14 21 22 28 33 35 42 44 49void fun(int m, int *a, int *n)int i

13、,j0; for(i1;is; while(h!NULL)/*通過循環(huán)找到最高分數 if(maxs) maxhs;hhnext;return max;fun大的值及其所在的下標,并通過形參傳回。數組元素中的值 已在主函數中賦予。xnxmax值,indexvoid fun(int a,int n, int *max, int*d)int i;*maxa0;*d0; for(i0;in;i)/*所指的單元,最大元素的下標放入指針 d 所指的單元*/if(*maxai)*maxai;*di;fun,其功能是:將sASCIIt中。例如,若sABCDEFG12345AASCII1ASCIIt135。vo

14、id fun(char *s,char t)int i,j0,n; nstrlen(s); for(i0;in;i)if(i%2!0&si%2!0)tjsi;/*ASCIIt*/j;tj0;/*最后加上結束標識符*/funBAAA ABmain輸出。例如,輸入下面的矩陣:其轉置矩陣為:1231474562587 8 93 6 9程序輸出:26106101410 14 18void fun (int a33, int b33)int i,j; for(i0;i3;i) for(j0;j3;j)bijaijaji;/*ab*/Nage09d01019d12029d2100100d10中。結果在主函

15、數中輸出。void fun(int *a, int *b)int i,j;for(j0;j100)b10;/*1;/*如果年齡小于 100,則將其分別統計到 bai/10中*/fun,其功能是:把分數b生可能不止一個,函數返回分數最低的學生人數。int fun(STREC *a,STREC *b)int i,j0,n0,min; mina0s; for(i0;iN;i)if(aismin)minais; for(i0;iN;i)if(aismin)*(bj)ai;j;n;return n;1mm1DEFGHIJKABC。void fun (char *w,int m)int i,j; char

16、 t;for(i1;i10000)returnw%10000;/*nwn1*/ if(w1000)return w%1000; if(w100) return w%100; if(w10) return w%10;fun,該函數的功能是:將MNn例如,若二維數組中的數據為:33333333444444445555555533 33 33 33 44 44 4444 55 55 55 55voidfun(int(*s)10,int*b,int*n,intmm,intnn)int i,j,k0;/*sb*/for(j0;jnn;j) bksij;*nk;/*通過指針返回元素個數*/funs結果作為

17、函數值返回,n111s112123123nn111.833333float fun(int n)int i,s10; float s0.0;for(i1;in;i)s1s1i;/*求每一項的分母*/ ss1.0/s1;/*求多項式的值return s;s1s1i;/*求每一項的分母*/ ss1.0/s1;/*求多項式的值return s;fun,其功能是:將sASCIIt例如,若sABCDEFG12345AASCII1ASCIItBDF24。void fun(char *s,char t)int i,j0,n; nstrlen(s);for(i0;in;i)/*ASCII符依次存入數組中*/i

18、f(si%20)tjsi; j;tj0;?42NNfun(intaN),該函數的功能是:將0a為:a1 9 72 3 84 5 6則返回主程序后 a 數組中的值應為:097008000規(guī)定輸入的字符串中只包含字母和*fun, 其功能是:除了字符串前導和尾部的*號全部刪除。形參hpC言提供的字符串函數。例如,若字符串中的內容為*A*BC*DEF*G*后,字符串中的內容應當是:*ABCDEFG*Cvoid fun(char *a,char *h,char *p)int i0; char *qa;while (qh) /*判斷前導*號的結束*/ai*q;q;i;while (qn)/*knpna*/

19、 while(*p)ai*(pkn);i; p;ai0;/*在字符串最后加上結束標識位*/funa、b cacbca45,b12c2514void fun(int a,int b,long *c)*ca/10(b/10)*10(a%10)*100(b%10)*1000;funC數)。例如,若輸入字符串1234,則函數把它轉換為整數值1234。long n0; int flag1;if(*p)/*flag1;flag1;else if(*p) /*flagp;while(*p!0)nn*10*p0;/*將字符串轉成相應的整數p;return n*flag;funFibonaccitFibonac

20、ciF(n為:F(0)0,F(1)1F(n)F(n1)F(n2)t10001597int fun(int t)int f00, f11,f; doff0f1; f0f1; f1f;while(fa&ssin)while(*p&ptn1)ai*p; i;p;ai0;funsASCIItsABCDEFG123456,其AASCIIB ASCII2ASCIIt246。void fun(char*s, char t)int i,j0; for(i0;si!0;i)if(i%20&si%20)/*將s標和ASCIIttjsi;tj0/*在字符串最后加上結束標識*/funabcacbca45,b12c41

21、52void fun(int a,int b,long *c)*cb%10(a%10)*10(b/10)*100(a/10)*1000;sfun,其功能是:把指定分數范圍內的學生數據放在b 所指的數組中,分數范圍內的學生人數由函數值返回。60 6960696069low69heighint fun (STREC *a, STREC *b, int l, int h)int i,j0; for(i0;iN;i)/*hb*/bjai;return j; /*返回分數范圍內的學生人數*/intfun(int*s,intt,int*k),用k存儲單元中。例如,輸入如下整數:876 675 896 10

22、1 301 401 980 431 451777則輸出結果為 6,980。int fun(int *s,int t,int *k)int i;*k0; /*kfor(i0;it;i)if(s*ksi)*ki; /*k*/return s*k; /*返回數組的最大元素*/funx0.97如下多項式的值,直到|SnSn1|1e6);return sum;fun,它的功能是:根據以下公式求p果作為函數值返回。mnmn。pm!/(n!(mn)!)例如,m12,n8495.000000float fun (int m, int n)int i; double p1.0;for(i1;im;i) pp*i

23、; /* 求 m!*/ for(i1;in;i)pp/i; / 求 m!/n!*/ for(i1;imn;i)pp/i;/*m!/(n!(mn)!)*/ return p;fun之和,作為函數值返回。二維數組中的值在主函數中賦予。例如,若二維數組中的值為1357929994699981357061。int fun( intaMN)int i,j,sum0;for(i0;iM;i) for(j0;jN;j) if(i0|iM1|j0|jN1)/*0M1N1元素*/sumsumaij;/*將周邊元素相加*/return sum;fun,該函數的功能是:判斷字符串是否為回1,主函數中輸出YES主函數

24、中輸出NO?;匚氖侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL123312int fun(char *str)int i,n0,fg1; char *pstr;while(*p)/*p數*/n; p;for(i0;in/2;i) /*循環(huán)比較字符*/ if(stristrn1i);/*相同,什么都作*/else /*不同,直接跳出循環(huán)*/fg0; break;returnfg;intfun(intlim,intlimaaint fun(int lim, int aaMAX)int i,j,k0; for(i2;ilim;i)/*lim全部素數*/ for(j2;ji)aaki;/*aa*

25、/return k; /*返回所求出的素數的個數*/fun(char*s中的內容逆置。gfedcba。void fun(char *s)char ch; int i,m,n;i0; mnstrlen(s)1; while(i(n1)/2)chsi; sism; smch;i; m;funnn)同時能被5與11整除的所有自然數之和的平方根s返回。例如,n1000s96.979379 double fun(int n) double s0.0;int i;for(i0;in;i)/*0n11*/if(i%50&i%110) ssi;ssqrt(s);/*s*/return s;nummax*作為結

26、束輸入的標志)。char* fun(char (*a)81, int num, char*max)int i0; maxa0;for(i0;inum;i)/*找出最長的一個字符串if(strlen(max)strlen(ai)maxai;return max; /*傳回最長字符串的地址*/2另一個字符串中出現的次數。例如,假定輸入的字符串為asd asasdfg asd as zx67 asd as6。int fun(char *str, char *substr)int i,j0;for(i0;stri1!0;i)/*如果一個長2環(huán)*/if(strisubstr0&stri1substr1)

27、 j;returnj;/*返回子字符串在主字符串中出現的次數*/fun75ASCII例如,原來的字符串為Bdsihad,則排序后輸出為Badhisd。void fun(char *s, int num) char t; int i, j;for(i1;inum2;i)/*1用循環(huán)依次取得字符串中的字符*/for(ji1;jsj)/*ASCIIASCII*/ tsi; /*則交換這兩個字符*/sisj;sjt;fun,該函數的功能是:計算并輸出S1(120.5)(120.530.5)(120.530.5n0.5) n20534.188884。double fun(int n)int i;doub

28、le s0.0,s10.0; for(i1;in;i) s1s1pow(i,0.5); /*求每一項sss1;/*按公式求出s*/return s;funn1n1000。n856sum763 。 int fun(int n)int s0,i; for(i2;in1;i)/*n1if(n%i0) si;return s;fun,該函數的功能是:將MN組中的字符數據,按列的順序依此放到一個字符串中。W W WWS S SSH H H H則字符串中的內容應是:WSHWSHWSHWSH void fun(char (*s)N,char *b)int i,j,k0; for(i0;iN;i)/*符 串

29、中 */ for(j0;jM;j) bksji; bk0;funnn59n200.583333。注意:n 的值要求不大于 100。部分源程序在文件 PROG1.C中 。 double fun(intint i; doublesum0.0;for(i1;in;i) if(i%50|i%90)sum1.0/i; returnsum;NNfun(intaN,intn),該函數的功能是:使n。例如,若n數組中的值為:1 97a 2 384 5 6則返回主程序后 a 數組中的值應為:397698121518void fun(int aN,int n)int i,j; for(i0;iN;i) for(j

30、0;ji;j)aijaij*n;void fun(intx,intpp,int的功能是:求出能整除xpp返回。x30413、5、15。void fun (int x, int pp, int *n)int i,j0; for(i1;ix;ii2) /*i1確保 i 為奇數*/if(x%i0)/*xpp*/ppji;*nj; /*傳回滿足條件的數的個數*/fun,其功能是:計算并輸出3n素數的平方根之和。n100sum 148.874270。注意:n 的值要大于 2 但不大于 100。部分源程序在文件PROG1.C 中。double fun(int n)int m,k,i; double s0.

31、0;for(m3;mn;m)ksqrt(m); for(i2;ik1)ssqrt(m);return s;fun,該函數的功能是:統計一行字符串中單規(guī)定所有單詞由小寫字母組成,單詞之間有若干個空格隔開,一行的開始沒有空格。int fun(char *s)int i,j0; for(i0;si!0;i)if(si! &(si1 |si10)/*束標記,則表示一個單詞結束*/j;returnj;/*返回單詞個數*/fun相同的數,使之只剩一個。數組中的數已按由小到大的順序 排列,函數返回刪除后數組中數據的個數。例如,若一維數組中的數據是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9

32、9 10 10102345678910int fun(int a, int n)int i,j1; for(i1;in;i)if(aj1!ai)/*要保留*/ajai; returnj;/*返回不同數的個數funstsBASCII2ASCII都應當刪除,其他依此類推,最后tACEG135。void fun(char *s, char t)int i0; /*ASCIItif(*s%21)ti*s;ti0;/*在字符串的末尾加上串結束符*/S11/(12)1/(123)1/(123n) n50S1.960784。double fun(int n)int i;double s0.0,s10.0;

33、for(i1;in;i) s1s1i;/*求每一項的分母*/ss1.0/s1;/*求S11/(12)1/(123)1/(123n)*/return s;fun,該函數的功能是:將MNn例如,若二維數組中的數據為:333333334444444455555555則一維數組中的內容應是:33 44 55 33 44 55 33 44 55 33 4455voidfun(int(*s)10,int*b,int*n,intmm,intnn)int i,j; /*順序依次放入一維數組中for(i0;imm;i)b*n*(*(si)j);*n*n1;/*通過指針返回元素個數*/asdafaaz67asda

34、faaz67 void fun(char*str)int i0; char *pstr; while(*p)if(*p!/*刪除空格*/stri*p; i;p;stri0;/*加上結束符*/voidfun(intm,intk,intxx)mmk指的數組中。17,519,23,29,31,37void fun(int m, int k, int xx)int i,j,n; for(im1,n0;nk;i) /*找大于 m 的素數,循kmk*/for(j2;ji) /*xxxxni;funss所有下標為奇數位置的字母轉換為大寫(若該位置上不是字 母,則不轉換)。abc4Efgvoid fun(ch

35、ar *ss)int i; for(i0;ssi!0;i)/*ss字符串中所有下標為奇數位置的字母轉換為大寫*/ if(i%21&ssia&ssiz)ssissi32;NN請編寫函數funsa0 1 2 7 91 9 7 4 52 3 8 3 14 5 6 8 25 9 1 4 1s3.375double fun (int wN)int i,j,k0; double av0.0; for(i0;iN;i) for(j0;jN;j)if(i0|iN1|j0|jN1)/*0N1,則它一定是周邊元素*/avavwij;/*將周邊元素求和k;return av/k; /*求周邊元素的平均值*/void

36、fun(int ttMN,int ppN), ttMNppvoid fun(int ttMN,int ppN)int i,j,max; for(j0;jN;j)maxtt0j;/*假設各列中的第一個元素最大for(i0;imax)/*maxttij;ppjmax;/*將各列的最大值依次放入pp*/fun數值返回。S1xx2/2!x3/3!xn/n!n10,x0.31.34985985 double fun(double x, int n)int i;double s1.0,s11.0; for(i1;in;i) s1s1sspow(x,i)/s1; /*按公式求出*/return s;funS

37、nl1/1!1/2!1/3!1/4!1/n!nS2.718282。double fun(int n)double t,sn1.0; int i,j; for(i1;in;i)t1.0;for(j1;ji;j)t*j; sn1.0/t;return sn;funSnl1/1!1/2!1/3!1/4!1/n!nS2.718282。double fun(int n)double t,sn1.0; int i,j; for(i1;in;i)t1.0; for(j1;ji;j)t*j; sn1.0/t;return sn;a找出成績最低的學生記錄,通過形參返回主函數(規(guī)定只有一個最低分)。已給出函數的首

38、部,請完成該函數。fun(STU a, STU *s)int i;*sa0;/*1*/for(i0;isais)*sai;funS(11/2)(1/31/4)(1/(2n1)1/2n) n8S0.662872。double fun(int n)int i; doubles0.0;for(i1;in;i) ss(1.0/(2/*S(11/2)(1/3-1/4)+(1/(2n-1)-1/2n)*/ return s;S11/(12)1/(123)1/(123n)n501.960784。double fun(int n)int i; double s0.0;for(i1;in;i) ss1.0/(i

39、*(i1); /*求級數的和return s;a找出成績最高的學生記錄,通過形參返回主函數(規(guī)定只有一個最高分)。已給出函數的首部,請完成該函數。fun(STU a, STU *s)int i;*sa0; for(i0;isais)*sai;voidfun(char*tt,intpptta到z26ppabcdefghabcdeabc3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0void fun(char*tt,int pp)int i; for(i0;ia&*ttz) pp*tta;/*tta到z26ppa正好是它對應的下標*/floatfun(doubleh),函數的功能是:對變量h中的值為正數)。h8.324338.32h8.325338.33。f

溫馨提示

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

評論

0/150

提交評論