C語言編程題及答案_第1頁
C語言編程題及答案_第2頁
C語言編程題及答案_第3頁
C語言編程題及答案_第4頁
C語言編程題及答案_第5頁
免費預(yù)覽已結(jié)束,剩余108頁可下載查看

下載本文檔

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

文檔簡介

1、1請編寫函數(shù)fun ,其功能是:找由2XM整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。int fun (int a M)int i , j , max= a00;for(i =0; i<2 ; i + )for(j =0; j<M; j + )if(max<a皿)max = aij;return max ;2編寫函數(shù)fun ,其功能是:根據(jù)以下公式求兀的值(要求精度0.0005 ,即某項小于 0.0005時停止迭代)。冗 _1 + 1 +1M2+1父2M341父2M3M42 -3 3 5 3 5 73 5 71父2M"3W"2n+1)程序運行后,若輸

2、入精度double fun( double eps)double s =1.0, si = 1.0 ;int n = 1;while(s1> =eps) /*當(dāng)奧項大于精度要求時,繼續(xù)求下一項 */ si = s1s =s+ si ;/* 求和*/n;return 23 編寫函數(shù) fun , 其功能是: 求出 1 到 1000 之間能被 7 或 11整除, 但不能同時被7 和 11 整除的所有整數(shù), 并將其放在a所指的數(shù)組中,通過n 返回這些數(shù)的個數(shù)。void fun(int *a , int *n)int ij =0;for(i =1; i<=l000; i +)/* 求 1 至

3、1000 之內(nèi)能被 7 或11 整除但不能同時被7 和 11 整除的所有整數(shù),并放入數(shù)組a 中 */if(i%7 = = 0|i%ll = = 0)&&i%77 ! = 0)aj + =i ;*n = j ;/*傳回滿足條件的數(shù)的個數(shù) */4 規(guī)定輸入的字符串中只包含字母和 * 號。編寫函數(shù)fun ,其功能是: 刪除字符串中所有的 *號。 編寫函數(shù)時, 不得使用 C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為: *A*BC*DEF*G* ,刪除后字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEF Gvoid fun(char *a)int i , j = 0;for(i =0; ai ! =&

4、#39;0' ; i + +)if(ai !='*')aj + =ai ;/*若不是要刪除的字符*/aj ='0' ;/*最后加上字符串結(jié)束符5 編寫函數(shù) fun ,其功能是:實現(xiàn)兩個字符串的連接用庫函數(shù)strcat),即把 p2 所指的字符串連接到字符串的后面。例如,分別輸入下面兩個字符串:FirstString SecondString程序輸出:FirstString SecondString則留下0' */( 不要使p1 所指的void fun(char p1, char p2)for(i =0; p1i ! ='0' ;

5、i+);/* 求生的 i 為p1 字符串的總長度,包括結(jié)束標記符*/for(j =0; p2j ! ='0' ; j + )p1i + = p2j ;/*將p2字符串連在 pl字符串后面*/p1i ='0' ;/*在字符串最后加上結(jié)束標記符*/6 某學(xué)生的記錄由學(xué)號、 8 門課程成績和平均分組成,學(xué)號和 8 門課程的成績已在主函數(shù)中給出,請編寫函數(shù)fun ,其功能是:求出該學(xué)生的平均分,并放入記錄的 ave 成員中。例如, 學(xué)生的成績是: 85.5,76,69.5,85,91,72,64.5, 87.5 ,則他的平均分應(yīng)為 78.875 。void fun(ST

6、REC *a)int i ;a >ave = 0.0 ;for(i =0; i<N; i + +)a >ave = a >ave + a >si;/* 求各門成績的總和 */a >ave = a >ave/N ;/* 求平均分 */7 N 名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中, h 指向鏈表的頭節(jié)點。請編寫函數(shù)fun ,其功能是:求出平均分,并由函數(shù)值返回。例如, 若學(xué)生的成績是: 85 76 69 85 91 72 64 87,則平均分應(yīng)當(dāng)是: 78.625 。double fun(STREC *h)double av =0.0;ST

