历年全国计算机等级考试二级C语言上机考试题库及答案_第1页
历年全国计算机等级考试二级C语言上机考试题库及答案_第2页
历年全国计算机等级考试二级C语言上机考试题库及答案_第3页
历年全国计算机等级考试二级C语言上机考试题库及答案_第4页
历年全国计算机等级考试二级C语言上机考试题库及答案_第5页
免费预览已结束,剩余48页可下载查看

下载本文档

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

文档简介

1、1 .填空给定程序的功能是调用fun函数建立班级通讯录。 通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为 myfile5.dat 的二进制文件中。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结注意:源程序存放在考生文件夹下的 BLANK1.C 中不得增行或删行,也不得更改程序的结构!voidcheck();intfun(1*std)/*found*/2-*fp;inti;.if(fp=fopen(myfile5.dat,wb)=NULL)return(0);printf(nOutputdatatofile!n

2、);for(i=0;iN;i+)/*found*/fwrite(&stdi,sizeof(STYPE),1,3);fclose(fp);return(1);修改给定程序 MODI1.C 中函数 fun 的功能是:先将在字符用 s 中的字符按正序存放到 t用中,然后把 s 中的字符按逆序连接到 t 审后面。例如:当 s 中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。请改正程序中的错误,使他能得出正确的结果。注意:不要改动 main 函数,不能增行或删行,也不得更改程序的结构!voidfun(char*s,char*t)inti,sl;sl=strlen(s);fo

3、r(i=0;i=s1;i+)ti=si;for(i=0;isl;i+)tsl+i=ssl-i-1;tsl=0;/*found*/*found*/*found*/程序函数 fun 的功能是:将两个两位数的正整数 a,b 合并成一个整数放在 c 中。合并的方式是: 将 a 数的十位和个位数依次放在 c 数的千位和十位上, b 数的十位和个位数依次放在 c 数的百位和个位上。例如:a=45,b=12 时,调用该函数后,c=4152.注意:部分源程序存在文件 PROG1.C 中。数据文件 IN.DAT 中的数据不得修改。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入

4、你编写的若干语句。答案:B:STYPEFILEfpM:for(i=0;isl;i+)t2*sl=0;P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2 .填空给定程序的功能是:从键盘输入若干行文本(每行不超过 80 个字符),写到文件 myfile4.txt 中,用-1 作为字符串输入结束的标记。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数 ReadText 和 WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.c 中不得增行或删行,也不得更改程

5、序的结构!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(0);ReadText(fp);fclose(fp);/*found*/voidWriteText(FILE1)charstr81;printf(nEnterstringwith-1toend:n);gets(str);while(strcmp(str,-1)!=0)/*丽*/f

6、puts(2,fw);fputs(n,fw);gets(str);)voidReadText(FILE*fr)charstr81;printf(nReadfileandoutputtoscreen:n);fgets(str,81,fr);while(!feof(fr)/*丽*/printf(%s,3);fgets(str,81,fr);)修改给定程序 MODI1.C 中函数 fun 的功能是:从低位开始取出长整形变量 s 中的奇数位上的数,依次构成一个新数放在 t 中,高位仍放在高位,低位仍放在低位。例如:当 s 中的数为:7654321 时,t 中的数为:7531请改正程序中的错误,使他能得

7、出正确的结果。注意:不要改动 main 函数,不能增行或删行,也不得更改程序的结构!#includevoidfun(longs,longt)longsl=10;*t=s%10;while(s0)s=s/100;*t=s%10*sl+*t;sl=sl*100;程序函数 fun 的功能是:将两个两位数的正整数 a,b 合并成一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的千位和十位上,b 数的十位和个位数依次放在 c 数的百位和个位上。例如:a=45,b=12 时,调用该函数后,c=1524.注意:部分源程序存在文件 PROG1.C 中。数据文件 IN.DAT 中的数

8、据不得修改。请勿改动主函数 main 和其他函数中的任何内容, 仅在函数 fun 的花括号中填入你编写的若干语句。/*found*/*found*/2、B:*fwstrstrM:long*tsl=sl*10;P:*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);3 .填空给定程序中,函数 fun 的功能是:将自然数 110 以及它们的平方根写到名为myfile3txt 的文本文档中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除, 是程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中不得增行或删行,也不得更

