二級C上機考試范圍_第1頁
二級C上機考試范圍_第2頁
二級C上機考試范圍_第3頁
二級C上機考試范圍_第4頁
免費預覽已結束,剩余97頁可下載查看

下載本文檔

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

文檔簡介

全國計算機等級考試上機考試習題集(二級C語言程序設計)地址:機電技術學院南大門華聯超市3樓(欣科培訓)電話 .立4巨工口日甫 于平均分的人數作為函數值返回,將底于平均分的分數放弟^一*部刀編程就 在數組below中。1.m個人的成績存在數組score中,函數fun的功能是將底如:當score中的數據為10,20,30,40,50,60,70,80,90時,函數返回的人數為4,bleow中的數據為10,20,30,40#include<conio.h>#include<stdio.h>#include<string.h>intfun(intscore[],intm,intbelow口)main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};clrscr();n=fun(score,9,below);printf(^people=%d\n*,n);printf(*\nBelowtheaveragescorearefor(i=0;i<n;i++)printf(*%dbelow[i]);}答案inti,j=0,s=0;for(i=0;i<m;i++)s+=score[i];s/=m;for(i=0;i<m;i++)if(score[i]<s)below[j++]=score[i];returnj2.函數fun求1到1000之內能被7或11、當不能同時被7和11整除的所有整數、并將它們放在數組a中,通過n返回這些個數#include<conio.h>^include<stdio.h>voidfun(int*a,int*n)(}main(){intaa[1000],n,k;clrscr();fun(aa,&n);for(k=0;k<n;k++)if((k+l)%10=0)printf("\n");elseprintfC"%5d,aa[k]);}答案inti,j=0;for(i=l;i<1000;i++)if(i%7==0&&i%ll!=0||i%ll==0&&i%7!=0)a[j++]=i;*n=j;.編寫函數,求出能整除x且不是偶數的各整數,按從小到大的順序放在數組中,這些除數的個數通過形參n返回如:若x中的值為30,則有4個數符合要求,它們是1,3,5,15#include<conio.h>#include<stdio.h>voidfun(intx,intpp[],int*n)()main(){intx,aa[1000],n,i;clrscr();printf(*\nPleaseenteranintegernumber:\nzz);scanf&x);fun(x,aa,&n);for(i=0;i<n;i++)printf(*%d",aa[i]);printf("\n");}答案inti=l;for(*n=0;i<=x;i++)if(x%i=04&i%2==l)pp[*n++]=i;.編寫函數,統計在tt字符中到"z"26個字母出現的個數,并放在pp所指的數組中如:輸入abcdefgabcdeabc后,程序輸出的結果應該為:33322110000000000000000000include<conio.h>include<stdio.h>voidfun(char*tt,intpp[])main(){charaa[1000];intbb[26],k,n;clrscr();printf(*\nPleaseenteracharstring:");scanfaa);fun(aa,bb);for(k=0;k<26;k++)printfbb[k]);printfC\nO;}答案inti;for(i=0;i<26;i++)pp[i]=0;for(i=0;tt[i];i++)pp[tt[i]'a']++;printf(*Thenewstringis:%s\n”,str2);;5.編寫函數,將大于整數m且緊靠m的k個素數放到xx數組中如:若輸入:17,5則應輸出:19,23,29,31,37#include<conio.h>#include<stdio.h>voidfun(intm,intk,intxx[]){)答案inti,j=0;for(i=0;a[i];i++){if(i<n)b[j++]=a[i];elseb[j++]=a[i+l];)}main(){ intm,n,zz[1000];clrscr();printf(*\nPleaseentertwointegers:*);scanf("%d,%d",&m,&n);fun(m,n,zz);for(m=0;m<n;m++)printf(*%d”,zz[m]);printf("\n");}答案inti,j,n=0;for(i=m+l;n<k;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j=i)xx[n++]=i;}7.編寫函數,求數組中最大元素的下標,存放的k所指的存儲單元中如如67675896101301401980431451777,則輸出:6,980include<conio.h>include<stdio.h>voidfun(int*s,intt,int*k)(1main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;clrscr();fun(a,10,&k);printf(飛d,%d\n”,k,a[k]);}答案6.編寫函數,刪除一個字符串中指頂下標的字符,a指向原字符串,刪除后的字符串放在b字符串中如:輸入字符串World,然后輸入3,則刪除后的字符串為Wordinti,max;max=s[0];for(i=l;i<t;i++)if(max<s[i]){max=s[i];*k=i;}include<stdio.h>include<conio.h>defineLEN20voidfun(chara[],charb口,intn){8.編寫函數,計算s的值,s=l+l/(l+2)+l/(l+2+3)+……+1/(1+2+ +n)如:輸入n=ll,s的值為1.833333#include<conio.h>#include<stdio.h>}main(){charstr1[LEN],str2[LEN];intn;#include<string.h>floatfun(intn)(clrscr();printf("Enterthestring:\n/z);gets(strl);printf(*Enterthepositionofthestringdeleted:*);scanf&n);fun(strl,str2,n);)main(){intn;floats;clrscr();printf('\nPleaseenterN:");scanf &n);答案:答案:s=fun(n);printf(*Theresultis:%f\n”,s);}答案inti;doubles=0,t=0;for(i=l;i<=n;i++){t+=i;s+=l.0/t;}returns;9.編寫函數,求p的值,m和n是兩正整數,且m>n,p=m!/(n!*(m-n)!)如:輸入m=12,n=8時,p的結果為495.000000#include<conio.h>#include<stdio.h>floatfun(intm,intn)main(){clrscrO;printf("P=%f\n”,fun(12,8));}答案inti;doublea=l,b=l,c=l;for(i=l;i<=m;i++)a*=i;for(i=l;i<=n;i++)b*=i;for(i=l;i<=m-n;i++)c*=i;returna/(b*c);10.編寫函數,求cos(x)-x=0的一個實根X(n+l)=cos(Xn),步驟如下:⑴取xl初值為0.0; (2)x0=xl,把xl的值賦給x0;(3)xl=cos(x0),求出一個實根;(4)若x0-xl的絕對值小于0.000001,執行步驟(5),否則執行步驟⑵;(5)所求xl就是cos(x)-x=0的一個實根,作為函數值返回程序輸出結果Root=0.739085#include<conio.h>#include<math.h>#include<stdio.h>floatfun()(}main(){clrscrO;printf("Root二%f\n”,fun());floatxl=0,xO;do{x0=x1;xl=cos(xO);}while(fabs(x0-xl)>=0.000001);returnxl;11.編寫函數,使N*N的二維數組的左下半三角形全部置0,如:a數組為1,9,72,3,84,5,6返回主函數后a數組中的值為a數組為0,9,70,0,80,0,0ttinclude<stdio.h>ttinclude<conio.h>#include<stdlib.h>ttdefineN5voidfun(inta[][N])main(){inta[N][N],i,j;clrscrO;printf(z,*****Thearray*****\n*);for(i=0;i<N;i++)(for(j=0;j<N;j++){a[i][j]=rand()%10;printf("%4d",a[i][j]);}printf(〃\n〃);}fun(a);printf("THERESULT'n");for(i=0;i<N;i++)(for(j=0;j<N;j++)printf(*%4d*,a[i][j]);printf('\n");})答案inti,j;for(i=0;i<N;i++)for(j=0;j<=i:j++)a[i][j]=0;12.編寫函數,將N*N的二維數組周邊元素的平均值作為函數值返回給主函數s如:012799745a=2383156829141返回主函數后s的值為3.375include<stdio.h>include<conio.h>include<stdlib.h>^defineN5doublefun(intw[][N])main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1);inti,j;doubles;clrscr();printf(z,*****Thearray*****\n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf(*%4d*,a[i][j]);)printf('\n");)s=fun(a);printfC*****THERESULT*****\n");printf("Thesumis%lf\n,z,s);)答案inti,j;doubles;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==0||j==0||i==N-l||j==N-l)s+=a[i][j];s/=16;returns;.編寫函數,tt指向一個M行N列的二維數組,求出二維數組的每列最小值,依次放到PP所值的一維數組中^include<conio.h>#include<stdio.h>??defineM3#defineN4voidfun(inttt[M][N],intpp[N])main(){intt[M][N]={{22,45,56,30},{19,33,45,38},(20,22,66,40}};intp[N],i,j,k;clrscr();printf("Theoriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf(*%6d*,t[i][j]);printf(〃\n");}fun(t,p);printf('\nTheresultis:\n");for(k=0;k<N;k++)printf(〃%4d”,p[k]);printf('\n");)答案inti,j,min,k=0;for(j=0;j<N;j++){min=tt[0][j];{for(i=0;i<M;i++)if(min>tt[i][j])min=tt[i][j];}pp[k++]=min;).編寫函數,求二維數組周邊元素之和,作為函數值返回如:13579299946999813570 則函數的值為61#include<conio.h>ttinclude<stdio.h>ttdefineM4^defineN5intfun(inta[M][N])()main(){intaa[M][N]={{1,3,5,7,9),(2,9,9,9,4),{6,9,9,9,8),(1,3,5,7,0)):inti,j,y;clrscr();printf("Theoriginaldatais:\n");for(i=0;i<M;i++)[for(j=0;j<N;j++)printf(*%6d*,aa[i][j]);printf(*\n*);)y=fun(aa);printf("\nThesum:%d\n”,y);printf("\n"):)答案inti,j:for(i=0;i<N;i++)for(j=0;j<M;j++)if(i==0||j=0|Ii=N-l11j==M-l)s+=a[i][j];15.編寫函數,w是一個大于10的無符號的整數,若w是n(n>=2)位的整數,則函數求出w的后n-1位作為函數值返回如:w的值為5923,則函數的返回值為923,如:w的值為923,則函數的返回值為23,#include<conio.h>^include<stdio.h>unsignedfun(unsignedw)如:若h的值為8.32433,則函數返回8.32,如:若h的值為8.32533,則函數返回8.33,#include<stdio.h>ttinclude<conio.h>floatfun(floath)main()(floata;clrscr();printf("Entera:");scanf("%f",&a);printf("Theoriginaldatais:");printf("%f\n\n",a);printf("Theresult:%f\n〃,fun(a));}答案return(int)(h*100+0.5)/100.0017.編寫函數,將字符串中的內容逆置如:原字符串為abcdefg,則調用函數后,字符串中的內容為gfedcbattinclude<string.h>#include<conio.h>ttinclude<stdio.h>ttdefineN81voidfun(char*s)main(){unsignedx;clrscr();printf("Enteraunsignedintegernumber:”);scanf("%u",&x);printf("Theoriginaldatais:%u\n',x);if(x<10)printf("Dataerror!”);elseprintf("Theresult:%u\n”,fun(x));}答案if(w<100)returnw%10;elsereturnfun(w/10)*10+w%10;main(){chara[N];clrscr();printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printfC\n*);printf("Thestringaftermodified:");puts(a);}答案inti,j;chart;for(i=0,j=strlen(s)-l;i<j;i++,j一){t=a[i];a[i]=a[j];a[j]=t;}16.編寫函數,將變量h中的值保留2位小數,18.編寫函數,將矩陣轉置(行列互換)如:100200300 轉置后:100400700400500600 200500800700800900 300600900#include<stdio.h>#include<conio.h>intfun(intarray[3][3])main(){inti,j;intarray[3][3]={{100,200,300),{400,500,600),{700,800,900}};clrscr();for(i=0;i<3;i++)(for(j=0;j<3;j++)printf(*%7d*,array[i][j]);printf('\n");)fun(array);printf(""Convertedarray:\n");for(i=0;i<3;i++)(for(j=0;j<3;j++)printf(*%7d*,array[i][j]);printf("\n〃);)}答案inti,j,t;for(i=0;i<3;i++)for(j=0;j<i;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}.編寫函數,刪除字符串中指定的字符,同一字符大小寫按不同的字符處理如:輸入turbocandblrlandc++輸入字符n后,則輸出turborcadblrladc++#include<stdio.h>#include<conio.h>intfun(chars[],intc)mainO{staticcharstr口=“turbocandborlandc++”;charch;clrscr();printf("原始字符串:%s\n”,str);printf("輸入一個字符:");scanf&ch);fun(str,ch);printf("str[]=%s\n”,str);)答案inti,j=0;for(i=0;s[i];i++)if(s[i]!=c)s[j++]=s[i];s[j]=,\0J;.編寫函數,將小于或等于lim的所有的素數放在aa數組中,返回素數的個數#include<stdio.h>ttinclude<conio.h>#defineMAX100intfun(intlim,intaa[MAX])main(){intlimit,i,sum;intaa[MAX];clrscrO;printf("輸入一個整數”);scanfC%d”,&limit);sum=fun(limit,aa);for(i=0;i<sum;i++){if(i%10==0&&i!=0)printf(*\n*);printf("%5d”,aa[i]);))答案inti,n=0,j;for(i=2;i<=lim;i++)(for(j=2;j<i;j++)if(i%j==0)break;if(i==j)aa[n++]=i;)returnn;.編寫函數,對長度為7的字符串除首未,其余5個字符按降序排列如:字符串為CEAedca,則輸出為CedcEAattinclude<stdio.h>#include<ctype.h>ttinclude<conio.h>voidfun(char*s,intnum)main(){chars[10];printf("輸入7個字符的字符串:〃);gets(s);fun(s,7);printf('\n%s”,s);}答案inti,j;chart;for(i=l;i<5;i++)for(j=i+l;j<6;j++)if(s[i]<s[j]){s[i]=t;s[i]=s[j];s[j]=t;}.N名學生的成績在主函數中放入帶頭結點的鏈表中,h指向頭結點,編寫函數,找出最高分#include<stdio.h>#include<stdlib.h>^defineN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h)p=h->next;printf("head");do(printf(*->%2.Of”,p->s);p=p->next;}while(p!=0);printf('\n\n");)main()(doubles[N]={85,76,69,85,91,72,64,87},max;STREC*h;h=creat(s);outlist(h);max=fun(h);printf("max=%6.lf\n”,max);1答案doublemax=h->s;for(h=h->next;h;h=h->next)if(max<h->s)max=h->s;23.編寫函數,判斷字符串是否為回文數如:字符串LEVEL是回文數,123321是回文數ttinclude<stdio.h>ttdefineN80intfun(char*str)STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N){ q=(STREC*)malloc(sizeof(STREC));q->s=s[i];i++;p->next=q;P=q;)p->next=0;returnh;)outlist(STREC*h){STREC*p;main(){chars[N];printf("Enterastring:");gets(s);printf("\n\n");puts(s);if(fun(s))printf("YES'n");elseprintf(*N0\n");)答案inti,j;for(i=0;str[i+l];i++);for(j=0;j<i;j++,i-)if(str[i]!=str[j]))return0;elsereturn1;24.編寫函數,將一個數字字符串轉換為一個整數如:輸入字符"T234”,則轉換為整數T234#include<stdio.h>#include<string.h>longfun(char*p)(*n)/(3*5*7* *(2n+l))#include<stdio.h>#include<math.h>doublefun(doubleeps)(}main(){chars[6];longn;printf(*Enterastring:\n/z);gets(s);n=fun(s);printf(*%ld\n*,n);}答案inti=0,j=l,s=0;if(p[O]=,->){j=-l;i=l;}for(i;p[i];i++)s=s*10+p[i]」0';returns*j;)main(){doublex;printf(zzInputeps:");scanf(*%lf*,&x);printfC*\neps=%lf,PI=%lf\n”,x,fun(x));)答案doubles=l,a=l,b=l,i;for(i=l;a/b>=eps;i++){a*=i;b*=2*i+l;s+=a/b;}return2*s;27.編寫函數,求出1到m之間能被7或11整除的所有整數,通過n返回這些數個數如:輸入m為50,則輸出711142122283335424425.編寫函數,比較兩個字符串長度,返回較長的字符串,若兩個字符串長度相同返回第一個字符串如:輸入beijingshanghai函數返回shanghai^include<stdio.h>49#include<conio.h>#include<stdio.h>ttdefineM100char*fun(char*s,char*t)(voidfun(intm,int*a,int*n)(}main(){chara[20],b[10],*p,*q;inti;printf("Input1thstring:*);gets(a);printf(*Input2thstring:");gets(b);printf("%s\n”,fun(a,b));)答案inti,j;for(i=0;s[i];i++);for(j=0;t[j];j++);if(i>=j)returns;elsereturnt;)main(){intaa[M],n,k;clrscr();fun(50,aa,&n);for(k=0;k<n;k++)if((k+l)%20=0)printf('\n");elseprintf("%4d",aa[k]);printf('\n");}答案inti=l,j=0;for(i=l;i<=m;i++)if(i%7!=0||i%ll==0&&i%7=0||i%U!=0)a[j-H-]=i;*n=j;26.編寫函數,根據公式求n的值,耍求滿足精度0.0005,即某項小于0.0005時停止s=l+1/3+1*2/3*5+1*2*3/*5*7+ + (1*2*3* 28.編寫函數,找出一維整型數組元素中最大的值和它所在的下標,最大值和它的下標通過形參返回,數組元素中的值在主函數中賦于主函數中x是數組名,n是x中的數據個數,max存放最大值,index存放最大值的下標#include<stdlib.h>#include<stdio.h>voidfun(inta[],intn,int*max,int*d)main(){inti,x[20],max,index,n=10;randomize();for(i=0;i<n;i++)(x[i]=rand()%50;printfx[i]);)printfC\n");fun(x,n,&max,&index);printf("Max=%5d,Index=%4d\nzz,max,index);}答案inti;*max=a[0];for(i=0;i<n;i++)if(a[i]>*max){*max=a[i];*d=i;}29.編寫函數,將ss所指字符串中所有下標為奇數位置t的字母轉換為大寫如:若輸入abc4EFg,則輸出aBc4EFg^include<conio.h>^include<stdio.h>ttinclude<string.h>voidfun(char*ss)main(){chartt[81];printf(*\nPleaseenteranstringwithin80characters:\nz,);gets(tt);printf(*\n\nAfterchanging,thestring\n\%s\n,z,tt);fun(tt);printf("\nbecomes\n\%s\nzz,tt);)答案inti;for(i=0;ss[i];i++)if(ss[i]>,a&&ss[i]<'z&&i%2==l)ss[i]-=32;.編寫函數,求出2*M整型二維數組中最大元素的值,將此值作為函數值返回#defineM4ttinclude<stdio.h>fun(inta[][M])main(){intarr[2][M]={5,8,3,45,76,-4,12,82);printf("max二%d\n”,fun(arr));)答案inti,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(a[i][j]>max)max=a[i][j];returnmax;.編寫函數,將s所指字符串中除了下標為偶數,同時ASCII值為偶數的字符外,其余全部刪除如:s所指的字符串中的內容為ABCDEFG123456,刪除后的t數組中的內容為246^include<conio.h>??include<stdio.h>itinclude<string.h>voidfun(char*s,chart[])(}main(){chars[100],t[100];clrscrO;printf(^XnPleaseenterstringS:");scanf('%s”,s);fun(s,t);printf(*\nTheresultis:%s\n',t);}答案inti,j=0;for(i=0;s[i];i++)if(i%2==0&&s[i]%2=0)t[j++]=s[i];.編寫函數,將s所指字符串中除了下標為奇數、同時ASCII值為奇數的字符外,其余字符全部刪除,剩余的字符放在t所指數組中#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[])(#include<stdio.h>#defineN16typedefstruct{charnum[10];ints;}STREC;)main(){chars[100],t[100];clrscr();printf(*\nPleaseenterstringS:");scanf('%s”,s);fun(s,t);printf("\nTheresultis:%s\n',t);}答案inti,j=0;intfun(STREC*a,STREC*b)()main(){STREC s[N]= {{"GA05",85}, {"GA03",76},{"GA02",69},{"GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{"GA06",87},{"GA015”,85}, {"GA013”,91}, {"GA012",64},{"GA014”,91},for(i=0;s[i];i++)if(i%2==l&&s[i]%2=l)t[j++]=s[i];{"GA011”,77}, {"GA017”,64}, {"GA018”,64},{"GA016”,72}};STRECh[N];33.編寫函數,若字符串尾部的*多于n個,則將多于的*刪除,若少于等于n個則什么也不做如:字符串中的內容為****A*BC*DEF*G*******,若n的值為4?則刪除后的字符串為***A*BC*DEF*G****#include<stdio.h>^include<conio.h>voidfun(char*a,intn)(inti,n;FILE*out;n=fun(s,h);printf("The%dhighestscore:\n',n);for(i=0;i<n;i++)printf("%s%4d\n”,h[i].num,h[i].s);printf("\n〃);out=fopen(〃outl5.dal","w");fprintf(out,"%d\n”,n);}main(){chars[81];intn;printf("Enterastring:\n");gets(s);printf("Entern:");scanf&n);fun(s,n);printf("Thestringafterdeleted:\n");puts(s);)答案inti,j=0;for(i=0;i<n;i++)fprintf(out,"%4d\n”,h[i].s);fclose(out);}答案inti,max=a[0].s,j=0;for(i=0;i<N;i++)if(a[i].s>max)max=a[i].s;for(i=0;i<N;i++)if(max=a[i].s)j++;returnj;35.編寫函數,用來刪除字符串中空格如:輸入asdafaaz67,則輸出asdafaaz67#include<stdio.h>#include<ctype.h>for(i=0;a[i+l];i++);for(;a[i]=**;i—j++)if(j>n)a[i+n+l]=\0';#include<conio.h>voidfun(char*str)34.N名學生的數據J在主函數中放入結構體數組中,編寫函數,把分數最高的學生數據放在h所指的數組中,最高分不只一個,函數返回最高分的個數)main()charnum[10]; returnj;charnum[10]; returnj;doubles[N];{charstr[81];intn;clrscr();printf(*Inputastring:*);gets(str);puts(str);fun(str);printf("***str:%s\n”,str);)答案inti,j=0;for(i=O;str[i];i++)if(str[i]!='')str[j++]=str[i];str[j]=\0';36.編寫函數,將字符串中前導*移到尾部如:原字符串中的內容為********A*BODEF*G****則刪除后的字符串為A*BC*DEF*G************#include<stdio.h>^include<conio.h>voidfun(char*a)main(){chars[81],*p;printf("Enterastring:\n,z);gets(s);fun(s);printf("Thestringaftermoveing:\n");puts(s);}答案inti;while(a[0]==,*'){for(i=0;a[i+l];i++)a[i]=a[i+l];a[i]= ;.某學生的記錄由學號、8門課程的成績和平均分組成,學號和8門課程的成績在主函數中給出,編寫函數,求出該學生的平均分放在記錄ave中。如:某學生的成績是85.5,76,69.5,85,91,72,64.5,87.5。則平均分為78.875#include<stdio.h>itdefineN8typedefstructdoubleave;}STREC;voidfun()(}main(){STRECs={"GA005”,85.5,76,69.5,85,91,72,64.5,87.5};inti;fun(&s);printf("The%s'sstudentdata:\nz\s.num);for(i=0;i<N;i++)printf(*%4.lf\n*?s.s[i]);printf("\nave=%7?3f\n”,s.ave);)答案voidfun(STREC*s){inti;s->ave=0;for(i=0;i<N;i++)s->ave+=s->s[i];s->ave/=N;).編寫函數,求出ss所指字符串中指定字符的個數,作為函數值返回如:若輸入字符串12341232,輸入字符1,則輸出3ttinclude<conio.h>^include<stdio.h>ttdefineM81intfun(char*ss,charc)()main(){chara[M],ch;clrscr();printf("\nPleaseenterastring:");gets(a);printf(*XnPleaseenterachar:");ch=getchar();printfCAnThenumberofthecharis:%d\n”,fun(a,ch));)答案inti,j=0;for(i=0;ss[i];i++)if(ss[i]==c)j++;.編寫函數,移動一維數組中的內容,若數組中有n個整數,要求把下標從0移到P(P小于等于n-1)的數組元素平移到數組的最后如:一維數組的內容為1,2,3,4,5,6,7,8,9,10p的值為3,移動后的內容為:5,6,7,8,9,10,1,2,3,4ttinclude<stdio.h>ttdefineN80voidfun(int*w,intp,intn)main(){inta[N]={l,2,3,4,5,6,7,8,9,10,11,12,13,14,15);inti,p,n=15;printf("Theoriginaldata:\n*);for(i=0;i<n;i++)printf("%3d",a[i]);printf(*\n\nEnterp:");scanf("%d",&p);fun(a,p,n);printf("\nThedataaftermoving:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");)答案inti,j,t;for(i=0;i<=p;i++){t=w[0];for(j=0;w[j+l];j++)w[j]=w[j+l];w[j]=t;.移動字符串中內容,把第1個到第m個字符移到字符串的最后,把第m+1到最后的字符移到字符串的最后如:原字符串中的內容為ABCDEFGHIJK,m的值為3,移動后字符串中的內容為DEFGHIJKABC#include<stdio.h>#include<string.h>#defineN80voidfun(char*w,intm)main(){chara[N]="ABCDEFGHIJK”;intm;printf("Theoriginalstring:\n'z);puts(a);printf(*\n\nEnterm:");scanf(繪d",&m);fun(a,m);printf('\nThestringaftermoving:\n*);puts(a);printf('\n\n");)答案inti,j;chart;for(i=0;i<m;i++){t=a[0];for(j=0;w[j+l];j++)w[j]=w[j+l];w[j]=t;.編寫函數,將M行N列的二維數組中的字符數據按列依次放到一個字符串中如:若二維數組中的數據為WWWWSSSSHHHH 則字符串中的內容為WSHWSHWSHttinclude<stdio.h>#define M 3ttdefine N 4voidfun(char(*s)[N],char*b))main(){char a[100],w[M][N]={{*w*,*w*,inti,j;printf(^Thematrix:\n*);for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3c",w[i][j]);printf("\n");}fun(w,a);printf("TheAstring:\n*);puts(a);printfC\n\n");}答案inti,j,t=0;for(i=0;i<M;i++)for(j=0;j<N;j++)b[t++]=a[j][i];b[t]=\0';.下列程序定義了N*N的二維數組,在主函數已自動賦值,編寫函數將二維數組右上半角元素*m如:輸入m的值為2時197 21814a=238 則返回主函數后a數組中的值為2 616456 4512#include<stdio.h>#include<conio.h>ttinclude<stdlib.h>^defineN5voidfun(inta[][N],intm)main(){inta[N][N],m,i,j;clrscr();printf(〃****Thearray*****\n〃);for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%20;printf(*%4d*,a[i][j]);}printf('\n");}do{m=rand()%10;}while(m>=3);printf("m=%4d\n”,m);fun(a,m);printf("THERESULT"");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf('\n");)}答案inti,j;for(i=0;i<N;i++)for(j=0;j>=i;j++)a[i][j]=a[i].編寫函數,從傳入的num個字符串中找出最長的字符串,并通過形參max傳回該地址(用****作為結束的標志)#include<stdio.h>^include<string.h>ttinclude<conio.h>char*fun(char(*a)[81],intnum)main(){charss[10][81],*max;intn,i=0;clrscr();printf(〃輸入若干個字符串:〃);gets(ss[i]);puts(ss[i]);while(!strcmp(ss[i],******)=0){ i++;gets(ss[i]);puts(ss[i]);}n=i;max=fun(ss,n);printf('\nmax=%s\n”,max);)答案inti;char*max;max=a[0];for(i=l;i<num;i++)if(strlen(a[i])>strlen[max])max=a[i];returnmax;.編寫函數,統計一個長度為2的字符串在另一個字符串中出現的次數如:輸入一個長字符串為:asdasasdfgasdaszx67asdmklo 子字符串為as 則輸出6^include<stdio.h>#include<string.h>ttinclude<conio.h>intfun(char*str,char*substr)main(){charstr[81],substr[3];intn;clrscr();printf("輸入主字符串:〃);gets(str);printf(〃輸入子字符串:〃);