7、REC *p= h>next ;/*p直接指向"頭結(jié)點"的下一個結(jié)點,即第一個成績*/while(p ! = NULL) av=av+p>s;/* 求總分數(shù) */p= p >next ;return av/N ;/* 返回平均值*/8編寫函數(shù)fun ,其功能是:將所有大于 1小于整數(shù)m的非 素數(shù)存入 xx 所指數(shù)組中,非素數(shù)的個數(shù)通過k 返回。例如, 若輸入 17 , 則應(yīng)輸出: 4 6 8 9 10 12 14 1516。void fun(int m, int *k, int xx)int i , j , n = 0;for(i =4; i<m;

8、i+)/*找由大于1小于整數(shù) m的非素數(shù) */ for(j =2; j<i ; j +)if(i%j = = 0) break ;if(j<i) xxn+ + =i ;*k = n;/*返回非素數(shù)的個數(shù)*/9 編寫函數(shù) fun ,其功能是:求ss 所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串 123412132 ,輸入字符為 1,則輸出 3int fun(char *ss, char c)int i =0;for( ; *ss ! ='0' ; ss + + )if(*ss = = c)i ; /* 求出 ss 所指字符串中指定字符的個數(shù)*/retur

9、n i ;10 編寫函數(shù) fun ,其功能是:計算n 門課程的平均分,結(jié)果作為函數(shù)值返回。例如:若有5 門課程的成績是: 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; i<n ; i + +)/* 求分數(shù)的總和 */av = av + ai;return (av/n) ;/* 返回平均值*/11 學(xué)生的記錄由學(xué)號和成績組成, N 名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s 中,請編寫函數(shù)fun ,其功能是:把分數(shù)最高的學(xué)生數(shù)據(jù)放在b 所指的數(shù)組中。

10、注意:分數(shù)最高的學(xué)生可能不止一個,函數(shù)返回分數(shù)最高的學(xué)生的人數(shù)。int fun (STREC *a, STREC *b)int i , j = 0, ma> a0 . s;for(i =0; i<N; i + )if(max<ai . s) max = ai . s ;/* 找出最大值*/for(i =0; i<N; i + )if(max =ai . s) bj +=ai ;/* 我由成績與max相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/return j ;/* 返回最高成績的學(xué)生人數(shù)*/12 規(guī)定輸入的字符串中只包含字母和 *號。 請編寫函數(shù)fun ,其功能是:除了字符串

11、前導(dǎo)的 *號之外,將串中其它 *號全部刪除。在編寫函數(shù)時,不得使用C語言提供的字符串函數(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)計在 tt 所指的字符串中