9、改程序的结构!intfun(char*fname)FILE*fp;inti,n;floatx;if(fp=fopen(fname,w)=NULL)for(i=1;i=10;i+)/*丽*/fprintf(1,%d%fn,i,sqrt(double)i);printf(nSucceed!n);/*丽*/printf(nThedatainfile/*found*/if(fp=fopen(3,r)=NULL)return0;fscanf(fp,%d%f,&n,&x);while(!feof(fp),printf(%d%fn,n,x);fscanf(fp,%d%f,&n,&x);fclose(fp);

10、return1;修改给定程序 MODII.C中 fun 函数的功能是:将 n 个无序整数从小到大排序。fun(intn,int*a)inti,j,p,t;for(j=0;jn-1;j+)p=j;for(i=j+1;iai)t=i;if(p!=j)t=aj;aj=ap;ap=t;return0;:n);/*found*/*向口*/程序函数 fun 的功能是:将两个两位数的正整数 a,b 合并成一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的千位和十位上,b 数的十位和个位数依次放在 c 数的百位和个位上。例如:a=45,b=12 时,调用该函数后,c=2514注意:

11、部分源程序存在文件 PROG1.C 中。数据文件 IN.DAT 中的数据不得修改。请勿改动主函数 main 和其他函数中的任何内容, 仅在函数 fun 的花括号中填入你编写的若干语句。3、B:fpfclose(fp)fnameM:i0)d=s%10;if(d%2=0)*t=d*sl+*t;sl*=10;s=10;程序函数 fun 的功能是:将两个两位数的正整数 a,b 合并成一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数的千位和十位上,b 数的十位和个位数依次放在 c 数的百位和个位上。例如:a=45,b=12 时,调用该函数后,c=5142注意:部分源程序存在文

12、件 PROG1.C 中。数据文件 IN.DAT 中的数据不得修改。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。4、B:F”fsftM:(d%2=0)s/=10;P:*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);5 .填空给定程序中已建立一个带有头结点的单向链表,链表中的各节点按结点数据域中的数据递增有序链表。函数 fun 的功能是:把形参 x 的值放入一个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。typedefstructlistintdata;structlist*next;SLI

13、ST;voidfun(SLIST*h,intx)SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST);/*found*/s-data=1q=h;p=h-next;while(p!=NULL&xp-data)/*found*/q=一2p=p-next;s-next=p;/*砧口口*/q-next=3;修改/*found*/*found*/给定程序 MODI1.C 中函数 fun 的功能是: 计算正整数 num 的各位上的数字之积。 例如,若输入:252,则输入应该是:20.若输入:202,则输出应该是:0.longfun(longnum)/*found2*/l

14、ongk;dok*=num%10;/*.n*/num=10;while(num);return(k);请编写一个函数 fun,它的功能是:它的功能是:计算 n 门课程的平均分,计算结果作为函数值返回。例如:若有 5 门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.805、B:M:longk=1;num/=10;inti;floatave=0.0;for(i=0;inext;s=p;while(t-next!=NULL)s=t;/*骨口*/t=t-1;/*found*/printf(%d,2);s-next=NULL;/*found*/free(3);)修改给定程序 MO

15、DI1.C 中函数 fun 的功能是: 将字符串中的字符按逆序输出,单补改变字符串中的内容。例如,若字符串昧 abcd,则应卒&出:dcba/*found*/fun(chara)if(*a)fun(a+1);P:/*found*/printf(%c*a);)程序请编写一个函数 fun,他的功能是:比较两个字符串的长度(不得调用 c 语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入 beijingshanghai(20tt),函数将返回 shanghai6、B:nextt-datatM:fun(char*a)printf(%c,*a);P

16、: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 的功能是:删除链表中数据域值相同的结点,使之只保留一个typedefstructlistintdata;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-d

17、ata)p-next=q-next;/*found*/free(1);/*found*/q=p-2elsep=q;/*found*/q=q-3;修改给定程序 MODI1.C 中函数 fun 的功能是: 用选择法对数组中的 n 个元素按从小到大的顺序进行排序。voidfun(inta口,intn)inti,j,t,p;for(j=0;jn-1;j+)/*found*/p=jfor(i=j;in;i+)if(aiap)/*found*/p=j;t=ap;ap=aj;aj=t;请编写一个函数 fun,它的功能是:求出 1 至 Im 之间(含 m)能被 7 或 11 整除的所有整数放在数组 a 中,通

