




已閱讀5頁(yè),還剩57頁(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)介
C語(yǔ)言編程題及答案1請(qǐng)編寫函數(shù)fun,其功能是:找出2M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。 int fun (int a M) int i,j,max,a00; for(i,0;i2;i,) for(j,0;jM;j,) if(max,eps) /*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下一項(xiàng)*/ s1,s1s,s,s1; /*求和*/ n,; return 2 3編寫函數(shù)fun,其功能是:求出1到1000之間能被7或11整除,但不能同時(shí)被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過(guò)n返回這些數(shù)的個(gè)數(shù)。 void fun(int *a,int *n) int i,j,0; for(i,1;iave,0.0; for(i,0;iave,a,ave,a,si; /*求各門成績(jī)的總和*/ a,ave,a,ave/N; /*求平均分*/ 7 N名學(xué)生的成績(jī)已在主函數(shù)中放入一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。 例如,若學(xué)生的成績(jī)是:85 76 69 85 91 72 64 87,則平均分應(yīng)當(dāng)是:78.625。 double fun(STREC *h) double av,0.0; STREC *p,h,next; /*p直接指向頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),即第一個(gè)成績(jī)*/ while(p,NULL) av,av,p,s; /*求總分?jǐn)?shù)*/ p,p,next; return av/N; /*返回平均值*/ 8編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入xx所指數(shù)組中,非素?cái)?shù)的個(gè)數(shù)通過(guò)k返回。 例如,若輸入17,則應(yīng)輸出:4 6 8 9 10 12 14 15 16。 void fun(int m, int *k, int xx) int i,j,n,0; for(i,4;im;i,) /*找出大于1小于整數(shù)m的非素?cái)?shù)*/ for(j,2;ji;j,) if(i%j,0) break; if(ji) xxn,,i; *k,n; /*返回非素?cái)?shù)的個(gè)數(shù)*/ 9編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。 例如,若輸入字符串123412132,輸入字符為1,則輸出3。 int fun(char *ss, char c) int i,0; for(;*ss,0;ss,) if(*ss,c) i,; /*求出ss所指字符串中指定字符的個(gè)數(shù)*/ return i; 10編寫函數(shù)fun,其功能是:計(jì)算n門課程的平均分,結(jié)果作為函數(shù)值返回。 例如:若有5門課程的成績(jī)是:90.5,72,80,61.5,55,則函數(shù)的值為:71.80。 float fun (float *a, int n) float av,0.0; int i; for(i,0;in;i,) /*求分?jǐn)?shù)的總和*/ av,av,ai; return (av/n); /*返回平均值*/ 11學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。注意:分?jǐn)?shù)最高的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù)。 int fun (STREC *a, STREC *b) int i,j,0,max,a0(s; for(i,0;iN;i,) if(maxai(s) max,ai(s; /*找出最大值*/ for(i,0;iN;i,) if(max,ai(s) bj,,ai; /*找出成績(jī)與max相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/ return j; /*返回最高成績(jī)的學(xué)生人數(shù)*/ 12規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的*號(hào)之外,將串中其它*號(hào)全部刪除。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:*ABCDEFG。 void fun(char *a) int i,0; char *p,a; while(*p&*p,*) ai,*p;i,;p,; while(*p) if(*p,*) ai,*p;i,; p,; ai,0; 13編寫函數(shù)void fun(char *tt,int pp),統(tǒng)計(jì)在tt所指的字符串中a到z26個(gè)小寫字母各自出現(xiàn)的次數(shù),并依次放在pp所指的數(shù)組中。 例如,當(dāng)輸入字符串a(chǎn)bcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是: 3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 void fun(char *tt, int pp) int i; for(i,0;i,a&*tt,z) pp*tt,a,; 14規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:將字符串尾部的*號(hào)全部刪除,前面和中間的*號(hào)不動(dòng)。 例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:*A*BC*DEF*G。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 void fun (char *a) while(*a,0) a,; a,; /*指針a指向字符串的尾部*/ while(*a,*) a,; /*指針a指向最后一個(gè)字母*/ *(a,1),0; /*在字符串最后加上結(jié)束標(biāo)志符*/ 15編寫函數(shù)fun,其功能是:比較字符串的長(zhǎng)度,(不得使用C語(yǔ)言提供的求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符長(zhǎng)度相同,則返回第一個(gè)字符串。 例如,輸入beijingshanghai(為回車鍵),函數(shù)將返回shanghai。 char *fun(char *s, char *t) int i,j; for(i,0;si, 0;i,); /*求字符串的長(zhǎng)度*/ for(j,0;tj, 0;j,); if(i,j) /*比較兩個(gè)字符串的長(zhǎng)度*/ return s; /*函數(shù)返回較長(zhǎng)的字符串,若兩個(gè)字符串長(zhǎng)度相等,則返回第1個(gè)字符串*/ else return t; 16學(xué)生的記錄由學(xué)號(hào)成績(jī)組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:函數(shù)返回該學(xué)號(hào)的學(xué)生數(shù)據(jù),指定的學(xué)號(hào)在主函數(shù)中輸入。若沒找到指定學(xué)號(hào),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置,1,作為函數(shù)值返回。(用于字符串比較的函數(shù)是strcmp)。 STREC fun(STREC *a, char *b) int i; STREC str,0,,1; /*若沒找到指定的學(xué)號(hào),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置,1,) if(strcmp(ai(num,b),0) /*找到指定學(xué)號(hào)的學(xué)生數(shù)據(jù)*/ str,ai; return str; /*返回學(xué)生記錄*/ 17編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。 例如,當(dāng)a,45,b,12時(shí),調(diào)用該函數(shù)后,c ,5142。 void fun(int a,int b,long *c) *c,b%10,(a/10)*10,(b/10)*100,(a%10)*1000; 18編寫函數(shù)fun,其功能是:利用下面的簡(jiǎn)單迭代方法求方程cos(x),x,0的一個(gè)實(shí)根。 xn,1,cos(xn) 迭代步驟如下: (1)取x1初值為0.0; (2)x0,x1,將x1的值賦給x0; (3)x1,cos(x0),求出一個(gè)新的x1; (4)若x0,x1的絕對(duì)值小于0.000001,執(zhí)行步聚(5),否則執(zhí)行步聚(2); (5)所求x1就是方程cos(x),x,0的一個(gè)實(shí)根,作為函數(shù)值返回。 程序?qū)⑤敵鼋Y(jié)果Root,0.739086。 float fun() float x1,0.0,x0; do x0,x1; x1,cos(x0); while (fabs(x0-x1),1e,6); return x1; 19規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:將字符串中的前導(dǎo)*號(hào)全部移到字符串的尾部。 例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,移動(dòng)后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G*。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 void fun(char *a) int i,0,n,0; char *p; p,a; while (*p,*) /*判斷*p是否是*號(hào),并統(tǒng)計(jì)*號(hào)的個(gè)數(shù)*/ n,;p,; while(*p) /*將前導(dǎo)*號(hào)后的字符傳遞給a*/ ai,*p;i,;p,; while(n,0) ai,*;i,;n,; ai,0; 20編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上。 例如,當(dāng)a,45,b,12時(shí),調(diào)用該函數(shù)后,c,1524。 void fun(int a,int b,long *c) *c,a/10,(b%10)*10,(a%10)*100,(b/10)*1000; 21編寫函數(shù)fun,其功能是計(jì)算: sm,,ln(1)ln(2)ln(3)ln()s作為函數(shù)值返回。 在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)。log函數(shù)的引用說(shuō)明為:double log(double x)。 例如,若m的值為20,則fun函數(shù)值為6.506583。 double fun(int m) int i; double s,0.0; for(i,1;i,m;i,) s,s,log(i); /*計(jì)算s,ln(1),ln(2),ln(3),ln(m)*/ return sqrt(s); /*對(duì)s求平方根并返回*/ 22規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:只刪除字符前導(dǎo)和尾部的*號(hào),串中字母間的*號(hào)都不刪除。形參n給出了字符串的長(zhǎng)度,形參h給出了字符串中前導(dǎo)*號(hào)的個(gè)數(shù),形參e給出了字符串中尾部*號(hào)的個(gè)數(shù)。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G。 void fun (char *a,int n ,int h , int e) int i,j,0; for(i,h;in,e;i,) /*第一個(gè)字母和最后一個(gè)字母之間的字符全不刪除*/ aj,,ai; aj,0; /*在字符串最后加上結(jié)束標(biāo)識(shí)*/ 23函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,剩余字符形成的新串放在t所指數(shù)組中。 例如,當(dāng)s所指字符串中的內(nèi)容為ABCDEFGHIJK時(shí),在t所指數(shù)組中的內(nèi)容應(yīng)是:BDFHJ。 void fun(char *s,char t) int i,j,0,k,strlen(s); /*k為字符串的長(zhǎng)度*/ for(i,1;ik;i,i,2) /*將s所指字符串中下標(biāo)為奇數(shù)的字符存入t所指字符串中*/ tj,,si; 24編寫函數(shù)fun,其功能是:將a、b中的兩個(gè)兩位正整數(shù)合并成一個(gè)新的整數(shù)放在c中。合并的方式是:將a中的十位和個(gè)位數(shù)依次放在變量c的百位和個(gè)位上,b中的十位和個(gè)位數(shù)依次放在變量c的十位和千位上。 例如,當(dāng)a,45,b,12,調(diào)用該函數(shù)后c,2415。 void fun(int a,int b,long *c) *c,a%10,(b/10)*10,(a/10)*100,(b%10)*1000; 25假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:除了尾部的*號(hào)之外,將字符中的其它的*號(hào)全部刪除。形參p已指向字符串中最后的一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 例如,字符串中的內(nèi)容為*A*BC*DEF*G*,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG*。 void fun(char *a,char *p) char *t,a; for(;t,p;t,) if(*t,*) *(a,),*t; /*將p以前所有不是*號(hào)的字符保留下來(lái)*/ for(;*t,0;t,) *(a,),*t; /*將p以后的所有*號(hào)保留下來(lái)*/ *a,0; /*在字符串最后加上字符串結(jié)束標(biāo)識(shí)*/ 26學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:按分?jǐn)?shù)降序排列學(xué)生的記錄,高分在前,低分在后。 void fun (STREC a) int i,j; STREC t; for(i,1;iN;i,) /*用冒泡法進(jìn)行排序,進(jìn)行N,1次比較*/ for(j,0;jN,1;j,) /*在每一次比較中要進(jìn)行N,1次兩兩比較*/ if(aj(saj,1(s) t,aj;aj,aj,1;aj,1,t; /*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/ 27學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成。N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過(guò)形參n傳回,平均分通過(guò)函數(shù)值返回。 double fun (STREC *a,STREC *b, int *n) int i; double av,0.0; *n,0; for(i,0;iN;i,) av,av,ai(s; av,av/N; /*求平均值*/ for(i,0;iN;i,) if(av,ai(s) b*n,ai;*n,*n,1; /*將高于等于平均分的學(xué)生存入b所指存儲(chǔ)單元中,并統(tǒng)計(jì)人數(shù)*/ return av; /*返回平均分*/ 28編寫函數(shù)fun,其功能是:將1到m之間(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,并通過(guò)n返回這些數(shù)的個(gè)數(shù)。例如,若傳給m的值為50,則程序輸出: 7 11 14 21 22 28 33 35 42 44 49 void fun(int m, int *a, int *n) int i,j,0; for(i,1;is; while(h,NULL) /*通過(guò)循環(huán)找到最高分?jǐn)?shù)*/ if(maxs) max,h,s; h,h,next; return max; 31請(qǐng)編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值及其所在的下標(biāo),并通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。 主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。 void fun(int a,int n, int *max, int *d) int i; *max,a0; *d,0; for(i,0;in;i,) /*將最大的元素放入指針max所指的單元,最大元素的下標(biāo)放入指針d所指的單元*/ if(*maxai) *max,ai;*d,i; 32編寫函數(shù)fun,其功能是:將s所指字符串中除了下標(biāo)為奇數(shù)同時(shí)ASCII值也為奇數(shù)的字符之外,其余的所有字符全部刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。 例如,若s所指字符串的內(nèi)容為:ABCDEFG12345,其中字符A的ASCII碼值為奇數(shù),但所在元素的下標(biāo)為偶數(shù),因此需要?jiǎng)h除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)也為奇數(shù),因此不應(yīng)當(dāng)刪除,其它依此類推。最后t所指數(shù)組中的內(nèi)容應(yīng)為:135。 void fun(char *s,char t) int i,j,0,n; n,strlen(s); for(i,0;in;i,) if(i%2,0&si%2,0) tj,si; /*將下標(biāo)為奇數(shù)同時(shí)ASCII碼值為奇數(shù)的字符放入數(shù)組t中*/ j,; tj,0; /*最后加上結(jié)束標(biāo)識(shí)符*/ 33編寫函數(shù)fun,其功能是:實(shí)現(xiàn)B,A,A,即將矩陣A加上A的轉(zhuǎn)置,存放在矩陣B中。計(jì)算結(jié)果在main函數(shù)中輸出。 例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為: 1 2 3 1 4 74 5 6 2 5 87 8 9 3 6 9 程序輸出: 2 6 10 6 10 14 10 14 18 void fun (int a33, int b33) int i,j; for(i,0;i3;i,) for(j,0;j3;j,) bij,aij,aji; /*把矩陣a加上a的轉(zhuǎn)置,存放在矩陣b中*/ 34請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過(guò)調(diào)用隨機(jī)函數(shù)獲得,并放入主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)放在d0中,把10至19歲年齡段的人數(shù)放在d1中,把20至29歲年齡段的人數(shù)放在d2中,依此類推,把100歲(含100歲)以上年齡的人數(shù)都放在d10中。結(jié)果在主函數(shù)中輸出。 void fun(int *a, int *b) int i,j; for(j,0;j,100) b10,; /*如果年齡大于等于100,b10自增1,; /*如果年齡小于100,則將其分別統(tǒng)計(jì)到bai/10中*/ 35學(xué)生記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組中,請(qǐng)編寫函數(shù)fun,其功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放入b所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低的學(xué)生人數(shù)。 int fun(STREC *a,STREC *b) int i,j,0,n,0,min; min,a0(s; for(i,0;iN;i,) if(ai(smin) min,ai(s; for(i,0;iN;i,) if(ai(s,min) *(b,j),ai;j,;n,; return n; 36請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)則是把第1,m個(gè)字符,平移到字符串的最后,把第m,1到最后的字符移到字符串的前部。 例如,字符串中原有的內(nèi)容為ABCDEFGHIJK,m的值為3,移動(dòng)后,字符串中的內(nèi)容應(yīng)該是DEFGHIJKABC。 void fun (char *w,int m) int i,j; char t; for(i,1;i,10000) return w%10000; /*求出n位整數(shù)w的后n,1位的數(shù)*/ if(w,1000) return w%1000; if(w,100) return w%100; if(w,10) return w%10; 39請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依此放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。 例如,若二維數(shù)組中的數(shù)據(jù)為: 33 33 33 33 44 44 44 44 55 55 55 55 則一維數(shù)組中的內(nèi)容應(yīng)該是33 33 33 33 44 44 44 44 55 55 55 55 void fun (int (*s)10, int *b, int *n, int mm, int nn) int i,j,k,0; for(i,0;imm;i,) /*將二維數(shù)組s中的數(shù)據(jù)按行的順序依次放到一維數(shù)組b中*/ for(j,0;jnn;j,) bk,,sij; *n,k; /*通過(guò)指針返回元素個(gè)數(shù)*/ 40編寫函數(shù)fun,其功能是:根據(jù)以下公式計(jì)算s,并計(jì)算結(jié)果作為函數(shù)值返回,n通過(guò)形參111s,,112123123,n傳入。 例如:若n的值為11時(shí),函數(shù)的值為1.833333 float fun(int n) int i,s1,0; float s,0.0; for(i,1;i,n;i,) s1,s1,i; /*求每一項(xiàng)的分母*/ s,s,1.0/s1; /*求多項(xiàng)式的值*/ return s; s1,s1,i; /*求每一項(xiàng)的分母*/ s,s,1.0/s1; /*求多項(xiàng)式的值*/ return s; 41編寫函數(shù)fun,其功能是:將s所指字符串中ASCII值為奇數(shù)的字符刪除,剩余字符形成的新串放在t所指數(shù)組中。 例如,若s所指字符串中的內(nèi)容為:ABCDEFG12345,其中字符A的ASCII碼值為奇數(shù)、字符1的ASCII碼值也為奇數(shù)、都應(yīng)當(dāng)刪除,其它依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:BDF24。 void fun(char *s,char t) int i,j,0,n; n,strlen(s); for(i,0;in;i,) /*找出ASCII碼值為偶數(shù)的字符依次存入數(shù)組中*/ if(si%2,0) tj,si; j,; tj,0; ,42下列程序定義了NN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(int aN),該函數(shù)的功能是:將數(shù)組左下半三角元素中的值全部置成0。例如a數(shù)組中的值為: a,1 9 7 2 3 8 4 5 6 則返回主程序后a數(shù)組中的值應(yīng)為: 0 9 7 0 0 8 0 0 0 43規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)和尾部的*號(hào)外,將串中其它的*號(hào)全部刪除。形參h已指向字符串中第一個(gè)字母,形參p指向字符串的中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 例如,若字符串中的內(nèi)容為*A*BC*DEF*G*,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:*ABCDEFG*。在編寫函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。 void fun(char *a,char *h,char *p) int i,0; char *q,a; while (qh) /*判斷前導(dǎo)*號(hào)的結(jié)束*/ ai,*q;q,;i,; while (qn) /*如果k大于n,則使p的前部保留n個(gè)星號(hào),其后的字符依次存入數(shù)組a中*/ while(*p) ai,*(p,k,n); i,; p,; ai,0; /*在字符串最后加上結(jié)束標(biāo)識(shí)位*/ 46編寫函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上。 例如,當(dāng)a,45,b,12時(shí),調(diào)用該函數(shù)后c,2514。 void fun(int a,int b,long *c) *c,a/10,(b/10)*10,(a%10)*100,(b%10)*1000; 47請(qǐng)編寫函數(shù)fun,其功能是:將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入字符串,1234,則函數(shù)把它轉(zhuǎn)換為整數(shù)值,1234。 long n,0; int flag,1; if(*p,) /*負(fù)數(shù)時(shí)置flag為,1,;flag, ,1; else if(*p,,) /*正數(shù)時(shí)置flag為1 p,; while(*p,0) n,n*10,*p,0; /*將字符串轉(zhuǎn)成相應(yīng)的整數(shù)*/ p,; return n*flag; 48編寫函數(shù)fun,其功能是:求Fibonacci數(shù)列中大于t的最小的數(shù),結(jié)果由函數(shù)返回。Fibonacci數(shù)列F(n)的定義為: F(0),0,F(xiàn)(1),1 F(n),F(n,1),F(xiàn)(n,2) 例如,當(dāng)t,1000時(shí),函數(shù)值為1597。 int fun(int t) int f0,0, f1,1,f; do f,f0,f1; f0,f1; f1,f; while(f,a&ssin) while(*p&pt,n,1) ai,*p; i,;p,; ai,0; 53函數(shù)fun的功能是:將s所指字符串中除下標(biāo)為偶數(shù)同時(shí)ASCII碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t所指的數(shù)組中。 例如,若s所指字符串中的內(nèi)容為:ABCDEFG123456,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;字符2的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其它依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是246。 void fun(char*s, char t) int i,j,0; for(i,0;si,0;i,) if(i%2,0&si%2,0) /*將s所指字符串中下標(biāo)和ASCII碼值都為偶數(shù)的字符放入數(shù)組t中*/ tj,,si; tj,0 /*在字符串最后加上結(jié)束標(biāo)識(shí)*/ 54函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù) a、b合并成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。 例如,當(dāng)a,45,b,12時(shí),調(diào)用該函數(shù)后c,4152。 void fun(int a,int b,long *c) *c,b%10,(a%10)*10,(b/10)*100,(a/10)*1000; 55學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:把指定分?jǐn)?shù)范圍內(nèi)的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)值返回。 例如,輸入的分?jǐn)?shù)是60 69,則應(yīng)當(dāng)把分?jǐn)?shù)在60,69的學(xué)生數(shù)據(jù)輸出,包含60分和69分的學(xué)生數(shù)據(jù)。主函數(shù)中把60放在low中,把69放在heigh中。 int fun (STREC *a, STREC *b, int l, int h ) int i,j,0; for(i,0;i,l&ai(s,h) /*將分?jǐn)?shù)高于l,低于h的學(xué)生記錄存于結(jié)構(gòu)體數(shù)組b中*/ bj,,ai; return j; /*返回分?jǐn)?shù)范圍內(nèi)的學(xué)生人數(shù)*/ 56請(qǐng)編寫一個(gè)函數(shù)int fun(int *s,int t,int *k),用來(lái)求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指向的存儲(chǔ)單元中。 例如,輸入如下整數(shù): 876 675 896 101 301 401 980 431 451 777 則輸出結(jié)果為6,980。 int fun(int *s,int t,int *k) int i; *k,0; /*k所指的數(shù)是數(shù)組的下標(biāo)值*/ for(i,0;it;i,) if(s*ksi) *k,i; /*找到數(shù)組的最大元素,把該元素的下標(biāo)賦給k所指的數(shù)*/ return s*k; /*返回?cái)?shù)組的最大元素*/ 57請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出當(dāng)x0.97時(shí),如下多項(xiàng)式的值,直到|Sn,Sn,1|,1e,6); return sum; 58編寫函數(shù)fun,它的功能是:根據(jù)以下公式求p的值,結(jié)果作為函數(shù)值返回。m與n為兩個(gè)正數(shù)且要求mn。 p,m/(n(m,n) 例如,m,12,n,8時(shí),運(yùn)行結(jié)果為 495.000000。 float fun (int m, int n) int i; double p,1.0; for(i,1;i,m;i,) p,p*i; /*求m*/ for(i,1;i,n;i,) p,p/i; /求m/n*/ for(i,1;i,m,n;i,) p,p/i; /*求m/(n(m,n)*/ return p; 59請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。 例如,若二維數(shù)組中的值為 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 則函數(shù)值為61。 int fun( int aMN) int i,j,sum,0; for(i,0;iM;i,) for(j,0;jN;j,) if(i,0|i,M,1|j,0|j,N,1) /*只要下標(biāo)中有一個(gè)為0或M,1或N,1,則它一定是周邊元素*/ sum,sum,aij; /*將周邊元素相加*/ return sum; 60請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:判斷字符串是否為回文,若是則函數(shù)返回1,主函數(shù)中輸出YES,否則返回0,主函數(shù)中輸出NO。回文是指順讀和倒讀都一樣的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 int fun(char *str) int i,n,0,fg,1; char *p,str; while (*p) /*將指針p置位到字符串末尾,并統(tǒng)計(jì)字符數(shù)*/ n,; p,; for(i,0;in/2;i,) /*循環(huán)比較字符*/ if(stri,strn,1,i) ; /*相同,什么都不作*/ else /*不同,直接跳出循環(huán)*/ fg,0; break; return fg; 61編寫函數(shù)int fun(int lim, int aaMAX),該函數(shù)的功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素?cái)?shù)的個(gè)數(shù)。 int fun(int lim, int aaMAX)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西壯族自治區(qū)玉林市陸川縣2025屆英語(yǔ)七下期末預(yù)測(cè)試題含答案
- 安全生產(chǎn)主要負(fù)責(zé)人考試題及答案
- 安全生產(chǎn)月測(cè)試題及答案
- 安全生產(chǎn)管理試題及答案
- 安全建設(shè)試題及答案
- 安全管理試題及答案計(jì)算
- 社區(qū)零售業(yè)態(tài)創(chuàng)新與數(shù)字化運(yùn)營(yíng)模式在2025年的市場(chǎng)趨勢(shì)報(bào)告
- 課件改編培訓(xùn)方案模板
- 高校產(chǎn)學(xué)研合作技術(shù)轉(zhuǎn)移中的科技成果轉(zhuǎn)化與企業(yè)戰(zhàn)略協(xié)同研究報(bào)告
- 原材料管理課件
- 化妝品標(biāo)簽審核管理制度
- 2025年銅仁沿河土家族自治縣“特崗計(jì)劃”招聘考試筆試試題(含答案)
- 和美鄉(xiāng)村示范村規(guī)范方案
- 某鎮(zhèn)“十五五”發(fā)展規(guī)劃編制思路
- 2025春季學(xué)期國(guó)開電大本科《人文英語(yǔ)4》一平臺(tái)機(jī)考真題及答案(第四套)
- 政府采購(gòu)評(píng)審專家考試真題庫(kù)(帶答案)
- (2025)國(guó)家版圖知識(shí)競(jìng)賽(附含答案)
- 2025年高考志愿填報(bào)-12種選科組合專業(yè)對(duì)照表
- 2025甘肅省農(nóng)墾集團(tuán)有限責(zé)任公司招聘生產(chǎn)技術(shù)人員145人筆試參考題庫(kù)附帶答案詳解析版
- 牙科技術(shù)入股合作協(xié)議書
- 外墻保溫層熱橋防治要點(diǎn)
評(píng)論
0/150
提交評(píng)論