12、 'a' 到 'z'26 個小寫字母各自出現(xiàn)的次數(shù), 并依次放在 pp 所指的數(shù)組中。例如,當(dāng)輸入字符串 abcdefgabcdeabc 后,程序的輸出結(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 0void fun(char *tt, int pp)int i ;for(i =0; i<26 ; i + + )ppi =0;/*初始化pp數(shù)組各元素為0='0'tt )if(*tt> = ' a' &&*tt< = ' z&

13、#39;)pp*tt ' a' + + ;14 規(guī)定輸入的字符串中只包含字母和 *號。 請編寫函數(shù)fun ,其功能是:將字符串尾部的 *號全部刪除,前面和中間的 *號不動。例如,字符串中的內(nèi)容為: *A*BC*DEF*G* ,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是: *A*BC*DEF*G 。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。void fun (char *a);while(*a ! ='0')a;a ;/* 指針a 指向字符串的尾部*/while(*a = = ' *')a ;/* 指針a 指向最后一個字母*/*(a +1)=/*在字符串最后

14、加上結(jié)束標志符*/15編寫函數(shù) fun ,其功能是:比較字符串的長度, (不得使用 C 語言提供的求字符串長度的函數(shù)) ,函數(shù)返回較長的字符串。若兩個字符長度相同,則返回第一個字符串。例如,輸入beijing<CR>shanghai<CR>(<CR> 為回車鍵 ) ,函數(shù)將返回 shanghai 。char *fun(char *s, char *t)int i , j ;for(i =0; si ! = ' 0' ; i+);/*求字符串的長度 */for(j =0; tj ! = ' 0' ; j +);if(i>

15、=j) /*比較兩個字符串的長度*/return s ;/* 函數(shù)返回較長的字符串,若兩個字符串長度相等,則返回第 1 個字符串 */elsereturn t ;16學(xué)生的記錄由學(xué)號成績組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s 中,請編寫函數(shù)fun ,其功能是:函數(shù)返回該學(xué)號的學(xué)生數(shù)據(jù),指定的學(xué)號在主函數(shù)中輸入。若沒找到指定學(xué)號,在結(jié)構(gòu)體變量中給學(xué)號置空串,給成績置1,作為函數(shù)值返回。 ( 用于字符串比較的函數(shù)是strcmp)STREC fun(STREC *a, char *b)int i ;STRECStr ="0" , 1;/*若沒找到指定的學(xué)號,在結(jié)構(gòu)體變量

16、中給學(xué)號置空串,給成績置 1 )if(strcmp(ai . num, b)=0)/* 找到指定學(xué)號的學(xué)生數(shù)據(jù) */str = ai;return str ;/* 返回學(xué)生記錄 */17編寫函數(shù) fun ,其功能是:將兩個兩位數(shù)的正整數(shù)a、 b合并成一個整數(shù)放在c 中。合并的方式是:將a 數(shù)的十位和個位數(shù)依次放在c 數(shù)的十位和千位上, b 數(shù)的十位和個位數(shù)依次放在 c 數(shù)的百位和個位上。例如,當(dāng)a=45, b=12時,調(diào)用該函數(shù)后,c =5142。void fun(int a , int b , long *c)*c = b%10+ (a/10)*10 + (b/10)*100 + (a%10

17、)*1000 ;18 編寫函數(shù) fun ,其功能是:利用下面的簡單迭代方法求方程cos(x) x = 0的一個實根。xn + 1 = cos(xn)迭代步驟如下:(1) 取 x1 初值為 0.0 ;(2)x0 = x1,將x1的值賦給x0;(3)x1 = cos(x0),求生一個新的 x1;(4) 若 x0 x1 的絕對值小于 0.000001 ,執(zhí)行步聚(5) ,否則執(zhí)行步聚 (2) ;(5)所求x1就是方程cos(x) -x = 0的一個實根,作為函數(shù)值返回。程序?qū)⑤斢山Y(jié)果 Root = 0.739086。float fun()float x1 =0.0 , x0;dox0 = x1 ;x

18、1 = cos(x0);while (fabs(x0-x1)>= 1e 6);19 規(guī)定輸入的字符串中只包含字母和 *號。 請編寫函數(shù)fun ,其功能是:將字符串中的前導(dǎo)*號全部移到字符串的尾部。例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,移動后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G*。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。void fun(char *a)int i =0, n = 0;char *p ;P=a;while (*p= = ' *' )/* 判斷*p是否是*號,并統(tǒng)計* 號的個數(shù) */n; p;while(*p) /*將前導(dǎo) *號后的字

19、符傳遞給a*/ai =*P; i + + ; P + + ;while(n ! = 0)ai =' *' ; i + + ; n;ai ='0';20 編寫函數(shù) fun ,其功能是:將兩個兩位數(shù)的正整數(shù)a、 b合并成一個整數(shù)放在c 中。合并的方式是:將a 數(shù)的十位和個位數(shù)依次放在c 數(shù)的個位和百位上, b 數(shù)的十位和個位數(shù)依次放在 c 數(shù)的千位和十位上。例如,當(dāng)a=45, b=12時,調(diào)用該函數(shù)后,c= 1524。void fun(int aint b , long *c)*c = a/10 + (b%10)*10 + (a%10)*100 + (b/10)*1