18、过 n 返回这些数的个数。例如,若传 3 送给 m 的之位 50,则程序输出:711142122183335424449 答案:7、B:qnextnextM:p=j;p=i;P:inti;*n=0;for(i=7;inext;/*骨口*/while(p!=n+;/*foundif(p-data=ch)return2;elsep=p-next;return0;修改给定程序 MODI1.C 中函数 fun 的功能是:删除 p 所指字符串中的所有空白字符(包括制表符,回车符及换行符)输入字符串是用“#”结束输入。fun(char*p)inti,t;charc80;/*founw*/For(i=0,t

19、=0;pi;i+)SSif(!isspace(*(p+i)ct+=pi;/*founw*/ct=0;strcpy(p,c);程序请编写一个函数 fun,它的功能是:将 ss 所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)例如:若输入“abc4EFg,则应输出“aBc4Efg”。答案:8、B:NULLnhead,chM:forct=0;P:inti;for(i=1;i=a&ssinext;while(p)(*n)+;/*found*/p=p-2;main()SLIST*head;intaN=12,87,45,32,91,16,20,48,num;head=cre

20、atlist(a);outlist(head);/*found*/fun(3,&num);printf(nnumber=%dn,num);修改给定程序 MODI1.C 中函数 fun 的功能是:求出 s 所指字符串中最后一次出现的 t 所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为 NULL例如:当字符串中的内容为“abcdefabcdxt 中的内容为“ab”时,输出的结果应是:abcdx当字符串中的内容为“abcdefabcdxt 中的内容为“abd时,则程序输出未找到信息notbefoundchar*fun(char*s,char*t)ch

21、ar*p,*r,*a;/*founw*/a=Null;while(*s)p=s;r=t;while(*r)/*founw*/if(r=p)r+;p+;elsebreak;if(*r=0)a=s;s+;)returna;)程序函数 fun 的功能是: 将 s 所指字符串中除了下标问为偶数, 同时 ASCII 值也为偶数的字符外,其余的全部删除:申中剩余字符所形成的一个新申放在 t 所指的数组中例如,若 s 所指的字符串中的内容为“ABCDEFG123456,其中字符 A 的 ASCII 码味奇数,因此应当删除,其中字符 b 的 ASCII 码值为偶数,但是在数组中的下标为基数,因此也当删除;答案

22、9、B:*nnextheadM:a=NULL;*r=*pP:inti,j=0;for(i=0;inext;while(p)/*丽*/s+=p-1;/*found*/p=p-2;)returns;)修改给定程序 MODI1.C 中函数 fun 的功能是: 将 s 所指字符串中出现的与 t1 所指字符串相同的字串全部替换成 t2 所指字符串,所形成的新申放在 w 所指的数组中,在此处,要求 t1 和 t2 所指字符串的长度相同。intfun(char*s,char*t1,char*t2,char*w)inti;char*p,*r,*a;strcpy(w,s);while(*w)p=w;r=t1;/

23、*founds*/ints=0;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+;程序函数 fun 的功能是;将 s 所指字符串下标为偶数的字符删除,申中剩余字符形成的新用放在 t 所指的数组中例如:当 s 所指字符串中的内容为:“ABCDEFGHIJK”在 t 所指数组中的内容应是“BDFHJ”10、B:datanextheadM:*rr+;P:inti,j=0;for(i=1;istrlen(s);i+=2)tj+=si;tj=0;11.填空人员记录有编号和

24、出生年月日组成,N 名人员的数据已在主函数中存入结构体数组 std 中,且编号唯一。函数 fun 的功能是:找出数据中的编号为空用。/*found*/1fun(STU*std,char*num)-inT-i;STUa=,9999,99,99;,for(i=0;iN;i+)/*found*/*found*/return(3);returna;修改给定程序 MODI1.C 中函数 fun 的功能是:从 s 所指字符串中,找出与 t 所指字符串相同的字串的个数作为函数返回值/*found*/if(strcmp(2,num)=0)例如,当 s 所指字符串中的内容为:“abcdabfab,t 所指字符串

25、的内容为:“ab”则函数返回整数 3intfun(char*s,char*t)n=0;while(*s)p=s;r=t;while(*r)if(*r=*p)/*founw*/r+;p+、elsebreak;/*founw*/if(r=0)n+;s+;FJreturnn;函数 fun 的功能是:将 s 所指字符串中 ASCII 值为偶数的字符删除,用中剩余字符形成一个新申放在 t 所指的数组中例如,若 s 所指字符串中的内容为“ABCDEFG12345,其中字符 B 的ASCII 码值为偶数.答案:11、B:STUstdi.numstdiM:p+;*r=?0?;P:inti,j=0;for(i=

26、0;istrlen(s);i+)if(si%2)tj+=si;tj=0;12 .填空人员的记录由编号和出生年月日组成 N 名成员的数据已在主函数中存入结构体数组 std 中,函数 fun 的功能是:找出指定出生年份的人员,将其数据放在形参 k 所指的数组中,由主函数输出,同事有函数值返回满足指定条件的人数intfun(STU*std,STU*k,intyear)inti,n=0;for(i=0;iN;i+)/*found*/*found*/kn+=2;intn;char*p,*r;if(1=year)/*found*/return(3);修改给定程序 MODI12。C 的功能是:读入一个整数

27、k(2k1000),打印她的所有 I例如 2310,则应输出 2,3,5,7,11/*found*/IsPrime(intn);inti,m;m=1;for(i=2;in;i+)/*found2*/if!(n%i)m=0;break;return(m);设计已知学生的记录有学号成绩构成, N名学生的数据已经存入结构体数组 a中写函数 fun,函数功能是:找出成绩最高的学生记录,通过形参指针传回主函数P:inti,max=a0.s,j=0;for(i=1;iN;i+)if(maxai.s)j=max=ai.s;*s=aj;13 .填空给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的

28、学号,名和 3们课程的成绩,函数 fun 的功能是将该学生的各科成绩都乘以一个系数voidshow(STUtt)inti;printf(%d%s:,tt.num,);for(i=0;i3;i+)printf(%5.1f,tt.scorei);|/fprintf(n);/*foundvoidmodify(inti;for(i=0;i2*=a;main()STUstd=1,Zhanghua”,76.5,78.0,82.0;floata;printf(nTheoriginalnumberandnameandscores:n);show(std);printf(nInputanumber

29、:);scanf(%f,&a);/*found*/modify(3,a);printf(nAresultofmodifying:n);show(std);(规定只有一个最高分)12、B:stdi.yearstdi0已给出函数的首部,请完成该函数M:分号去掉 if(!(n%i)*/*ss,floata)修改给定程序 MODI0C 中函数 fun 的功能是:求 k!(k0return(k*fun(k-1);elseif(k=0)return1L;)设计程序定义了 N*N 的二维数组。并在主函数中自动赋值,请编写函数 fun,函数的功能是:使数组左下三角元素的值乘以 n例如:若 n 的值为 3,a

30、数组的值为13、B:STUscorei&stdM:|()k=0P:inti,j;for(i=0;iN;i+)for(j=0;jstd1.num)ftemp=std0;std0=std1;,if(std0.numstd2.num)temp=std0;std0=std2;std2=temp;if(std1.numstd2.num)temp=std1;std1=std2;std2=temp;main()PERSONstd=5,Zhanghu,2,WangLi,6,LinMin;inti;/*found*/fun(3);printf(nTheresultis:n);for(i=0;i3;i+)prin

31、tf(%d,%sn,stdi.num,);修改/*found*/*found*/std1=temp;给定程序 MODII.c 中函数 fun 的功能是:将 m 个字符串连接起来组成一个新审,放入pt 所指存储区中intfun(charstr10,int/*found*/Intk,q,i;for(k=0;km;k+)q=strlen(strk);for(i=0;iq;i+)pti=strk,i;pt+=q;pt0=0;设计程序定义了 N*N 的二维数组,并在主函数中自动赋值,请编写函数 fun,函数的功能是:使数组左下三角元素中的值全部值 014、Bl*stdPERSONstd

32、M:intstrkiP:inti,j;for(i=0;iN;i+)for(j=0;j=i;j+)aij=0;15 .给定程序中,函数 fun 的功能是:将形参 std 所指结构体数组中年龄最大者的数据作为函数值返回,并在主函数中输出STDfun(STDstd,intn)STDmax;int/i;/*found*/max=1;,for(i=1;in;i+)/*found*/if(max.age2)max=stdi;returnmax;main()STDstd5=aaa,17,bbb,16,ccc,18,ddd,17,eee,15;STDmax;max=fun(std,5);printf(nThe

33、result:n);/*found*/printf(nName:%s,Age:%dn,3,max.age);修改给定程序 MODI1.c 中函数 fun 的功能是:实现两个整数的交换例如给 a 和 b 分别输入 60 和 65,输出为:a=65b=60/*found*/voidfun(inta,b)intt;m,char*pt)/*found*/*found*/t=b;b=a;a=t;设计请编制一个函数 fun,tt 指向一个 M 行 N 列的二维数组,求二维数组每列中最小并以此放入 pp 所指一维数组中。二维数组中的数已在主函数中赋予15、B:*M:in

34、t*bt=*b;*b=*a;*a=t;P:min,k;for(i=0;iN;i+)min=tt0i;k=0;for(j=1;jtt 皿i)min=ttji;k=j;ppi=ttki;16 .程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息,函数 fun 的功能是输出这位学生的信息/*found*/voidshow(STUinti;printf(n%d%s%c%d-%d-%d,tt.num,,tt.sex,tt.birthday.year,tt.birthdaymonth,tt.birthdayday);for(i=0;i3;i+)/*found*/printf(%5

35、.1f,2);printf(n);main()STUstd=1,Zhanghua,M,1961,10,8,76.5,78.0,82.0;printf(nAstudentdata:n);/*found*/show(3);修改给定程序 MODI1.C 中函数 fun 的功能是:求出数组中最大数和次大数,并把最大数和 a0中的数对调,次最大数和 a1中的书对调intfun(int*a,intn)inti,m,t,k;for(i=0;i2;i+)/*found*/m=0;for(k=i+1;kam)k=m;兀系,inti,j,)设计请编写一个函数 unsignedfun,w 是一个大与 10 的无符号

36、整数, 若 w 是 n 为的整数, 函数求出 w 的低 n-1 位的数作为函数值返回例如 w 为 5923 则函数返回 923;16、B:tttt.scoreistdM:m=im=kP:if(w10000)w%=10000;elseif(w1000)w%=1000;elseif(w100)w%=100;elseif(w10)w%=10;returnw;17 .填空给定程序中,函数 fun 的功能是:对形参 ss 所指字符由数组中的 M 个字符串按voidfun(char(*ss)N)inti,j,k,nM;chartN;for(i=0;iM;i+)ni=strlen(ssi);for(i=0;

37、iM-1;i+)k=i/*found*/for(j=1;jM;j+)/*found*/if(k!=i)strcpy(t,ssi);/*found*/strcpy(ssk,3);nk=ni;./)给定程序 MODI0C 中函数 fun 的功能是:判断 ch 中字符是否与 str 所指用中的某个字符相同;若相同,什么也不做,若不同,则将其插在用的最后#include/*found*/voidfun(charstr,charch)while(*str&*str!=ch)str+;/*found*/if(*str=ch)str0=ch;/*found*/str1=0;设计请编制一个函数 fun,函数功

38、能是吧 s 所指字符串中的内容逆值17、B:i+1k=jtM:char*str!=0P:charbN;inti=0,j;for(j=strlen(s)-1;j=0;j-)bi+=sj;bi=0;strcpy(s,b);18 填空给定程序中,函数 fun 的功能是:求出形参 ss 所指的字符串数组中最长字符用的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长,字符串数组中共有 M个字符串长度由短到长进行排序。Ss 所指字符串数组中共有M 个字符串,且由长Nif(nknj)2.strcpy(ssi,ssk);voidfun(char(*ss)N)inti,j,k=0,n,m,len;for

39、(i=0;in)/*found*/n=len;1=i;for(i=0;i=0;j-),ssim-=ssij;for(j=0;j1&n170)/*found*/result*=-n;/*found*/return设计编写函数 fun,函数的功能是:从 s 所指的字符串中删除给定字符。同一个字母的大小写按不同字符处理18、B:klenssijM:n-resultP:char*p=s;inti=0;while(*p)if(*p!=c)si+=*p;p+;si=0;19.给定程序中,函数 fun 的功能是:求出形参 ss 所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符

40、串等长。Ss 所指的字符串数组中共有 M 个字符串voidfun(char(*ss)N)inti,j,n,len=0;for(i=0;in)n=len;for(i=0;iM;i+)/*骨口*/n=strlen(1);for(j=0;jlen-n;j+)found*/ssi2=*;found*/ssin+j+3=0;修改给定程序 MODI1。C 中函数 fun 的功能是将:p 所指字符串中每个单词的最后一个字母改成大写#includevoidfun(char*p)intk=0;for(;*p;p+)if(k)/*found*/if(p=)k=0;/*found*/*(p-1)=toupper(*

41、(p-1)/*/*)elsek=1;设计请编写函数 fun,对长多为 7 个字符的字符串, 除首, 尾字符外, 将其余 5 个字符按 ASCII降序排列19、B:ssin+j1M:*p;P:charch;inti,j;for(i=1;i6;i+)for(j=i+1;j6;j+)if(*(s+i)*(s+j)ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;20.填空给定程序中,函数 fun 的功能是:求 ss 所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其用长放在形参 n 所指变量中。Ss 所指字符串数组中共有 M 个字符串#defineN20intfu

42、n(char(*ss)1,int*n)inti,k=0,len=0;for(i=0;i*n)一 3.k=i;return(k);修改给定程序 MODI1.c 中函数 fun 的功能是:根据形参 m,计算如下公式的值1111十二1+234ro例如,若输入5,则应输出2.283333.doublefun(intm)doublet=1.0;inti;for(i=2;i=m;i+)/*found*/*found*/*found*/*found*/t+=1.0/k;/*found*/)设计编写一个函数,该函数可以统计一个长度为 2 的字符串在另个字符串中出现的次数char*p=str,*q;while(

43、*p)q=strstr(p,substr);if(q=NULL)break;p=q+strlen(substr);cnt+;returncnt;strstr:在前审中找出后申第一次出现的位置,若找到返回地址否则返回NULL21.填空给定程序中,函数 fun 的功能是:求 ss 所指字符由数组中长度最短的字符串所在的行下标,作为函数值返回,并把其中长放在形参 n 所指变量中intfun(char(*ss)N,int*n)inti,k=0,len=N;J/*骨口*/for(i=0;i1;i+)len=strlen(ssi);if(i=0)*n=len;/*found*/if(len2*n)*n=l

