版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二级C语言上机考试复习题库(50套题)一、程序填空题1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。例如,有9个正整数:1572387582145按升序排列时的中间数为:8处理后主函数中输出的数列为:8882387882145请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN9intfiin(intx[]){inti,j,k,t,mid,b[N];fbr(i=0;i<N;i++)b[i]=x[i];fbr(i=0;i<=N/2;i++){k=i;fbr(j=i+l;j<N;j++)if(b[k]>b[j])k=j;if(k!=i){/**********found**********It=b[i];b[i]=_1_;b[k]=t;)J/**********^ound**********/mid=b[2];fbr(i=O;i<N;i++)/********************/if(x[i] 3 mid)x[i]=mid;returnmid;main(){inti,x[N]={1,5,7,23,87,5,8,21,45};for(i=O;i<N;i++)printf("%d",x[i]);printf("\nThemiddatais:%d\n",fun(x));fbr(i=O;i<N;i++)printff%d",x[i]);printfi("\n");)2、给定程序中,函数fun的功能是建立一个N'N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:11111TOC\o"1-5"\h\z1 2 2 2 11 2 3 2 11 2 2 2 111111请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN7/**********found**********Ivoidfun(int(*a)_1_){inti,j,k,m;if(N%2==0)m=N/2;elsem=N/2+l;fbr(i=O;i<m;i-H-){/********************/for(j=_2_;j<N-i;j-H-)a[i]Lj]=a[N-i-l][j]=i+l;for(k=i+l;k<N-i;k++)/**********found**********/a[k][i]=a[k][N-i-l]=_3_;})main(){intx[N][N]={0},ij;fun(x);printf("\nTheresultis:\n");fbr(i=O;i<N;i++){for(j=O;j<N;j++)printf("%3d",x[i][j]);printfi("\n");)}3、给定程序中,函数fiin的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:dei35adh3kjsdf7„执行结果为:defedhkjsdf3537«请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfun(char*s){inti,j=0,k=0;chartl[80],t2[80];for(i=0;s[i]!-\0';i++)iRs[i]>=O&&s[i]<='9')(/********************/t2[j]=s[i];—1—;!elsetl[k-H-]=s[i];t2U]=0;tl[k]=O;*********found**********/fbr(i=O;i<k;i++)_2_;/**********found**********/fdr(i=0;i< 3 ;i++)s[k+i]=t2[i];)main(){chars[80]=Mdef35adh3kjsdf7H;printf(n\nTheoriginalstringis:%s\nn,s);fiin(s);printff'WTheresultis:%s\nn,s);}4、给定程序中,函数ftin的功能是:有N'N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:123456789计算结果为10065010149请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN4/**********found**********Ivoidfun(int(*t) 1 ){inti,j;fbr(i=l;i<N;i++){for(j=0;j<i;j-H-)―2—=t[i]U]+tU][i];*********found**********/main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10),i,j;printf("\nTheoriginalarray:\n");fbr(i=O;i<N;i++){for(j=0;j<N;j++)print。%2dprintf("\n");}fun(t);printff'WTheresultis:\nH);fbr(i=O;i<N;i++){fbr(j=O;j<N;j++)print8%2dn,t[i][j]);printf(M\nH);}5、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsWo请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfun(char*s,char*p){inti,j,n,x,t;n=0;fbr(i=O;s[i]!-\0*;i++)n++;fbr(i=l;i<n-2;i=i+2){/**********found**********/―1—;/********************/for(j=_2_+2;j<n;j=j+2)i<s[t]>sU])t=j;if(t!=i){x=s[i];s[i]=s[t];s[t]=x;}fbr(i=lj=O;i<n;i=i+2,j++)p[j]=s[i];/**********found**********IPU]=_3_;fmain(){chars[80]=nbaawrskjghzlicda,!,p[50];printff'WTheoriginalstringis:%s\nM,s);ftin(s,p);printf(n\nTheresultis:%s\nn,p);}6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数ftin的功能是输出这位学生的信息。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>typedefstruct{intnum;charname[9];charsex;struct{intyear,month,day;}birthday;floatscore[3];}STU;/**********l^)und**********/voidshow(STU 1 ){inti;printf(n\n%d%s%c%d-%d・%d”,tt.num,,tt.sex,tt.birthday.year,tt.birthday.month,tt.birthday.day);fbr(i=O;i<3;i-H-)/********************/printfC%5.1f',_2_);printf("\n");}main(){STUstd={1,"Zhanghua";M',1961,10,8,76.5,78.0,82.0};printff'XnAstudentdata:\n");/**********found**********/show( 3 );)7,给定程序中,函数fiin的功能是:计算NxN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:1 2 34 5 67 8 9ftm函数首先累力口 1、5、9,然后累加3、5、7,函数的返回值为30。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN4fon(intt[][N],intn){inti,sum;/********************/fbr(i=O;i<n;i++)/**********l^)und**********/sum+= 2 ;fbr(i=O;i<n;i++)/********************/sum+=t[i][n-i- 3 ];returnsum;}main(){intt[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,2l,3,10},ij;printff'\nTheoriginaldata:\nn);for(i=0;i<N;i++){for(j=O;j<N;j++)printf("%4d",t[i][j]);printf("\n");Jprintf("Theresultis:%d",fun(t,N));)8、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000主函数中输出:4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdlib.h>#include<stdio.h>#defineN10doublefun(doublex[],double*y){inti,j;doubleav;/**********found**********/av=_1_;/**********f5ound**********/fbr(i=O;i<N;i++)av=av4-_2_;fbr(i=j=O;i<N;i++)/**********found**********/if(x[i]>av)y[_3_]=x[i];yU]=-i;returnav;}main(){inti;doublex[N]={46,30,32,40,6,17,45,15,48,26);doubley[N];fbr(i=O;i<N;i++)printf("%4.0f",x[i]);printf("\n");printf("\nTheaverageis:%f\n",fun(x,y));fbr(i=O;y[i]>=0;i++)printf("%5.0f",y[i]);printf("\n");}9、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 617451548 26,平均值为:30.500000移动后的输出为:306 17 15 26 4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdlib.h>#include<stdio.h>#defineN10doublefun(double*x){inti,j;doubleav,y[N];av=0;/********************/fbr(i=O;i<N;i++)av+=_1_;fdr(i=j=O;i<N;i++)if(x[i]<av){/**********found**********/y[j]=x[i];x[i]=-l;_2_;}i=0;while(i<N){if(x[i]!=-l)y|j++]=X[i];/**********f^ound**********/_3_;)fbr(i=O;i<N;i++)x[i]=y[i];returnav;}main(){inti;doublex[N];fbr(i=O;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);}printf("\n");printf("\nTheaverageis:%f\n",fun(x));printf("\nTheresult:\n",fun(x));for(i=0;i<N;i++)printfi["%5.0f",x[i]);printf("\n");}10、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:4630324061745154826,平均值为:30.500000移动后的输出为:4632404548306171526请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdlib.h>#include<stdio.h>#defineN10doublefun(double*x){inti,j;doubles,av,y[N];s=0;for(i=0;i<N;i-H-)s=s+x[i];/**********und**********/av=1_;fbr(i=j=O;i<N;i++)if(x[i]>av){/********************/y[_2_]=x[i];x[i]=-l;}fdr(i=O;i<N;i++)/********************/if(x[i]!=_3_)y[j++]=x[i];fdr(i=O;i<N;i++)x[i]=y[i];returnav;)main(){inti;doublex[N]={46,30,32,40,6,17,45,15,48,26);fbr(i=O;i<N;i++)printf("%4.0f",x[i]);printf("\n");printf("\nTheaverageis:%f\n",fun(x));printf("\nTheresult:\n",fun(x));fbr(i=O;i<N;i++)printf("%5.0f",x[i]);printf("\n");}11,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0],a[l],a[2] 中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9,1、4、2、3、6、5,8、7,删除偶数后a所指数组中的数据为:9,1、3、5、7,返回值为5。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN9intfun(inta[],intn){inti,j;j=0;fbr(i=0;i<n;i-H-)/**********f5ound**********/if(a[i]%2=_1_){/**********found**********Ia[j]=a[i];_2_;)/**********found**********/return 3 ;)main(){intb[N]={9,l,4,2,3,6,5,8,7),i,n;printff'\nTheoriginaldata:\nn);fbr(i=0;i<N;i++)printf(n%4dn,b[i]);printf(n\nH);n=fiin(b,N);printf(n\nThenumberofodd:%d\nn,n);printff'WTheoddnumber:\nH);fbr(i=0;i<n;i++)printf(n%4d”,b[i]);printf(n\nH);}12、给定程序中,函数fiin的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长vN。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#include<string.h>#define M 5#define N 20intfun(char(*ss)[N],int*n){inti,k=0,len=N;/**********und**********/fbr(i=0;i< 1 ;i-H-){len=strlen(ss[i]);if(i==0)*n=len;/********************/ififlen 2 *n){*n=len;k=i;})/**********found**********/return( 3 );}main(){charss[M][N]={nshanghain,nguangzhouH/'beijingn,ntianjingn,nchongqingn};intn,k,i;printf(n\nTheoriginalstringsare:\nH);fbr(i=O;i<M;i-H-)puts(ss[i]);k=fun(ss,&n);printf{n\nThelengthofshorteststringis:%d\nH,n);printf(n\nTheshorteststringis:%s\nn,ss[k]);13、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数ftm的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN8typedefstruct{intnum;intyear,month,day;}STU;intfun(STU*std,STU*k,intyear){inti,n=0;fbr(i=0;i<N;i++)/**********tound**********/ 1=year)/**********und**********/k[n++]=_2_;/**********f^ound**********/return( 3 );)main(){STUstd[N]={{1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15},(5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};STUk[N]; inti,n,year;printf(nEnterayear:”);scanf(M%dH,&year);n=fiin(std,k,year);if(n=0)print"'\nNopersonwasbornin%d\nH,year);else{printfi(n\nThesepersonswerebomin%d\nn,year);fbr(i=O;i<n;i++)printf(n%d%d-%d-%d\nn,k[i].num,k[i].year,k[i].month,k[i].day);J}14、函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据依次为:1、2、3、4、5、6,7、8、9,则调换后为:6,7、8、9,5、1、2、3、4。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN9voidfun(inta[],intn){inti,t,p;/**********found**********/p=(n%2==0)?n/2:n/2+_1_;fbr(i=0;i<n/2;i++){t=a[i];/**********found**********/a[i]=a[p+-2_];/********** nd**********/_3 =t;})main(){intb[N]={l,2,3,4,5,6,7,8,9},i;printff'\nTheoriginaldata:\nH);fbr(i=0;i<N;i++)printf(H%4d”,b[i]);printff'W”);fun(b,N);printf("\nThedataaftermoving:\n");for(i=O;i<N;i++)printf("%4d",b[i]);printf("\n");}15、给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确崭绸果。注意:源程序存放在考生文件夹下的BLANK1.C中.不得增行或删行,也不得更改程序的结构!#include<stdio.h>voidfun(char*s,inta,doublef){/**********und**********/—1—fp;charch;fp=fbpen(nfilel.txtH,Mwn);fprintf(fp,n%s%d%f\nn,s,a,f);fclose(fp);fp=fopen(nfilel.txtn,V);printf(n\nTheresult:\n\nn);ch=fgetc(fp);/**********found**********Iwhile(!feof(_2_)){/**********und**********/putchar(_3_);ch=fgetc(fp);}putchar('\n');fclose(fp);}main(){chara[10]=nHello!H;intb=12345;doublec=98.76;fun(a,b,c);}16、给定程序中,函数fun的功能是:找出NxN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#defineN4voidfun(int(*a)[N],int*b){intij;fbr(i=O;i<N;i++){/**********found**********/fbr(j=l;j<N;j-H-)/********************/if(b[i]_2_aU][i])b[i]=aU][i];})main(){intx[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],ij;printf("\nThematrix:\n");fbr(i=0;i<N;i++){for(j=O;j<N;j++)printf("%4d",x[i][j]);printf("\n");}/********************/fun(_3_);printf(M\nTheresultis:");fbr(i=O;i<N;i++)printf("%3d",y[i]);printf("\n");}17、给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7o输出结果为:4.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfun(char*s,int*t){inti,n;n=0;/********************/fbr(i=O;_1_!=0;i++)/**********found**********/if(s[i]>='O'&&s[i]<=_2_)n++;/**********und**********/_3_;}main(){chars[80]=nabcdef35adgh3kjsdf7n;intt;printff'\nTheoriginalstringis:%s\nn,s);fun(s,&t);printff'WTheresultis:%d\nH,t);}18、函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[l]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3,6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5.形参n中存放a所指数组中数据的个数。注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN9voidfun(inta[],intn){intij,max,min,px,pn,t;fbr(i=0;i<n-l;i+=2){/**********found**********/max=min= 1 ;px=pn=i;fbr(j=i+l;j<n;j-H-){/**********tound**********/if(max< 2 ){max=a|j];px=j;}/**********und**********/if(min>_3_){min=a|j];pn=j;})if(pn!=i){t=a[i];a[i]=min;a[pn]=t;if(px==i)px=pn;)if(px!=i+l){t=a[i+l];a[i+l]=max;a[px]=t;}Jmain(){intb[N]={9,l,4,2,3,6,5,8,7},i;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");fun(b,N);printf("\nThedataaftermoving:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printiX"\n");)19、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5##43df,处理后新字符串为:123543asd痘h##df.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>char*fiin(char*s){inti,j,k,n;char*p,*t;n=strlen(s)+l;t=(char*)malloc(n*sizeofi(char));p=(char*)malloc(n*sizeofi[char));j=0;k=0;fbr(i=O;i<n;i-H-){if(isdigit(s[i])){/**********^ound**********/P[_l_]=s[i];j++;)else{t[k]=s[i];k++;}/**********l^)und**********/fdr(i=O;i<_2_;i++)p[j+i]=t[i];p|j+k]=O;/********************/return_3_;}main(){chars[80];printf(nPleaseinput:”);scanf(H%sn,s);printf(M\nTheresultis:%s\nH,fun(s));}20、给定程序中,函数fun的功能是:有NxN矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵TOC\o"1-5"\h\z1 2 34 5 67 8 9程序执行结果为0 0 10 0 40 0 7请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN4voidfun(int(*t)[N],intm){inti,j;/**********und**********/fdr(i=O;i<N; 1 ){fdr(j=N-l-m;j>=0;j—)/**********und**********/t[i]U+_2_]=t[i]U];*********found**********/fdr(j=O;j<_3_;j++)t[i]U]=O;}}main(){intt[][N]={21,12,13,24,25,16,47,38,29,ll,32,54,42,21,33,10},i,j,m;printff'\nTheoriginalarray:\nn);fbr(i=O;i<N;i++){for(j=O;j<N;j++)printf("%2d",t[i][j]);printf("\n");printf(nInputm(m<=%d):n,N);scanf(,,%d,,,&m);fun(t,m);printf(n\nTheresultis:\nM);fbr(i=O;i<N;i++){for(j=O;j<N;j++)printf("%2d",用皿);printf("\n");}21、函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0],a[l],a[2] 中,把奇数从数组中删除,偶数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4,2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6.8,返回值为4.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN9intfun(inta[],intn){inti,j;j=o;for(i=0;i<n;i-H-)/**********found**********/=0){/**********und**********/-2_=a[i];j++;}/**********f5ound**********/return 3 ;}main(){intb[N]={9,l,4,2,3,6,5,8,7},i,n;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");n=fun(b,N);printff'\nThenumberofeven:%d\n",n);printff'ETheeven:\n");for(i=0;i<n;i++)printff%4d",b[i]);prints%");}22、给定程序中,函数fbn的功能是:判定形参a所指的NxN(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1;不是,函数返回值为0。"幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3x3的矩阵就是一个"幻方":TOC\o"1-5"\h\z4 9 23 5 78 1 6请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN3intfun(int(*a)[N]){inti,j,ml,m2,row,colum;ml=m2=0;for(i=O;i<N;i++){j=N-i-l;ml+=a[i][i];m2+=a[i][j];}ifi[m1!=m2)return0;fbr(i=0;i<N;i++){/********************/row=colum=_1_;for(j=0;j<N;j++){row+=a[i][j];colum+=a[j][i];}/**********und**********/(row!=colum)_2_(row!=ml))return0;}/**********und**********/return_3_;}main(){intx[N][N],i,j;printff'Enternumberforarray:\nn);fdr(i=0;i<N;i++)fdr(j=0;j<N;j-H-)scanf(”%d”,&x[i][jD;printf(HArray:\n**);for(i=0;i<N;i++){fdr(j=0;j<N;j++)printf(H%3dn,x[i][j]);printf(H\nn);)if(fun(x))printf(HTheArrayisamagicsquare.\nH);elseprintf(nTheArrayisn*tamagicsquare.\nn);23、给定程序中,函数fun的功能是将a和b所指的两个字符串分别转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:4483L请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#include<string.h>#include<ctype.h>#defineN9longctod(char*s){longd=0;while(*s)i<isdigit(*s)){/**********found**********/d=d*10+*s-_1_;/**********und**********/_2_;)returnd;}longfun(char*a,char*b){/**********found**********Ireturn_3_;)main(){charsl[N],s2[N];do{printff'Inputstringsi:”);gets(sl);}while(strlen(sl)>N);do{printfif0Inputstrings2:”);gets(s2);}while(strlen(s2)>N);printf(nTheresultis:%ld\nn,fun(sl,s2));}24、给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfun(char*s){inti,n,k;charc;n=0;for(i=0;s[i]!='\0';i++)n++;/**********found**********/if(n%2==0)k=n-_1_;elsek=n-2;/********************/c= 2 ;fbr(i=k-2;i>=l;i=i-2)s[i+2]=s[i];/********************/s[l]=_3一;}main(){chars[80]=nabcdefghn;printf(H\nTheoriginalstringis:%s\nH,s);fun(s);printf(n\nTheresultis:%s\nM,s);25、给定程序中,函数fUn的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。SS所指字符串数组中共有M个字符串,且串长vN。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include <stdio.h>#include <string.h>#define M 5#define N 20voidfun(char(*ss)[N]){inti,j,n,len=0;fdr(i=O;i<M;i++){len=strlen(ss[i]);if(i=0)n=len;if(len>n)n=len;Jfbr(i=O;i<M;i++){/**********und**********/n=strlen( 1 );fdr(j=O;j<len-n;j-H-)/**********found**********/ss[i][_2_]='*';/**********nd**********/ss[i][n+j+_3_]='\0';})main(){charss[M][N]={nshanghain,Hguangzhou'7,beijing'7,tianjingn,ncchongqingn};inti;printfV'Theoriginalstringsare:\nn);for(i=0;i<M;i")printf("%s\n\ss[i]);printf(M\nn);fiin(ss);printffTheresultis:\nn);fdr(i=O;i<M;i-H-)printf(n%s\nn,ss[i]);}26、给定程序中,函数fun的功能是:将NxN矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵TOC\o"1-5"\h\z1 2 34 5 67 8 9计算结果为3 1 26 4 59 7 8请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。//include<stdio.h>#defineN4voidfun(int(*t)[N]){inti,j,x;/********************/fdr(i=O;i< 1 ;i-H-){/********** nd**********/x=t[i]|_2_|;fbr(j=N-l;j>=l;j-)t[i]U]=t[i]U-l];/********************/t[i][_3_]=x;!}main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;printff'Theoriginalarray:\nn);fdr(i=O;i<N;i++){fbr(j=O;j<N;j++)printfC%2dH,t[i][j]);printf(H\nn);fiin(t);printf("\nTheresultis:\n");fbr(i=O;i<N;i++){fbrG=O;j<N;j++)printf("%2d",t[i]U]);printf("\n");}}27、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:xl=5.000000,x2=3.000000,xl*xl+xl*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>doublefl(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}/**********found**********I_1_fun(inti,doublex,doubley){if(i=l)/********************/return_2_(x);elsereturn_3_(x,y);main(){doublexl=5,x2=3,r;r=fun(l,xl,x2);r+=fun(2,xl,x2);printf(H\nxl=%f,x2=%f,x1*x1+x1*x2=%f\n\nH,x1,x2,r);}28、给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>typedefstructlist{chardata;structlist*next;voidfiin(Q*pa,Q*pb,Q*pc)Q*p;/**********f^ound**********/pa->next= 1pb->next=pc;P=pa;while(p)printf(n%cn,2 );/**********^ound**********/prints,");main(){Qa,b,c;a.data-E*;b.data-F;c.data-G*;c.next=NULL;fiin(&a,&b,&c);}29、给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长<N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include <stdio.h>#include <string.h>#define M 5#define N 20voidfun(char(*ss)[N]){inti,j,k,n[M];chart[N];fbr(i=O;i<M;i++)n[i]=strlen(ss[i]);fbr(i=O;i++){k=i;/********** **********/fbr(j=_1_/********** **********/if(n[k]>nU])_2—;if(k!=i){strcpy(t,ss[i]);strcpy(ss[i],ss[k]);/********************/strcpy(ss[k], 3 );n[k]=n[i];main(){charss[M][N]={nshanghain,nguangzhouH/'beijingn,ntianjingn,ncchongqingn};inti;printf(n\nTheoriginalstringsare:\nH);fbr(i=O;i<M;i++)printf(M%s\nn,ss[i]);printf(n\nn);fun(ss);printf(n\nTheresult:\nn);fbr(i=O;i<M;i++)printf(n%s\nH,ss[i]);}30、给定程序中,函数fun的作用是:统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a[0]存放0出现的次数,a[l]存放1出现的次数,……a[9]存放9出现的次数。例如,若m为14579233,则输出结果应为:0,1,1,2,1,1,0,1,0,1,请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfun(intm,inta[10]){inti;for(i=0;i<10;i-H-)/********************/_l_=0;while(m>0)(/**********und**********/i=_2_;a[i]++;/**********found**********/m= 3 ;main(){intm,a[10],i;printf("请输入一个整数:");scanf(n%d'\&m);a);for(i=0;i<10;i++)printf(n%d;\a[i]);printf(M\nH);}31、给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7.执行结果为:def3*5*adh3*kjsdf7*。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfiin(char*s){inti,j,n;fbr(i=O;s[i]!='\0';i++)/**********found**********/if(s[i]>='O'_1_s[i]<='9'){n=0;/********************/while(s[i+l+n]!= 2 )n++;for(j=i+n+l;j>i;j—)/********************/sU+l]=一3一;s[j+l]='*';i=i+l;})main(){chars[80]=nba3a54cd23aM;printf{n\nTheoriginalstringis:%s\nn,s);fiin(s);printff'\nTheresultis:%s\nn,s);32、函数fun的功能是:输出a所指数组中的前n个数据,要求每行输出5个数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#include<stdlib.h>voidfun(int*a,intn){inti;fbr(i=O;i<n;i++){/**********found**********/if(_1_=0)/********************/printf("_2_");/**********found**********/printf("%d",_3_);}main(){inta[100]={0},i,n;n=22;for(i=0;i<n;i++)a[i]=rand()%21;fun(a,n);printf("\n");)33、给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdlib.h>#include<stdio.h>#defineN20voidfun(int*a){inti,x,n=0;x=rand()%20;/********************/while(n<_1_){fbr(i=O;i<n;i-H-)/**********f^ound**********/if(x==a[i])_2_;/********************/if(i-3__){a[n]=x;n++;}x=rand()%20;})main(){intx[N]={0},i;fiin(x);printf("Theresult:\n");fbr(i=0;i<N;i++){printf("%4d",x[i]);if((i+l)%5=0)printf("\n");}printf("\n\n");}34、函数ftin的功能是进行数字字符转换。若形参ch中是数字字符。〜9,则O转换成9,T转换成8,2转换成7,……,9转换成O;若是其它字符则保持不变;并将转换后的结果作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>/**********f5ound**********/_1 fun(charch)/**********found**********/if(ch>='0'&&_2_)/********************/return*9*-(ch- 3 );returnch;}main(){charcl,c2;printfi(n\nTheresult:\nn);cl=2; c2=fun(cl);printf(ncl=%cc2=%c\nn,cl,c2);cl-8*;c2=fun(cl);printfi[ncl=%c c2=%c\nn,cl,c2);cl-af;c2=fiin(cl);printf(,,cl=%c c2=%c\nM,c1,c2);}35、给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#include<string.h>#define M 5#define N 20/**********^ound**********/intfun(char(*ss) 1 ,int*n){inti,k=0,len=0;fbr(i=O;i<M;i++){len=strlen(ss[i]);/**********l^)und**********/if(i=O)*n= 2 ;if(len>*n){/********************/―3_;k=i;}}return(k);}main(){charss[M][N]={,,shanghain,HguangzhouH,,,beijing,7'tianjing,,,ncchongqingn};intn,k,i;printfi(n\nTheoriginalstringsare:\nn);fbr(i=O;i<M;i-H-)puts(ss[i]);k=fun(ss,&n);printf{n\nThelengthoflongeststringis:%d\n”,n);printf(H\nThelongeststringis:%s\nn,ss[k]);}36、给定程序中,函数ftin的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长〈N。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include <stdio.h>#include <string.h>#define M 5#define N 20voidfun(char(*ss)[N]){inti,j,k=0,n,m,len;fbr(i=O;i<M;i++){len=strlen(ss[i]);if(i=O)n=len;if(len>n){/********************/n=len; 1 =i;}}fbr(i=O;i<M;i++)if(i!=k){m=n;len=strlen(ss[i]);/********************/for(j=_2_;j>=O;j-)ss[i][m-]=ss[i][j];fbr(j=O;j<n-len;j++)/**********und**********/3 ='*'•}}main(){charss[M][N]={nshanghain,Hguangzhou,,,,'beijingn/,tianjingn,,,cchongqingn};inti;printf{n\nTheoriginalstringsare:\nn);fbr(i=O;i<M;i++)printf(M%s\nn,ss[i]);printf(n\nn);fun(ss);printf(n\nTheresult:\nn);fbr(i=O;i<M;i++)printf(n%s\nn,ss[i]);37、给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>typedefstruct{charname[10];intage;}STD;STDfun(STDstd[],intn){STDmax;inti;/**********found**********Imax= 1 ;fbr(i=l;i<n;i++)/**********found**********/iftmax.age<2 )max=std[i];returnmax;}main(){STDstd[5]={naaan,l7Jbbb”,16Jccc”J8Jddd”J7Jeee”,15};STDmax;max=fun(std,5);printff'WTheresult:\nH);/**********found**********/printff'WName:%s,Age:%d\n", 3 ,max.age);}38、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#include<string.h>#defineN8typedefstruct{charnum[10];intyear,month,day;}STU;/********** **********/ 1 fun(STU*std,char*num){inti; STUa={「9999,99,99};fbr(i=0;i<N;iH)/**********found**********Iif(strcmp( 2 ,num)=0)/**********und**********/return( 3 );returna;)main(){STUstd[N]={{”111111984,2,15},{“222222”,1983,9,21},{“3333331984,9,1},“44444”,1983,7,15},{“555555”,1984,9,28},{“66666611983,11,15},{“7777,,,1983,6,22},{“8888887984,8,19}};STUp; charn[10]=n666666n;p=fun(std,n);if(p.num[0]=0)printf(n\nNotfound!\nH);else{printf(M\nSucceed!\n");printf(H%s%d-%d-%d\nn,p.num,p.year,p.month,p.day);39、给定程序中,函数fun的功能是:有NxN矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。例如,若N=3,有下列矩阵:TOC\o"1-5"\h\z1 2 35 68 9计算结果为4 15 26 3请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN4voidfun(int(*t)[N]){intj,r[N];for(j=O;j<N;j++)r[j]=t[O][j];for(j=0;j<N;j++)/********************/t[O][N-j-l]=t[j][_l_];fbr0=O;j<N;j-H-)t[j][O]=t[N.l]U];/********** nd**********/fbr(j=N-l;j>=0; 2 )t[N-l][N-l-j]=tU][N-l];for(j=N-l;j>=O;j-)/********************/tU][N-l]=r[3_];}main(){intt[][N]={21,12,13,24,25,16,47,38,29,ll,32,54,42,21,33,10),i,j;printfi(n\nTheoriginalarray:\nn);for(i=O;i<N;i++){for(j=O;j<N;j++)printf("%2d",t[i][j]);printf("\n");fun(t);printf("\nTheresultis:\n");fbr(i=O;i<N;i++){for(j=0;j<N;j++)printff%2d",t[i][j]);printf("\n");)}40、给定程序中,函数fiin的功能是:将NxN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:TOC\o"1-5"\h\z1 2 35 68 9交换后为:2 15 68 7请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN4/**********found**********/voidfun(int 1 ,intn){inti,s;/**********^ound**********/fbr(_2_;i-H-){s=t[i][i];*********found**********/t[i][n-l-i]=_3—;}}main(){intt[][N]={21,12,13,24,25,16,47,38,29,ll,32,54,42,21,33,10),i,j;printff'\nTheoriginalarray:\nn);fbr(i=O;i<N;i++){for(j=0;j<N;j++)printf("%d",t[i][j]);printf("\n");)fun(t,N);printf("\nTheresultis:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%d",t[i][j]);printf("\n");}41、给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>voidfun(char*s,charc){inti,j,n;/**********^ound**********/fbr(i=O;s[i]!= 1 ;i-H-)if(s[i]=c)*********found**********/n=while(s[i+1+n]!='\0')n++;fbr(j=i+n+l;j>i;j-)s[j+l]=s|j];/********************/s[j+l]=_3_;i=i+l;})main(){chars[80]=nbaacdan,c;printf(M\nThestring:%s\nn,s);printff'WInputacharacter:");scanf(H%cn,&c);fun(s,c);printf("\nTheresultis:%s\n",s);}42、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include<stdio.h>#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,STUn){FILE*fp;/**********f5ound**
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度二零二五民间借贷合同风险评估与管理范本4篇
- 二零二五年度抹灰工程绿色施工与环保合同4篇
- 二零二五年度教育培训场地租赁合同模板4篇
- 2025年度派驻技术支持服务合同模板范本4篇
- 2025年度个人二手房交易纠纷调解服务合同
- 2025年建筑工程施工项目经理劳动合同模板2篇
- 二零二五医疗治疗期间员工劳动合同补充协议3篇
- 二零二五年度新型农村合作社劳动者劳动合同书
- 2025年度智能家居系统安装与维护个人房屋装修合同标准范本2篇
- 2024版预售房屋购买合同书
- GB/T 43650-2024野生动物及其制品DNA物种鉴定技术规程
- 2024年南京铁道职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 暴发性心肌炎查房
- 口腔医学中的人工智能应用培训课件
- 工程质保金返还审批单
- 【可行性报告】2023年电动自行车项目可行性研究分析报告
- 五月天歌词全集
- 商品退换货申请表模板
- 实习单位鉴定表(模板)
- 数字媒体应用技术专业调研方案
- 2023年常州市新课结束考试九年级数学试卷(含答案)
评论
0/150
提交评论