20、000 ;21編寫函數(shù)fun ,其功能是計算:S=Jln(1)+ln(2) +ln(3)+ln(m) s作為函數(shù)值返回。在C語言中可調(diào)用10g(n)函數(shù)求ln(n)。log函數(shù)的引用說明為:double 10g(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) ;/* 計算 s=ln(1) + ln(2) + ln(3)+ + ln(m)*/return sqrt(s)/*對s求平方根并返回*/22 規(guī)定輸

21、入的字符串中只包含字母和 * 號。 請編寫函數(shù)fun ,其功能是:只刪除字符前導(dǎo)和尾部的 * 號,串中字母間的 * 號都不刪除。形參n 給出了字符串的長度,形參h 給出了字符串中前導(dǎo)*號的個數(shù),形參e給由了字符串中尾部*號的個數(shù)。在編寫函數(shù)時,不得使用C語言提供的字符串函數(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; i<n e; i + +)/*第一個字母和最后一個字母之間的字符全不刪除*/aj

22、 + =ai;aj ='0' ;/*在字符串最后加上結(jié)束標識*/23 函數(shù) fun 的功能是: 將 s 所指字符串中下標為偶數(shù)的字符刪除,剩余字符形成的新串放在t 所指數(shù)組中。例如,當(dāng)s所指字符串中的內(nèi)容為"ABCDEFGHIJK時,在t所指數(shù)組中的內(nèi)容應(yīng)是: "BDFHJ" 。void fun(char *s , char t)int i , j=0, k=strlen(s) ;/*k 為字符串的長度 */for(i = 1 ; i<k ; i = i + 2)/*將s所指字符串中下標為奇數(shù)的字符存入t 所指字符串中 */tj + =si;

23、24 編寫函數(shù) fun ,其功能是:將a 、 b 中的兩個兩位正整數(shù)合并成一個新的整數(shù)放在 c 中。合并的方式是:將a 中的十位和個位數(shù)依次放在變量c 的百位和個位上, b 中的十位和個位數(shù)依次放在變量c 的十位和千位上。例如,當(dāng)a=45, b=12,調(diào)用該函數(shù)后 c=2415。void fun(int aint b , long *c)*c = a%10+ (b/10)*10 + (a/10)*100 + (b%10)*1000 ;25 假定輸入的字符串中只包含字母和 * 號。 請編寫函數(shù)fun ,其功能是:除了尾部的 *號之外,將字符中的其它的 *號全部刪除。形參p 已指向字符串中最后的一