44、en;k=i;/*found*/return(3);修改给定程序 MODII.C中函数 fun 的功能是:将 tt 所指字符串中的小写字母都改为对应的大写字母,其他字符不变char*fun(chartt)inti;for(i=0;tti;i+)/*骨口*/if(a=tti)|(tti=z)20、B:Nlen*n=lenM:t+=1.0/i;returnt;P:intcnt=0;/*found*/tti+=32;return(tt);)设计请编写函数 fun,其功能是:将所有大于 1 小于整数 m 的非素数存入 xx 所指数组中,非素数的个数通过 k 传回 21、B:MkM:&tti-=32;P

45、:inti,j;*k=0;for(i=2;im;i+)for(j=2;j=i/2;j+)if(i%j=0)break;if(j=0&si=9)/*found*/t2j=si;-1elset1k+=si;t2j=0;t1k=0;for(i=0;ik;i+)2/*found*/for(i=0;i3;i+)sk+i=t2i;修改给定程序 MODI1.C 中函数 fun 的功能是:用冒泡法对 6 个字符串由小到大的顺序进行排序fun(char*pstr6)inti,j;char*p;for(i=0;i5;i+)/*found*/for(j=i+1,j0)/*found*/p=*(pstr+i);/*f

46、ound*/*(pstr+i)=pstr+j;*(pstr+j)=p;)设计请编写函数 fun,它的功能是:求出 ss 所指字符串中指定字符的个数,并返回此值22、B:j+si=t1ijM:;*(pstr+j)P:intcnt=0;char*p=ss;while(*p)if(*p=c)cnt+;p+;23.填空给定程序中,函数 fun 的功能是:在形参所指字符串中的每个数字字符之后插入一个*号voidfun(char*s)inti,j,n;for(i=0;si!=0;i+)/*found*/if(si=01sii;j-)/*found*/sj+1=3;Fsj+1=*;i=i+1;修改给定程序

