二級C語言程序設(shè)計題_第1頁
二級C語言程序設(shè)計題_第2頁
二級C語言程序設(shè)計題_第3頁
二級C語言程序設(shè)計題_第4頁
二級C語言程序設(shè)計題_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

二級C語言程序設(shè)計題C語言程序設(shè)計請編寫函數(shù)fun,其功能是:找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。intfun(inta[][M]){inti,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];returnmax;}編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項小于0.0005時停止迭代)。程序運行后,若輸入精度0.0005,則程序應(yīng)輸出為3.14…。doublefun(doubleeps)被7或11整除、但不能同時被7和11整除的所有整數(shù),并放入數(shù)組a中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEFG。voidfun(char*a){inti,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i];/*若不是要刪除的字符'*'則留下*/a[j]='\0';}規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:將字符串中的前導(dǎo)*號全部刪除,中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為:"*******A*BC*DEF*G****",刪除后字符串中的內(nèi)容應(yīng)當(dāng)是:"A*BC*DEF*G****"。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a){char*p=a;while(*p=='*')p++;/*指針p指向字符串第一個字母*/for(;*p!='\0';p++,a++)*a=*p;/*從第一個字母開始,其后的字符都放入指針a所指的字符串中*/*a='\0';/*在字符串最后加上字符串結(jié)束標(biāo)識*/}假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了尾部的*號之外,將字符中的其它的*號全部刪除。形參p已指向字符串中最后的一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG*******。voidfun(char*a,char*p){char*t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0';/*在字符串最后加上字符串結(jié)束標(biāo)識*/}規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(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"。voidfun(char*a,intn,inth,inte){inti,j=0;for(i=h;i<n-e;i++)/*第一個字母和最后一個字母之間的字符全不刪除*/a[j++]=a[i];a[j]='\0';/*在字符串最后加上結(jié)束標(biāo)識*/}規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的*號之外,將串中其它*號全部刪除。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:****ABCDEFG。voidfun(char*a){inti=0;char*p=a;while(*p&&*p=='*'){ a[i]=*p; i++; p++;}while(*p){ if(*p!='*') {a[i]=*p;i++;} p++;}a[i]='\0';}規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:將字符串尾部的*號全部刪除,前面和中間的*號不動。例如,字符串中的內(nèi)容為:"****A*BC*DEF*G*******",刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:"****A*BC*DEF*G"。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a){while(*a!='\0')a++;a--;/*指針a指向字符串的尾部*/while(*a=='*')a--;/*指針a指向最后一個字母*/*(a+1)='\0';/*在字符串最后加上結(jié)束標(biāo)志符*/}規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:將字符串中的前導(dǎo)*號全部移到字符串的尾部。例如,字符串中的內(nèi)容為:"*******A*BC*DEF*G****",移動后,字符串中的內(nèi)容應(yīng)當(dāng)是:"A*BC*DEF*G***********"。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。voidfun(char*a){inti=0,n=0;char*p;p=a;while(*p=='*')/*判斷*p是否是*號,并統(tǒng)計*號的個數(shù)*/{n++;p++;}while(*p)/*將前導(dǎo)*號后的字符傳遞給a*/{a[i]=*p;i++;p++;}while(n!=0){a[i]='*';i++;n--;}a[i]='\0';}編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串的后面。例如,分別輸入下面兩個字符串:FirstString--SecondString程序輸出:FirstString--SecondStringvoidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i]!='\0';i++);for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];p1[i]='\0';}某學(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。voidfun(STREC*a){inti;a->ave=0.0;for(i=0;i<N;i++)a->ave=a->ave+a->s[i];/*求各門成績的總和*/a->ave/=N;/*求平均分*/}N名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。例如,若學(xué)生的成績是:8576698591726487,則平均分應(yīng)當(dāng)是:78.625。doublefun(STREC*h){doubleave=0.0;STREC*p=h->next;while(p!=NULL){ave=ave+p->s;p=p->next;}returnave/N;}編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中,非素數(shù)的個數(shù)通過k返回。例如,若輸入17,則應(yīng)輸出:46891012141516。voidfun(intm,int*k,intxx[]){ inti,j,n=0; for(i=4;i<m;i++)/*找出大于1小于整數(shù)m的非素數(shù)*/ {for(j=2;j<i;j++) if(i%j==0)break; if(j<i)xx[n++]=i; } *k=n;/*返回非素數(shù)的個數(shù)*/}編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。intfun(char*ss,charc){inti=0;for(;*ss!='\0';ss++)if(*ss==c)i++;/*求出ss所指字符串中指定字符的個數(shù)*/returni;}編寫函數(shù)fun,其功能是:計算n門課程的平均分,結(jié)果作為函數(shù)值返回。例如:若有5門課程的成績是:90.5,72,80,61.5,55,則函數(shù)的值為:71.80。floatfun(float*a,intn){inti;floatav=0.0;for(i=0;i<n;i++)/*求分?jǐn)?shù)的總和*/av=av+a[i];return(av/n);/*返回平均值*/}學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。注意:分?jǐn)?shù)最高的學(xué)生可能不止一個,函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù)。intfun(STREC*a,STREC*b){inti,j=0,max=a[0].s;/*找出最大值*/for(i=0;i<N;i++)if(max<a[i].s)max=a[i].s;for(i=0;i<N;i++)if(max==a[i].s)b[j++]=a[i];/*找出成績與max相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/returnj;/*返回最高成績的學(xué)生人數(shù)*/}編寫函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計在tt所指的字符串中'a'到'z'26個小寫字母各自出現(xiàn)的次數(shù),并依次放在pp所指的數(shù)組中。例如,當(dāng)輸入字符串a(chǎn)bcdefgabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000voidfun(char*tt,intpp[]){inti;for(i=0;i<26;i++)pp[i]=0;/*初始化pp數(shù)組各元素為0*/for(;*tt!='\0';tt++)if(*tt>='a'&&*tt<='z')pp[*tt-'a']++;}編寫函數(shù)fun,其功能是:比較字符串的長度,(不得使用C語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符長度相同,則返回第一個字符串。例如,輸入beijing<CR>shanghai<CR>(<CR>為回車鍵),函數(shù)將返回shanghai。char*fun(char*s,char*t){inti,j;for(i=0;s[i]!='\0';i++);/*求字符串的長度*/for(j=0;t[j]!='\0';j++);if(i<=j)/*比較兩個字符串的長度*/returnt;/*函數(shù)返回較長的字符串,若兩個字符串長度相等,則返回第1個字符串*/elsereturns;}學(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)。STRECfun(STREC*a,char*b){inti;STRECstr={"\0",-1};/*若沒找到指定的學(xué)號,在結(jié)構(gòu)體變量中給學(xué)號置空串,給成績置-1*/for(i=0;i<N;i++)if(strcmp(a[i].num,b)==0)/*找到指定學(xué)號的學(xué)生數(shù)據(jù)*/str=a[i];returnstr;/*返回學(xué)生記錄*/}函數(shù)fun的功能是:將s所指字符串中除下標(biāo)為偶數(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"。voidfun(char*s,chart[]){inti,j=0;for(i=0;s[i]!='\0';i++)if(i%2==0&&s[i]%2==0)/*將s所指字符串中下標(biāo)和ASCII碼值都為偶數(shù)的字符放入數(shù)組t中*/t[j++]=s[i];t[j]='\0';/*在字符串最后加上結(jié)束標(biāo)識*/}編寫函數(shù)fun,其功能是:利用下面的簡單迭代方法求方程cos(x)-x=0的一個實根。迭代步驟如下:(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。doublefun(){doublex0,x1;x1=0.0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);returnx1;}學(xué)生記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組中,請編寫函數(shù)fun,其功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放入b所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個,函數(shù)返回分?jǐn)?shù)最低的學(xué)生人數(shù)。intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s;/*找出最小值*/for(i=0;i<N;i++)if(min==a[i].s)b[j++]=a[i];/*找出成績與min相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/returnj;}編寫函數(shù)fun,其功能是計算:s作為函數(shù)值返回。在C語言中可調(diào)用log(n)函數(shù)求ln(n)。log函數(shù)的引用說明為:doublelog(doublex)。例如,若m的值為20,則fun函數(shù)值為6.506583。doublefun(intm){inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i);/*計算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/returnsqrt(s);/*對s求平方根并返回*/}函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,剩余字符形成的新串放在t所指數(shù)組中。例如,當(dāng)s所指字符串中的內(nèi)容為"ABCDEFGHIJK"時,在t所指數(shù)組中的內(nèi)容應(yīng)是:"BDFHJ"。voidfun(char*s,chart[]){inti,j=0,k=strlen(s);/*k為字符串的長度*/for(i=1;i<k;i=i+2)/*將s所指字符串中下標(biāo)為奇數(shù)的字符存入t所指字符串中*/t[j++]=s[i];t[j]='\0';}編寫函數(shù)fun,其功能是:將a、b中的兩個兩位正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是:將a中的十位和個位數(shù)依次放在變量c的百位和個位上,b中的十位和個位數(shù)依次放在變量c的十位和千位上。例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后c=2415。voidfun(inta,intb,long*c){*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;}學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:按分?jǐn)?shù)降序排列學(xué)生的記錄,高分在前,低分在后。voidfun(STRECa[]){inti,j;STRECt;for(i=1;i<N;i++)/*用冒泡法進(jìn)行排序,進(jìn)行N-1次比較*/for(j=0;j<N-1;j++)/*在每一次比較中要進(jìn)行N-1次兩兩比較*/if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;}/*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/}學(xué)生的記錄由學(xué)號和成績組成。N名學(xué)生的數(shù)據(jù)已放入主函數(shù)中的結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,其功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。doublefun(STREC*a,STREC*b,int*n){inti;doubleav=0.0;*n=0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];*n=*n+1;}/*將高于等于平均分的學(xué)生存入b所指存儲單元中,并統(tǒng)計人數(shù)*/returnav;/*返回平均分*/}編寫函數(shù)fun,其功能是:將1到m之間(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,并通過n返回這些數(shù)的個數(shù)。例如,若傳給m的值為50,則程序輸出:711142122283335424449voidfun(intm,int*a,int*n){inti,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中*/a[j++]=i;*n=j;/*返回這些數(shù)的個數(shù)*/}N名學(xué)生的成績已在主函數(shù)中放入一個帶有頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:找出學(xué)生的最高分,并由函數(shù)值返回。doublefun(STREC*h){doublemax=h->s;while(h!=NULL)/*通過循環(huán)找到最高分?jǐn)?shù)*/{if(max<h->s)max=h->s;h=h->next;}returnmax;}請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值及其所在的下標(biāo),并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。voidfun(inta[],intn,int*max,int*d){inti;*max=a[0];*d=0;for(i=0;i<n;i++)/*將最大的元素放入指針max所指的單元,最大元素的下標(biāo)放入指針d所指的單元*/if(*max<a[i]){*max=a[i];*d=i;}}編寫函數(shù)fun,其功能是:將s所指字符串中

溫馨提示

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

最新文檔

評論

0/150

提交評論