24、個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(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以前所有不是*號的字符保留下來 */for( ; *t ! ='0' ; t + + )*(a + + ) = *t ;/*將p以后的所有*號保留下來*/*a = '0' ;/*在字符串最后加上字符串結(jié)束標識*/26學(xué)生的

25、記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s 中,請編寫函數(shù)fun ,其功能是:按分數(shù)降序排列學(xué)生的記錄,高分在前,低分在后。void fun (STREC a)int i , j ;STREC t;for(i =1; i<N; i +)/*用冒泡法進行排序,進行 N 1 次比較 */for(j =0; j<N-1; j +)/*在每一次比較中要進行 N 1 次兩兩比較*/if(aj s<aj 1 s)t =aj ; aj =aj +1 ; aj +1=t ; /* 按分數(shù)的高低排列學(xué)生的記錄,高分在前*/27學(xué)生的記錄由學(xué)號和成績組成。N名學(xué)生的數(shù)據(jù)已放

26、入主函數(shù)中的結(jié)構(gòu)體數(shù)組s 中,請編寫函數(shù)fun ,其功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b 所指的數(shù)組中, 高于等于平均分的學(xué)生人數(shù)通過形參n 傳回, 平均分通過函數(shù)值返回。double fun (STREC *a , STREC *b, int *n)int i ;double av =0.0;*n = 0;for(i =0; i<N; i + +)av = av + ai . s ;av = av/N ;/*求平均值*/for(i =0; i<N; i + )if(av< = ai . s) b*n= ai ; *n = *n + 1; /* 將高于等于平均分的學(xué)生存入

27、b 所指存儲單元中, 并統(tǒng)計人數(shù) */return av ;/* 返回平均分*/28編寫函數(shù)fun ,其功能是:將1到m之間(含m)能被7或11 整除的所有整數(shù)放在數(shù)組a 中, 并通過 n 返回這些數(shù)的個數(shù)。例如,若傳給m的值為50,則程序輸由:7 11 14 21 22 28 33 35 42 44 49void fun(int m, int *a, int *n)int i , j = 0;for(i = 1; i< = m; i + + )if(i%7 =0|i%11 = 0)/* 求生 1 到 m(含 m)之內(nèi)能被7或 11 整除的所有整數(shù)放在數(shù)組a 中*/aj + =i ;*n

28、=j ;/*返回這些數(shù)的個數(shù)*/29 規(guī)定輸入的字符串中只包含字母和 * 號。編寫函數(shù)fun ,其功能是:將字符串中的前導(dǎo) *號全部刪除,中間和尾部的 *號不刪除。例如,字符串中的內(nèi)容為: *A*BC*DEF*G* ,刪除后字符串中的內(nèi)容應(yīng)當(dāng)是: A*BC*DEF*G* 。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。void fun (char *a)char *p =a;while(*p = = ' *')p; /* 指針 p 指向字符串第一個字母*/for( ; *p ! ='0' ; p + + , a+)*a = *p;/*從第一個字母開始,其后的字符都

29、放入指針a 所指的字符串中 */七='0' ;/*在字符串最后加上字符串結(jié)束標識*/30 N 名學(xué)生的成績已在主函數(shù)中放入一個帶有頭節(jié)點的鏈表結(jié)構(gòu)中, h 指向鏈表的頭節(jié)點。請編寫函數(shù)fun ,其功能是:找出學(xué)生的最高分,并由函數(shù)值返回。double fun(STREC *h)double max = h >s;while(h ! = NULL) /*通過循環(huán)找到最高分數(shù) */ if(max<h >s) max = h >s;h = h >next ;return max ;31 請編寫函數(shù)fun ,其功能是:找出一維整型數(shù)組元素中最大的值及其所在

30、的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值, index 存放最大值所在元素的下標。void fun(int a, int n, int *max, int *d)int i ;*max= a0;*d =0;for(i =0; i<n ; i+)/*將最大的元素放入指針max所指的單元,最大元素的下標放入指針 d 所指的單元 */if(*max<ai)*max = ai ; *d = i ; 32 編寫函數(shù) fun ,其功能是:將s 所指字符串中除了下標為奇數(shù)同時 ASCII 值也為奇數(shù)的字符之外, 其余的所有字

31、符全部刪除, 串中剩余字符所形成的一個新串放在t 所指的數(shù)組例如,若s所指字符串的內(nèi)容為:"ABCDEFG12345;其中字符 A 的 ASCII 碼值為奇數(shù),但所在元素的下標為偶數(shù),因此需要刪除;而字符1 的 ASCII 碼值為奇數(shù),所在數(shù)組中的下標也為奇數(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; i<n ; i + + )if(i%2 ! = 0&&si%2 ! =

32、0)tj =si ;/*將下標為奇數(shù)同時 ASCII碼值為奇數(shù)的字符放入數(shù)組t 中 */j ;tj ='0' ;/*最后加上結(jié)束標識符*/33編寫函數(shù)fun,其功能是:實現(xiàn)B= A+ A',即將矩陣A加上 A 的轉(zhuǎn)置,存放在矩陣 B 中。計算結(jié)果在main 函數(shù)中輸出。例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為:1 231474 562587 89369程序輸出:261061014101418void fun (int a33, int b33)int i , j ;for(i =0; i<3 ; i + )for(j =0; j<3 ; j +)bijaij aj