47、MODII.C中函数 fun 的功能是;根据整形形参 m,计算如下公式的值1111y=1+2+23*34*4日m设计请编写函数 fun,函数功能是:实现 B=A+A,即把矩阵 A 加上 A 的转职,存放到 B 中例如,若m中的值为:5,则应输出;1.463611.23、B:&0sjM:=1.0P:intc33;inti,j;for(i=0;i3;i+)for(j=0;j=0&si=2)n+修改给定程序 MODII.C中函数 fun 的功能是: 通过某种方式实现俩个变量值的交换, 规定不予许增加语句和表达式intfun(int*x,inty)intt;/*/*return(y);设计请编写函数

48、fun,它的功能是:求出 1 到 1000 之间能被 7 或 11 整除,但不能同时被 7 和 11 整除的所有整数并将他们放在 a 所指的数组中,通过 n 返回这些数的个数24、B:si,9?*t=n;M:t=*x;*x=y;return(t);P:inti;*n=0;for(i=7;i=1;i=i-2)si+2=si;/*founds1=3_给定程序MODII.C中fun函数的功能是: 求 s=aaaa-.aaa-aa-alongfun(inta,intn)intj;/*found*/longs=0,t=1;for(j=0;jn;j+)t=t*10+a;s=t;for(j=1;jn;j+)