gets(substr);puts(str);puts(substr);n=fun(str,substr);printf(*n=%d\n,z,n);)答案inti=O;char*n,*m;while(*str){for(m=str,n=substr;*n&&*m二二*n;m++,n++);if(*n='\0')i++;str++;}returni;.編寫函數,刪除字符串前導*和尾部*,形參n給出了字符串長度,形參h給出了字符串前導*,形參e給出了字符串尾部*如:若字符串中的內容為***A*BC*DEF*G*******,則刪除后的字符串為A*BC*DEF*G#include<stdio.h>ttinclude<conio.h>voidfun(char*a,intn,inth,inte)答案inti,j=0;for(i=h;i<n-e;i++)a[j++]=a[i];a[j]=>\0J;.N名學生的數據已在主函數中放入結構體數組s中,編寫函數,按分數的高低(從高到底)排列學生的記錄,ttinclude<stdio.h>itdefineN16typedefstruct{charnum[10];ints;}STREC;main(){chars[81],*t,*f;intm=0,tn=0,fn=0;printf("Enterastring:\n");gets(s);main(){chars[81],*t,*f;intm=0,tn=0,fn=0;printf("Enterastring:\n");gets(s);t=f=s;while(*t){ t++;m++;)t-;while(*t==,*'){ t一;tn++;)while(*f==,*'){f++;fn++;)fun(s,m,fn,tn);printf(z,Thestringafterdeleted:\n*);puts(s);)inti;FILE*out;fun(s);printf("Thedataaftersorted:\n");for(i=0;i<N;i++){if((i)%4==0)printf(〃\n");printf("%s%4d”,s[i].num,s[i].s);}printf('\n");out=fopen("outl6.dat”,〃w〃);for(i=0;i<N;i++){if((i)%4==0&&i)