33、i;/*的轉(zhuǎn)置,存放在矩陣把矩陣 a 加上 ab 中 */34 請編寫函數(shù)fun , 該函數(shù)的功能是: 統(tǒng)計各年齡段的人數(shù)。N 個年齡通過調(diào)用隨機函數(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<M; j + )bj =0;/*數(shù)組b初始化為0 + )if

34、(ai> = 100)b10 ; /* 如果年齡大于等于 100, b10 自增 1 ;/* 如果年齡小于100,則將其分別統(tǒng)計到bai/10 中*/35 學(xué)生記錄由學(xué)號和成績組成, N 名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組中,請編寫函數(shù)fun ,其功能是:把分數(shù)最低的學(xué)生數(shù)據(jù)放入b 所指的數(shù)組中,注意:分數(shù)最低的學(xué)生可能不止一個,函數(shù)返回分數(shù)最低的學(xué)生人數(shù)。int fun(STREC *a , STREC *b)int i , j = 0, n = 0, min ;min = a0 . s;for(i =0; i<N; i + )if(ai s<min)min = ai

35、. s;for(i =0; i<N; i + )if(ai . s = =min)*(b +j) =ai ; j + + ; n+ + ;return n36 請編寫函數(shù)fun , 該函數(shù)的功能是: 移動字符串中的內(nèi)容,移動的規(guī)則是把第1m個字符,平移到字符串的最后,把第 m 1 到最后的字符移到字符串的前部。例如,字符串中原有的內(nèi)容為ABCDEFGHIJKm的值為3,移動后,字符串中的內(nèi)容應(yīng)該是DEFGHIJKABCvoid fun (char *w , int m)int i , j ;char t ;for(i = 1 ; i< = m; i + + )/*進行m次的循環(huán)左移

36、*/ t=w。;for(j = 1 ; wj ! = '0' ; j + + )/* 從第 2 個字符開始以后的每個字符都依次前移一個字符 */wj -1 =wj;wj 1 = t ;/*將第1個字符放到最后一個字符中 */37 編寫函數(shù)fun ,其功能是:刪除一個字符串中指定下標的字符。其中, a 指向原字符串,刪除指定字符后的字符串存放在 b 所指的數(shù)組中, n 中存指定的下標。例如,輸入一個字符串 world ,然后輸入 3,則調(diào)用該函數(shù)后的結(jié)果為 word 。void fun (char a(), char b(), int n)int i , k=0;for(i =0

37、; ai ! ='0' ; i + +)if(i ! = n) /*將不是指定下標的字符存入數(shù)組b中*/bk + + = ai;bk ='0' ;/*在字符串最后加上結(jié)束標識*/38編寫函數(shù)fun, w是一個大于10的無符號整數(shù),若 w是n(nA2)位的整數(shù),則函數(shù)求由w的后n1位的數(shù)作為函數(shù) 值返回。例如,w值為5923,則函數(shù)返回923;若w值為923,則函數(shù)返回 23 。unsigned fun(unsigned w)if(w> =10000)return w%10000 ;/*求生n位整數(shù)w的后n 1位的數(shù)*/if(w> = 1000)ret

38、urn w%1000 ;if(w> =100)return w%100 ;if(w> =10)return w%10 ;39請編寫函數(shù)fun,該函數(shù)的功能是:將 M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依此放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n 所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:33 33 33 3344 44 44 4455 55 55 55則一維數(shù)組中的內(nèi)容應(yīng)該是 33 33 33 33 44 44 4444 55 55 55 55void fun (int (*s)10, int *b, int *n, int mm, int nn)int i , j ,

39、 k = 0;for(i =0; i<mm; i + +)/*將二維數(shù)組s中的數(shù)據(jù)按行的順序依次放到一維數(shù)組b 中 */for(j =0; j<nn ; j + + )bk+= s皿;*n = k;/*通過指針返回元素個數(shù) */結(jié)果作為函數(shù)值返回,n通過形參傳入。,+11+2 1+2+3 i+2+3+-n 例如:若 n的值為 11時,函數(shù)的值為1.833333float fun(int n)int i , s1=0;float s = 0.0 ;for(i = 1; i< = n ; i + + )s1 = s1 + i ;/*求每一項的分母 */s=s+1.0/s1 ;/*

40、求多項式的值*/return s;s1 = s1 + i ;/*求每一項的分母 */s = s + 1.0/s1 ;/*求多項式的值*/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,

