2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案_第1页
2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案_第2页
2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案_第3页
2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案_第4页
2021年度全国大学生历年全国计算机等级考试二级C语言上机考试题库及答案_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

1.填空给定程序功能是调用fun函数建立班级通讯录。通讯录中记录每位学生编号,姓名和电话号码。班级人数和学生信息从键盘读入,每个人信息作为一种数据块写到名为myfile5.dat二进制文献中。请在程序下划线处填入对的内容并把下划线删除,是程序得出对的成果。注意:源程序存储在考生文献夹下BLANKl.c中不得增行或删行,也不得更改程序构造!voidcheck();/**********found**********/intfun( 1 *std)(/**********found**********/ 2 *fp;inti;if((fp=fopen("myfile5.dat","wb"))==NULL)retum(O);printf("\nOutputdatatofile!\n");for(i=0;i<N;i++)/**********found**********/fwrite(&std[i],sizeof(STYPE),1,—3—);fclose(fp);return(1);)修改给定程序MODIl.C中函数fun功能是:先将在字符串s中字符按正序存储到t串中,然后把S中字符按逆序连接到t串背面例如:当s中字符串为:“ABCDE”时,则她中字符串应为:“ABCDEEDCBA”。请改正程序中错误,使她能得出对的成果。注意:不要改动main函数,不能增行或删行,也不得更改程序构造!voidfun(char*s,char*t){inti>si;si=strlen(s);/************found************/for(i=0;i<=sl;i++)t[i]=s[i];for(i=0;i<sl;i++)t[sl+i]=s[sl-i-l];/************found************/t[sl]='\0';}程序函数fun功能是:将两个两位数正整数a,b合并成一种整数放在c中。合并方式是:将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c数百位和个位上。例如:a=45,b=12时,调用该函数后,c=4152.注意:某些源程序存在文献PROG1.C中。数据文献IN.DAT中数据不得修改。请勿改动主函数main和其她函数中任何内容,仅在函数fun花括号中填入你编写若干语句。答案:B:STYPEFILEfpM:for(i=0;i<sl;i++) t[2*sl]=0;P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2.填空给定程序功能是:从键盘输入若干行文本(每行不超过80个字符),写到文献myfile4.txt中,用作为字符串输入结束标记。然后将文献内容读出显示在屏幕上。文献读写分别有自定义函数ReadText和WriteText实现。请在程序下划线处填入对的内容并把下划线删除,是程序得出对的成果。注意:源程序存储在考生文献夹下BLANKl.c中不得增行或删行,也不得更改程序构造!main(){FILE*fp;if((fp=fopen("myfile4.txt","w"))==NULL){printf("openfail!!\n");exit(0);}WriteText(fp);fclose(fp);if((fp=fopen("myfile4.txt","r"))==NULL){printf("openfail!!\n");exit(O);}ReadText(fp);fclose(fp);voidWriteText(FILE―1—){charstr[81];printf(n\nEnterstringwith-1toend:\n");gets(str);while(strcmp(str,n-1n)!=0){/**********found**********/fputs( 2 ,fw);fputs("\nn,fw);gets(str);)}voidReadText(FILE*fr){charstr[81];printfC^nReadfileandoutputtoscreen:\n");fgets(str,81,fr);while(!feof(fr)){/*********ound**********/printf("%s",—3—);fgets(str,81,fr);))修改给定程序MODIl.c中函数fun功能是:从低位开始取出长整形变量s中奇数位上数,依次构成一种新数放在t中,高位仍放在高位,低位仍放在低位。例如:当s中数为:7654321时,t中数为:7531请改正程序中错误,使她能得出对的成果。注意:不要改动main函数,不能增行或删行,也不得更改程序构造!#include<stdio.h>voidfun(longs,longt){longsl=10;*t=s%10;while(s>0){s=s/100;*t=s%10*si+*t;/***********ound************/si=si*100;))程序函数fun功能是:将两个两位数正整数a,b合并成一种整数放在c中。合并方式是:将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c数百位和个位上。例如:a=45,b=12时,调用该函数后,c=1524.注意:某些源程序存在文献PROG1.C中。数据文献IN.DAT中数据不得修改。请勿改动主函数main和其她函数中任何内容,仅在函数fun花括号中填入你编写若干语句。2、B:*fwstrstrM:long*tsi=sl*10;P:*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);3.填空给定程序中,函数fun功能是:将自然数1~10以及它们平方根写到名为myfile3txt文本文档中,然后再顺序读出显示在屏幕上。请在程序下划线处填入对的内容并把下划线删除,是程序得出对的成果。注意:源程序存储在考生文献夹下BLANKl.c中不得增行或删行,也不得更改程序构造!intfun(char*fname){FILE*fp;inti,n;floatx;if((fp=fopen(fname»"w"))==NULL)return0;for(i=l;i<=10;i++)/**********found**********/fprintf( 1 ,”%d%f\nn,i,sqrt((double)i));printf(n\nSucceed!!\nn);/**********tound**********/―2—;printf(n\nThedatainfile:\n");/**********found**********/if((fp=fopen(—3—,"r"))==NULL)return0;fscanf(fp,"%d%f',&n,&x);while(!feof(fp)){printf("%d%f\n",n,x);fscanf(fp,"%d%f',&n,&x);}fclose(fp);return1;}修改给定程序MODIl.c中fun函数功能是:将n个无序整数从小到大排序。fun(intn,int*a){inti,j,p,t;for(j=0;j<n-l;j++){P=j;/************found************/for(i=j+l;i<n-l;i++)if(a[p]>a[i])/************found************/t=i;if(p!=j){t=a[j];a[j]=a[p];a[p]=t;))}程序函数fun功能是:将两个两位数正整数a,b合并成一种整数放在c中。合并方式是:将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c数百位和个位上。例如:a=45,b=12时,调用该函数后,c=2514注意:某些源程序存在文献PROG1.C中。数据文献IN.DAT中数据不得修改。请勿改动主函数main和其她函数中任何内容,仅在函数fun花括号中填入你编写若干语句3、B:fpfclose(fp)fnameM:i<np=i*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);4.填空给定程序功能是:调用函数fun将指定源文献中内容复制到指定目的文献中,复制成功时函数返回值为1,失败时返回值为0,在复制过程中,把复制内容输出到终端屏幕。主函数中源文献名放在变量sfname中,目的文献名放在变量tfname中intfun(char*source,char*target){FILE*fs,*ft;charch;/**********found**********/if((fs=fopen(source, 1 ))==NULL)return0;if((ft=fopen(target,1(w,,))==NULL)return0;printf("\nThedatainfile:\nH);ch=fgetc(fs);/**********found**********/while(!feof(—2—)){putchar(ch);/**********found**********/fputc(ch, 3 );ch=fgetc(fs);fclose(fs);fclose(ft);printf(n\n\nM);return1;修改给定程序MODI1.C中函数fun功能是:将长整形数中每一位上为偶数数依次取出,构成一种新数放在t中。高位仍在高位,低位仍在低位。例如:当s中数为:87653142时,t中数为:8642voidfun(longs,long*t){intd;longsl=1;*t=0;while(s>0){d=s%10;/************found************/if(d%2=0){*t=d*sl+*t;si*=10;/************found************/s\=10;程序函数fun功能是:将两个两位数正整数a,b合并成一种整数放在c中。合并方式是:将a数十位和个位数依次放在c数千位和十位上,b数十位和个位数依次放在c数百位和个位上。例如:a=45,b=12时,调用该函数后,c=5142注意:某些源程序存在文献PROG1.C中。数据文献IN.DAT中数据不得修改。请勿改动主函数main和其她函数中任何内容,仅在函数fun花括号中填入你编写若干语句。4、B:"r”fsftM:(d%2==0)s/=10;P:*c=(a%10)*1000+(b/l0)*100+(a/l0)*10+(b%10);5.填空给定程序中已建立一种带有头结点单向链表,链表中各节点按结点数据域中数据递增有序链表。函数fun功能是:把形参x值放入一种新结点并插入到链表中,插入后结点数据域值仍保持递增有序。typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h,intx){SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST));/**********found**********/s->data= 1 ;q=h;p=h->next;while(p!=NULL&&x>p->data){/**********fc)unci**********/q=—2.p=p->next;s->next=p;/**********tound**********/q->next= 3 ;修改给定程序MODI1.C中函数fun功能是:计算正整数num各位上数字之积。例如,若输入:252,则输入应当是:20.若输入:202,则输出应当是:0.longfun(longnum)/************found************/longk;{k*=num%10;/************,ound************/num\=10;}while(num);return(k);请编写一种函数fun,它功能是:它功能是:计算n门课程平均分,计算成果作为函数值返回。例如:若有5门课程成绩是:90.5,72,80,61.5,55则函数值为:71.805>B:xpsM:longk=l;num/=10;P:inti;floatave=0.0;fbr(i=O;i<n;i++)ave=ave+a[i];ave=ave/n;returnave;6.填空给定程序中已建立一种带有头结点单向链表,在main函数中将多次调用fun函数,没调用一次fun函数,输出链表尾部结点中数据,并释放该节点,是链表缩短。voidfun(SLIST*p){SLIST*t,*s;t=p->next;s=p;while(t->next!=NULL){s=t;/**********found**********/t=t-> 1 ;)/**********found**********/printf(H%d”,—2—);s->next=NULL;free(-3-);)修改给定程序MODI1.C中函数fun功能是:将字符串中字符按逆序输出,单补变化字符串中内容。例如,若字符串味abed,则应输出:deba/************砧und************/fun(chara){if(*a){fun(a+l);/************fiound************/printf("%c"*a);}}程序请编写一种函数fun,她功能是:比较两个字符串长度(不得调用c语言提供求字符串长度函数),函数返回较长字符串。若两个字符串长度相似,则返回第一种字符串。例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai6、B:nextt->datatM:fun(char*a)printf("%c",*a);P:inti;char*p=s,*q=t;for(i=0;*p&&*q;i++)p++;q++;)if(*p==0&&*q==0)returns;if(*p)returns;elsereturnt;7.填空给定程序中建立一种带有头结点单向链表,链表中各节点按数据域递增有序连接。函数fun功能是:删除链表中数据域值相似结点,使之只保存一种typedefstructlist{intdata;structlist*next;}SLIST;voidfun(SLIST*h){SLIST*p,*q;p=h->next;if(p!=NULL){q=p->next;while(q!=NULL){if(p->data==q->data){p->next=q->next;/**********found**********/free(-1-);q=p->一2一;else{p=q;/**********found**********/q=q->__3修改给定程序MODI1.C中函数fun功能是:用选取法对数组中n个元素按从小到大顺序进行排序。voidfun(inta[],intn){inti,j,t,p;for(j=0;j<n-l;j++){/************tound************/P=Jfor(i=j;i<n;i++)/************found************/p=j;t=a[pl;a[pl=a[jl;a[j]=t;请编写一种函数fun,它功能是:求出1到m之间(含m)能被7或11整除所有整数放在数组a中,通过n返回这些数个数。例如,若传3送给m之位50,则程序输出:711142122183335424449答案:7、B:qnextnextM:p=j;p=i;P:inti;*n=0;for(i=7;i<=m;i++)if((i%7==0)||(i%11==0))a[(*n)++]=i;8.填空给定程序中,函数fungongn是:在带有头结点单向链表中,查找数据域中值为ch结点。找到后通过函数值返回改结点在链表中所处顺序号;若不存在值为ch结点,函数返回0值typedefstructlist{intdata;structlist*next;}SLIST;SLIST*creatlist(char*);voidoutlist(SLIST*);intfun(SLIST*h,charch){SLIST*p; intn=0;p=h->next;/**********found**********/while(p!= 1 )n++;if(p->data==ch)return 2 ;elsep=p->next;)return0;}修改给定程序MODI1.C中函数fun功能是:删除p所指字符串中所有空白字符(涉及制表符,回车符及换行符)输入字符串是用结束输入。fun(char*p){inti,t;charc[80];/************fk)und************/For(i=0,t=0;p[i];i++)if(!isspace(*(p+i)))c[t++]=p[i];/************found************/c[t]="\O";strcpy(p,c);)程序请编写一种函数fun,它功能是:将ss所指字符串中所有下标为奇数位置上字母转换成大写(若该位置上不是字母,则不转换)例如:若输入“abc4EFg",则应输出“aBc4Efg”。答案:8、B:NULLnhead,chM:forc[t]='\0';P:inti;for(i=1;i<strlen(*ss);i+=2){if(ss[i]>='a'&&ss[i]<='z')ss[i]-=32;.填空给定程序中,函数fun功能是:记录出带有头结点单向链表中个数,存储在形参n所指存储单元中。voidfun(SLIST*h,int*n){SLIST*p;/**********found**********/—1—=0;p=h->next;while(p){(*n)++;/**********found**********/p=p->一2一;}}main(){SLIST*head;inta[N]={12,87,45,32,91,16,20,48},num;head=creatlist(a);outlist(head);fun( 3 ,&num);printf("\nnumber=%d\n",num);修改给定程序MODI1.C中函数fun功能是:求出s所指字符串中最后一次浮现t所指子字符串地址,通过函数返回值返回,在主函数中输出从此地址开始字符串;若未找到,则函数值为NULL例如:当字符串中内容为“abcdefabcdx"t中内容为例如时,输出成果应是:abcdx当字符串中内容为“abcdefabcdx"t中内容为“abd”时,则程序输出未找到信息notbefoundchar*fun(char*s,char*t)char*p,*r,*a;/************found************/a=Null;while(*s)p=s;while(*r)/************found************/if(r==p){r++;p++;}elsebreak;if(*r==*\0*)a=s;s++;returna;程序函数fun功能是:将s所指字符串中除了下标问为偶数,同步ASCH值也为偶数字符外,别的所有删除:串中剩余字符所形成一种新串放在t所指数组中例如,若s所指字符串中内容为“ABCDEFG123456",其中字符AASCII码味奇数,因而应当删除,其中字符bASCII码值为偶数,但是在数组中下标为基数,因而也当删除;答案9、B:*nnextheadM:a=NULL;*r==*pP:inti,j=0;for(i=0;i<strlen(s);i+=2)if(s[i]%2==0)t[j++]=s[i];t[j]=0;.填空给定程序中,函数fun功能是:计算出带有头结点单向链表中各结点数据域中值之和作为函数返回值。intfun(SLIST*h){SLIST*p; ints=0;p=h->next;while(p)I/**********found**********/s+=p-> 1 ;/**********found**********/p=p-> 2 ;

returns;修改给定程序MODI1.C中函数fun功能是:将s所指字符串中浮现与tl所指字符串相似字串所有替代成t2所指字符串,所形成新串放在w所指数组中,在此处,规定tl和t2所指字符串长度相似。intfun(char*s,char*tl,char*t2,char*w)intfun(charinti;strcpy(w,s)strcpy(w,s);while(*w){p=w;r=tl;/************und************/while(r)if(*r==*p){r++;p++;}elsebreak;if(*r=='\0')a=w;r=t2;while(*r){/************found************/*a=*r;a++;r++w+=strlen(t2);

elsew++;程序函数fun功能是;将s所指字符串下标为偶数字符删除,串中剩余字符形成新串放在t所指数组中例如:当s所指字符串中内容为:“ABCDEFGHIJK”在t所指数组中内容应是“BDFHJ”10、B:datanextheadM:*rr++;P:inti,j=0;for(i=1;i<strlen(s);i+=2)t[j++]=s[i];t[j]=0;.填空人员记录有编号和出生年月日构成,N名人员数据已在主函数中存入构造体数组std中,且编号唯一。函数fun功能是:找出数据中编号为空串。 1 fun(STU*std,char*num){inti;{inti;STUa={"",9999,99,99);for(i=0;i<N;i++)/**********found**********/if(strcmp( 2 ,num)==0)/**********found**********/return( 3 );returna;)修改给定程序MODH.C中函数fun功能是:从s所指字符串中,找出与t所指字符串相似字串个数作为函数返回值例如,当s所指字符串中内容为:“abcdabfab”,t所指字符串内容为:“ab”则函数返回整数3intfun(char*s,char*t)(intn;char*p,*r;n=0;while(*s){p=s;r=t;while(*r)if(*r==*p){/************fiound************/r++;p++}elsebreak;/************Sund************/if(r=,\O,)n++;s++;}returnn;函数fun功能是:将s所指字符串中ASCH值为偶数字符删除,串中剩余字符形成一种新串放在t所指数组中例如,若s所指字符串中内容为“ABCDEFG12345",其中字符BASCII码值为偶数…・.答案:11、B:STUstd[i].numstd[i]M:p++;*r=='\0';P:inti,j=0;for(i=0;i<strlen(s);i++)if(s[i]%2)t[j++]=s[i];t[j]=0;.填空人员记录由编号和出生年月日构成N名成员数据已在主函数中存入构造体数组std中,函数fun功能是:找出指定出生年份人员,将其数据放在形参k所指数组中,由主函数输出,同事有函数值返回满足指定条件人数intfun(STU*std,STU*k,intyear){inti,n=O;for(i=0;i<N;i++)/**********found**********/if( 1 ==year)/**********found**********/k[n++]=_2_;/**********found**********/return( 3 );)修改给定程序MODI12。C功能是:读入一种整数k(2《k《1(X)0),打印她所有因子例如2310则应输出2,3,5,7,11IsPrime(intn);{inti,m;m=1;for(i=2;i<n;i++)/************found************/if!(n%i){m=0;break; }return(m);}设计已知学生记录有学号成绩构成,N名学生数据已经存入构造体数组a中。编写函数fun,函数功能是:找出成绩最高学生记录,通过形参指针传回主函数(规定只有一种最高分)。已给出函数首部,请完毕该函数12、B:std[i].yearstd[i]nM:分号去掉if(!(n%i))P:inti,max=a[0].s,j=0;fbr(i=1;i<N;i++)if(max<a[i].s){j=i;max=a[i].s;}*s=a[j];.填空给定程序通过定义并赋初值方式,运用构造体变量存储了一名学生学号,姓名和3们课程成绩,函数fun功能是将该学生各科成绩都乘以一种系数avoidshow(STUtt){inti;printf(n%d%s:U,tt.num,);for(i=0;i<3;i++)printf(H%5.1f\tt.score[i]);printf(n\nn);/**********found**********/voidmodify( 1 *ss,floata){intfor(i=0;i<3;i++)/**********found**********/ss-> 2 *=a;main(){STUstd={l,nZhanghuaM,76.5,78.0,82.0};floata;printfC^nTheoriginalnumberandnameandscores:\n");show(std);printf(n\nlnputanumber: ");scanf(M%f\&a);/**********found**********/n)odify(-3—,a);printf("\nAresultofmodifying:\n");show(std);修改给定程序MODEC中函数fun功能是:求k!(k<13),所求阶乘值作为函数值返回,例如若(k=10,则应输出:3628800longfun(intk)/************found************/

ifk>0/************found************/elseif(k=0)returnIL;}设计函数功能num成员程序定义了N*N二维数组。并在主函数中自动赋值,请编写函数fun,是:使数组左下三角元素值乘以函数功能num成员例如:若n值为3,a数组值为13、B:STUscore[i]&stdM:()k==0P:inti,j;for(i=0i++)for(j=0;j<=i;j++)a[i][j]*=n;.填空给定程序中,函数fun功能是:将形参所指构造体数组中三个元素按进行升序排列voidfun(PERSON_1—)/**********found**********/ 2 temp;if(std[O].num>std[1].num){temp=std[0];std[O]=std[l]; std[l]=temp; }if(std[O].num>std[2].num){temp=stdfO];std[0]=std[2]; std[2]=temp;}if(std[1].num>std[2].num){temp=std[l];std[l]=std[2];std[2]=temp;}main(){PERSONstd[]={5,"ZhanghiT2"WangLi”,6JLinMin”};inti;/**********found**********/fun(-3-);printf(n\nTheresultis:\nM);for(i=0;i<3;i++)printf(n%d,%s\nu,std[il.num,stdfi].name);修改给定程序MODIl.c中函数fun功能是:将m个字符串连接起来构成一种新串,放入pt所指存储区中intfun(charstr[][10],intm,char*pt)/************found************/Intk,q,i;for(k=0;k<m;k++){q=strlen(str[k]);for(i=0;i<q;i++)/************found************/pt[i]=str[k,i];Pt+=q;ptfO]=0;设计程序定义了N*N二维数组,并在主函数中自动赋值,请编写函数fun,函数功能是:使数组左下三角元素中值所有值014、B:*stdPERSONstdM:intstr[k][i]P:inti,j;for(i=0;i<N;i++)for(j=0;j<=i;j++) a[i]|j]=0;.填空给定程序中,函数fun功能是:将形参std所指构造体数组中年龄最大者数据作为函数值返回,并在主函数中输出STDfun(STDstd口,intn){STDmax; inti;/**********found**********/max= 1 ;for(i=l;i<n;i++)/**********tound**********/if(max.age< 2 )max=std[i];returnmax;)main(){STDstd[5]={',aaa,\17,,'bbb,',16;,ccc),,18,,,ddd,,,17,,'eee,,,15};STDmax;max=fun(std,5);printf("\nTheresult:\nn);printf(M\nName:%s,Age:%d\n'\ 3 ,max.age);修改给定程序MODIl.c中函数fun功能是:实现两个整数互换例如给a和b分别输入60和65,输出为:a=65b=60/*********ound**********/voidfun(inta,b){intt;/**********,ound**********/t=b;b=a;a=t;}设计请编制一种函数fun,tt指向一种M行N列二维数组,求二维数组每列中最小元素,并以此放入pp所指一维数组中。二维数组中数已在主函数中赋予15、B:*stdstd[i].M:int*bt=*b;*b=*a;*a=t;P:intij,min,k;for(i=0;i<N;i++){min=tt[O][i];k=0;for(j=1;j<M;j++)if(min>tt[j][i]){min=tt[j][i];k=j;}pp[i]=tt[k][i];)16.填空程序通过定义并赋初值方式,运用构造体变量存储了一名学生信息,函数fun功能是输出这位学生信息/**********found**********/voidshow(STU―1—){inti;printf("\n%d%s%c%d-%d-%d",tt.num,,tt.sex,

tt.birthday.year,tt.birthday.month,tt.birthday.day);for(i=0;i<3;i++)/**********fc)unci**********/printf("%5.1f,_2一);main(){STUstd={l,"Zhanghua";M',1961,10,8,76.5,78.0,82.0};printf("\nAstudentdata:\n");/**********,ound**********/show( 3 );修改给定程序MODILc中函数fun功能是:求出数组中最大数和次大数,并把最大数和a[0]中数对调,次最大数和a[1]中书对调intfun(int*a,intn)inti,m,t,kfor(i=0;i<2;i++){/**********,ound**********/m=0;for(k=i+l;k<n;k++)/**********found**********/}设计请编写一种函数unsignedfun,w是一种大与10无符号整数,若w是n为整数,函数求出w低n-1位数作为函数值返回例如w为5923则函数返回923;16、B:tttt.scorefi]stdM:m=im=kP:if(w>10000)w%=10000;elseif(w>1000)w%=1000;elseif(w>100)w%=100;elseif(w>10)w%=10;returnw;17.填空给定程序中,函数fun功能是:对形参ss所指字符串数组中M个字符串按长度由短到长进行排序。Ss所指字符串数组中共有M个字符串,且串长《Nvoidfun(char(*ss)[N]){inti,j,k,n[M];chart[N];for(i=0;i<M;i++)n[i]=strlen(ss[i]);for(i=0;i<M-l;i++){k=i;/**********tound**********/for(j=一1一;j<M;j++)/**********found**********/if(n[k]>n[j])—2—;if(k!=i){strcpy(t,ss[i]);strcpy(ss[i],ss[k]);/**********found**********/strcpy(ss[kl,—3一);n[k]=n[i];))给定程序MODI。C中函数fun功能是:判断ch中字符与否与str所指串中某个字符相似;若相似,什么也不做,若不同,则将其插在串最后#include<string.h>/**********tound**********/voidfun(charstr,charch){while(*str&&*str!=ch)str++;/**********found**********/if(*str==ch){str[0]=ch;/**********found**********/str[ll='O';)}设计请编制一种函数fun,函数功能是吧s所指字符串中内容逆值17、B:i+1k=jtM:char*str!=0P:charb[N];inti=0,j;for(j=strlen(s)-1;j>=0;j—)b[i++]=s[j];b[i]=0;strcpy(s,b);18.填空给定程序中,函数fun功能是:求出形参ss所指字符串数组中最长字符串长度,别的字符串左边用字符*补齐,使其与最长字符串等长,字符串数组中共有M个字符串voidfun(char(*ss)[N]){inti,j,k=0,n,m,len;for(i=0;i<M;i++){len=strlen(ss[i]);if(i==0)n=len;if(len>n){/*********ound**********/n=len; 1 =i;})for(i=0;i<M;i++)if(i!=k){m=n;len=strlen(ss[il);for(j=-2—;j>=0;j-)for(j=0;j<n-len;j++)/**********found**********/}修改给定程序MODIl.c中函数fun功能是:计算整数n阶乘doublefun(intn)doubleresult=1.0;while(n>l&&n<170)/*********found*********/result*--n;/*********found*********/return设计编写函数fun,函数功能是:从s所指字符串中删除给定字符。同一种字母大小写按不同字符解决18^B:klenss[i][j]M:n—resultP:char*p=s;inti=0;while(*p){if(*p!=c)s[i++]=*p;p++;}s[i]=0;19.填空给定程序中,函数fun功能是:求出形参ss所指字符串数组中最长字符串长度,将别的字符串右边用字符*补齐,使其与最长字符串等长。Ss所指字符串数组中共有M个字符串voidfun(char(*ss)[N]){inti,j,n,len=0;for(i=0;i<M;i++){len=strlen(ss[i]);if(i==0)n=len;if(len>n)n=len;for(i=0;i<M;i++){/**********fc)unci**********/n=strlen( 1 );for(j=0;j<len-n;j++)/**********found**********//**********tound**********/ss[i][n+j+—3—]='\0';修改给定程序MODI1。C中函数fun功能是将:p所指字符串中每个单词最后一种字母改成大写#include<stdio.h>voidfun(char*p)(intk=0;for(;*p;p++)if(k){/**********found***********/if(P==")k=0;/**********,ound***********/*(p-1)=toupper(*(p-1))else设计请编写函数fun,对长多为7个字符字符串,除首,尾字符外,将别的5个字符按ASCII降序排列19、B:ss[i]n+j1M:*p;P:charch;inti,j;for(i=1;i<6;i++)for(j=i+1;j<6;j++){if(*(s+i)<*(s+j)){ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;}}20.填空给定程序中,函数fun功能是:求ss所指字符串数组中长度最长字符串所在行下标,作为函数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共有M个字符串#defineN20/**********found**********/intfun(char(*ss) 1 ,int*n){inti,k=0,len=0;for(i=0;i<M;i++){len=strlen(ss[i]);if(i==O)*n=—2.if(len>*n){—3.k=i;}}return(k);修改给定程序MODIl.c中函数fun功能是:依照形参m,计算如下公式值1 1 1t=]+一一一一一+.一一一一+—一—一一+・・・・・・+_____3 4 m例如,若输入5,则应输出2.283333。doublefun(intm){doublet=1.0;inti;for(i=2;i<=m;i++)t+=1.0/k;/*********ound**********/设计编写一种函数,该函数可以记录一种长度为2字符串在另个字符串中浮现次数20、B:[N]len*n=lenM:t+=1.0/i;returnt;P:intent=0;char*p=str,*q;while(*p){q=strstr(p>substr);if(q==NULL)break;p=q+strlen(substr);cnt++; }returnent;strstr:在前串中找出后串第一次浮现位置,若找到返回地址否则返回NULL21.填空给定程序中,函数fun功能是:求ss所指字符串数组中长度最短字符串所在行下标,作为函数值返回,并把其串长放在形参n所指变量中intfun(char(*ss)[N],int*n){inti,k=0,len=N;/**********found**********/for(i=0;i< 1 ;i++){len=strlen(ss[i]);if(i==0)*n=len;/**********found**********/if(len—2_*n){*n=len;k=i;/**********found**********/return( 3 );修改给定程序MODIl.c中函数fun功能是:将tt所指字符串中小写字母都改为相应大写字母,其她字符不变char*fun(chartt[])inti;for(i=0;tt[i];i++)/**********found***********/if(('a><=tt[i])||(tt[i]<='z'))/**********found***********/tt[i]+=32;return(tt);设计请编写函数fun,其功能是:将所有不不大于1不大于整数m非素数存入xx所指数组中,非素数个数通过k传回21、B:M<kM:&&tt[i]-=32;P:inti,j;*k=0;for(i=2;i<m;i++){for(j=2;j<=i/2;j4-+)if(i%j==0)break;if(j<=i/2){xx[*k]=i;(*k)++;})22.填空给定程序中,函数fun功能是:将s所指字符串中所有数字字符转移到所有非数字字符之后,并保持数字字符和非数字字符串原有先后顺序voidfun(char*s){inti,j=0,k=0;chartl[80],t2[80];for(i=0;s[i]!='\0';i++)if(s[i]>='O'&&s[i]<='9')(/**********found**********/t2[j]=s[i];-1—;)elsetl[k++]=s[i];t2[j]=O;tl[k]=O;/**********fk)und**********/for(i=0;i<k;i++) 2 ;/**********found**********/for(i=0;i<_3—;i++)s[k+i]=t2[i];}修改给定程序MODIl.c中函数fun功能是:用冒泡法对6个字符串由小到大顺序进行排序fun(char*pstr[6]){inti>j;char*p;for(i=0;i<5;i++){/**************found**************/for(j=i+1,j<6,j++)if(strcmp(*(pstr+i),*(pstr+j))>0)(p=*(pstr+i);/**************8und**************/*(pstr+i)=pstr+j;*(pstr+j)=p;}}))设计请编写函数fun,它功能是:求出ss所指字符串中指定字符个数,并返回此值22>B:j++s[i]=tl[i]jM:;; *(pstr+j)P:intent=0;char*p=ss;while(*p){if(*p==c)cnt++;p++;}23.填空给定程序中,函数fun功能是:在形参所指字符串中每个数字字符之后插入一种*号voidfun(char*s){inti,j,n;for(i=0;s[i]!='\0';i++)if(s[i]>='0'_1—s[i]<='9'){n=0;/**********found**********/while(s[i+l+n]!= 2 )n++;for(j=i+n+l;j>i;j-)/*********ound**********/s[j+l]=—3—;s[j+l]='*';i=i+l;))修改给定程序MODIl.c中函数fun功能是;依照整形形参m,计算如下公式值111 1y=1+ + + + + 2*2 3*3 4*4例如,若m中的值为:5,则应输出:1.463611。设计请编写函数fun,函数功能是:实现B=A+A',即把矩阵A加上A转职,存储到23、B:&& 0s[j]M:<=1.0P:intc[3][3];inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++){c[i][j]=a[j][i]; b[i][j]=a[i][j]+c[i][j];}24.填空给定程序中,函数fun功能是:记录形参s所指字符串中数字字符浮现次数,并存储在形参t所指变量中,最后在主函数中输出。voidfun(char*s,int*t)inti*n;n=0;/**********found**********/for(i=0;—1—!=NULL;i++)/**********found**********/if(s[i]>='0'&&s[i]<=—2—)n++;/**********found**********/修改给定程序MODIl.c中函数fun功能是:通过某种方式实现俩个变量值互换,规定不予许增长语句和表达式intfun(int*x,inty)/**************found**************//**************found**************/return(y);设计请编写函数fun,它功能是:求出1到1(X)0之间能被7或11整除,但不能同步被7和11整除所有整数并将她们放在a所指数组中,通过n返回这些数个数24、B:s[i]9 *t=n;M:t=*x;*x=y;return(t);P:inti;*n=0;for(i=7;i<1000;i++)if(((i%7)==0||(i%11)==0)&&(i%77)!=0)a[(*n)++]=i;25.填空给定程序中,函数fun功能是:吧形参s所指字符串中下标为奇数字符右移到下一种奇数位置,最后边被移除字符串字符绕回放到第一种奇数位置,下标为偶数字符不动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;/**********found**********/c= 2 ;for(i=k-2;i>=l;i=i-2)s[i+2]=s[i];/**********found**********/S[l]=—3—;)给定程序MODIl.c中fun函数功能是:求s=aa...aa-....aaa-aa-alongfun(inta,intn){>ntj;/**************found**************/longs=0,t=1;for(j=0;j<n;j++)t=t*10+a;s=t;for(j=1;j<n;j++){/**************8und**************/t=t%10;s=s-1;}return(s);)设计请编写一种函数fun,记录在tt所指字符串中宣到Z26个小写字母各自浮现次数,并依次放在pp所指数组中25、B:n-1s[k]cM:t=0t=t/10P:char*p=tt;inti;for(i=0;i<26;i++)pp[i]=0;while(*p){if(*p>='a'&&*pv='z')pp[*p-'a']+=1;p++;}26.填空给定程序中,函数fun功能是:对形参s所指字符串中下标为奇数字符按ascii码大小递增排序,并将排序后下标为基数字符取出,存入形参P所指字符数组中,形成一种新串voidfun(char*s,char*p){inti,j,n,x,t;n=0;for(i=0;s[i]!=,\O,;i++)n++;for(i=l;i<n-2;i=i+2){/**********fund**********//********************/for(j=_2_+2;j<n;j=j+2){x=s[i];s[i]=s[t];s[t]=x;}for(i=l,j=0;i<n;i=i+2,j++)p[j]=s[i];/**********und**********/pU1=--3__;给定程序MODI1.C中函数fun功能是:用下面公式求“近似值,直到最后一项绝对值不大于指定数为止floatfun(floatnum)floatn,t,pi;t=l;pi=0;n=l;s=1;/**************found**************/while(t>=num)pi=pi+1;t=s%n;}pi=pi*4;returnpi;}请编写一种函数fun,其功能是:删除一种字符串中指定下标字符,其中,a指向原字符,删除指定字符后字符串存在b所指数组中,n中存储指定下标26、B:t=i;i0M:(fabs(t))s/nP:strncpy(b,a,n);b[n]=0;strcat(b,a+n+1);27填空给定程序中,函数fun功能是:在形参所指字符串中寻找一种字符串与参数c相似字符,并在其后插入一种与之相似字符,若找不到相似字符则函数不做任何解决voidfun(char*s,charc){inti,j,n;/**********found**********/for(i=0;s[i]!=—1—;i++)if(s[i]==c){/**********found**********/n= 2 ;while(s[i+l+n]!-\0*)n++;for(j=i+n+l;j>i;j-)s|j+1]=s|j];/**********found**********/s[j+l]=—3—i=i+l;修改在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一种元素中,给定程序MODU。C中函数fun功能是:计算数组元素中值为正数平均值doublefun(intx[])/************found************/intsum=0.0;intc=0,i=0;while(x[i]!=0)sum+=x[i];C++;}i++;/************,ound************/sum\=c;returnsum;设计编写函数fun,函数功能是:依照如下公式s,计算成果作为函数返回值,n通过形参传入27>B:00cM:double/=P:intfloats=0;for(i=1;i<=n;i++){t+=j;s=s+l./t;}returns;28.给定程序中,函数fun功能是:有N*N矩阵,依照给定m值,将每行元素中值均右移m个位置,左边置为0#defineN4voidfun(int(*t)[N],intm){inti,j;/**********found**********/for(i=0;i<N; 1 ){for(j=N-l-m;j>=0;j-)/**********found**********/t[i][j+—2—]=t[i]|j];/**********found**********/for(j=0;j<一3—;j++)t[i][j]=O;]}给定程序MODil.c中函数fun功能是:计算并输出high以内最大10个素数之和。High值由主函数传给fun函数intfun(inthigh){intsum=0.n=0,j,yes;/************found************/while((high>=2)&&(n<10)for(j=2;j<=high/2;j++)if(high%j==0){/************found************/yes=0;breakif(yes){sum+=high;n++;}high-;returnsum;编写函数fun,她功能是:运用一下所示简朴迭代办法求方程:一种实根28、B:i++mmM:) ;P:floatxO,x1=0.028、B:i++mmwhile(fabs(xO-x1)>0.000001);returnxl;29.填空给定程序中,函数fun功能是:将N*N矩阵中元素额度值按列右移1个位置,右边被移出矩阵元素绕回左边voidfun(int(*t)[N]){inti,j,x;/**********fc)unci**********/for(i=0;i< 1 ;i++)/**********found**********/for(j=N-l;j>=l;j-)t[i]U]=t[i]U-U;/**********fc)unci**********/t[i][一3一]=x;修改给定程序MODIl.c中函数fun功能是:计算并输出下列级数前N项之和Sn,懂得Sn+1不不大于q为止,q值通过形参传入doublefun(doubleq){intn;doubles,t;n=2;s=2.0;while(s<=q)t=s;/************found************/s=s+(n+l)/n;n++;printf(nn=%d\nM,n);/************found************/returns;}设计编写函数fun,她功能是:求Fibonacci数列中不不大于t最小一种数,成果由函数返回,其中Fibonacci数列F(n)定义为:29、B:NN-lOM:s=s+(n+l.)/n;returnt;P:intft)=0,fl=1,f;do{f=fD+fl;fO=fl;fl=f;}while(f<t);returnf;30.填空给定程序中,函数fun功能是:有N*N矩阵,将矩阵外围元素顺时针逆转,操作顺序是:一方面将第一行元素值存入暂时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行。暂时数组中元素成为最后一列voidfun(int(*t)[N]){intj,r[N];for(j=0;j<N;j++)r[j]=t[O][j];for(j=0;j<N;j++)/**********found**********/t[O][N-j-l]=t[j][—1—];for(j=0;j<N;j++)t[j][O]=t[N-l][j];/**********found**********/for(j=N-l;j>=0; 2 )t[N-l][N-l-j]=t[j][N-l];for(j=N-l;j>=0;j—)/**********found**********/tU][N-l]=r[—3—];}修改给定程序MODIl.c中函数fun功能是:计算s=f(-n)+f(-n+l)+...+f(O)+f(l)+f⑵+...+f(n)值,当n为5时,函数值应为:10.407143.f(x)函数定义如下:/************found************/f(doublex)(if(x==0.0||x==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(L0*i);s+=y;}/************found************/returns)设计s=Jln(1)+ln(2)+ln(3)+ + ln(w)编写函数fun,它功能是计算:s作为函数值返回30、B:0j—jM:double;P:doubles=0.0;inti;for(i=1;i<=m;i++)s+=log(1.0*i);s=sqrt(s);returns;31.填空给定程序中,函数fun功能是:有N*N矩阵,以主对角线为对称线,对称元素相加并将构造存储在左下三角元素中,右上三角元素之位0/**********found**********/voidfun(int(*t) 1 ){inti,j;for(i=l;i<N;i++){for(j=0;j<i;j++)(/*********ound**********/一2—=t[i][j]+t[j][i];/**********found**********/—3—=0;修改给定程序MODIl.c中函数fun功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)值。其中x和y值不等,z和y值不等#include<stdlib.h>/***********ound************/#defineFU(m,n)(m/n)floatfun(floata,floatb,floatc){floatvalue;

value=FU(a+b,a-b)+FU(c+b,c-b);Return(Value);)设计规定输入字符串中只包括字母和*号。请编写函数fun,它功能是:将字符串中前导*号所有删除,中间和尾部*号不删除31、B:[N]t[i]|j] t[j][i]M:((m)/(n))return(value);P: intj=0;char*p=a;while(*p=='*')p++;while(*p)a[j++]=*p++;a|j]=O;32.填空给定程序中,函数fun功能是:将N*N矩阵主对角线元素中值域反向对角线相应位置上元素中值进行互换#defineN4voidfun(int1voidfun(int1 ,intn){inti,s;/**********found**********/for( 2 ;i++)/**********found**********/修改由N个有序整数数组构成数列已放在一维数组中,给定程序MODIl.c中函数fun功能是:运用折半查找法查找整数m在整数数组位置。若找到,返回其下标;反之,返回-1/************found************/voidfun(inta[],intm){intlow=0,high=N-1,mid;while(low<=high){mid=(low+high)/2;high=mid-l;/************found************/elseIf(m>a[mid])low=mid4-l;elseretum(mid);}return(-l);)设计假定输入字符串中只包括字母和*号。请编写函数fun,它功能是:除了尾部*号外,将字符串中*号所有删除,形参p以指向字符串中最后一种字母,在编写函数是,不得使用c语言提供字符串函数32、B:t[][N]i=0;i<n;sM:fun(inta[],intm)ifP:char*q=a;intj=0;while(*q&&q<p){if(*q!='*')a[j++]=*q;q++;)while(*p)a[j++]=*p++;a[j]=O;33.填空给定程序中,函数fun功能是:计算N*N矩阵主对角线元素和反向对角线元素之和,并作为函数值返回,注意:规定先累加主对角线元素中值,然后累加反对角线元素中值fun(intt[][N],intn){inti,sum;/**********found**********/for(i=0;i<n;i++)/**********found**********/sum+= 2for(i=0;i<n;i++)/**********found**********/sum+=t[i][n-i- 3];returnsum;修改给定程序MODIl.c中函数fun和funx功能是:用二分法求方程一种根,并规定绝对误差不超过0.001doublefunx(doublex)retum(2*x*x*x-4*x*x+3*x・6); }doublefun(doublem,doublen)/***********ound************/intr;r=(m+n)/2;/************nd************/while(fabs(n-m)<0.001){if(funx(r)*funx(n)<0)m=r;elsen=r;r=(m+n)/2;)returnr;)设计假定输入字符串中只包括字母和*号。请编写函数fun,它功能是:除了尾部*号外,将字符串中*号所有删除,形参p以指向字符串中最后一种字母,在编写函数是,不得使用c语言提供字符串函数33、B:sum=0;t[i][i]1M:doubler;>P:intj=0;char*q=a;while(*q&&q<h)a[j++]=*q++;while(*h&&*p&&h<p){if(*h!='*')a[j++]=*h;h++;}while(*p)a[j++]=*p++;a[j]=0;34.填空函数功能是:把形参a所指数组中奇数按原顺序依次存储到a[0】,a[l]....中,吧偶数从数组中删除,奇数个数通过函数值返回intfun(inta口,intn){inti,j;j=0;for(i=0;i<n;i++)/东*********

温馨提示

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

评论

0/150

提交评论