二级C上机绝密100题_第1页
二级C上机绝密100题_第2页
二级C上机绝密100题_第3页
二级C上机绝密100题_第4页
已阅读5页,还剩136页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言上机考试复习资料,共有100套题目一、程序填空题1、给定程序中,函数ftm的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000.xl*x1+xPx2=40.(XX)000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果.注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>doublefl(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}/**********Sund**********/_1_fun(in(i,doublex.doubley){if(i==D/**********1^Upd**********/return_2_(x);else/**********Cund**********/return_3_(x,y);)main(){doublexl=5,x2=3,r;r=fun(1,xl,x2);r+=fun(2,xl,x2);printf("\nxl=%f,x2=%f,xl*xl+xl*x2=%f\n\n',,xl,x2,r);I2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在程序的下划线处填入iE确的内容并把卜划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includc<s(dio.h>#include<string.h>structstudent{longsno;charname[10];floatscore[3];);voidfun(structstudenta[],intn)(/**********found**********/_structstudent」」;inti,j;/**********found**********/for(i=0;i<2_:i++)for(j=i+l;j<n;j++)/**********found**********/if(strcmp(_a[i].name,a[j].name3_)>0){c=a[i];a[i]=aU];a[j]=t;}}main(){structstudents[4)=({10001,"ZhangSan,;95,80,88),{10002,"LiSi",85,70.78),(10003."CaoKai",75,60.88},“0004JFangFang”,90,82,87));inti,j;printf("\n\nTheoriginaldata:\n\n");for(j=0;j<4;j++){printf("\nNo:%ldName:%-8sScores:M,s[j].sno,s[j].name);for(i=0;i<3;i++)printf("%6.2f",s[j].score(i]);printfCAn");}fun(s,4);printf("\n\nThedataaftersorting:\n\n");for(j=0;j<4;j++){printfCAnNo:%ldName:%-8sScores:",s(j].sno,s[j].name);for(i=0;i<3;i++)printf(M%6.2f",s[j].score[i]);printf("\n");3、给定程序中,函数ftin的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回:并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30500000主函数中输出:4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdlib.h>#deGneN10doublefun(doublex[],double*y){intij;doubleav;/**********IY)und**********/av=_1_0_;/**********found**********/for(i=0;i<N;i-H-)av=av+X[i]/N_2_;for(i=j=0;i<N;i++)/*4t********fOU ********/if(xli]>av)y[__j++3_J»x[i];yUl=-i;returnav;)main(){inti;doublex[N],y[Nl;for(i=0;i<N:i++)[x[i]=rand()%50;printf("%4.0fprintfCW);prinif("\nTheaverageis:%f\n",fun(x,y));for(i=0;y[i]>=0;i++)printf("%5.1fM,y(i]);printf("\nM);4、给定程序中,函数ftin的功能是:将a所指4X3矩阵中第k行的元素与第0行元素交换。例如,有下列矩阵:TOC\o"1-5"\h\zI 2 34 5 67 8 910 II 12若k为2,程序执行结果为:7 8 94 5 6I 2 310 11 12请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#define N 3#define M 4/**********foupj£j**********/voidfun(int(*a)|NJ.int_k_1_){intij4cmp;/**********f0und**********/for(i=0;i<_2N_;i++){temp=a[0][i];a[0][i]=a[k][i]_3_;a[k][i]=temp;}}main(){intxfMHN]={{l,2,3h(4,5,6},{7,8,9),110,11,12)printf("Thearraybeforemoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d",x[iHj]);printf("\n\nM);)fun(x,2);printfC'Thearrayaftermoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N:j++)printf("%3d',,x[i)[j]);printf("\n\n");15、给定程序中,函数ftin的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include<sldio.h>#include<slring.h>#include<ctype.h>#defineN9longctod(char*s){longd=0;while(*s)if(isdigit(*s))(/**********IY)und**********/d=d*10+*s-_'01_;/**********f0und**********/_s++_2_;|returnd;longfun(char*a,char*b)/**********found**********/return_Ctod(a)+ctod(b)_3_;main(){charsl[N],s2[Nl;do{printfC'Inputstringsi:M);gets(sl);}while(strlen(sl)>N);do{printfC'Inputstrings2:");gets(s2);}while(strlen(s2)>N);printfC'Theresultis:%ld\n",fun(sl,s2));6、给定程序中,函数ftin的功能是:计算卜.式前n项的和作为函数值返回。1x3x3x55x7A(2x«-1)x(2x«+l)5― + +...4 22 42 62 (2x炉例如,当形参n的值为10时,函数返回:9.612558.请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!/include<stdio.h>doublefun(intn){inti;doubles,t;/**********found**********/s=_0_l_;/**********found**********/for(i=l;i<=_n2_;i++){t=2.0*i;/**********found**********/s=s+(2.0*i-l)*(2.0*i+iV_(t*t)3_;)returns;}main(){inin="l;while(n<0){printf("Pleaseinput(n>0):");scanf("%d".&n);}printf(H\nTheresultis:%f\n",fun(n));}7、给定程序中,函数firn的功能是:在3X4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。例如,有下列矩阵:TOC\o"1-5"\h\z1 2 13 47 8 10 63 5 9 7程序执行结果为:find:a[2]⑵=9请在程序的卜划线处填入iE确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<s(dio.h>#define M 3#define N 4voidfun(int(*a)[Nl){inti=0j.find=0,rmax.c.k:while((i<M)&&(!flnd)){rmax=a[i][01;c=0;for(j=l;j<N;j++)if(rmax<a[i][j]){/**********foU ********/rmax=a(i]|j];c=_1_J_;)

find=l;k=0;while(k<M&&find){/**********fouixl**********/if(k!=i&&a[k][c]<=rmax)find=0_2_;k++;if(find)printf(Mfind:a[%d][%d]=%d\nUc,a[i][c]);/**********Sund**********/i++_3_;1if(!find)printf("notfound!\n");main()(intx[M][Nl,ij;printf("Enternumberforarray:\n");for(i=0;i<M;i++)for(j=0;j<N;j++)scanf(',%d",&x[i][j]);printf("ThearrayiKn'*);for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d”[i皿);printfCAnkn");}fun(x);8、给定程序中,函数ftin的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且审长小于M。请在程序的下划线处填入正确的内容并把卜划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includc#include#includc#include#define#define<string.h>N5M10intfun(char(*ss)[M],inik){iniij=0,len;/**********found**********/for(i=0;i<_lN_;i++){Ien=strlen(ss[i]);/**********found**********/if(leiK=k_2_)/**********found**********/strcpy(ss(j++]^ss[i]_3_);Ireturnj;)main(){charx(N][M]={,'BeijingVShanghai,,?Tianjing,',,'NanjingM,-Wuhan");inti,f;printfC'\nTheoriginals<ring\n\nM);for(i=Ou<N;i++)puts(x[i]):printf("\n");f=fun(x,7);printf("Thestringwitchlengthislessthanorequalto7:\nM);for(i=0;i<f;i++)puls(x[i])nwintf(M\nM);19、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、“ZhangSan"、95、80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>structstudent(longsno;charname[10];floatscore[3];voidfun(structstudenta){structstudentb;in(i;/**********foun(]**********/b.sno=10002;/**********found**********/strcpy(_2一"us『);prinlf("\nThedataaftermodified:\n**);printf("\nNo:%IdName:%s\nScores:",b.sno.);/**********foijnd**********/for(i=0;i<3;i+4-)primf("%6.2f-,b._SCOre[i]_3_);printfCAn");Imain(){structstudents=(10001."ZhangSan".95,80,88};inti;printf("\n\nTheoriginaldata:\n"):printfCAnNo:%ldName:%s\nScores:M,s.sno,);for(i=0;i<3;i++)printf("%6.2fs.score[i]);printfCW);fun(s);}10、给定程序中,函数ftin的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>#defineN5#defineM10/**********found**********/voidfun(char(*ss)_[M]_1_,intk){inti=0;while(i<_N2_){/**********fou()(j**********/ss【il[k]=_03_;i++;}}main(){charx(N](M]={MCreate",',Modify",MSort","skip",-Delete");inti;printf(H\nTheoriginalstring\n\n");for(i=Oy<N;i++)puts(x[i]);printf("\n");fun(x,4);printf("\nThestringafterdeleted:\n\n");for(i=0;i<N;i++)puts(x[i]);printf("\nM);}II、给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参1所指字符数组中,形成•个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<s(dio.h>#include<string.h>#defineN80voidfun(char*s,intn.char*l){intlen.ij=0;len=strlen(s);/**********found**********/if(n>=len)strcpy(_t,S_1_);else{/**********found**********/for(i=len-n;i<=len-l;i++)t(j++]=_S[i]_2_;/**********found**********/tUJ=_30Imain(){chars[N],t[N];intn;printf("Enterastring:");gets(s);printf("Entern:M);scanf("%(!".&n);fun(s.n.1);printf("Thesiring(:");puts(t);12、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5##43df.处理后新字符串为:123543asdfgh##df。请在程序的下划线处填入正确的内容并把下划线删除,侦程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>char*fun(char*s){intij,k,n;char*p,*t;n=strlen(s)+l;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=O;k=O;for(i=0;i<n;i++){if(isdigit(s[il)){/**********Cun(i**********/p[j_l_]=s[il;j++;)else{t[k]=s[i];k++;))/**********found**********/for(i=0;iv_k_2_;i++)p[j+i]=t[i];p(j+k]=O;/**********found**********/return_3p一;Imain(){chars[80];printf("Pleaseinput:");scanf("%s",s);printf("\nTheresultis:%s\n",fun(s));}13、给定程序中,函数ftm的功能是:找出100〜999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数•然后输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100〜999之间各位上数字之和为5的整数有:104、H3、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。清在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKI.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>fun(intx){intn,si,s2,s3,t;n=0;1=100;/**********f0und**********/while(t<=999_l_){/**********found**********/sl=(%10;s2=(_t/10_2__)%IO;s3=t/100;/**********fOUf|^j**********/if(sl+s2+s3=_X3_){printf(M%d\t);n++;}t++;1returnn;}main(){intx=-l;while(x<0){printfC'Pleaseinput(x>0):M);scanf(M%d",&x);}printf("\nTheresultis:%d\n",fun(x));I14、给定程序中,函数fun的功能是:将形参s所指字符申中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。裁例如,形参s所指的字符串为:abs5defl26jkm8,程序执行后的输出结果为:22。请在程序的下划线处项入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<s(ring.h>#include<ctype.h>intfun(char*s){intsum=0;while(*s){/**********found**********/if(isdigit(*s))sum+=*s-_1_48_;/**********found**********/_2s++_;return_3SUD1main(){chars[81];intn;printf("\nEnterastring:\n\n");gets(s);n=fun(s);printf("\nTheresultis:%d\n\n".n);)15、给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<stdlib.h>#defineN6typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*p.*q;intt;/**********qUf)(j**********/p=__i_h->next_;while(p){q=_2p->next_;while(q){/**********found**********/if(p-xlata_3>=_q-xlala)(t=p->data;p-xlata=q-xlata;q->data=t;}q=q->next;}p=p->next;I)NODE*creatlist(inta|]){NODE*h.*p,*q;inti;h=(NODE*)malloc(sizeof(NODE));h->next=NULL;for(i=0;i<N:i++){q=(NODE*)malloc(sizeof(NODE));q->da(a=a[i];q->next=NULL;if(h->nexl=NULL)h->next=p=q;else{p->next=q;p=q;}1returnh;}voidoutlist(NODE*h){NODE*p;p=h->next;if(p==NULL)printfCThelistisNULL!\nM);else{printf("\nHead");do(prinlf("->%d",p->dala):p=p">nexl;}while(p!=NULL);printf("->End\n,');}}main(){NODE*head;inta[N]={0,10,4,2,8,6};head=crea(list(a);printf("\nTheoriginallist:\n'^);outiist(head);fun(head);printfCAnThelistaftersorting:\n");outlist(head);I16、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数ftin的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:10002、"LiSi"、96、81、89。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<s(ring.h>structstudent{longsno;charname[10];floatscore[3];};/**********found**********/Structstudent*_1_fun(struclstudent*a){inti;a->sno=10002;strcpy(a->name,"LiSi");/**********found**********/for(i=o;i<3;i++)_a->score[i]2__+=1;/**********Sund**********/return_3_3_;}main(){structstudents={IGOOl/ZhangSan*'.95,80,88}.*1;inti;printf("\n\nTheoriginaldata:\n");printfCAnNo:%IdName:%s\nScores:".s.sno.);for(i=0;i<3;i++)prinif("%6.2fH,s.score(i]);printfCAn");(=fun(&s);printf("\nThedataaftermodified:\nM);printf(',\nNo:%ldName:%s\nScores:M,t->sno,t->name);for(i=0;i<3;i++)printf("%6.2fM,t->score[i|);printf(M\nM);)17、给定程序中,函数ftin的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:4630324061745154826,平均值为:3050(X)00移动后的输出为:4632404548306171526请在程序的下划线处填入正确的内容并把卜划线删除•使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<s(dlib.h>#includc<stdio.h>#defineN10doublefun(double*x){inti,j;doubles,av.y[N];s=0;for(i=0;i<N;i++)s=s+x[il;/**********found**********/av=_1s/N_;for(i=j=0;i<N;i++)if(x[i]>av){/**********found**********/yLj++_2_j=x[i]:x[i]=-i;)for(i=0;i<N;i++)/**********Sund**********/if(x[i]!=-l_3_)y|j++]=x[i];for(i=0;i<N;i++)x[i]=y[i];returnav;}main(){inti;doublex[N];for(i=0;i<N;x[i]=rand()%50;printf("%4.0f”冈i]);}printfCW);printf("\nTheaverageis:%f\n".fun(x));printf(H\nTheresult:\n".fun(x));for(i=0;i<N;i++)printf("%5.0fprintfCVn*1);}18、给定程序中,函数fun的功能是:计算出形参s所指字符中中包含的单词个数,作为函数值返I可。为便于统计,规定各单词之间用空格隔开。例如,形参s所指的字符串为:ThisisaClanguageprogram..函数的返回值为6。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#includc<stdio.h>intfun(char*s){intn=0,flag=O;while(*s!=,\O,){if(*s!=*'&&nag==O)(/**********1^Uf)(j**********/_ln++_;flag=l;}/**********fou ********/if(*s='')flag=0_2_;/**********found**********/_s++_3_;)returnn;}main(){charstr[81];intn;printfCAnEnteralinetext:\n");gets(str);n=fun(str);printf("\nThereare%dwordsinthistext.\n\n",n);)19、给定程序中,函数fiin的功能是:在形参ss所指字符申数组中查找与形参I所指字符串相同的串,找到后返P]该串在字符串数组中的位置(下标值),未找到则返回ss所指字符串数组中共有N个内容不同的字符串,且用长小丁M。请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include<stdio.h>#include<string.h>#define N 5#deOne M 8intfun(char(*ss)[M].char*t)(inti;/**********fou(xj**********/for(i=0;i<_N_l_;i++)/**********foup|£^**********/if(strcmp(ss[i].t)==O)returni2;return-1;)main(){charchlN]lM]={Mif',,'while",,,switch",MintM,"for',},t(MJ;intn,i;printfC'\nTheoriginalstring\n\nM);for(i=Ou<N:i++)puts(ch[i]);printfCXn'1);printfCAnEnterastringforsearch:");gets(();n=fun(ch.t);/**********found**********/if(n=-1_3_)prinifCAnDon'ifoundin'');elseprintf("\nThepositionis%d.\n",n);}20、给定程序中,函数fun的功能是:找出NXN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#defineN4voidfun(int(*a)|NJ,int*b){intij;for(i=0;i<N;i++){/**********fou()(j**********/b[i]=a[0][ifor(j=l;j<N;j-H-)/**********foun(]**********/if(b(i]_<_2_a|jHi])b[i]=a[j][il;}main(){intx[N][N]={{12,5,8,7},(6,1,93},{1,23,4},{2,8,43}},y[N],ij;printf("\nThematrix:\n");for(i=Ou<N;i++){for(j=Oj<N;j++)printf(',%4d\x[i][j]);printf("\n");I/**********found**********/fun(_X,y3_J;printf(M\nTheresultis:n);for(i=0;i<N;i++)primf("%3d".y[i]);primfE);I21、给定程序中,函数fun的功能是:判断形参s所指字符串是否是"回文"(Palindrome),若是,函数返回值为1:不是,函数返回值为0。"回文"是正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出1E确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include<stdio.h>#include<string.h>#include<ctype.h>intfun(char*s){char*lp,*rp;/**********found**********/lp=_s」_;q)=s+strlen(s)-l;while((toupper(*lp)==toupper(*q)))&&(lp<rp))(/**********q********/lp++;rp_2_一一;)/**********fou ********/if(ip<rp)return0_3_;elsereturn1;}main(){chars[81];printf("Enterastring:");scanf("%s",s);if(fun(s))printfCW^sVisaPalindrome.\n\n';s);elseprintf(M\n\M%sVisn'taPalindrome.\n\nM,s);22、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到studem.dai文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据粮盅原数据,其它学生数据不变:若找不到,则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#defineN5typedefstructstudent(longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,longsno){FILE*fp;STUn;inti;fp=fopen(filename/'rtH-0);/**********found**********/while(!_feof(fp)_l_)(fread(&n,sizeof(STU),1,fp);/**********found**********/if(n.sno_==SHO_)break;Iif(!feof(fp)){for(i=0;i<3;i++)n.score[i]+=3;/******4t***fOU ********/fseek(fp,-IL*_3sizeof(STU)一SEEK.CUR);fwri(e(&n,sizeof(STU).I.fp);}fclose(fp);)main(){STUt[N]={{!OOOI.,,MaChao",91.92.77},(10002."CaoKai,,,75,60.88),(10003;'LiSi",85,70.78},{lOOtM:'FangFang",90.82,87),(lOOOS/ZhangSan",95,80,88}),ss[N];intij;FILE*fp;fp=fopen("student.dat","wb");fwrite(t,sizeof(STU),N.fp);fclose(fp);printf("\nTlieoriginaldata:\n'*);fp=fopen("student.dat"rbM);fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;j<N;j-H-){printfCAnNo:%ldName:%-8sScores:",ss(jj.sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",sslj].score[i]);printf("\n");1fun("studem.daC,.10003);fp=fopen("student.dat","rbM);fread(ss,sizeof(STU).N,fp);fclose(fp);printf("\nThedataaftermodifing:\n");for(j=O;j<N;j++){printfCAnNo:%IdName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("\n");}}23、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数ftm的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为:10004、"LiJie"、93、85、87。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<s(ring.h>structstudent{longsno;charname[10];floatscore[31;};voidfun(structstudent*b)(inti;/**********fouixl**********/b_->sno1_=10004;/**********foU********/strcpy(b_->name_2”LiJie");)main(){structstudentt=(10002,"ZhangQi,;93,85,87};inti;printfCAnXnTheoriginaldata:\nw);printf("\nNo:%ldName:%s\nScores:".t.sno,(.name);for(i=0;i<3;i++)printf("%6.2fLscore[i]);primfCXn");/**********found**********/fun(&t__3_);printf("\nThedataaftermodified:\nM);printf("\nNo:%idName:%s\nScores:M,i.sno.(,name);for(i=0;i<3;i++)printf(M%6.2f\t.score[i]);print*}24、给定程序中,函数fiin的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 617451548 26,平均值为:30500000移动后的输出为:306 17 15 26 4632404548请在程序的下划线处填入正确的内容并把卜划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<s(dlib.h>#include<stdio.h>#deHneN10doublefun(double*x){inti,j;doubleav,y[N];av=0;/**********found**********/for(i=0;i<N;i++)av+=_X[i]/N_1_;for(i=j=0;i<N;i++)if(x[ij<av){/**********found**********/i=0;while(i<N){if(x[i]!=-l)ylj++]=x(!];_i++_3_;for(i=0;i<N;i++)x[i]=y[i];returnav;main(){inti;doublex(N];for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0fprintfCW);printf("\nTheaverageis:%f\n",fun(x));printfCAnTheresult:\n".fun(x));for(i=0;i<N:i++)primf("%5.Ofprintf("\nM);I25、给定程序中,函数fun的功能是计算下式1 3 5 (2xn-l)?W+",+-(^jr直到悔震卜10-3,并把计算结果作为函数值返回.例如,若形参e的值为le-3,函数的返回值2.735678。清在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>doublefun(doublee){inti;doubles,x;/**********found**********/s=0;i=_0_l_;x=1.0;while(x>e){/**********fou(xj**********/_2i++_;/**********fOUf|^j**********/x=(2.0*i-l)/(C2.*i_3_)*(2.O*i));s=s+x;}returns;1main(){doublee=le-3;printf(H\nTheresultis:%An'\fun(e));26、给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1:从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:11111TOC\o"1-5"\h\z12 2 2 112 3 2 112 2 2 1I1II1请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#deGneN7/**********found**********/voidfun(int(*a)[N]_1_){intij,k,m;if(N%2=0)m=N/2;elsem=N/2+1;for(i=0;i<m;i++){/**********foun(l**********/for(j=i_2_;j<N-i;jH)am(il=a[N-i-l]U)=i+l;for(k=i+l;k<N-i;k++)/**********found**********/a[k][i]=a|kHN-i-l]=_i+13_;}Imain(){intx[N][N]={O},ij;fun(x);printfCAnTheresultis:\n");for(i=0;i<N:i-H-){for(j=0:j<N;j++)printf("%3d*x[i]m);primfCV);})27、给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在_2_处使f指向函数fl,在_3_处使f指向函数f20当调用正确时,程序输出:xl=5.000000,x2=3.OOOOOO,xl*xl+xl*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include<s(dio.h>doublefl(doublex){returnx*x;)doublef2(doublex,doubley){returnx*y;}doublefun(doublea,doubleb)/**********found**********/doublerl,r2;/*4t********fOU ********/f=_f1_2_; /*pointfountionfl♦/rl=f(a);f=_f23_;/*pointfountionf2♦/r2=(*D(a.b);returnrl+r2;}main(){doublexl=5,x2=3,r;r=fun(xl,x2);printf("\nxl=%f,x2=%f,xl*xl+xl*x2=%f\n",xl,x2,r);}28、给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的幅数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果.注意:源程序存放在考生文件夹下的BLANKI.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<stdlib.h>voidfun(char*s,inta,doublef)[/**********Sun(j**********/_FILE*_fp;charstr[100],strl[100],str2[100];intal;doublefl;fp=fopenCfilel.txt","wM);fprintf(fp,0%s%d%f\n0,s,a,f);/**********found**********/_fclose(fp)2_;fp=fopen(Mfilel.txtM,V);/**********found**********/fscanf(3fp_,M%s%s%s,\str,strl,str2);fcloseffp);al=atoi(strl);fl=atof(str2):printf(H\nTheresult:\n\n%s%d%f\n",str.al,fl);}main(){chara[10]="Hello!”;inib=12345;doublec=98.76;fun(a.b,c);

29、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回.(2x«-1)x(2x«+1)(2x同尸例如,当形参n的值为10时,函数返回:-0.204491,请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>doublefun(intn){inti,k;doubles,t;s=0;/**********1^Uf(d**********/k=_l1_;for(i=l;i<=n;i++){/**********foupj£j**********/t=_22*i_;s=s+k*(2*i-l)*(2*i+l)/(t*t);/**********found**********/k=k*_(_l)_3_;}returns;)main(){intn="l;while(n<0){primfC'Pleaseinpu((n>0):");scanf("%d*',&n);}printf("\nTheresultis:%f\n,',fun(n));30、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#defineN5typedefstructstudent{longcharfloat}STU;sno;longcharfloat}STU;name[10];score[3];voidfun(char*filename,STUn){FILE*fp;/**********qup(j**********/fp=fopen(_filename」一"rb+”);/**********fou ********/fseek(fp,-1L*sizeof(STU)._SEEK_END_2_);/**********found**********/fwrile(_&n3_,sizeof(STU),1,fp);}main()}main()(STUt(N)={{10001,"MaChao';91,92,77},{10002,"CaoKai",75,60,88),STUn=intij;{IOOO3,"LiSi",85,70,78}, {10004,'TangFang",90,82,STUn=intij;{IOOO3,"LiSi",85,70,78}, {10004,'TangFang",90,82,87),(10005;,ZhangSan,;95,80.88}};(10006;'ZhaoSi",55,70,68},ss[N];FILE*fp;fp=fopen("student.dat"wb'1);fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen("student.dat","rb*');fread(ss.sizeof(STU).N.fp);fclose(fp);printfC'VnTheoriginaldata:\nW);for(j=0;j<N;j++){printfCAnNo:%ldName:%-8sScores:M,ss[j].sno,ss[j].name);for(i=0;i<3;i++)prinlf("%6.2f”,ss[j].score(i]);printfCW);}fun("sludent.da(".n);printf("\nThedataaftermodiGng:\n\n");fp=fopen("student.dat,',"rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;j<N;j++)Scores:",ss[j].sno,ss[j].name);{printf("\nNo:%IdName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3:i++)printf(*%6.2fM,ss[j].score[i]);printf("\n");31、给定程序中,函数ftin的功能是:计算x所指数组中N个数的平均值(规定所有数均为iE数),平均值通过形参返回主函数,将小于平均值旦最接近平均值的数作为函数值返回,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30500000主函数中输出:m=30.0请在程序的下划线处填入正确的内容并把下划线删除.使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<s(dlib.h>#defineN10doublefun(doublex[],double*av){intij;doubled,s;s=0;for(i=0;i<N;i++)s=s+x(i];/**********Cund**********/_*av]_=s/N;d=32767;for(i=0;i<N;i++)if(x[i]<*av&&*av-x[i]<=d){/*4t********fOU ********/d=*av-x[i];j=_1_2_;}/**********found**********/returnmain()(inti;doublex[N],av,m;for(i=0;i<N;i++){x[il=rand()%50;printf("%4.0fRi]);}primf(H\nn);m=fun(x.&av);printf("\nTheaverageis:%f\n",av);printf("m=%5.1f",m);printRW);)32、给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>voidfun(char*s,inta,doublef)_FILE*_i_fP;charch;fp=fopen("filel.ixi*"w");fprintf(fp,'1%s%ds,汰f);fclose(fp);fp=fopen("filel.txf.T);printf("\nTheresult:\n\nM);ch=fgetc(fp);/**********found**********/while(!feof(_fp_2_)){/**********found**********/putchar(_Ch_3_);ch=fgetc(fp);}putcharC\n');fcloseffp);Imain(){chara[10J=Hello!";intb=12345;doublec=98.76;fun(a,b,c);33、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如:传给膨参a的数据中,学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,修改后的数据应为:10002、"USi"、96、81、89。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>structstudent{longsno;charname[10];floatscore[3];};/**********qund**********/_Structstudent_1_fun(stnictstudenta){inti;a.sno=10002:/**********Sund**********/strcpy(__2_,"LiSi");for(i=o;i<3;i++)_a.score[i]_3_+=1;returna:}main(){structstudents=(10001,"ZhangSan",95,80,88},t;inti;printf("\n\nTheoriginaldata:\n"):printf("\nNo:%ldName:%s\nScores:M,s.sno,);for(i=0;i<3;i++)printf("%6.2fM,s.score[i]);printfCAn");t=fun(s);printf("\nThedataaftermodified:\nM);printfCAnNo:%ldName:%s\nScores:M.t.sno,(.name);for(i=0;i<3;i++)printf("%6.2ft.score[i]);printf(An");34、给定程序中,函数firn的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符半数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/include<s(dio.h>#include<string.h>#define N 5#deGne M 8voidfun(char(*ss)(M]){char*ps(N],*tp;intij,k;for(i=0;i<N;i++)ps[i]=ss[i];for(i=0;i<N-1;i++){/**********found**********/k=_i_1_;for(j=i+l;j<N;j++)/**********fouixj**********/if(s(rlen(ps[k])<strlenCps[i]_2_))k=j;/**********fou ********/tp=ps[i];ps[i]=ps[k];ps[k]=_tp3 ;printfCAnThestringaftersortingbyIength:\n\n");for(i=0;i<N:i++)puts(psfi]);}main(){charch[NnM]={,,red,,,"green,,,"blue',,,,yeilow";'black,,};inti;printf("\nTheoriginalstring\n\n");for(i=0;i<N;i++)puts(ch|i]);printfCAn");fun(ch);35、给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdfl2543。请在程序的卜划线处填入正确的内容并把下划线删除,使程序得出正确的结果.注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<s(dio.h>#include<stdlib.h>#include<s(ring.h>char*fun(char*s){inti,j,k,n; char*p,*t;n=strlen(s)+1;(=(char*)malloc(n*sizeof(chiir));F>=(char*)malloc(n*sizeof(char));j=O;k=O;for(i=0;i<n;i++){if(((s(i]>='a,)&&(s[i]<='z'))ll((s[i]>=A,)&&(s[i]<=(Z'))){/**********砧und**********

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论