49、/*found*/t=t%10;s=s-t;return(s);设计请编写一个函数fun,统计在tt所指字符串中为耸ij26个小写字母各自出现的次数,并依次放在 pp 所指数组中25、B:n-1skcM:t=0t=t/10P:char*p=tt;inti;for(i=0;i=a&*p=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;

50、si!=0;i+)n+;for(i=1;in-2;i=i+2)/*found*/k=n-2;*/*/*found*/for(j=2+2;jsj)t=j;if(t!=i)x=si;si=st;st=x;)for(i=1,j=0;i=num)pi=pi+t;n=n+2;s=-s;/*found*/t=s%n;pi=pi*4;returnpi;请编写一个函数 fun,其功能是:删除一个字符串中指定下标的字符,其中,a 指向原字符,删除指定字符后的字符串存在 b 所指的数组中,n 中存放指定下标26、B:t=i;i0M:(fabs(t)s/nP:strncpy(b,a,n);bn=0;strcat(b

51、,a+n+1);27 填空给定程序中,函数 fun 的功能是:在形参所指字符串中寻找一个字符串与参数 c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理voidfun(char*s,charc)inti,j,n;/*found*/for(i=0;si!=1;i+)if(si=c)/*found*/t+=j;s=s+1./t;returns;28.给定程序中,函数 fun 的功能是有 N*N 元素中的值均右移 m 个位置,左边置为0#defineN4voidfun(int(*t)N,intm)inti,j;/*found*/for(i=0;i=0;j-)/*fou

52、nd*/*丽n=*/while(si+1+n!=0)n+;for(j=i+n+1;ji;j-)sj+1=sj;/*骨口*/sj+1=3.i=i+1;修改在主函数中从键盘输入若干个数放入数组中, 用 0 结束输入并放在最后一个元素中,给定程序 MODI1。C 中函数 fun 的功能是:计算数组元素中值为正数的平均值doublefun(intx 口)/*founds*/intsum=0.0;intc=0,i=0;while(xi!=0)if(xi0)sum+=xi;c+;i+;/*砧口口*/sum=c;returnsum;设计编写函数 fun,函数功能是:根据以下公式形参传入s,计算结果作为函数返

53、回值,n 通过27、B:00cM:double/=P:inti,j,t;floats=0;for(i=1;i=n;i+)的矩阵,根据给定的 m 的值,将每行tij+_2=tij;/*丽*/for(j=0;j=2)&(n10)yes=1;for(j=2;j0.000001);returnx1;29.填空给定程序中,函数 fun 的功能是:将 N*N 的矩阵中元素额度值按列右移 1 个位置,右边被移出矩阵的元素绕回左边voidfun(int,(*t)N)int.i,j,x;/*丽*/for(i=0;i=1;j-)tij=tij-1;/*骨口*/ti3=x;修改28、B:i+mmM:)给定程序 MO