fprintf(out,"\n");

fprintf(out,“%4d”,s[i].s);}fprintf(out,"\n");fclose(out);)答案inti,j;STRECt;for(i=0;i<N-l;i++)for(j=i+l;j<N;j++)if(a[i].s<a[j].s){t=a[i];a[i]=a[j]main(){STREC s[N]={{"GA005”,85},{"GA003”,76},{"GA002”,69},{"GA004I”,85},{"GA001”,91},{"GA006”,87},{"GA007”,72},{"GA008”,64},{"GA015”,85},{"GA014”,91},{"GA013”,91},{"GA012”,64},{"GAO11”,66},{"GA016”,72});{"GA017”,64},{"GA018”,64},.編寫函數,將字符串ss中的所有下標為奇數的字母轉換為大寫如:輸入abc4EFg,則應輸出aBc4EFg#include<conio.h>#include<stdio.h>voidfun(char*ss)為奇數的字符刪除,s中剩余的字符形成新的串放在t所指的數組中#include<conio.h>ttinclude<stdio.h>#include<string.h>voidfun(char*s,chart[])voidmain(void){chartt[51];clrscr();printf(*\nPleaseenterancharacterstringwithin50characters:;gets(tt);printf(*\n\nAfterchanging,thestring\n%s”,tt);fun(tt);printf(z,\nbecomes\n%s”,tt);}答案inti;for(i=0;ss[i];i++)if(i%2==l&&ss[i]>=,a'&&ss[i]<=,z')ss[i]-=32;.編寫函數,將兩個兩位正整數a,b合并為一個整數放在c中,a的十位和個位放在c的千位和個位上,b的十位和個位放在c的百位和個位上如:當a=45,b=12,調用后c=4152^include<conio.h>^include<stdio.h>voidfun(inta,intb,long*c)main(){chars[100],t[100];clrscr();printfCr\nPleaseenterstringS:");scanf('%s”,s);fun(s,t);printf(*\nTheresultis:%s\n',t);}答案inti,j=0;for(i=0;ss[i];i++)if(i%2&&ss[i]%2==0)t[j++]=s[i];t[j]=,\0";50.N名學生的數據已存入a結構體數組中,編寫函數,將最高學生成績的記錄作為函數值返回(只有一個最高分)ttinclude<stdio.h>^include<string.h>ttinclude<conio.h>ttdefineN10typedefstructss{charnum[10];ints;}STU;voidfun(STUa[],STU*s)main(){inta,b;longc;clrscr();printf("Inputa,b:');scanf("%d%d”,&a,&b);fun(a,b,&c);printf("Theresultis:%d\n”,c);)答案*c=a/l0*1000+b/10*100+a%l0*10+b%10;49.編寫函數,將s所指的字符串中下標為偶數、同時ASCHmain(){STUa[N]={{"A01",81},{"A02”,89},{〃A03”,66},{"A04”,87},{"A05”,77},{"A06",90},{"A07",79},{"A08〃,61},{"A09”,80},{"A10",71}},m;inti;clrscr();printf("*****Theoriginaldata*****\n");for(i=0;i<N;i++)printf(*N0=%s Mark=%d\n*,a[i].num,a[i].s);fun(a,&m);printf("*****THERESULT*****\n");printf(^Thetop:%s,%d\n*,m.num,m.s);}答案inti,max=a[0].s;for(i=l;i<N;i++)if(max<a[i].s)*s=a[i];51.編寫函數,將所有大于1小于m的非素數存入XX所指的數組中,非素數的通過k傳回如:輸入17,則輸出9和4681012141516#include<conio.h>#include<stdio.h>voidfun(intm,int*k,intxx[])main(){intm,n,zz[100];clrscr();printf("\nPleaseenteranintegernumberbetween10and100:");scanf("%d",&n);fun(n,&m,zz);printf('\n\nThereare%dnon-primenumberslessthan%d:",m,n);for(n=0;n<m;n++)printf("\n%4d”,zz[n]);}答案inti,j,n=0;for(i=2;i<m;i++){for(j=2;j<i;j++)if(i%j==0)break;if(i!=j)xx[n++]=i;}*k=j;52.編寫函數,將兩個字符串連接(不使用庫函數strcat),即把p2連接到pl的尾部如:輸入兩字符串FirstStringSecondString則輸出:FirstStringSecondString#include<stdio.h>^include<conio.h>voidfun(charpl[],charp2[])main(){charsi[80],s2[40];clrscr();printf("Entersiands2:\n〃);scanf("%s%s”,si,s2);printf("sl=%s\n”,si);printfCs2=%s\n*,s2);printf("Invokefun(si,s2):\n*);fun(si,s2);printf("Afterinvoking:\n*);printf("%s\n”,si);)答案for(i=0;pl[i];i++);for(j=0;p2[j];j++)pl[i++]=p2[j];pl[i]=0;53.編寫函數,實現B=A+'A',即把矩陣A加上'A',存放在B矩陣中如:輸入矩陣:轉置后的矩陣為45123 1476 258789 369輸出結果為:261061014101418^include<conio.h>??include<stdio.h>voidfun(inta[3][3],intb[3][3])main(){inta[3][3]={{l,2,3),{4,5,6},{7,8,9}},t[3][3];inti,j;clrscr();fun(a,t);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(*%7d*,t[i][j]);printf("\n");))答案inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)t[i][j]=a[i][j]+a[j][i];54.主函數中,N名學生的數據放入結構體數組s中,編寫函數,將底于平均分的數組放在b所指的數組中,底于平均分的人數通過形參n傳回,平均分通過函數值返回#include<stdio.h>^defineN8typedefstruct{charnum[10];doubles;}STREC;doublefun(STREC*a,STREC*b,int*n){}main(){STRECs[N]={{"GA05",85}, {"GA03",76},{"GA02",69},{〃GA04”,85},{*GA0r,91},{"GA07〃,72},{"GA08",64},{"GA06",87));STRECh[N],t;FILE*out;inti,j,n;doubleave;ave=fun(s,h,&n);printf("The%dstudentdatawhichislowerthan%7.3f:\n”,rbave)for(i=0;i<n;i++)printf("%s%4.lf\n”,h[i].num,h[i].s);printf("\n");out=fopen("outl3.dat",〃w");fprintf(out,z,%d\n%7.3f\n”,n,ave);for(i=0;i<n;i++)for(j=i+l;j<n;j++)if(h[i].s>h[j].s){t=h[i];h[i]=h[j];h[j]=t;}for(i=0;i<n;i++)fprintf(out,“%4.lf\n”,h[i].s);fclose(out);}答案inti,j=0,ave=0;for(i=0;i<N;i++)ave+=a[i],s;ave/=N;for(i=0;i<N;i++)if(a[i].s<ave)b[j++]=a[i];*n=j;returnave;55.編寫函數,將M行N列的二維數組按行放到一維數組中,一維數組中的個數通過形參中的n所指的存儲單元中如:若二維數組中的數據為:3333 33 334444 44 445555 55 55 則一維數組中的內容為輸出333333334444444455555555ttinclude<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn)main(){int w[10][10] ={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:\n*);for(i=0;i<3;i++){for(j=0;j<4;j++)printfC%3d\w[i][j]);printf("\n");}fun(w,a,&n,3,4);printf("TheAarray:\n*);for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n〃);)答案inti,j,t=0;for(i=0;i<mm;i++)for(j=0;j<nn;j++)b[t++]=s[i][j];b[t]=\0J;*n=t;56.編寫函數,除尾部*外,其余的*都刪除如:輸出****A*BC*DEF*G*******則輸出:ABCDEFG*******ttinclude<stdio.h>ttinclude<conio.h>voidfun(char*a,char*p)()main(){chars[81],*t;printf("Enterastring:\nz/);gets(s);t=s;}n=fun(s,h,low,heigh);while(*t)printf("Thestudent'sdatabetween%d %d:t++;\n”,low,heigh);t一;for(i=0;i<n;i++)while(*t==,*')printf("%s%4d\n”,h[i].num,h[i].s);t—;printf('\n");fun(s,t);out=fopen("outl8.dat","w");printf(z,Thestringafterdeleted:Xn^);fprintf(out, n);puts(s);n=fun(s,h,80,98);}for(i=0;i<n-l;i++)答案for(j=i+l;j<n;j++)inti,j=O;char*t;if(h[i].s>h[j].s)for(t=a;*t;t++)if(*t!=,&&t<=pt>p)a[j++]=*t;{tt=h[i];a[j]=>\0f;h[i]=h[j];h[j]=tt;57.N名學生的數據在主函數中放入結構體數組S中,把指}定范圍內的數據放到數據中,范圍內的人數通過函數值返for(i=0;i<n;i++)回fprintf(out,"%4d\n”,h[i].s);如:fprintf(out,"\n");#include<stdio.h>fclose(out);^defineN16}typedefstruct答案{charnum[10];inti,j=0;ints;for(i=0;i<N;i++)}STREC;if(a[i].s>l&&a[i].s<h)b[j++]=a[i];intfun(STREC*a,STREC*b,int1,inth)returnj;(58.求n以內(不包括n)同時能被3和7整除的所有自然數}之和的平方根s,并作為函數值返回main()如:n為1000時,函數值為s=153.909064{STREC s[N]={{"GA005”,85}, {"GA003”,76},#include<conio.h>{"GA002”,69},{"GA004”,85},#include<math.h>{"GA001”,96}, {"GA007”,72}, {"GA008”,64},#include<stdio.h>{"GA006”,87},doublefun(intn){"GA015”,85}, {"GA013”,94}, {"GA012”,64},({"GA014”,91},{"GA011”,90}, {"GA017”,64}, {"GA018”,64},){"GA016”,72}};main()STRECh[N],tt;{ clrscr();FILE*out;printf(*s=%f\n*,fun(1000));inti,j,n,low,heigh,t;)printf("Enter2integernumberlow&heigh:答案");inti;doubles=0;scanf("%d%d”,&low,&heigh);for(i=l;i<n;i++)if(heigh<low)if(i%3==0&&i%7==0)s+=i;{t=heigh;returnsqrt(s);heigh=low;low=t;59.編寫函數,將字符數組中的M個字符串(每串長度不超過N),按順序合并到一個一維數組中如:AAAABBBBBBCC則合并后的字符串的內容為AAAABBBBBBCC#include<stdio.h>TOC\o"1-5"\h\z^define M 3#define N 20voidfun(chara[M][N],char*b)main(

溫馨提示

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

評論

0/150

提交評論