版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
笫01套:给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=l;while(*n){t=*n%_1_;if(t%2!=_2_){x=x+t*i;i=i*10;}*n=*nZ10;}*n=—3—;}main(){unsignedlongn=-l;while(n>99999999lln<0){printf(''Pleaseinput(Ofun(&n);printf("\nTheresultis:%ld\n",n);)解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0。第三处:最后通形参n来返回新数x,所以应填:X。给定程序MODI1.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includedoublefun(intn){doubleresult=1.0;ifn==0return1.0;while(n>1&&n<170)result*=n—returnresult;main(){intn;printf("InputN:");scanf("%d",&n);printf("\n\n%d!=%11\n\n",n,fun(n));)解题思路:第一处:条件语句书写格式错误,应改为:if(n==O)。第二处:语句后缺少分号。请编写ー个函数fun,它的功能是:将一个数字字符串转换为ー个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串”-1234”,则函数把它转换为整数值ー1234。函数fun中给出的语句仅供参考。注意:部分源程序存在文件PR0G1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includelongfun(char*p){inti,len,t;/*len为串长,t为正负标识・/longx=0;len=strlen(p);{t=-l;len-;p++;}elset=l;/・以下完成数字字符串转换为ー个数字・/returnx*t;)main()/・主函数・/{chars[6];longn;printf("Enterastring:\n");gets(s);n=fun(s);printf("%ld\n",n);NONO();}NONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chars[20];longn;fp=fopen("c:\\test\\in.dat","r");wf=fopen("c:\\testWout.dat","w");for(i=0;i<10;i++){fscanf(fp,M%sM,s);n=fun(s);fprintf(wf,n%ld\nn,n);)fclose(fp);fclose(wf);)解题思路:本题是将一个数字字符串转换为ー个整数。参考答案:#include#includelongfun(char*p){inti,len,t;/*len为串长,t为正负标识*/longx=0;len=strlen(p);if(p[O]=-'){t=-l;len-;p++;}elset=l;/・以下完成数字字符串转换为ー个数字・/while(*p)x=x*10-48+(*p++);returnx*t;)main()/・主函数・/{chars[6];longn;printf("Enterastring:\nH);gets(s);n=fun(s);printf("%ld\n”,n);NONO();}NONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chars[20];longn;fp=fopen(Mc:\\test\\in.datHrM);wf=fopen(nc:\\testWout.dat'V'w*');for(i=0;i<10;i++){fscanf(fp,M%sH,s);n=fun(s);fprintf(wf,,,%ld\n,\n);第02套:给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(char*s,inta,doublef){_1—fp;charch;fp=fopen(Mfilel.txt'\"w*');fprintf(fp,"%s%d%f\n0,s,a,f);fclose(fp);fp=fopen(,'filel.txt,\T*);printf("\nTheresult:\n\n");ch=fgetc(fp);while(!feof(_2_)){putchar(—3一);ch=fgetc(fp);}putchaifXn*);fclose(fp);)main(){chara[10]="Hello!M;intb=12345;doublec=98.76;fun(a,b,c);)解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕匕第一处:定义文本文件类型变量,所以应填:FILE*.第二处:判断文件是否结束,所以应填:fp。第三处:显示读出的字符,所以应填:ch。给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(char*s){inti,j;for(i=0,j=0;s[i]!=ヘ〇';i++)s[j]=s[i];s[j]="\O";)main(){charitem[80];printf(M\nEnterastring:u);gets(item);printfC'n'nThestringis:ド%s\"\n”,item);fun(item);printf(n\n\nThestringofchangingis:\"%s\''n",item);)解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量J来控制新字符串的位置,所以应改为:sU++]=s[i];。第二处:置新字符串的结束符,所以应改为:s[j]='ゝ0';.请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到ー个字符串中。例如,二维数组中的数据为:ssssHHHH则字符串中的内容应是:WSHWSHWSHo注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#defineM3#defineN4voidfun(chars[]|N|,char*b){inti,j,n=O;for(i=0;i<N;i++)/*请填写相应语句完成其功能・/b[n]=W;)main(){chara[100],w[M|[N]={{,W,;W,;W,;W,},{'S';S,;S,,,S,},{'H,;H',,H,;H,}};inti,j;printf('ThematrixAn");for(i=0;i<p>{for(j=0;j<>printf("\rT);)fun(w,a);printf(MTheAstring:\nM);puts(a);printfC^nXn");NONO();)解题思路:本题是把二维数组中的字符数据按列存放到ー个字符串中。.计算存放到ー维数组中的位置。.取出ニ维数组中的字符存放到ー维数组(已计算出的位置)中。参考答案:voidfun(chars[]|N|,char*b)(inti,j,n=O;for(i=0;i<N;i++)/*请填写相应语句完成其功能・/(for(j=0;j<M;j++){b[n]=s[j][i];n=i*M+j+l;))b[n]=へ。’;第03套:ー、填空题:给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#defineN8typedefstructlist{intdata;structlist*next;}SLIST;SLIST*creatlist(int*);voidoutlist(SLIST*);intfun(SLIST*h){SLIST*p;ints=0;p=h->next;while(p)/********來・'found***來******/s+=p-> 1 ;/**********Sund**********/p=p-> 2 :returns;main(){SLIST*head;inta[N]={12,87,45,32,91,16,20,48);head=creatlist(a);outlist(head);/**********'found**********/SLIST*creatlist(inta[]){SLIST*h,*p,*q;inti;h=p=(SL!ST*)malloc(sizeof(SLIST));for(i=0;i<p>{q=(SLIST*)malloc(sizeof(SLIST));q->data=a[i];p->next=q;p=q;}p->next=O;returnh;)voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf('ThelistisNULL!\nH);else{printf(M\nHead");do{printf(u->%dn,p->data);p=p->next;}while(p!=NULL);printf(H->End\nn);)}解题答案:/**********^^ ^^**********/s+=p->data;/**********^^~,^^**********/p=p->next;/ yj—■Iprintf(H\nsum=%d\nM,fun(head));二、改错题:给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与tl所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:"abcdabfab",tl所指子串中的内容为:"ab",t2所指子串中的内容为:“99"时,结果在w所指的数组中的内容应为:"99cd99f99"。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#includevoidfun(char*s,char*tl,char*t2,char*w)char*p,*r,*a;strcpy(w,s);while(*w){p=w;r=tl;/************found************/while(r)if(*r=*p){r++;p++;}elsebreak;if(*r=^0^){a=w;r=t2;while(*r){*a=*r;a++;r++)w+=strlen(t2);)elsew++;))main()(chars|100|,tl[1001,t2[100Lw[100];printf(,f\nPleaseenterstringS:M);scanf(n%sM,s);printf(n\nPleaseentersubstringscanf("%s”,tl);printfCAnPleaseentersubstringt2:M);scanf('*%sM,t2);if(strlen(t1)=strlen(t2)){fun(s,tl,t2,w);printfCAnTheresultis:%s\n*\w);elseprintf("Error:strlen(t1)!=strlen(t2)\n");解题答案:/************nd************/while(*r)/************found************/*a=*r;a++;r++;三、程序题:函数fun的功能是:将s所指字符串中下标为偶数的字符删除,申中剩余字符形成的新串放在t所指数组中。例如,当s所指字符串中的内容为:"ABCDEFGHIJK",在t所指数组中的内容应是:“BDFHJ”。注意:部分源程序存在文件PR0G1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includevoidfun(char*s,chart[])1)main()(chars[100],t[100];voidNONO();printf(H\nPleaseenterstringS:");scanf(n%sM,s);fun(s,t);printf(**\nTheresultis:%s\nu,t);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/chars[100],t[100];FILE*rf,*wf;rf=fopenCIn.dat"??");wf=fopen(',out.dat,,,,,wn);for(i=0;i<10;i++){fscanf(rf,"%sn,s);fun(s,t);fprintf(wf,u%s\n';t);}fclose(rf);fclose(wf);}参考答案:voidfun(char*s,chart[]){inti,j=0;for(i=1;i<strlen(s);i+=2)t[j++]=s[i];第04套:一、填空题:给定程序中,函数ftm的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长小。<p>请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#defineM5#defineN20/**********found**********/intfun(char(*ss) 1 ,int*n){inti,k=0,len=0;for(i=0;io{len=strlen(ss[i]);if(i==O)*n=—2—:/**********found**********/return(k);main(){charss[M][N]={Shanghai°,"guangzhou'V'beijing'1,,,tianjing,,,McchongqingM};intn,k,i;printf(n\nTheoriginalstringsare:\nH);for(i=0;i<M;I++)PUTS(SS[I]);<p>k=fun(ss,&n);printf(M\nThelengthoflongeststringis:%d\nM,n);printf('AnThelongeststringis:%s\nM,ss[k]);))解题答案:/**********第―・由**********/intfun(char(*ss)[N],int*n)/**********^^~,^^**********/if(i==0)*n=len;*n=len;二、改错题:给定程序M0DI1.C中fun函数的功能是:根据形参m,计算如下公式的值。1111t 234m例如,若输入5.则应输出2.283333。请改正程序中的错误或在下划线处填I:适当的内容并把下划线删除,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includedoublefun(intm)doublet=1.0;inti;for(i=2;i<=m;i++)/**********found**********/t+=1.0/k;/**********Gund**********/main()intm;printf(n\nPIeaseenter1integernumber:M);scanf(M%du,&m);printf(M\nTheresultis%lf\n'\fun(m));解题答案:/**********found**********/t+=1.0/i;/**********R^und**********/returnt;三、程序题:编写ー个函数,该函数可以统计ー个长度为2的字符串在另ー个字符串中出现的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,子字符串为:as,则应输出6。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includeintfun(char*str,char*substr){}NONO(){/・请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。・charstr[81],substr[3],ch;intn,len,i=0;FILE*rf,*wf;rf=fopen("in.da吐"r");wf=fopen(,'out.dat,',,,w,');while(i<5){fgets(str,80,rf);fgets(substr,10,rf);len=strlen(substr)-1;ch=substr[len];if(ch=='\n'IIch==Oxla)substr|len]=0;n=fun(str,substr);fprintf(wf,"%d\n",n);i++;}fclose(rf);fclose(wf);}main()(charstr[81],substr[3];intn;printf("输入主字符串:");gets(str);printf("输入子字符串:");gets(substr);puts(str);puts(substr);n=fun(str,substr);printf(,'n=%d\n,,,n);NONO();}参考答案:intfun(char*str,char*substr)Iintent=0;char*p=str,*q;while(*p){q=strstr(p,substr);if(q==NULL)break;p=q+strlen(substr);cnt++;)returnent;)main(){charstr[81],substr[3];intn;printf(”输入主字符串:");gets(str);printf("输入子字符串:ッ;gets(substr);puts(str);puts(substr);n=fun(str,substr);printf(nn=%d\n';n);NONO();第05套:一.填空题:给定程序中,函数fun的功能是:有NxN矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。例如,若N=3,有下列矩阵:1235689计算结果为4152963请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#defineN4voidfun(int(*t)[N]){intj,r[N];for(j=0;jfor(j=0;jo/***求******found**东*不*****/for℃j<>/***氷******found**********/for(j=N-l;j>=0; 2 )for(j=N-l;j>=0;j-)/**********found*******糸**/main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;printf(H\nTheoriginalarray:\n");for(i=0;io{for(j=0;j<printf(?%2d>fun(t);printfCAnTheresultis:\nH);for(i=0;io{for(j=0;j<printf(?%2d>解题答案:/**********found**********//**********nd**********/for(j=N-l;j>=O;j—)/**********found**********/二、改错题:给定程序MODILC中函数fun的功能是:计算S=f(-n)+f(-n+l)+...+f(0)+f(l)+f(2)+...+f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:f(x)4°x=0或x=2>-(x-l)/(x-2)x<0请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#include/************,()und************/if(x==0.0IIx=2.0)return0.0;elseif(x<0.0)return(x-l)/(x-2);elsereturn(x+l)/(x-2);doublefun(intn){inti;doubles=0.0,y;for(i=-n;i<=n;i++){y=f(1.0*i);s+=y;J/************found************/returnsmain()printf("%An",fun(5));解题答案:/************tound************/doublef(doublex)/************found************/returns;三、程序题:编写函数fun,它的功能是计算:s作为函数值返回。在C语言中可调用10g(n)函数求In(n)olog函数的引用说明是:doublelog(doublex)。例如,若m的值为:20,fun函数值为:6.506583〇注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includedoublefun(intm)main()1voidNONO();printf(H%f\nM,fun(20));NONO();)voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,n;doubles;fp=fopen(,,in.dat,,/r,');wf=fopen("out.dat,,,MwH);for(i=0;i<10;i++){fscanf(fp,n%dn,&n);s=fun(n);fprintf(wf, s);)fclose(fp);fclose(wf);)参考答案:doublefun(intm){doubles=0.0;inti;for(i=1;i<=m;i++)s+=log(1.0*i);s=sqrt(s);returns;)第06套ー、填空题:函数fun的功能是进行数字字符转换。若形参ch中是数字字符。〜9,则。转换成9,T转换成8,2转换成7 9转换成。;若是其它字符则保持不变;并将转换后的结果作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include1 fun(charch)if(ch>='0'&&—2—)/**********fk)i[nd**********/return'9'-(ch- 3 );returnch;main(){charcl,c2;printfCAnTheresult:\nn);cl='2';c2=fun(cl);printf(ncl=%cc2=%c\nn,cl,c2);cl='8';c2=fun(cl);printf("cl=%cc2=%c\nH,cl,c2);cl="a';c2=fun(cl);printf(Hcl=%cc2=%c\nn,cl,c2);}解题答案:/*********負^・クド**********/charfun(charch)/*********第一空**********/if(ch>=,0,&&ch<='9,)return9-(ch-O);二、改错题:给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。例如,在调用fun函数之前给a输入字符串:ABCDEFGHIJK,调用函数之后,字符数组b中的内容则为:ABCDEFGHIJK。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#includevoidfun(char*p,char*b){inti,k=0;while(*p){i=l;while(i<=3&&*p){/**********^ound**********/b[k]=p;k++;p++;i++;b|k++]="”;}}b[k]=*\O';}main(){chara[80],b[80];printf("Enterastring:”);gets(a);printf("Theoriginalstring:”);puts(a);fun(a,b);printf(n\nThestringafterinsertspace:");puts(b);printf(An\n");)解题答案:b[k]=*p;/**********found**********/b[k++]=,三、程序题:N名学生的成绩已在主函数中放入・个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625〇注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#include#defineN8structslist{doubles;structslist*next;typedefstructslistSTREC;doublefun(STREC*h){)STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N)<p>{q=(STREC*)maIloc(sizeof(STREC));q->s=s[i];i++;p->next=q;p=q;}p->next=O;returnh;)outlist(STREC*h){STREC*p;p=h->next;printf("headn);do{printf(H->%4.1f',p->s);p=p->next;}while(p!=0);printf(H\n\n");)main(){doubles[N]={85,76,69,85,91,72,64,87},ave;voidNONO();STREC*h;h=creat(s);outlist(h);ave=fun(h);printf(Have=%6.3f\n",ave);NONO();)voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*in,*out;inti,j;doubles[N],ave;STREC*h;in=fopen(,'in.dat',,,'r,');out=fopen(',out.dat,,,,'wn);丁,for(i=0;i<10;i++){for(j=0;j<N;j++)fscanf(in,h=creat(s);丁,ave=fun(h);fprintf(out,n%6.31f\nH,ave);)fclose(in);fclose(out);)参考答案:#includedoublefun(STREC*h)STREC*p=h->next;/*由于头结点中没有存放数据*/doubleav=0.0;/・对计算成绩平均值的变量进行初始化ッintn=0;while(p!=NULL){/・判断链表是否结束來/av=av+p->s;/・对成绩进行累加・/p=p->next;/・到下ー个结点位置ツn++;/*人数加1*/)av/=n;/・计算成绩平均值*/returnav;/・返回成绩平均值*/)第07套ー、填空题:函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#includeintfun(inta,intb,intc)intt;/*******************/:((b>c)?c:-3—));t=(a>b)?(b>c?b:(a>c?c:—:((b>c)?c:-3—));returnt;main(){intal=3,a2=5,a3=4,r;r=fun(al,a2,a3);printfC'nThemiddlenumberis:%d\n",r);解题答案:#includeintfun(inta,intb,intc)intt;/**********nd**********/t=(a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));二、改错题:给定程序MODI1.C中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a〜u,则将其转换为其后的第5个字母;若小写字母为v〜z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#includecharfun(charc){if(c>:'A'&&c<='Z')/**************found**************/C=C+32;if(c>='a'&&cv='u)/**************found**************/c=c-5;elseif(c>='v'&&c<=,z')c=c-21;returnc;main(){charcl,c2;printf("\nEnteraletter(A-Z):*');cl=getchar();if(isupper(cl)){c2=fun(cl);printf(M\n\nTheletterヽ‘%eVchangeto\'%c\\n",cl,c2);elseprintf(n\nEnter(A-Z)!\nH);解题答案:/**************^^und**************/c=c+32;c=c+5;三、程序题:请编写函数fun,其功能是:计算并输出例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。注意:要求n的值大于1但不大于100。部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includedoublefun(intn){)main(){intn;doubles;printf(^n\nlnputn:");scanf(n%d'\&n);s=fiin(n);printf(H\n\ns=%f\n\nM,s);NONO();}NONO(){/・请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。号FILE*rf,*wf;intn,i;doubles;rf=fopen("in.dat","r");wf=fopen(,'out.dat,',,,wH);for(i=0;i<10;i++){fscanf(rf,"%d”,&n);s=fun(n);fprintf(wf,n%lf\nM,s);)fclose(rf);fclose(wf);)参考答案:doublefun(intn)(inti;doublefac=I.O;doublesum=1.0;for(i=2;i<=n;i++){fac+=sqrt(i);sum+=fac;returnsum;)第08套ー、填空题:给定程序中,函数ftin的功能是:将形参s所指字符串屮的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdfl23543。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#includechar*fun(char*s){inti,j,k,n;char*p,*t;n=strlen(s)+l;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=();k=0;for(i=0;io{if(((s[i]>=,a,)&&(s[i]<=,z'))ll((s[i]>=W)&&(s[i]<=,Z'))){/**********nd**********/else{p[k]=s[i];k++;}/*******************/for(i=0;i<_2_;i++)t[j+i]=p[il;/**********nd**********/i[j+k]=_3_:returnt;main(){chars[80];printf(nPleaseinput:り;scanf(n%s'\s);printf(AnTheresultis:%s\n*',fun(s));解题答案:第一空for(i=0;i/**********第二空**********/t[j+k]=0;二、改错题:给定程序MODI1.C中函数fun的功能是:将s所指字符串中最后一次出现的与t!所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:"abcdabfabc",tl所指子串中的内容为:“ab”,t2所指子串中的内容为:“99”时,结果,在w所指的数组中的内容应为:"abedabf99cMo请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或刪行,也不得更改程序的结构!给定源程序:#include#includevoidfun(char*s,char*tl,char*t2,char*w)(char*p,*r,*a=s;strcpy(w,s);while(w){p=w;r=tl;while(*r)/************tound************/IF(*r=*p){r++;p++;}elsebreak;if(*r=\Or)a=w;W-H-;}r=t2;while(*r){*a=*r;a++;r++;}}main(){chars[100],tl[100],t2[100],w[100];printf(H\nPleaseenterstringS:H);scanf("%s",s);printf(,f\nPleaseentersubstringscanf("%s'\tl);printf(n\nPleaseentersubstring⑵");scanf("%s”,t2);if(strlen(tl)=strlen(t2)){fun(s,tl,t2,w);printf(M\nTheresultis:%s\nM,w);elseprintf("\nError:strlen(tl)!=strlen(t2)\n");解题答案:/*********** nd************/while(*w)/************tound************/if(*r=*p)三、程序题:函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCII码值为奇数 字符1的ASCH码值也为奇数、…都应当删除,其它依此类推。最t所指的数组中的内容应是:"BDF24"o注意:部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includevoidfun(char*s,chart[|)()main(){chars[100Lt[100];voidNONO();printf("\nPIeaseenterstringS:n);scanf(n%sM,s);fun(s,t);printf(**\nTheresultis:%s\nM,t);NONO();)voidNONO(){/・木函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/chars|100|,t[100];FILE*rf,*wf;inti;rf=fopen("in.daピJr");wf=fopen(,'out.dat,,,MwH);for(i=0;i<10;i++){fscanf(rf,"%sH,s);fun(s,t);fprintf(wf,n%s\n'\t);}fclose(rf);fclose(wf);}参考答案:voidfun(char*s,chart[]){inti,j=0;for(i=0;i<strlen(s);i++)if(s[i]%2=0)t|j++]=s[i];t|j]=0;)第09套一、填空题:给定程序屮,函数fun的功能是:判定形参a所指的NxN(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1;不是,函数返回值为〇。"幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3x3的矩阵就是ー个"幻方":492357816请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得増行或删行,也不得更改程序的结构!给定源程序:#include#defineN3intfun(int(*a)[N]){inti,j,m1,m2,row,colum;ml=m2=O;for(i=0;i<p>{j=N-i-l;ml+=a[i][i];m2+=a[i][j];}if(ml!=m2)return0;for(i=0;i<i++)>/**********!Y)und**********/row=colum=1for(j=0;jo{row+=a[i][j];colum+=a|j][i];}/********* nd**********/if((row!=colum)_2_(row!=ml))return0;/**********3un(l**********/return 3.main(){intx[N][N]3j;printf(nEnternumberforarray:\nn);for(i=0;i<p>for(j=0;j<j++)>printf(MArray:\n,r);for(i=0;i<p>{for(j=0;joprintf("\n");if(fun(x))printf(MTheArrayisamagicsquareAn'*);elseprintf('*TheArrayisn'tamagicsquareAn**);解题答案:/**********^T—*********/row=colum=0;/**********がー空*********/if((row!=colum)II(row!=ml))return0;/**********第一;空**********/return1;二、改错题:给定程序MODI1.C屮fun函数的功能是:根据整型形参m,计算如下公式的值。111t一]2 3 m例如,若主函数中输入5,则应输出-0.283333»请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includedoublefun(intm)doublet=1.0;inti;for(i=2;i<=m;i++)/**********found**********/1.0-1/i;/**********nd**********/}main(){intm;printf(H\nPleaseenter1integernumbersAn");scanf(M%dH,&m);printf(n\n\nTheresultis%lf\nM,fun(m));)解题答案:returnt;三.程序题:请编写ー个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入函sdafaaz67",则输出为"asdafaaz67"o注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includevoidfun(char*str)()main()charstr[81];voidNONO();printf("Inputastring:");gets(str);puts(str);fun(str);printf("***str:%s\n",str);NONO();}voidNONO(){/・请在此函数内打开文件,输入调试数据,调用fun函数,输出数据,关闭文件。・charstr[81];intn=0;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");while(n<10){fgets(str,80,rf);fun(str);fprintf(wf,u%sn,str);n++;}fclose(rf);fclose(wf);)参考答案:intfun(char*str){char*p=str;inti=0;while(*p){if(*p!=つstr[i++]=*p;P++;str[i]=0;)第10套一、填空题:给定程序中,函数ftm的功能是:利用指针数组对形参SS所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#defineN5#defineM8voidfun(char(*ss)[M]){char*ps[N],*tp;inti,j,k;for(i=0;ifor(i=0;i<p>for(j=i+l;jo/**********nd**********/if(strlen(ps[k])<strlen(—2—))k=j;/**********!Y)und**********/tp=ps[i];ps[i]=ps[k];ps[k]=_3_;printf(H\nThestringaftersortingbylength:\n\nM);for(i=0;iomain(){charch[N][M]={"red,,,,,green,,;,blue,,,,(yellow,',nblack,,};inti;printf(M\nTheoriginalstring\n\nu);
for(i=0;i<>fun(ch);解题答案:for(i=0;i<>fun(ch);解题答案:*/第一空*/if(strlen(ps[k])<strlen(ps[j]))k=j;/********************/tp=ps[i];ps[i]=ps[k];ps[k]=Ip;二、改错题:已知一个数列从第0项开始的前三项分别为0,0,1«以后的各项都是其相邻的前二:项之和。给定程序M0DI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。例如,当n=10时,程序的输出结果应为:23.197745。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:
#include#include/************found************/fun(intn){doublesum,sO,si,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;sO=0.0;si=0.0;s2=1.0;for(k=4;k<=n;k++)sum+=sqrt(s);sO=si;si=s2;s2=s;/************found************/returnsummain(){intn;printf("InputN二");scanf(M%du,&n);解题答案:/************tound************/doublefun(intn)/*********** nd************/returnsum;三、程序题:编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includedoublefun(doublex,intn)()main(){voidNONO();printf(M%f\n",fun(0.3,10));NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,n;doubles,x;fp=fopen(Min.datM,MrM);wf=fopen(,'out.dat,',,,wH);for(i=0;i<10;i++){fscanf(fp, &x,&n);s=fun(x,n);fprintf(wf, s);}fclose(fp);fclose(wf);)参考答案:#include#includelongjc(intn){longs=1;inti;for(i=1;i<=n;i++)s*=i;returns;doublefun(doublex,intn){doubles=1.0,y=x;inti;for(i=1;i<=n;i++){s+=y/(double)jc(i);y*=x;)returns;)第11套ー、填空题:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#defineN5typedefstructstudent{longsno;charname110|;floatscore[3];}STU;voidfun(char*filename,longsno){FILE*fp;STUn;inti;fp=fopen(filename,“rb+”);{fread(&n,sizeof(STU),1,fp);/**********found**********/if(n.sno_2_sno)break;if(!feof(fp)){for(i=0;i<3;i++)n.score[i]+=3;/**********R^und**********/fseek(_3_,-(long)sizeof(STU),SEEK_CUR);fwrite(&n,sizeof(STU),1,fp);}fclose(fp);)main(){STUt[N]={{10001,nMaChao",91,92,77),{10002,nCaoKaiH,75,60,88},{10003,nLiSi”,85,70,78},{10004,"FangFangn,90,82,87},{10005,"ZhangSan'1,95,80,88}},ss[N];inti,j;FILE*fp;fp=fopenC'student.daf,"wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);printfCAnTheoriginaldata:\n");fp=fopen(nstudent.datH,'Yb'*);fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;jo{printf("\nNo:%ldName:%-8sScores:*\ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf(M%6.2fM,ss[j].score[i]);printf("\n“);}fun("student.dat\10003);fp=fopen(nstudent.datn,”rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printf(M\nThedataaftermodifing:\nn);for(j=0;jo{printf("\nNo:%ldName:%-8sScores:M,ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f”,ss[j].score[i]);printfCXn");解题答案:/**********第・•空**********/while(!feof(fp))/**********第・空**********/if(n.sno==sno)break;/**********第二空*********/fseek(fp,-(long)sizeof(STU),SEEK_CUR);二、改错题:给定程序M0DI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。给定源程序:#include#include#defineN80voidinsert(char*aa){intcharch;/**********found**********/n=strlen[aa];for(i=l;io/**********^^und**********/c=aa[i];while(<j>=0)&&(ch<AA[J]))<p>{aa[j+l]=aa[j];j一;)aa[j+l|=ch;}}main(){chara[N]=,'QWERTYUIOPASDFGHJKLMNBVCXZn;printf('Theoriginalstring:%s\n”,a);insert(a);printf(nThestringaftersorting:%s\n\n",a);}解题答案:/**********found**********/n=strlen(aa);/********** nd**********/ch=aa[i];三、程序题:N名学生的成绩已在主函数中放入ー个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#include#defineN8structslist{doubles;structslist*next;};typedefstructslistSTREC;doublefun(STREC*h))STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N)<p>{q=(STREC*)malloc(sizeof(STREC));q->s=s[i];i++;p->next=q;p=q;)p->next=O;returnh;}outlist(STREC*h){STREC*p;p=h->next;prinlf("head");do{printf(*'->%2.(^',p->s);p=p->next;}while(p!=O);printf(n\n\nH);)main(){doubles[N]={85,76,69,85,91,72,64,87},max;voidNONO();STREC*h;h=creat(s);outlist(h);max=fun(h);printf(Hmax=%6.1f\n'\max);NONO();}voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*in,*out;inti,j;doubles[N],max;STREC*h;in=fopen(,'in.dat",,'rM);out=fopen("out.datM,"w");for(i=0;i<10;i++){for(j=0;j<N;j++)fscanf(in,&s[j]);h=creat(s);max=fun(h);fprintf(out,"%6.llf\n",max);fclose(in);fclose(out);)参考答案:doublefun(STREC*h)(doublemax=h->s;STREC*p;p=h->next;while(p){if(p->s>max)max=p>>s;p=p->next;)returnmax;)STREC*creat(double*s){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N)<p>{q=(STREC*)malloc(sizeof(STREC));q->s=s|i|;i++:p->next=q;p=q;)p->nex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024广东湛江市“菁英托举”行动专项支持岗位招聘66人(教师岗3人)笔试备考题库及答案解析
- 2024北京大学集成电路学院招聘1名劳动合同制工作人员笔试备考题库及答案解析
- 2024年车辆买卖与维修服务合同
- 2024年度租赁合同:单间出租房租金调整与支付协议
- 二零二四年度档口租赁合同:物业转让与过户条款
- 彩板房合同完整版
- 二零二四年度云计算服务合同with数据安全管理
- 二零二四年度智能家居产品采购合同(04版)
- 北京市小客车租赁公司2024年度设备采购合同
- 二零二四年度北京物联网技术研发合同
- Unit 3 My School Section A What is your school like (2a-2f) 说课稿2024-2025学年人教版英语七年级上册
- 建筑公司财务管理制度及流程
- 《新媒体营销概论》教案(3-4)新媒体的类型
- 江苏省宿迁市沭阳县2024-2025学年五年级上学期11月期中道德与法治+科学试题
- 【人教】第三次月考卷【九上全册】
- 北师大版五年级上册数学期末测试卷及答案共5套
- 公司组织架构图模板完整版可编辑 16
- DL-T5394-2021电力工程地下金属构筑物防腐技术导则
- 保健食品质量标准要求
- 学习解读新修订的《固体废物污染环境防治法》讲座PPT模板
- 境外就业中介机构经营许可证
评论
0/150
提交评论