41、n;n = strlen(s) ;for(i =0; i<n ; i + +)/*找由ASCII碼值為偶數(shù)的字符依次存入數(shù)組中 */if(si%2= 0)tj =si;j ;tj ='0';? 42下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(int aN) ,該函數(shù)的功能是:將數(shù)組左下半三角元素中的值全部置成 0 。例如 a 數(shù)組中的值為:a= 1 9 72 3 84 5 6則返回主程序后 a 數(shù)組中的值應(yīng)為:0 9 70 0 843 規(guī)定輸入的字符串中只包含字母和 * 號。編寫函數(shù)fun ,其功能是:除了字符串前導(dǎo)和尾部的 * 號外,將串中其

42、它的 *號全部刪除。形參h 已指向字符串中第一個字母,形參p 指向字符串的中最后一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為 *A*BC*DEF*G* ,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是: *ABCDEFG* 。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。void fun(char *a , char *h , char *p)int i =0;char *q = a;while (q<h)/* 判斷前導(dǎo) *號的結(jié)束 */ai =*q ; q+ + ; i + + ;while (q<p)/ *刪除除了字符串前導(dǎo)和尾部的 *號*/if(*q !ai

43、 = *q ; i + + ;q;while (*q)ai = *q ; i + + ; q + + ;ai ='0';44 函數(shù) fun 的功能是:將a、 b 的兩個兩位正整數(shù)合并成一個新的整數(shù)放在 c 中。合并的方式是:將a 中的十位和個位數(shù)依次放在變量c 的百位和個位上, b 中的十位和個位數(shù)依次放在變量c 的千位和十位上。例如,當(dāng)a=45, b=12,調(diào)用該函數(shù)后 c= 1425。void fun(int a , int b , long *c)*c = a%10+ (b%10)*10 + (a/10)*100 + (b/10)*1000 ;45 規(guī)定輸入的字符串中只包

44、含字母和 * 號。 請編寫函數(shù)fun ,其功能是:使字符串的前導(dǎo) *號不得多于n 個,若多于n 個,則刪除多余的* 號;若少于或等n 個,則不做處理,字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為: *A*BC*DEF*G* ,若 n的值為4 ,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:*A*BC*DEF*G* ;若 n 的值為8,則字符串中的內(nèi)容仍為: *A*BC*DEF*G*。 n 的值在主函數(shù)中輸入。 在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。void fun(char *a , int n )int i =0, k =0;char *p, *t ;p=t=a;/*開始時,p與t同時指向數(shù)

45、組的首地址*/while(*t = = '*')/*用k來統(tǒng)計前部星號的個數(shù)*/k ; t ; if(k>n) /*如果k大于n,則使p的前部保留n個星號,其后的字符依次存入數(shù)組a 中 */ while(*p)ai=*(P +kn);i ;p;ai ='0' ;/*在字符串最后加上結(jié)束標識位*/46 編寫函數(shù) fun ,其功能是:將兩個兩位數(shù)的正整數(shù)a、 b合并成一個整數(shù)放在c 中。合并的方式是:將a 數(shù)的十位和個位數(shù)依次在c 數(shù)的個位和百位上, b 數(shù)的十位和個位數(shù)依次放在 c 數(shù)的十位和千位上。例如,當(dāng)a=45, b=12時,調(diào)用該函數(shù)后 c=2514

46、。void fun(int a , int b , long *c)*c = a/10 + (b/10)*10 + (a%10)*100 + (b%10)*1000 ;47 請編寫函數(shù)fun ,其功能是:將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù)) 。例如,若輸入字符串" 1234" ,則函數(shù)把它轉(zhuǎn)換為整數(shù)值 1234。long n =0;int flag = 1;if(*p = = ' ' )/* 負數(shù)時置 flag 為一1+; flag =1; else if(*p = = ' + )/* 正數(shù)時置 flag 為

47、 1p;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(1) =1F(n) =F(n 1) + F(n 2)例如,當(dāng)t =1000時,函數(shù)值為1597。int fun(int t)int f0 =0, f1 =1, f;dof = f0 +f1 ;f0 = f1; fl = f;while(f<t)

48、;return f ;49學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s 中, 請編寫函數(shù)fun , 其功能是: 把低于平均分的學(xué)生數(shù)據(jù)放入b 所指的數(shù)組中, 低于平均分的學(xué)生人數(shù)通過形參n 傳回,平均分通過函數(shù)值返回學(xué)生的記錄由學(xué)號和成績組成, N 名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s 中, 請編寫函數(shù)fun , 其功能是: 把低于平均分的學(xué)生數(shù)據(jù)放入b 所指的數(shù)組中, 低于平均分的學(xué)生人數(shù)通過形參n 傳回,平均分通過函數(shù)值返回50 編寫函數(shù) fun ,其功能是:將ss 所指字符串中所有奇數(shù)位上的字母轉(zhuǎn)換為大寫 ( 若該位置上不是字母,則不轉(zhuǎn)換) 。例如,若輸入

49、"abc4EFg" ,則應(yīng)輸出 "aBc4EFg"void fun(char *ss)int i ;for(i =0; ssi ! ='0' ; i+)/* 將 ss 所指字符串中所有下標為奇數(shù)位置的字母轉(zhuǎn)換為大寫 */if(i%2 =l&&ssi> =' a' &&ssi< =' z')ssi =ssi 32;51 編寫函數(shù) fun ,其功能是:將a 、 b 中的兩個兩位數(shù)正整數(shù)合并成一個新的整數(shù)放在 c 中。合并的方式是:將a 中的十位和個位數(shù)依次放在變量c