54、DII.c 中函数 fun 的功能是:计算并输出下列级数的前 N 项之和 Sn,知道Sn+1 大于 q 为止,q 的值通过形参传入 doublefun(doubleq)intn;doubles,t;n=2;s=2.0;while(s=q)t=s;s=s+(n+1)/n;n+;printf(n=%dn,n);returns;设计编写函数 fun,她的功能是:求 Fibonacci 数歹!J 中大于 t 的最小的一个数,结果由函数返回,其中 Fibonacci 数歹!JF(n)的定义为:29、B:NN-10M:s=s+(n+1.)/n;returnt;P:intf0=0,f1=1,f;dof=f0

55、+f1;f0=f1;f1=f;while(ft);returnf;30 .填空给定程序中,函数 fun 的功能是:有 N*N 矩阵,将矩阵的外围元素顺时针逆转,操作顺序是: 首先将第一行元素的值存入临时数组 r,然后使第一列成为第一行,最后一行成为第一列, 最后一列成为最后一行。 临时数组中的元素成为最后一列 voidfun(int(*t)N)intj,rN;for(j=0;jN;j+)rj=t0j;for(j=0;jN;j+)/*found*/t0N-j-1=tj1;for(j=0;j=0;2)tN-1N-1-j而N;for(j=N-1;j=0;j-)/*found*/tjN-1=r3;修改

