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

下載本文檔

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

文檔簡介

大元素的值,并將此值返回調(diào)用函數(shù)。intfun(inta[][M]){if(max<a[i][j])max=a[i][j];returnmax;}2編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項小于0.0005時停止迭代)。23353573575(2n+1)0.0005,則程序應(yīng)輸出為3.14…。doublefun(doubleeps){while(s1>=eps){s1=s1]s=s+s1;/*求和*/}return2]3編寫函數(shù)fun,其功能是:求出1到1000之間能被7或11整除,但不能同時被7和11整除的所有整數(shù),并將其放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。voidfun(int*a,int*n){for(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除但不能同時被7和11整除的所有整數(shù),并放入數(shù)組aif((i%7==0||i%11==0)&&i%77?。?)a[j++]=i;}4規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除voidfun(char*a){if(a[i]?。健?′)a[j++]=a[i];/*若不是要刪除的字符′*′則留下*//*最后加上字符串結(jié)束符′\0′*/}5編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字例如,分別輸入下面兩個字符串:SecondStringFirstString--SecondString{串的總長度,包括結(jié)束標記符*/p1[i++]=p2[j];/*將p2字符串連在p1字符串后面*//*在字符串最后加上結(jié)束標記符*/}和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù)fun,其功能是:求出該學生的平均分,并放入記錄的ave成員中。的平均分應(yīng)為78.875。voidfun(STREC*a){inti;a->ave=a->ave+a->s[i];/*求各門成績的總和*/}7N名學生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)出平均分,并由函數(shù)值返回。doublefun(STREC*h){doubleav=0.0;結(jié)點,即第一個成績*/while(p?。絅ULL)p=p->next;}}8編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中,非素數(shù)的個數(shù)通過k返回。voidfun(intm,int*k,intxx[]){for(i=4;i<m;i++)/*找出大于1小于整數(shù)m的非素數(shù)*/if(i%j==0)break;if(j<i)xx[n++]=i;}*k=n;/*返回非素數(shù)的個數(shù)*/}9編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。intfun(char*ss,charc){if(*ss==c)i++;/*求出ss所指字符串中指定字符的個數(shù)*/returni;}10編寫函數(shù)fun,其功能是:計算n門課程的平均分,結(jié)果函數(shù)值返回。floatfun(float*a,intn){floatav=0.0;inti;for(i=0;i<n;i++)/*求分數(shù)的總和*/av=av+a[i];}成績組成,N名學生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把分數(shù)最高的學生數(shù)據(jù)放在b所指的數(shù)組中。注意:分數(shù)最高的學生可能不止一個,函數(shù)返回分數(shù)最高的學生的人數(shù)。intfun(STREC*a,STREC*b){for(i=0;i<N;i++)/*找出最大值*/for(i=0;i<N;i++)ifmaxaisbjai與max相等的學生的記錄,存入結(jié)構(gòu)體b中*/}12規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導的*號之外,將串中其它*號全部刪除。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除voidfun(char*a){char*p=a;while(*p&&*p==′*′){}while(*p){if(*p?。健?′){i}}}13編寫函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計在tt所指的字符例如,當輸入字符串a(chǎn)bcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)33322110000000000000000000voidfun(char*tt,intpp[]){inti;if(*tt>=′a′&&*tt<=′z′)pp[*tt-′a′]++;}14規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:將字符串尾部的*號全部刪除,前面和中間的*號例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除ABCDEFG寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a);{while(*a==′*′)returnt;}C語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符長度相同,則返回第一個字符串。例如,輸入beijing<CR>shanghai<CR>(<CR>為回車鍵),函數(shù)將返回shanghai。char*fun(char*s,char*t){if(i>=j(luò))/*比較兩個字符串的長度*//*函數(shù)返回較長的字符串,若兩個字符串長度相等,則返回第e}績組成,N名學生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:函數(shù)返回該學號的學生數(shù)據(jù),指定的學號在主函數(shù)中輸入。若沒找到指定學號,在結(jié)構(gòu)體變量中給學號置空串,給成績置-STRECfun(STREC*a,char*b){inti;構(gòu)體變量中給學號置空串,給成績置-1]+)if(strcmp(a[i].num,b)==0)/*找到指定學號的學生數(shù)據(jù)str=a[i];}17編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。voidfun(inta,intb,long*c){*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;}18編寫函數(shù)fun,其功能是:利用下面的簡單迭代方法求方(1)取x1初值為0.0;xxxx;(3)x1=cos(x0),求出一個新的x1;(4)若x0-x1的絕對值小于0.000001,執(zhí)行步聚(5),否則執(zhí)行步聚(2);xcosxx數(shù)值返程序?qū)⑤敵鼋Y(jié)果Root=0.739086。floatfun(){{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);returnx1;}{19規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:將字符串中的前導*號全部移到字符串的尾部。如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,移動后,字符串中的內(nèi)容應(yīng)當是:A*BC*DEF*G***********。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a){char*p;p=a;while(*p==′*′)/*判斷*p是否是*號,并統(tǒng)計*號的個數(shù)*/while(*p){}/*將前導*號后的字符傳遞給a*/}while(n?。?){}}20編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。voidfun(inta,intb,long*c){*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;}21編寫函數(shù)fun,其功能是計算:作為函數(shù)值返回。doublelog(doublex)。例如,若m的值為20,則fun函數(shù)值為6.506583。doublefun(intm){inti;doubles=0.0;ln(m)*/}22規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:只刪除字符前導和尾部的*號,串中字母間的*號都不刪除。形參n給出了字符串的長度,形參h給出了字符在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除voidfun(char*a,intn,inth,inte){for(i=h;i<n-e;i++)/*第一個字母和最后一個字母之間的字符全不刪除*/a[j++]=a[i];/*在字符串最后加上結(jié)束標識}23函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)的字符刪除,剩余字符形成的新串放在t所指數(shù)組中。例如,當s所指字符串中的內(nèi)容為"ABCDEFGHIJK"時,在t{for(i=1;i<k;i=i+2)/*將s所指字符串中下標為奇數(shù)的字符存入t所指字符串中*/t[j++]=s[i];24編寫函數(shù)fun,其功能是:將a、b中的兩個兩位正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是:將a中的十位和個位數(shù)依次放在變量c的百位和個位上,b中的十位和個位數(shù)依次放在變量c的十位和千位上。voidfun(inta,intb,long*c){*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;}25假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了尾部的*號之外,將字符中的其它的*號全部刪除。形參p已指向字符串中最后的一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當是ABCDEFG*******。{char*t=a;if(*t?。健?′)at/*將p以前所有不是*號的字符保留下來*//*將p以后的所有*號保留下來*//*在字符串最后加上字符串結(jié)束標識*/}26學生的記錄由學號和成績組成,N名學生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:按分數(shù)降序排列學生的記錄,高分在前,低分在后。voidfun(STRECa[]){STRECt;次比較*/-1次兩兩比較*//*按分數(shù)的高低排列學生的記錄,高分在前*/}27學生的記錄由學號和成績組成。N名學生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把高于等于平均分的學生數(shù)據(jù)放在b所指的數(shù)組中,高于等于{inti;doubleav=0.0;*n=0;for(i=0;i<N;i++)for(i=0;i<N;i++)/*將高于等于平均分的學生存入b所指存儲單元中,并統(tǒng)計人數(shù)*/}28編寫函數(shù)fun,其功能是:將1到m之間(含m)能被7或數(shù)。例如,若傳給m的值為50,則程序輸出:711142122283335424449voidfun(intm,int*a,int*n){if(i%7==0||i%11==0)/*求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中*/a[j++]=i;識*/}功能是:將字符串中的前導*號全部刪除,中間和尾部的*號例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,刪除不得使用C語言提供的字符串函數(shù)。voidfun(char*a){char*p=a;while(*p==′*′)*a=*p;/*從第一個字母開始,其后的字符都放入指針a所指的字符串中*/}30N名學生的成績已在主函數(shù)中放入一個帶有頭節(jié)點的鏈找出學生的最高分,并由函數(shù)值返回。doublefun(STREC*h){doublemax=h->s;while(h?。絅ULL)/*通過循環(huán)找到最高分數(shù)*/{if(max<h->s)max=h->s;h=h->next;}returnmax;}31請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值及其所在的下標,并通過形參傳回。數(shù)組元素中的值voidfun(inta[],intn,int*max,int*d){inti;*max=a[0];*d=0;for(i=0;i<n;i++)/*將最大的元素放入指針max所指的單元,最大元素的下標放入指針d所指的單元*/if(*max<a[i])}32編寫函數(shù)fun,其功能是:將s所指字符串中除了下標為奇數(shù)同時ASCII值也為奇數(shù)的字符之外,其余的所有字符全部刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組此需要刪除;而字符1的ASCII碼值為奇數(shù),所在數(shù)組中的下標也為奇數(shù),因此不應(yīng)當刪除,其它依此類推。最后t所{n=strlen(s);if(i%2?。?&&s[i]%2?。?){t[j]=s[i];/*將下標為奇數(shù)同時ASCII碼值為奇數(shù)的字符放入數(shù)組t中*/}}上A的轉(zhuǎn)置,存放在矩陣B中。計算結(jié)果在main函數(shù)中輸例如,輸入下面的矩陣:其轉(zhuǎn)置矩陣為:261061014101418voidfun(inta[3][3],intb[3][3]){for(i=0;i<3;i++)b[i][j]=a[i][j]+a[j][i];/*把矩陣a加上a的轉(zhuǎn)置,存放在矩陣b中*/}N個年齡通過調(diào)用隨機函數(shù)獲得,并放入主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲年齡段的人數(shù)放在d[2]中,依此類推,把100歲(含100歲)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。voidfun(int*a,int*b){if(a[i]>=100)/*如果年齡小于100,則將其分別統(tǒng)計到b[a[i]/10]中*/}35學生記錄由學號和成績組成,N名學生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組中,請編寫函數(shù)fun,其功能是:把分數(shù)最低的學生數(shù)據(jù)放入b所指的數(shù)組中,注意:分數(shù)最低的學生可能不止一個,函數(shù)返回分數(shù)最低的學生人數(shù)。{for(i=0;i<N;i++)for(i=0;i<N;i++){}returnn;}移動的規(guī)則是把第1~m個字符,平移到字符串的最后,把m字符串的前部。移動后,字符串中的內(nèi)容應(yīng)該是DEFGHIJKABC。voidfun(char*w,intm){chart;fori;i<=m;i++)/*進行m次的循環(huán)左移*/開始以后的每個字符都依次前移一個字符*/w[j-1]=w[j];w[j-1]=t;/*將第1個字符放到最后一個字符}}37編寫函數(shù)fun,其功能是:刪除一個字符串中指定下標的字符。其中,a指向原字符串,刪除指定字符后的字符串存world3,則調(diào)用該函數(shù)后的結(jié)果為word。voidfun(chara(),charb(),intn){if(i?。絥)/*將不是指定下標的字符存入數(shù)組b中*/b[k++]=a[i];}38編寫函數(shù)fun,w是一個大于10的無符號整數(shù),若w是n(n≥2)位的整數(shù),則函數(shù)求出w的后n-1位的數(shù)作為函數(shù)w3;若w值為923,則函數(shù)返回23。unsignedfun(unsignedw){if(w>=10000)returnw%10000/*求出n位整數(shù)w的后n-1位的數(shù)*/if(w>=1000)returnw%1000;if(w>=100)returnw%100;if(w>=10)returnw%10;}組中的數(shù)據(jù),按行的順序依此放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)該是333333334444444455555555voidfun(int(*s)[10],int*b,int*n,intmm,intnn){for(i=0;i<mm;i++)/*將二維數(shù)組s中的數(shù)據(jù)按行的順序依次放到一維數(shù)組b中*/b[k++]=s[i][j];}111returns;函數(shù)的值為1.833333floatfun(intn){floats=0.0;{}returns;}}}41編寫函數(shù)fun,其功能是:將s所指字符串中ASCII值為奇數(shù)的字符刪除,剩余字符形成的新串放在t所指數(shù)組中。中字符A的ASCII碼值為奇數(shù)、…、字符1的ASCII碼值也為奇數(shù)、…都應(yīng)當刪除,其它依此類推。最后t所指的數(shù)組{n=strlen(s);for(i=0;i<n;i++)/*找出ASCII碼值為偶數(shù)的字符依次存入數(shù)組中*/if(s[i]%2==0){t[j]=s[i];}}賦值。請編寫函數(shù)fun(inta[][N]),該函數(shù)的功能是:將數(shù)組左下半三角元素中的值全部置成0。例如a數(shù)組中的值為:238456則返回主程序后a數(shù)組中的值應(yīng)為:097008000n功能是:除了字符串前導和尾部的*號外,將串中其它的*號{全部刪除。形參h已指向字符串中第一個字母,形參p指向字符串的中最后一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除的內(nèi)容應(yīng)當是:****ABCDEFG********。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。{char*q=a;while(q<h)/*判斷前導*號的結(jié)束*/{}while(q<p){/*刪除除了字符串前導和尾部的*號*/if(*q!=′*′)iqi}}while(*q){}}44函數(shù)fun的功能是:將a、b的兩個兩位正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是:將a中的十位和個位數(shù)依次放在變量c的百位和個位上,b中的十位和個位數(shù)依次放在變量c的千位和十位上。voidfun(inta,intb,long*c){*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;}45規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:使字符串的前導*號不得多于n個,若多于n個,則刪除多余的*號;若少于或等n個,則不做處理,字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)當是:****A*BC*DEF*G****;若n的值為8,則字符串中的內(nèi)容仍編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a,intn){inti=0,k=0;char*p,*t;while(*t==′*′)/*用k來統(tǒng)計前部星號的個數(shù)*/if(k>n)/*如果k大于n,則使p的前部保留n個星號,其后的字符依次存入數(shù)組a中*/{a[i]=*(p+k-n);}/*在字符串最后加上結(jié)束標識位*/}}46編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。voidfun(inta,intb,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ù)intflag=1;elseif(*p==′+′)/*正數(shù)時置flag為1]}returnn*flag;}48編寫函數(shù)fun,其功能是:求Fibonacci數(shù)列中大于t的最F(n)=F(n-1)+F(n-2)例如,當t=1000時,函數(shù)值為1597。intfun(intt){dof=f0+f1;f0=f1;f1=f;}while(f<t);returnf;}49學生的記錄由學號和成績組成,N名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把低于平均分的學生數(shù)據(jù)放入b所指的數(shù)組中,低于平均分的學生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把低于平均分的學生數(shù)據(jù)放入b所指的數(shù)組中,低于平均分的學生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回50編寫函數(shù)fun,其功能是:將ss所指字符串中所有奇數(shù)位上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入"abc4EFg",則應(yīng)輸出"aBc4EFg"voidfun(char*ss){inti;s中所有下標為奇數(shù)位置的字母轉(zhuǎn)換為大寫*/if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′)}51編寫函數(shù)fun,其功能是:將a、b中的兩個兩位數(shù)正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是:將a中的十位和個位數(shù)依次放在變量c的千位和十位上,b中的十位和個位數(shù)依次在變量c的個位和百位上。cvoidfun(inta,intb,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****A*BC*DEF*G****;若n的值為7,則字符串中的內(nèi)容仍寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a,intn){char*p,*t;p=t=a;while(*t)while(*t==′*′)if(k>n){while(*p&&p<t+n+1){}}}53函數(shù)fun的功能是:將s所指字符串中除下標為偶數(shù)同時ASCII碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t所指的數(shù)組中。中字符A的ASCII碼值為奇數(shù),因此應(yīng)當刪除;其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此也應(yīng)當刪除;字符2的ASCII碼值為偶數(shù),但在數(shù)組中的下標為奇數(shù),因此不應(yīng)當刪除,其它依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是"246"。voidfun(char*s,chart[])}if(i%2==0&&s[i]%2==0)/*將s所指字符串中下標和ASCII碼值都為偶數(shù)的字符放入數(shù)組t中*/t[j++]=s[i];/*在字符串最后加上結(jié)束標識*/}54函數(shù)fun的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。ab該函數(shù)后c=4152。voidfun(inta,intb,long*c){*c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;記錄由學號和成績組成,N名學生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把指定分數(shù)范圍內(nèi)的學生數(shù)據(jù)放在b所指的數(shù)組中,分數(shù)范圍內(nèi)的學生人數(shù)由函數(shù)值返回。例如,輸入的分數(shù)是6069,則應(yīng)當把分數(shù)在60~69的學生數(shù)據(jù)輸出,包含60分和69分的學生數(shù)據(jù)。主函數(shù)中把60放在low中,把69放在heigh中。intfun(STREC*a,STREC*b,intl,inth){學生記錄存于結(jié)構(gòu)體數(shù)組b中*/b[j++]=a[i];}56請編寫一個函數(shù)intfun(int*s,intt,int*k),用來求出數(shù)組的最大元素在數(shù)組中的下標并存放在k所指向的存儲單元876675896101301401980431451777則輸出結(jié)果為6,980。intfun(int*s,intt,int*k){inti;for(i=0;i<t;i++)ifsksiki數(shù)組的最大元素,把該元素的下標賦給k所指的數(shù)*/}57請編寫函數(shù)fun,其功能是:計算并輸出當x<0.97時,如例如,若主函數(shù)從鍵盤給x輸入0.21后,則輸出為S=1.100000。xndoublefun(doublex){{s0=s1;sum+=s0;t*=n;p*=(0.5-n+1)*x;s1=p/t;}while(fabs(s1-s0)>=1e-6);returnsum;}58編寫函數(shù)fun,它的功能是:根據(jù)以下公式求p的值,結(jié)果作為函數(shù)值返回。m與n為兩個正數(shù)且要求m>n。floatfun(intm,intn){inti;doublep=1.0;p=p/i;returnp;}59請編寫函數(shù)fun,函數(shù)的功能是:求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。intfun(char*str)intfun(inta[M][N]){for(i=0;i<M;i++)元素*/returnsum;}60請編寫函數(shù)fun,該函數(shù)的功能是:判斷字符串是否為回文,若是則函數(shù)返回1,主函數(shù)中輸出"YES",否則返回0,主函數(shù)中輸出"NO"?;匚氖侵疙樧x和倒讀都一樣的字符串。{char*p=str;while(*p){}else/*不同,直接跳出循環(huán)*/{fg=0;break;}returnfg;}61編寫函數(shù)intfun(intlim,intaa[MAX]),該函數(shù)的功能是求出小于或等于lim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素數(shù)的個數(shù)。intfun(intlim,intaa[MAX]){for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數(shù)*/if(i%j==0)break;if(j>=i)}}62請編一個函數(shù)fun(char*s),該函數(shù)的功能是把字符串中的例如,字符串中原有的字符串為abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為gfedcba。voidfun(char*s){charch;while(i<(n+1)/2){ch=s[i];s[i]=s[m];s[m]=ch;}}63編寫函數(shù)fun,它的功能是:求n以內(nèi)(不包括n)同時能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返doublefun(intn){doubles=0.0;inti;for(i=0;i<n;i++)/*從0~n中找到既能被5整除同時又能被11整除的數(shù),并將這些數(shù)求和*/if(i%5==0&&i%11==0)s=s+i;returns;}64編寫一個函數(shù),從傳入的num個字符中找出最長的一個輸入的標志)。char*fun(char(*a)[81],intnum,char*max){inti=0;max=a[0];for(i=0;i<num;i++)/*找出最長的一個字符串*/if(strlen(max)<strlen(a[i]))max=a[i];}65編寫一個函數(shù),該函數(shù)可以統(tǒng)計一個長度為2的字符串在asasdfgasdaszx67asdmklo,子字符串為as,則應(yīng)當輸出6。intfun(char*str,char*substr){j1,如此循環(huán)*/if(str[i]==substr[0]&&str[i+1]==substr[1])returnj;/*返回子字符串在主字符串中出現(xiàn)的次數(shù)*/}66請編寫函數(shù)fun,對長度為7個字符的字符串,除首、尾字符外,將其余5個字符按ASCII碼值升序排列。例如,原來的字符串為Bdsihad,則排序后輸出為Badhisd。voidfun(char*s,intnum)inti,j;i環(huán)依次取得字符串中的字符*/for(j=i+1;j<num-1;j++)/*將字符與其后的每個字符比較*/if(s[i]>s[j])/*如果后面字符的ASCII碼值小于該字符的ASCII碼值*/{t=s[i];/*則交換這兩個字符*/s[i]=s[j];s[j]=t;}}67請編寫函數(shù)fun,該函數(shù)的功能是:計算并輸出例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S=534.188884。doublefun(intn){inti;}returns;}68請編寫一個函數(shù)fun,它的功能是:計算并輸出給定整數(shù)例如,若主函數(shù)從鍵盤給n輸入的值為856,則輸出為sumintfun(intn){ints=0,i;if(n%i==0)s+=i;returns;}組中的字符數(shù)據(jù),按列的順序依此放到一個字符串中。例如,若二維數(shù)組中的數(shù)據(jù)為:WWWWSSSSHHHH{{foriiNi一個字符串b[k++]=s[j][i];}70請編寫函數(shù)fun,它的功能是:計算并輸出n(包括n)以內(nèi)所有能被5或9整除的自然數(shù)的倒數(shù)之和。例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為s=0.583333。doublefun(intn)397inti;doublesum=0.0;ifii0)returnsum;}71程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][N],intn),該函數(shù)的功能是:使數(shù)組左下半三角元素中的值乘以n。例如,若n的值為3,a數(shù)組197a=238456則返回主程序后a數(shù)組中的值應(yīng)為:為奇數(shù)*/if(x%i==0)*n=j(luò);/*將能整除x的數(shù)存入數(shù)組pp中*/pp[j++]=i;/*傳回滿足條件的數(shù)的個數(shù)*/}73請編寫函數(shù)fun,其功能是:計算并輸出3到n之間所有素數(shù)的平方根之和。例如,若主函數(shù)從鍵盤給n輸入100后,則輸出為sum=148.874270。n大于100。部分源程序在文件PROG1.C中。doublefun(intn){doubles=0.0;for(m=3;m<=n;m++){k=sqrt(m);if(m%i==0)break;if(i>=k+1)s+=sqrt(m);}returns;}74請編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)計一行字符串中單詞的個數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間有若干個空格隔開,一行的開始沒有空格。intfun(char*s){intfun(inta[],intn)/*如果一個字母的下一個字符為空格或者結(jié)束標記,則表示一個單詞結(jié)束*/returnj;/*返回單詞個數(shù)*/}75請編寫函數(shù)fun,該函數(shù)的功能是:刪除一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。例如,若一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。{if(a[j-1]?。絘[i])/*若該數(shù)與前一個數(shù)不相同,則要保留returnj;a[j++]=a[i];/*返回不同數(shù)的個數(shù)*/}值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所例如,若s所指字符串中的內(nèi)容為ABCDEFG12345,其中字符B的ASCII碼值為偶數(shù)、…、字符2的ASCII碼值為偶數(shù)、…,都應(yīng)當刪除,其他依此類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG135。voidfun(char*s,chart[]){符依次存入數(shù)組t中*/if(*s%2==1)t[i++]=*s;/*在字符串的末尾加上串結(jié)束符*/}doublefun(intn){inti;}returns;}組中的數(shù)據(jù),按列的順序依此放到一維數(shù)組中。一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)是:334455334455334455334455voidfun(int(*s)[10],int*b,int*n,intmm,intnn)inti=0;{for(j=0;j<nn;j++)/*將二位數(shù)組中的數(shù)據(jù)按列的順序依次放入一維數(shù)組中*/for(i=0;i<mm;i++){b[*n]=*(*(s+i)+j);}}79請編寫一個函數(shù),用來刪除字符串中的所有空格。例如,輸入asdafaaz67,則輸出為asdafaaz67voidfun(char*str){char*p=str;while(*p){if(*p?。?')/*刪除空格*/{str[i]=*p;}}}80請編寫一個函數(shù)voidfun(intm,intk,intxx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入所指的數(shù)組例如,若輸入17,5,則應(yīng)輸出19,23,29,31,37。voidfun(intm,intk,intxx[]){forimnnkim的素數(shù),循環(huán)k次即找出緊靠m的k個素數(shù)*/跳出此循環(huán),判斷下一個數(shù)*/if(i%j==0)break;if(j>=i)/*如果是素數(shù),放入數(shù)組xx中*/xx[n++]=i;}}81請編寫一個函數(shù)fun,它的功能是:將ss所指字符串中所有下標為奇數(shù)位置的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入abc4Efg,則應(yīng)輸出aBc4EFgvoidfun(char*ss){inti;s中所有下標為奇數(shù)位置的字母轉(zhuǎn)換為大寫*/if(i%2==1&&ss[i]>=′a′&&ss[i]<=′z′)}82下列程序定義了N×N的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的0127919745238314568259141則返回主程序后s的值應(yīng)為3.375。doublefun(intw[][N]){doubleav=0.0;for(i=0;i<N;i++){av=av+w[i][j];/*將周邊元素求和*/}}83請編一個函數(shù)voidfun(inttt[M][N],intpp[N]),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依此放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主voidfun(inttt[M][N],intpp[N]){{tjif(tt[i][j]>max)/*如果各列中的其他元素比最大值大,則將這個更大的元素看作當前該列中最大元素*/max=tt[i][j];pp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/}}84請編寫函數(shù)fun,它的功能是計算下列級數(shù)和,和值由函例如,當n=10,x=0.3時,函數(shù)值為1.34985985doublefun(doublex,intn){inti;}returns;}85請編寫函數(shù)fun,其功能是計算并輸出如下多項式的值:Sn=l+1/1?。?/2?。?/3?。?/4?。?/n!例如,若主函數(shù)從鍵盤給n輸入15,則輸出為S=2.718282。doublefun(intn){{t=1.0;t*=j(luò);}returnsn;}86請編寫函數(shù)fun,其功能是計算并輸出如下多項式的值:Sn=l+1/1?。?/2?。?/3?。?/4?。?/n!例如,若主函數(shù)從鍵盤給n輸入15,則輸出為S=2.718282。doublefun(intn){{t=1.0;t*=j(luò);}returnsn;}記錄由學號和學習成績構(gòu)成,N名學生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun,該函數(shù)的功能是:個最低分)。已給出函數(shù)的首部,請完成該函數(shù)。fun(STUa[],STU*s){inti;*s=a[0];/*先認為第1個值最小*//*如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個值更小的則賦給*s*/*s=a[i];}88請編寫函數(shù)fun,其功能是:計算并輸出下列多項式值,S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)inti;doublefun(intn){inti;doubles=0.0;s=s+(1.0/(2]/*計算S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)*/returns;}S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)doublefun(intn){doubles=0.0;s=s+1.0/(i*(i+1));/*求級數(shù)的和*/returns;}90已知學生的記錄由學號和學習成績構(gòu)成,N名學生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun,該函數(shù)的功能是:個最高分)。已給出函數(shù)的首部,請完成該函數(shù)。fun(STUa[],STU*s){inti;*s=a[0];for(i=0;i<N;i++)/*找出成績最高的學生記錄*/*s=a[i];}91請編寫一個函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計在tt字符az數(shù),并依此放在pp所指例如,當輸入字符串a(chǎn)bcdefghabcdeabc后,程序的輸出結(jié)果voidfun(char*tt,intpp[]){inti;if(*tt>=′a′&&*tt<=′z′)pp[*tt-′a′]++;/*將tt字符串中′a′到′z′26個字母各自出現(xiàn)的次數(shù),依次放在pp數(shù)組中,任一個小寫字母減去′a′后所得結(jié)果正好是它對應(yīng)的下標*/}92請編一個函數(shù)floatfun(doubleh),函數(shù)的功能是:對變量h中的值保留兩位小數(shù),并對第三位進行四舍五入(規(guī)定h中的值為正數(shù))。則函數(shù)返回8.33。floatfun(floath){longt;t=(h*1000+5)/10;/*單精度數(shù)h乘以1000后再加5,相當于對h中的第三位小數(shù)進行四舍五入,除以10后將其賦給一個長整型數(shù)時就把第三位小數(shù)后的數(shù)全部截去*/}returnsum;93請編寫函數(shù)fun,其功能是:計算并輸出給定數(shù)組(長度為9)中,每相鄰兩個元素的平均值的平方根之和。doublefun(doublex[9]){if(j<=8){sum+=sqrt((x[i]+x[i+1])/2.0);}}94請編寫函數(shù)fun,其功能是:將s所指字符串中除了下標為奇數(shù)、同時ASCII值為偶數(shù)的字符外,其余的全部刪

溫馨提示

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

評論

0/150

提交評論