50、的千位和十位上, b 中的十位和個位數(shù)依次在變量c 的個位和百位上。例如,當(dāng)a=45, b=12,調(diào)用該函數(shù)后 c=4251void fun(int a , int b , long *c)*c = b/10 + (a%10)*10 + (b%10)*100 + (a/10)*1000 ;52 規(guī)定輸入的字符串中只包含字母和 * 號。 請編寫函數(shù)fun ,其功能是:使字符串中尾部的 *號不多于 n 個,若多于n 個,則刪除多余的 *號;若少于或等于 n 個,則不做任何操作,字符串中間和前面的 * 號不刪除。例如,字符串中的內(nèi)容為: *A*BC*DEF*G* ,若 n的值為4 ,刪除后,字符串中

51、的內(nèi)容應(yīng)為:*A*BC*DEF*G* ;若 n 的值為7,則字符串中的內(nèi)容仍為: *A*BC*DEF*G*。 n 的值在主函數(shù)中輸入。 編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。void fun( char *a , int n )int i =0, k = 0;char *p, *t ;p= t = a;while(*t)t ;t ;while(*t = = ' *')k ; t ; if(k>n)while(*p&&p<t n 1)ai = *p ;i ; p;ai ='0';53 函數(shù) fun 的功能是: 將 s 所指字符串中

52、除下標為偶數(shù)同時ASCII 碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t 所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為:"ABCDEFG123456;其中字符 A 的 ASCII 碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符 B的 ASCII 碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此也應(yīng)當(dāng)刪除;字符2 的 ASCII 碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此不應(yīng)當(dāng)刪除,其它依此類推。最后 t 所指的數(shù)組"246"void fun(char*s, char t)int i , j = 0;for(i =0; si ! ='0' ;

53、i + +)if(i%2 = = 0&&si%2 = 0)/* 將s所指字符串中下標和 ASCII 碼值都為偶數(shù)的字符放入數(shù)組t 中*/tj + =si;tj ='0'/*在字符串最后加上結(jié)束標識*/54 函數(shù) fun 的功能是:將兩個兩位數(shù)的正整數(shù)a 、 b 合并成一個整數(shù)放在c 中。合并的方式是:將a 數(shù)的十位和個位數(shù)依次放在 c 數(shù)的千位和十位上, b 數(shù)的十位和個位數(shù)依次放在 c 數(shù)的百位和個位上。例如,當(dāng)a=45, b=12時,調(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

溫馨提示

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

評論

0/150

提交評論