56、/*found*/*found*/给定程序 MODII.c 中函数 fun 的功能是:计算s=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+也)的值,10.407143.f(x)的函数定义如下:/*found*/f(doublex)if(x=0.0|x=2.0)return0.0;elseif(x0.0)return(x-1)/(x-2);elsereturn(x+1)/(x-2);doublefun(intn)inti;doubles=0.0,y;for(i=-n;i=n;i+)y=f(1.0*i);s+=y;/*found*/returns设计编写函数 fun,它的功能是计算:

57、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=1;iN;i+)for(j=0;ji;j+)/*found*/2=tij+tji;/*found*/n 为 5 时,函数值应为:s=ln(ij+ln(2)+3)+呵加)修改给定程序 MOD

58、II.c 中函数 fun 的功能是:计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中 x 和 y 的值不等,z 和 y 的值不等#include#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:NtijtjiM:(m)/(n)return(value);P:intj=0

59、;char*p=a;while(*p=*)p+;while(*p)aj+=*p+;aj=0;32.填空给定程序中,函数 fun 的功能是:将 N*N 矩阵主对角线元素中的值域反向对角线对应位置上的元素中的值进行交换#defineN4/*丽*/voidfun(int1,intn)inti,s;/*丽*/for(2;i+)s=tiFtii=tin-i-1;/*丽*/tin-1-i=-3;)修改由 N 个有序整数数组组成的数列已放在一维数组中,给定程序 MODII.C中函数 fun 的功能是:利用折半查找法查找整数 m 在整数数组的位置。若找到,返回其下标;反之,返回-1voidfun(inta,i

60、ntm)intlow=0,high=N-1,mid;while(low=high)mid=(low+high)/2;if(mamid)low=mid+1;elsereturn(mid);return(-1);设计假定输入的字符串中只包含字母和*号。 请编写函数 fun,它的功能是: 除了尾部的*号外,将字符串中的*号全部删除,形参 p 以指向字符串中最后的一个字母,在编写函数是,不得使用 c 语言提供的字符串函数32、B:tNi=0;in;sM:fun(inta,intm)ifP:char*q=a;intj=0;while(*q&qp)if(*q!=*)aj+=*q;q+;while(*p)a

温馨提示

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

评论

0/150

提交评论