全国计算机二级c语言上机考试题库

全国计算机二级c语言上机考试题库

ID:83018142

大小:142.22 KB

页数:130页

时间:2023-09-19

上传者:灯火阑珊2019
全国计算机二级c语言上机考试题库_第1页
全国计算机二级c语言上机考试题库_第2页
全国计算机二级c语言上机考试题库_第3页
全国计算机二级c语言上机考试题库_第4页
全国计算机二级c语言上机考试题库_第5页
全国计算机二级c语言上机考试题库_第6页
全国计算机二级c语言上机考试题库_第7页
全国计算机二级c语言上机考试题库_第8页
全国计算机二级c语言上机考试题库_第9页
全国计算机二级c语言上机考试题库_第10页
资源描述:

《全国计算机二级c语言上机考试题库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

2006年9月上机考试题库说明:上机考试正式系统题库中共有50套题目,考生随机从中抽取一套进行考试。例如,如果你考的是二级C语言上机考试,那么你输入准考证号并确认后,机器将从正式题库的50套题中随机为你抽取一套题目(包括一道程序填空题(30分)、一道程序修改题(30分)、一道程序设计题(40分)共3题)让你考试,如果3题都完全答对,那么你上机考试的成绩就是满分100分。(注:一般来说,抽题时,填空题第1题和修改题第1题和编程题第1题会对应同时出现,如此类推)以下包括50套题(填空题、改错题、编程题各50道题目)和答案一、填空题(程序填空题)1、给定程序中,函数ftin的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数请在程序的下面线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#include#defineN9longctod(char*s){longd=0;while(*s)if(isdigit(*s)){/**********(J**********/d=d*10+*s-_1_;/**********tound**********/_2_;}returnd;)longfiin(char*a,char*b)/**********found**********/return3main(){charsl[N],s2[N];do{printf("Inputstringsi:");gets(sl);}while(strlen(s1)>N);do

1{printff'Inputstrings2:");gets(s2);}while(strlen(s2)>N);printf("Theresultis:%ld

2",fun(sl,s2));2、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。=Ix3+3x5+5x7++(2x»-l)x(2x»+i)S=F+丁+F+…+(2x«)2例如,当形参n的值为10时,函数返回:9.612558o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includedoublefun(intn){inti;doubles,t;/********************/s=_l_;/**********(J**********/for(i=l;i<=2_;i++){t=2.0*i;/**********(J**********/s=s+(2.0*i-l)*(2.0*i+l)/_3_;)一returns;}main(){intn=-l;while(n<0){printf("Pleaseinput(n>0):");scanf("%d",&n);}printff'

3Theresultis:%f

4",fun(n));3、给定程序中,函数fun的功能是:在3x4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。例如,有下列矩阵:12134781063597程序执行结果为:find:a[2][2]=9请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK.1.C中。不得增行或删行,也不得更改程序的结构!#include

5#defineM3#defineN4voidfun(int(*a)[N]){inti=0,j,find=0,rmax,c,k;while((i

6",i,c,a[i][c]);/********************/_3_;)if(!find)printf("notfound!

7");)main(){intx[M][N],i,j;printff'Enternumberforarray:

8");for(i=O;i

9");fbr(i=O;i

10

11");)fun(x);4、给定程序中,函数fim的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

12注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5#defineM10intfiin(char(*ss)[M],intk){inti,j=0,len;/**********found**********/fdr(i=0;i<__1_;i++){len=strlen(ss[i]);/**********tound**********/if(len<=_2_)/**********nd**********/strcpy(ss[j++],_3__);)returnj;}main(){charx[N][M]={"Beijing","Shanghai","Tianjing","Nanjing","Wuhan");inti,f;printf("

13Theoriginalstring

14

15");fbr(i=O;i

16");f=fun(x,7);printff'Thestringwitchlengthislessthanorequalto7:

17");fbr(i=0;i

18");5、给定程序中,函数firn的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,xl*xl+xl*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#includedoublefl(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}

19/********************/_1_fun(inti,doublex,doubley){if(i=D/********************/return_2_(x);else/**********nd**********/return_3_(x,y);}「main(){doublexl=5,x2=3,r;r=fun(l,xl,x2);r+=fun(2,xl,x2);printf("

20xl=%f,x2=%f,x1*x1+x1*x2=%f

21

22",x1,x2,r);6、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#includestructstudent{longsno;charnameflO];floatscore[3];);voidfun(structstudenta[],intn){/********************/_l_t;inti,j;/**********nd**********/for(i=0;i<_2_;i++)for(j=i+l;j0){t=a[i];a[i]=a[j];a[j]=t;}

23)main(){structstudents[4]={{10001,"ZhangSan",95,80,88},{10002,"LiSi",85,70,78),{10003,"CaoKai",75,60,88},{10004,"FangFang",90,82,87});inti,j;printfif"

24

25Theoriginaldata:

26

27");for(j=0;j<4;j++){printf("

28No:%ldName:%-8sScores:",s[j].sno,s[j].name);for(i=0;i<3;i++)printf("%6.2f",s[j].score[i]);printf("

29");)fun(s,4);printf("

30

31Thedataaftersorting:

32

33");for(j=0;j<4;j++){printf("

34No:%ldName:%-8sScores:",s[j].sno,s[j].name);for(i=0;i<3;i++)printf("%6.2f",s[j].score[i]);printf("

35");7、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000主函数中输出:4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN10doublefun(doublex[],double*y){inti,j;doubleav;/**********found**********/av=_1_;/**********found**********/for(i=0;i

36/**********found**********/if(x[i]>av)y[3]=x[i];y[j]=-l;returnav;}main(){inti;doublex[N],y[N];for(i=0;i

37");printf(,z

38Theaverageis:%f

39”,fun(x,y));for(i=0;y[i]>=0;i++)printf(,z%5.If",y[i]);printf('

40");8、给定程序中,函数fim的功能是:将a所指4x3矩阵中第k行的元素与第0行元素交换。例如,有下列矩阵:123456789101112若k为2,程序执行结果为:789456123101112请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN3#defineM4/**********tound**********/voidfun(int(*a)[N],int_1_){inti,j,temp;/**********found**********/for(i=0;i<_2_;i++){temp=a[0][i];/**********nd**********/a[0][i]=_3_;

41a[k][i]=temp;)}main(){intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}printf("Thearraybeforemoving:

42

43");for(i=0;i

44

45");fun(x,2);printff'Thearrayaftermoving:

46

47");for(i=O;i

48

49");9、给定程序中,函数fUn的功能是:找出100〜999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,100〜999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500o共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK.1.C中。不得增行或删行,也不得更改程序的结构!#includefun(intx){intn,si,s2,s3,t;n=0;t=100;/**********(J**********/while(t<=_1_){/**********tound**********/sl=t%10;s2=(_2_)%10;s3=t/100;/**********found**********/iRs1+s2+s3=3_)

50{printf("%dV)r-n++;)t";)returnn;}main(){intx="l;while(x<0){printff'Pleaseinput(x>0):");scanf("%d",&x);}printff'

51Theresultis:%d

52",fun(x));10、给定程序中,函数fim的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。例如,形参s所指的字符串为:abs5defl26jkm8,程序执行后的输出结果为:22。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#includeintfun(char*s){intsum=0;while(*s){/**********und**********/iftisdigit(*s))sum+=*s-_1_;/**********nd**********/_2_;'}/********************/return_3__;)main(){chars[81];intn;printf("

53Enterastring:

54

55");gets(s);n=fun(s);printf("

56Theresultis:%d

57

58",n);

5911、给定程序中,函数fim的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgho

60请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#include#defineN80voidfun(char*s,intn,char*t){intlen,i,j=0;len=strlen(s);/**********nd**********/if(n>=len)strcpy(_1_);else{/**********found**********/fbr(i=len-n;i<=len-1;i++)t[j++]=_2_;/**********(J**********/t[j]=_3_;main(){chars[N],t[N];intn;printf("Enterastring:");gets(s);printf("Entern:");scanf("%d",&n);fun(s,n,t);printf("Thestringt:");puts(t);12、给定程序中,函数fim的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh5##43df,处理后新字符串为:123543asdfgh##df。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#include

61#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=0;k=0;for(i=O;i

62Theresultis:%s

63",fun(s));13、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、"ZhangSan".95、80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#includestructstudent{longsno;charname[10];floatscore[3];};

64voidfun(structstudenta){structstudentb;inti;/**********tound**********/b=_1_;b.sno=10002;/**********found**********/strcpy(_2_,"LiSi");printf("

65Thedataaftermodified:

66");printf("

67No:%ldName:%s

68Scores:",b.sno,b.name);/**********(J**********/for(i=0;i<3;i++)printf("%6.2f",b._3_);printf("

69");}main(){structstudents={10001,"ZhangSan",95,80,88);inti;printfif"

70

71Theoriginaldata:

72");printf("

73No:%ldName:%s

74Scores:",s.sno,s.name);for(i=0;i<3;i++)printf("%6.2f",s.score[i]);printf("

75");fun(s);14、给定程序中,函数fim的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5#defineM10/**********found**********/voidfun(char(*ss)_1_,intk){inti=0;/**********,ound**********/while(i<_2_){/**********found**********/ss[i][k]=_3_;i++;}main(){charx[N][M]={"Create","Modify","Sort","skip","Delete");inti;printf("

76Theoriginalstring

77

78");fbr(i=O;i

79");fun(x,4);

80printfi("

81Thestringafterdeleted:

82

83");for(i=0;i

84");15、给定程序中,函数fim的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN6typedefstructnode{intdata;structnode*next;}NODE;voidfiin(NODE*h){NODE*p,*q;intt;/**********(J**********/p=—1—;while(p){q=_2_;while(q){/**********(J**********/if(p->data_3_q->data){t=p->data;p->data=q->data;q->data=t;}q=q->next;},p=p->next;NODE*creatlist(inta[]){NODE*h,*p,*q;inti;h=(NODE*)malloc(sizeof(NODE));h->next=NULL;fbr(i=O;i

85{q=(NODE*)malloc(sizeof(NODE));q->data=a[i];q->next=NULL;if(h->next=NULL)h->next=p=q;else{p->next=q;p=q;})returnh;)voidoutlist(NODE*h){NODE*p;p=h->next;if(p=NULL)printffThelistisNULL!

86");else{printf("

87Head");do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End

88");main(){NODE*head;inta[N]={0,10,4,2,8,6);head=creatlist(a);printf("

89Theoriginallist:

90");outlist(head);fun(head);printf("

91Thelistaftersorting:

92");outlist(head);)15、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数ftin的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、"ZhangSan\95、80、88,修改后输出t中的数据应为:10002、"LiSi"、96、81、89o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

93#include#includestructstudent{longsno;charname[10];floatscore[3];};/**********,ound**********/_1_fiin(structstudent*a)(血i;a->sno=10002;strcpy(a->name,"LiSi");/**********tound**********/for(i=0;i<3;i++)_2_+=1;/**********nd**********/return_3_.;}main(){structstudents={10001,"ZhangSan",95,80,88},*t;inti;printff'

94

95TheoriginaldataAn");printf("

96No:%ldName:%s

97Scores:",s.sno,s.name);for(i=0;i<3;i++)printf("%6.2f",s.score[i]);printf("

98");t=fun(&s);printf("

99Thedataaftermodified:

100");printf("

101No:%ldName:%s

102Scores:",t->sno,t->name);for(i=0;i<3;i++)printf("%6.2f",t->score[i]);printf("

103");17、给定程序中,函数firn的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:4630324061745154826,平均值为:30.500000移动后的输出为:4632404548306171526请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。

104不得增行或删行,也不得更改程序的结构!#include#include#defineN10doublefiin(double*x){inti,j;doubles,av,y[N];s=0;for(i=0;iav){y[_2_]=x[i];x[i]=-l;}for(i=0;i

105");printf("

106Theaverageis:%f

107",fun(x));printf("

108Theresult:

109",fun(x));fbr(i=O;i

110");18、给定程序中,函数ftm的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。例如,形参s所指的字符串为:ThisisaClanguageprogram.,函数的返回值为6。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includeintfiin(char*s){intn=0,flag=0;while(*s!-\0'){if(*s!-'&&flag=0){/**********,ound**********/_1—;flag=l;}

111/**********found**********/if(*s=-')flag=_2_;/********************/3;returnn;)main(){charstr[81];intn;printf("

112Enteralinetext:

113");gets(str);n=fun(str);printf("

114Thereare%dwordsinthistext.

115

116",n);19、给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5#defineM8intfun(char(*ss)[M],char*t){inti;/**********tound**********/for(i=0;i<_1_;i++)/**********found**********/if(strcmp(ss[i],t)==O)return_2return-1;main(){charch[N][M]={"if,"while","switch","int","for"},t[M];intn,i;printfif"

117Theoriginalstring

118

119");fbr(i=O;i

120");printfif"

121Enterastringforsearch:");gets(t);n=fun(ch,t);/**********tound**********/if(n=_3_)prints"

122Don'tfound!

123");elseprintf("

124Thepositionis%d.

125",n);}20、给定程序中,函数fun的功能是:找出NxN矩阵中每列元素中的最大

126值,并按顺序依次存放于形参b所指的一维数组中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#defineN4voidfun(int(*a)[N],int*b){inti,j;fbr(i=O;i

127Thematrix:

128");for(i=0;i

129");fiin(_3_);printf("

130Theresultis:");fbr(i=O;i

131");21、给定程序中,函数ftm的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#defineN20voidfun(int*a){inti,x,n=0;

132x=rand()%20;/**********(J**********/while(n<__1_){fbr(i=O;i

133");fbr(i=0;i

134");printf("

135

136");22、给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN6typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*p,*q;intt;P=h;while(p){/**********,ound**********//**********found**********/while(_2_){if(p->data>q->data)

137{t=p->data;p->data=q->data;q->data=t;}q=q->next;}/**********found**********/P=_3_;NODE*creatlist(inta[]){NODE*h,*p,*q;inti;h=NULL;for(i=0;idata=a[i];q->next=NULL;if(h=NULL)h=p=q;else{p->next=q;p=q;})returnh;}voidoutlist(NODE*h){NODE*p;p=h;if(p=NULL)printff'ThelistisNULL!

138");else{printf("

139Head");do{printf^"->%d",p->data);p=p->next;}while(p!=NULL);printf("->End

140");main(){NODE*head;inta[N]={0,10,4,2,8,6};head=creatlist(a);printf("

141Theoriginallist:

142");outlist(head);fun(head);printf("

143Thelistafterinverting:

144");outlist(head);)23、给定程序中,函数firn的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

145注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5typedefstructnode{intdata;structnode*next;}NODE;voidfun(NODE*h){NODE*p,*q,*r;/**********nd**********/p=_l—;/**********und**********/if(_2_)return;q=p->next;p->next=NULL;while(q){r=q->next;q->next=p;/**********found**********/p=q;q=_3_;h->next=p;NODE*creatlist(inta[]){NODE*h,*p,*q;inti;h=(NODE*)malloc(sizeof(NODE));h->next=NULL;fbr(i=O;idata=a[i];q->next=NULL;if(h->next=NULL)h->next=p=q;else{p->next=q;p=q;})returnh;)voidoutlist(NODE*h){NODE*p;p=h->next;if(p=NULL)printff'ThelistisNULL!

146");else{printf("

147Head");

148do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End

149");main(){NODE*head;inta[N]={2,4,6,8,10);head=creatlist(a);printf("

150Theoriginallist:

151");outlist(head);fun(head);printf("

152Thelistafterinverting:

153");outlist(head);)24、给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入一个整数:27638496,函数返回值为:64862。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includeunsignedlongfun(unsignedlongn){unsignedlongx=0;intt;while(n){t=n%10;/**********und**********/if(t%2=1_)/**********nd**********/x=2_+t;/**********,ound**********/n=_3_;)returnx;)main(){unsignedlongn=-l;

154while(n>99999999||n<0){printf("Pleaseinput(0

155Theresultis:%ld

156",fun(n));25、给定程序中,函数fim的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(sl,s2)的功能是在si串中查找s2子串,若没有,函数值为0,若有,请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5#defineM15voidfun(char(*ss)[M],char*substr){inti,find=0;/**********(J**********/fbr(i=O;i<__1_;i++)/********************/if(strstr(ss[i],__2_)!=NULL){find=l;puts(ss[i]);printf("

157");}/********************/if(find=3_)prints"

158Don'tfound!

159");}main(){charx[N][M]={"BASIC","Clangwage",''Java","QBASIC","Access"),str[M];inti;printf("

160Theoriginalstring

161

162");fbr(i=O;i

163");printf("

164Enterastringforsearch:");gets(str);fun(x,str);)26、给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取

165出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数:27638496,函数返回值为:26846。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includeunsignedlongfun(unsignedlongn){unsignedlongx=0,s,i;intt;s=n;/**********(J**********//********************/while(_2_){t=s%10;if(t%2==0){

166/**********found**********/x=x+t*i;i=_3_;}s=s/10;}returnx;)main(){unsignedlongn="l;while(n>99999999||n<0){printf("Pleaseinput(0

167Theresultis:%ld

168",fun(n));27、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN5typedefstructstudent{longcharfloat}STU;sno;name[10];score[3];voidfun(char*filename){FILE*fp;inti,j;STUs[N],t;/**********tound**********/fp=fopen(filename,_1_);fread(s,sizeof(STU),N,fp);fclose(fp);for(i=0;i

169}main(){STUt[N]={{10005,"ZhangSan",95,80,88},{10003,"LiSi",85,70,78},{10002,"CaoKai",75,60,88},{10004,"FangFang",90,82,87},{10001,"MaChao",91,92,77}},ss[N];inti,j;FILE*fp;fp=fopen("student.dat","wb");fwrite(t,sizeof(STU),5,fp);fclose(fp);printR"

170

171Theoriginaldata:

172

173");for(j=O;j

174No:%ldName:%-8sScores:",t[j].sno,t[j].name);for(i=0;i<3;i++)printf("%6.2f",t[j].score[i]);printf("

175");)fun("student.dat");printf("

176

177Thedataaftersorting:

178

179");fp=fopen("student.dat","rb");fread(ss,sizeof(STU),5,fp);fclose(fp);for(j=O;j

180No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("

181");28、给定程序中,函数fim的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出

182结果为:letter'a':3timesletter's':3times请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#includevoidfiin(char*s){intk[26]={0},n,i,max=0;charch;while(*s){if(isalpha(*s)){/**********tound**********/ch=tolower(_1_);n=ch-'a';/**********found**********/k[n]+=_2_;s++;/**********(J**********/iftmax

183Aftercount:

184");fdr(i=O;i<26;i++)if(k[i]==max)printf("

185letter\'%c\':%dtimes

186",i+'a',k[i]);main(){chars[81];printf("

187Enterastring:

188

189");gets(s);fun(s);29、给定程序中,函数fun的功能是:将形参s所指字符串中所有ASCH码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。例如,形参s所指的字符串为:Abc@lx56*,程序执行后t所指字符数组中的字符串应为:A@156*O请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!

190#includeintfiin(char*s,char*t){intn=0;while(*s){if(*s<97){/********************/*(t+n)=_1_;n++;}/**********found**********/_2_;)*(t+n)=O;/**********nd**********/return_3__;}main(){chars[81],t[81];intn;printf("

191Enterastring:

192");gets(s);n=fun(s,t);printf("

193Thereare%dletterwhichASCIIcodeislessthan97:%s

194",n,t);30、给定程序中,函数firn的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5typedefstructnode{intdata;structnode*next;}NODE;/**********found**********/_l_fiin(NODE*h){NODE*p,*q,*r;P=h;if(p=NULL)returnNULL;q=p->next;p->next=NULL;/**********tound**********/

195while(_2_){r=q->next;q->next=p;p=q;/**********nd**********/q=_3_;)returnp;}'NODE*creatlist(inta[]){NODE*h,*p,*q;inti;h=NULL;for(i=0;idata=a[i];q->next=NULL;if(h==NULL)h=p=q;else{p->next=q;p=q;});returnh;)voidoutlist(NODE*h){NODE*p;p=h;if(p=NULL)printffThelistisNULL!

196");else{printf("

197Head");do{printf("->%d",p->data);p=p->next;}while(p!=NULL);printf("->End

198");main(){NODE*head;inta[N]={2,4,6,8,10};head=creatlist(a);printf("

199Theoriginallist:

200");outlist(head);head=fun(head);printf("

201Thelistafterinverting:

202");outlist(head);)

20331、给定程序中,函数fim的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000主函数中输出:m=30.0请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN10doublefun(doublex[],double*av){inti,j;doubled,s;s=0;fbr(i=0;i

204");m=fun(x,&av);printff'WTheaverageis:%f

205",av);printf("m=%5.1f",m);printf(,'

206");32、给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

207请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#includevoidfiin(char*s,inta,doublef){/**********tound**********/—1—fp;charch;fp=fopen("filel.txt","w");fprintf(fp,"%s%d%f

208",s,a,f);fclose(fp);fp=fopen("filel.txt","r");printf("

209Theresult:

210

211");ch=fgetc(fp);/**********(J**********/while(!feof(_2_)){/********************/putchar(3_);ch=fgetc(fp);}putchar('

212');fclose(fp);main(){chara[10]="Hello!";intb=12345;doublec=98.76;fun(a,b,c);)33、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如:传给形参a的数据中,学号、姓名、和三门课的成绩依次是:10001."ZhangSan".95、80、88,修改后的数据应为:10002、"LiSi"、96、81、89o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include

213#includestructstudent{longsno;charname[10];floatscore[3];);/**********nd**********/_1_fun(structstudenta){inti;a.sno=10002;/**********found**********/strcpy(_2_,"LiSi");/********************/for(i=0;i<3;i++)_3_+-1;returna;)main(){structstudents={10001,"ZhangSan",95,80,88},t;inti;printfif"

214

215Theoriginaldata:

216");printff'WNo:%ldName:%s

217Scores:",s.sno,s.name);for(i=0;i<3;i++)printf("%6.2f",s.score[i]);printf("

218");t=fiin(s);printf("

219Thedataaftermodified:

220");printf("

221No:%ldName:%s

222Scores:",t.sno,t.name);fbr(i=0;i<3;i++)printf("%6.2f",t.score[i]);printffQ");34、给定程序中,函数fim的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#include#defineN5

223#defineM8voidfun(char(*ss)[M]){char*ps[N],*tp;intij,k;fbr(i=O;i

224Thestringaftersortingbylength:

225

226");fbr(i=O;i

227Theoriginalstring

228

229");fbr(i=O;i

230");fun(ch);34、给定程序中,函数fim的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdfl2543。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的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*sizeofifchar));j=0;k=0;for(i=0;i='a')&&(s[i]<=,z'))||((s[i]>='A,)&&(s[i]<=(Z'))){else

231{p[k]=s[i];k++;}/**********found**********/for(i=0;i++)t[j+i]=p[i];/********************/t[j+k]=_3_;returnt;main(){chars[80];printf("Pleaseinput:");scanf("%s",s);printf("

232Theresultis:%s

233",fun(s));36、例如:若形参e的值为le-3,函数的返回值为0.551690。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#includedoublefiin(doublee){inti,k;doubles,t,x;s=0;k=l;i=2;/**********found**********/1_/4;/**********found**********/while(x_2_e){s=s+k*x;k=k*(-1);t=2*i;/********************/x=3_/(t*t);i++;returns;main(){doublee=le-3;printf("

234Theresultis:%f

235",fun(e));37、给定程序中,函数fim的功能是:将形参n所指变量中,各位上

236为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#includevoidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=l;while(*n)/********************/{t=*n%__1_;/**********tound**********/if(t%2!=_2_){x=x+t*i;i=i*10;}*n=*n/10;)/**********found**********/*n=_3_;)main(){unsignedlongn=-l;while(n>99999999||n<0){printf("Pleaseinput(0

237Theresultis:%ld

238",n);38、给定程序中,函数fiin的功能是:找出100至x(x<999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。

239不得增行或删行,也不得更改程序的结构!#includefun(intx){intn,si,s2,s3,t;/**********nd**********/n=_1_;t=ioo;-/**********found**********/while(t<=_2_){sl=t%16Ts2=(t/10)%10;s3=t/100;if(sl+s2+s3=15){printf("%d",t);n++;}/********************/_3_;}returnn;)main(){intx="l;while(x>999||x<0){printf("Pleaseinput(0

240Theresultis:%d

241",fun(x));}138、给定程序中,函数fun的功能是:判定形参a所指的NxN(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1;不是,函数返回值为0。吆J方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下3x3的矩阵就是一个吆J方":492357816请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN3

242intfun(int(*a)[N]){inti,j,ml,m2,row,colum;ml=m2=0;for(i=0;i

243");fbr(i=0;i

244");fbr(i=0;i

245");)if(fun(x))printff'TheArrayisamagicsquareAn");elseprints"TheArrayisn'tamagicsquareAn");)38、给定程序中,函数fiin的功能是:将a所指3x5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。例如,有下列矩阵:123451234512345若k为2,程序执行结果为345123451234512请在程序的下划线处填入正确的内容并把下划线删除,使程序得出

246正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineM3#defineN5voidfiin(int(*a)[N],intk){inti,j,p,temp;/**********tound**********/fbr(p=l;p<=_1_;p++)for(i=0;i

247

248");fdr(i=O;i

249");}.fun(x,2);printf("Thearrayaftermoving:

250

251");for(i=0;i

252");41、给定程序中,函数fun的功能是:判断形参s所指字符串是否是"回文"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。"回文"是正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#includeintfim(char*s){char*lp,*rp;

253/**********,ound**********/lp=—1—;rp=s+strlen(s)-l;while((toupper(*lp)==toupper(*rp))&&(lp

254\"%s\"isaPalindrome.

255

256",s);elseprintf("

257\"%s\"isn'taPalindrome.

258

259",s);)42、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,longsno){FILE*fp;STUn;inti;fp=fdpen(filename,"rb+");

260/********************/while(!_1_){fread(&n,sizeof(STU),1,fp);/********************/if(n.sno_2_)break;}if(!feof(fp)){fbr(i=0;i<3;i++)n.score[i]+=3;/**********und**********/fceek(fp,-1L*_3_,SEEK_CUR);fwrite(&n,sizeof(STU),1,fp);)fclose(fp);}main(){STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}},ss[N];inti,j;FILE*fp;fp=fopen("student.dat","wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);printfV'

261Theoriginaldata:

262");fp=fdpen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);for(j=0;j

263No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("

264");fun("student.dat",10003);fp=fbpen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printR"

265Thedataaftermodifing:

266");for(j=O;j

267No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);

268printf("

269");43、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fiin的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、"ZhangQi".93、85、87,修改后输出t中的数据应为:10004、"LiJie"、93、85、87o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#includestructstudent{longsno;charname[10];floatscore[3];};voidfun(structstudent*b){inti;/**********nd**********/b_l_=10004;/**********und**********/strcpy(b_2_,"LiJie");main(){structstudentt={10002,"ZhangQi",93,85,87);inti;printf("

270

271Theoriginaldata:

272");printf("

273No:%ldName:%s

274Scores:",t.sno,t.name);for(i=0;i<3;i++)printf("%6.2f",t.score[i]);printf("

275");/**********found**********/fiin(_3_);printf("

276Thedataaftermodified:

277");printf("

278No:%ldName:%s

279Scores:",t.sno,t.name);for(i=0;i<3;i++)printf("%6.2f",t.score[i]);printf("

280");

28144、给定程序中,函数fim的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:4630324061745154826,平均值为:30.500000移动后的输出为:3061715264632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#include#defineN10doublefun(double*x){inti,j;doubleav,y[N];av=0;/********************/fbr(i=O;i

282");printf("

283Theaverageis:%f

284",fun(x));printf("

285Theresult:

286",fun(x));for(i=0;i

287");

28845、给定程序中,函数fim的功能是计算下式135(2xn-l)224363(2xn)2直到Qxn-l)410-3,并把计算结果作为函数值返回。(2xn)2例如,若形参e的值为le-3,函数的返回值2.735678。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#includedoublefun(doublee){inti;doubles,x;/**********nd**********/s=0;i=1;x=1.0;while(x>e){

289/**********found**********/_2_;/**********found**********/x=(2.0*i-1)/((_3_)*(2.0*i));s=s+x;returns;main(){doublee=le-3;printf("

290Theresultis:%f

291",fun(e));46、给定程序中,函数fun的功能是建立一个NxN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:1111112221123211222111111请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN7/**********nd**********/voidfun(int(*a)_1_){>nti,j,k,m;if(N%2=0)m=N/2;elsem=N/2+l;for(i=0;i

292printf("

293Theresultis:

294");fbr(i=O;i

295");47、给定程序中,函数fim的功能是用函数指针指向要调用的函数,并进行调用。规定在_2—处使计旨向函数fl,在_3—处使计旨向函数f2。当调用正确时,程序输出:xl=5.000000,x2=3.000000,xl*xl+xl*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includedoublefl(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}doublefiin(doublea,doubleb){/**********found**********/」_(*();doublerl,r2;/**********found**********/f=_2_.;/*pointfbuntionfl*/rl=f(a);/**********found**********/f=_3_;/*pointfbuntionf2*/r2=(*f)(a,b);returnrl+r2;}main(){doublexl=5,x2=3,r;r=fun(xl,x2);printf("

296xl=%f,x2=%f,xl*xl+xl*x2=%f

297",xl,x2,r);

29848、给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atoDl各字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#includevoidfiin(char*s,inta,doublef){/**********found**********/一1一枇charstr[100],strl[100],str2[100];intal;doublefl;fp=fbpen("filel.txt","w");fprintf(fp,"%s%d%f

299",s,a,f);/**********tound**********/_2_;fp=fopen("filel.txt","r");/**********found**********/fscanf(_3_,"%s%s%s",str,strl,str2);fclose(fp);al=atoi(strl);fl=atof(str2);printf("

300Theresult:

301

302%s%d%f

303",str,al,fl);}'main(){chara[10]="Hello!";intb=12345;doublec=98.76;fun(a,b,c);49、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:-0.204491。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

304#includedoublefiin(intn){inti,k;doubles,t;s=0;/**********(J**********/k=1_;for(i=l;i<=n;i++){/**********und**********/t=2;s=s+k*(2*i-l)*(2*i+l)/(t*t);/**********found**********/k=k*3;returns;main(){intn="l;while(n<0){printf("Pleaseinput(n>0):");scanf("%d",&n);}printf("

305Theresultis:%f

306",fun(n));50、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fim的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,STUn){FILE*fp;/**********nd**********/

307fp=fbpen(_1_,"rb+");/**********und**********/fseek(fp,-lL*sizeoftSTU),_2_);/**********found**********/fwrite(_3_,sizeof(STU),1,fp);fclose(fp);}main(){STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}};STUn={10006,"ZhaoSi",55,70,68},ss[N];inti,j;FILE*fp;fp=fdpen("student.dat","wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fdpen("student.dat","rb");fread(ss,sizeof^STU),N,fp);fclose(fp);printf("

308Theoriginaldata:

309

310");for(j=O;j

311");fun("student.dat",n);printf("

312Thedataaftermodifing:

313

314");fp=fbpen("student.dat","rb");fread(ss,sizeoftSTU),N,fp);fclose(fp);for(j=O;j

315No:%ldName:%-8sScores:",ss[j].sno,ss[j].name);for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);printf("

316");二、改错题(程序修改题)

3171.给定程序M0DI1.C中fim函数的功能是:求出以下分数序列的前n项之和。235813211235813和值通过函数值返回main函数。例如,若n=5,则应输出:8.391667o请改正程序中的错误,使它能得出正确的结果。#include/**************^^und**************/fun(intn){inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){s=s+1.0*a/b;/**************found**************/c=a;a+=b;b+=c;}retum(s);main(){intn=5;printf("

318Thevalueoffunctionis:%lf

319",fun(n));2.给定程序M0DI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……O待排序的字符串已在主函数中赋予。请改正程序中的错误,使它能得出正确结果。#include#include#defineN80voidinsert(char*aa){inti,j,n;charch;/**********found**********/n=strlen[aa];fbr(i=l;i

320c=aa[i];j=i-l;while((j>=0)&&(ch

321",a);insert(a);printf("Thestringaftersorting:%s

322

323",a);)3.给定程序MODILC中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:1axl=—(x0H)2x0例如,a为2时,平方根值为:1.414214。请改正程序中的错误,使它能得出正确结果。#include#include/**********,ound**********/doublefun(doublea,dounlexO){doublexl,y;x1=(x0+a/x0)/2.0;/********************/if(fabs(xl-xo)>0,00001)y=fun(a,xl);elsey=xl;returny;main(){doublex;printf("Enterx:");scanf("%lf',&x);printf("Thesquarerootof%lfis%lf

324",x,fun(x,1,0));4.给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:

325A、E、I、0、U)的个数。注意:字母不分大、小写。例如:若输入:THIsisaboot,则输出应该是:1、0、2、2、0。请改正程序中的错误,使它能得出正确的结果。#includefun(char*s,intnum[5]){intk,i=5;for(k=0;k=0)num[i]++;main(){charsl[81];intnuml[5],i;printf("

326Pleaseenterastring:");gets(si);fun(si,numl);for(i=0;i<5;i++)printf("%d",numl[i]);printf("

327");}4.给定程序MODILC中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。例如,当s所指字符串为:"ABCD"时,贝"所指字符串中的内容应为:"ABCDDCBA%请改正程序中的错误,使它能得出正确的结果。#include#include/************************/voidfun(chars,chart){inti,d;

328d=strlen(s);for(i=0;i

329PleaseenterstringS:");scanf("%s",s);fun(s,t);printf("

330Theresultis:%s

331",t);6.给定程序MODH.C中函数fun的功能是:将十进制正整数m转换成k(2〈kW9)进制数,并按高位到低位顺序输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)o请改正fun函数中的错误,使它能得出正确的结果。#include#includevoidfun(intm,intk)(intaa[20],i;for(i=0;m;i++){/********************/aa[i]=m/k;m/=k;)for(;i;i-)/**********und**********/printf("%d",aa[i]);main(){intb,n;printf("

332Pleaseenteranumberandabase:

333");scanf("%d%d",&n,&b);

334fun(n,b);printf("

335");6.给定程序MODILC是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。#include#includetypedefstructaa{intdata;structaa*next;}NODE;intfun(NODE*h){intsum=0;NODE*p;/*********************/P=h;while(p){if(p->data%2==0)sum+=p->data;/***********found**********/p=h->next;)returnsum;)NODE*creatlink(intn){NODE*h,*p,*s,*q;inti,x;h=p=(NODE*)malloc(sizeof(NODE));for(i=l;i<=n;i++){s=(NODE*)malloc(sizeoftNODE));s->data=rand()%16;s->next=p->next;p->next=s;p=p->next;p->next=NULL;returnh;)outlink(NODE*h,FILE*pf){NODE*p;p=h->next;fprintf(pf,"

336

337THELIST:

338

339HEAD");

340while(p){fprintf(pf,"->%d",p->data);p=p->next;}f^rintf(pf,"

341");}outresult(ints,FILE*pf){fprintftpf,"

342Thesumofevennumbers:%d

343",s);}main(){NODE*head;inteven;head=creatlink(12);head->data=9000;outlink(head,stdout);even=fun(head);printf("

344Theresult:

345");outresult(even,stdout);)8.给定程序M0DI1.C中函数fiin的功能是:对N名学生的学习成绩,按从高到低的顺序找出前.m(mW10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数fiin中指定部位的错误,使它能得出正确的结果。#include#include#include#defineN10typedefstructss{charnum[10];ints;}STU;STU*fiin(STUa[],intm){STUb[N],*t;inti,j,k;/**********tound**********/t=(STU*)calloc(sizeof(STU),m)for(i=0;ib[j].s)j=i;/**********found**********/t(k)=b(j);bU].s=0;)returnt;)outresult(STUa[],FILE*pf)

346{inti;for(i=0;i

347",a[i].num,a[i].s);fprintf(pf;"

348

349");main(){STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}};STU*pOrder;inti,m;printf("*****TheOriginaldata*****

350");outresult(a,stdout);printff

351Givethenumberofthestudentswhohavebetterscore:");scanf("%d",&m);while(m>10){printf("

352Givethenumberofthestudentswhohavebetterscore:");scanf("%d",&m);)pOrder=fun(a,m);printff*****THERESULT*****

353");printf("Thetop:

354");for(i=0;i

355",pOrder[i].num,pOrder[i].s);free(pOrder);9.给定程序MODILC中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。在main()函数中,若ftm返回1输出YES,若firn返回0输出NO!。请改正程序中的错误,使它能得出正确的结果。#includeintfun(intm){intk=2;while(k<=m&&(m%k))/************found************/k-H-/************found************/

356if(m=k)return1;elsereturn0;main(){intn;printf("

357Pleaseentern:");scanf("%d",&n);if(fun(n))prints"YES

358");elseprintf("NO!

359");9.给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。#include#includetypedefstructaa{intdata;structaa*next;}NODE;NODE*Creatlink(intn,intm){NODE*h=NULL,*p,*s;inti;/**********found***********/p=(NODE)malloc(sizeof(NODE));h=p;p->next=NULL;fbr(i=l;i<=n;i++){s=(NODE*)malloc(sizeof(NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;)./**********nd***********/returnp;}outlink(NODE*h){NODE*p;p=h->next;printf("

360

361THELIST:

362

363HEAD");while(p){printf("->%d",p->data);p=p->next;printf("

364");)

365main(){NODE*head;head=Creatlink(8,22);outlink(head);11.给定程序M0DI1.C中函数fiin的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。请改正函数fim中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。#includeintfiin()inta[3][3],sum;intij;*********un**********for(i=0;i<3;i++){for(j=0;j<3;j++)*********■f^)und**********scanf("%d",a[i][j]);)for(i=0;i<3;i++)sum=sum+a[i][i];printf("Sum=%d^",sum);main()fun();12.给定程序MODILC中函数fim的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其它字符不变。请改正函数ftm中指定部位的错误,使它能得出正确的结果。#include#includevoidfun(char*s){/**********(J***********/while(*s!-@'){if(*s>-A,&*s<='Z*||*s>='a'&&*s<='z'){if(*s=='Z')*s-A';elsei九*s=='z')*s-a';else*s+=1;}/**********found***********/(*s)++;})main(){chars[80];

366printfif"

367Enterastringwithlength<80.:

368

369");gets(s);printf("

370Thestring:

371

372");puts(s);fun(s);printf("

373

374TheCords:

375

376");puts(s);)11.给定程序MODI1.C中函数fim的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正函数fim中指定部位的错误,使它能得出正确的结果。#include#include#defineN80intfiin(char*s,char*t){intn;char*p,*r;n=0;while(*s){P=s;/*******************/r=P;while(*r)if(*r==*p){r++;p++;}elsebreak;/*********found**********/if(*r=O)n++;s++;)returnn;}main(){chara[N],b[N];intm;printf("

377Pleaseenterstringa:");gets(a);printf("

378Pleaseentersubstringb:");gets(b);m=fun(a,b);printf("

379Theresultis:m=%d

380",m);14.给定程序M0DI1.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果。#includevoidfun(longs,long*t){intd;longsl=l;/************found************/

381t=0;while(s>0){d=s%10;/************und************if(d%2==0){*t=d*si+*t;si*=10;s/=10;main(){longs,t;clrscr();printf("

382Pleaseenters:");scanf("%ld",&s);fun(s,&t);printf("Theresultis:%ld

383",t);)15.给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。例如,给主函数中的变量xl、x2、x3分别输入15112,则输出结果应当是:330o请改正程序中的错误,使它能得出正确结果。#include/************found************/fun(intx,y,z){intj,t,n,m;j=1;t=j%x;m=j%y;n=j%z;while(t!=0||m!=0||n!=0){j=j+l;t=j%x;m=j%y;n=j%z;}...……………/************found************/returni;}main(){intxl,x2,x3,j;

384printf("Inputxlx2x3:");scanf("%d%d%d",&x1,&x2,&x3);printf("xl=%d,x2=%d,x3=%d

385",xl,x2,x3);j=fun(xl,x2,x3);printf("Theminimalcommonmultipleis:%d

386",j);)15.给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。请改正程序中的错误,使它能得出正确的结果。#include#defineM5/************found************/intfun(intn,intxx[][]){inti,j,sum=O;printf("

387The%dx%dmatrix:

388",M,M);fbr(i=0;i

389");)for(i=0;i

390Thesumofallelementson2diagnalsis%d.",fun(M,aa));16.给定程序MODI1.C中函数ftin的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数fiin中指定部位的错误,使它能得出正确的结果。#include#includevoidfun(chars[],intn)(chara[80],*p;inti;/**********tound***********/S=p;for(i=0;i

391{a[i]=*p;i++;/**********found***********/while(*p);a[i]=O;strcpy(s,a);)main(){intn;chars[80];printf("

392Enterastring:");gets(s);printf("

393Thestring\"%s\"

394",s);printf("

395Entern(numberof*):");scanf("%d",&n);fun(s,n);printf("

396Thestringafterinster:\"%s\"

397",s);)18.给定程序M0DI1.C中函数fun的功能是:求S的值。eI34262(2k)2S=xxxi~L1«33・55・7(2上-1)(2上+1)例如,当k为10时,函数值应为:1.533852。请改正程序中的错误,使程序能输出正确的结果。#include#include/************************/voidfun(intk){intn;floats,w,p,q;n=1;s=1.0;while(n<=k){w=2.0*n;p=w-1.0;q=w+1.0;s=s*w*w/p/q;n++;/************found************returnsmain()(printf("%f

398",fun(10));19.给定程序MODIl.C中函数fun的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。

399例如,n=8时,输入:193,199,195.673,195,757,196.051,196.092,196.596,196.579,196.763所得平均值为:195.838745,在平均值以上的实数个数应为:5请改正程序中的错误,使程序能输出正确的结果。#includeintfun(floatx[],intn){一/************************/intj,c=0,floatxa=0.0;for(j=O;j

400",xa);for(j=O;jxa)C++;returnc;)main(){floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196,579,196.763};printf("%d

401",fun(x,8));20.给定程序MODIl.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。例如,字符串中的数据为:AABBCCDDEEFF,则输出应当是:ABBCDDEFFo请改正函数fim中指定部位的错误,使它能得出正确的结果。#include#include#defineN80voidfun(char*s,chart[]){inti,j=0;fbr(i=O;i

402main(){chars[N],t[N];printf("

403Pleaseenterstrings:");gets(s);fun(s,t);printf("

404Theresultis:%s

405",t);21.给定程序M0DI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数firn中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include/**********tound**********/charfun(char*s,char*t){intsl=O,tl=O;char*ss,*tt;ss=s;tt=t;while(*ss){sl++;/**********found**********/while(*tt){H++;/**********tound**********/if(tl>sl)returnt;elsereturns;)main(){chara[80],b[80],*p,*q;inti;printf("

406Enterastring:");gets(a);printf("

407Enterastringagain:");gets(b);printf("

408Thelongeris:

409

410\"%s\"

411",fun(a,b));}22.给定程序M0DI1.C中函数fiin的功能是:在p所指字符串中找出ASCH码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fiin函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为:eABCDFGHo请改正程序中的错误,使它能得出正确结果。#includefun(char*p)

412{charmax,*q;inti=0;max=p[i];while(p[i]!=0){if(maxp){*q=*(q-l);q-;)p[0]=max;},main(){charstr[80];printf^"Enterastring:");gets(str);printf("

413Theoriginalstring:");puts(str);fun(str);printf("

414Thestringaftermoving:");puts(str);printf("

415

416");21.给定程序MODI1.C中函数fiin的功能是:根据整型形参m,计算如下公式的值。111y=++++m*m100*100200*200300*300例如,若m=2000,则应输出:0.000160o请改正程序中的语法错误,使它能计算出正确的结果。#include/************und************/fun(intm){doubley=0,d;inti;/************found************/fbr(i=100,i<=m,i+=100){d=(double)i*(double)i;y+=1.0/d;)retum(y);main(){intn=2000;printf("

417Theresultis%lf

418",fun(n));)

41924.给定程序MODH.C中函数fun的功能是:读入一个字符串(长度V20),将该字符串中的所有字符按ASCH码升序排序后输出。例如,若输入:edcba,则应输出:abcde。请改正程序中的错误,使它能统计出正确的结果。#includevoidftin(chart[])(charc;inti,j;for(i=strlen(t);i;i—)for(j=O;j

420Pleaseenteracharacterstring:");gets(s);printR"

421

422Befbresorting:

423\"%s\"",s);fun(s);printf("

424AftersortingdecendinglyAn\"%s\"",s);25.给定程序MODILC中fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AAaaBBbl23CCccccd,则应输出结果:upper=6,lower=8。请改正程序中的错误,使它能计算出正确的结果。#include/**********tound**********/voidfun(char*s,inta,intb)while(*s){if(*s>='A'&&*s<='Z')/**********found**********/*a=a+l;

425if(*s>='a'&&*s<='z*)/**********,ound**********/*b=b+l;s++;main(){chars[100];intupper=0,lower=0;print4"

426Pleaseastring:");gets(s);fun(s,&upper,&lower);printfif"

427upper=%dlower=%d

428",upper,lower);}25.给定程序MODI1.C中函数fun的功能是:统计substr所指子字符串在str所指字符串中出现的次数。例如,若字符串为aaaslkaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能计算出正确的结果。#includefun(char*str,char*substr){inti,j,k,num=0;/************und************/fbr(i=0,str[i],i++)for(j=i,k=O;substr[k]=str[j];k++,j++)/************************/If(substr[k+1]='\0*){num++;break;)returnnum;}main()(charstr[80],substr[80];printfV'Inputastring:");gets(str);printf("Inputasubstring:");gets(substr);printf("%d

429",fun(str,substr));26.给定程序MODI1.C中函数firn的功能是:根据整型形参m的值,计算

430如下公式的值。m*m2*23*3例如,若m中的值为:5,则应输出:0.536389。请改正程序中的错误,使它能得出正确的结果。#includedoublefun(intm){doubley=1.0;inti;/**************tound**************/fbr(i=2;i

431Theresultis%lf

432",fiin(n));25.给定程序MODILC中函数fiin的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCH值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,贝心中的字符串应为:aBcdeFgHo请改正程序中的错误,使它能得出正确结果。#include#includevoidfun(char*p,char*q,char*c)************found************/intk=1;/************found************/while(*p!=*q){if(*p<*q)c[k]=*q;elsec[k]=*p;if(*P)P++;q++;k++;))main()

433{chara[10]="aBCDeFgH",b[10]="ABcd",c[80]={'\0'};fun(a,b,c);printf("Thestringa:");puts(a);printff'Thestringb:");puts(b);printf("Theresult:");puts(c);25.给定程序MODIl.C中函数fim的功能是:从s所指字符串中删除所有小写字母c。请改正程序中的错误,使它能计算出正确的结果。#includevoidfiin(char*s){inti,j;for(i=j=O;s[i]!='\0';i++)if(s[i]!-c')/************found************/s[j]=s[i];/************found************/s[i]='\0';}main(){chars[80];printff'Enterastring:");gets(s);printf("Theoriginalstring:");puts(s);fun(s);printf("Thestringafterdeleted:");puts(s);printf("

434

435");}26.给定程序MODI1.C中函数fiin的功能是:根据以下公式求n值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。it1121231234―=1+—+—X—+—X—X—+—X—X—X—F23353573579请改正程序中的错误,使它能得出正确结果。#include#includedoublefun(doubleeps){doubles,t;intn=l;s=0.0;/************************/t=0;while(t>eps){s+=t;t=t*n/(2*n+l);n-H-;}/************found************/retum(s);

436)main(){doublex;printf("

437Pleaseenteraprecision:");scanf("%lf',&x);printf("

438eps=%lf,Pi=%lf

439

440",x,fun(x));25.给定程序M0DI1.C中函数fim的功能是:根据整型形参n,计算如下公式的值。例如,若n=10,则应输出:0.617977o请改正程序中的语法错误,使它能得出正确的结果。#include/************found************/intfun(intn){floatA=l;inti;/************found************/for(i=2;i

441Pleaseentern:");scanf("%d",&n);printf("A%d=%f

442",n,fun(n));26.给定程序M0DI1.C中函数fiin的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数firn中指定部位的错误,使它能得出正确的结果。#includevoidfun(char*s){inti,j;for(i=O,j=O;s[i]!-\0';i++)if(s[i]>='O'&&s[i]<='9')/**********found**********/s[j]=s[i];/**********found**********/s[j]="\O";}main()

443{charitem[80];printf("

444Enterastring:");gets(item);printf("

445

446Thestringis:\"%s\"

447",item);fun(item);printf("

448

449Thestringofchangingis:\"%s\"

450",item);)25.假定整数数列中的数不重复,并存放在数组中。给定程序M0DI1.C中函数fim的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确结果。#include#defineN20fun(int*a,intn,intx){intp=0,i;a[n]=x;while(x!=a[p])P=P+1;/**********found**********/if(P=n)return-1;else{for(i=p;i

451");for(i=0;i

452lnputx(todelete):");scanf("%d",&x);printf("Delete:%d

453",x);n=fun(w,n,x);if(n==-1)printf("***Notbefound!***

454

455");else{printf("Thedataafterdeleted:

456");fdr(i=0;i

457

458");)「34.已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都

459是其相邻的前三项之和。给定程序MODILC中函数fiin的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。例如,当n=10时,程序的输出结果应为:23.197745。请改正程序中的错误,使程序能输出正确的结果。#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++){s=sO+si+s2;sum+=sqrt(s);sO=si;si=s2;s2=s;}/************************returnsummain(){intn;printf("InputN=");scanf("%d",&n);printf("%f

460",fun(n));34.给定程序MODIl.C中函数fun的功能是:将s所指字符串中最后一次出现的与tl所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:"abcdabfabc",tl所指子串中的内容为:"ab",t2所指子串中的内容为:"99"时,结果,在w所指的数组中的内容应为:"abcdabf?9c"。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#includeintfun(char*s,char*tl,char*t2,char*w)(

461inti;char*p,*r,*a;strcpy(w,s);/************************/while(w){p=w;r=tl;while(*r)/************************/IF(*r=*p){r++;p++;}elsebreak;if(*r='\0')a=w;w++;)r=t2;while(*r){*a=*r;a++;r++;}main(){chars[100],tl[100],t2[100],w[100];printf("

462PleaseenterstringS:");scanf("%s",s);printf("

463Pleaseentersubstringtl:");scanf("%s",tl);printf("

464Pleaseentersubstringt2:");scanf("%s",t2);if(strlen(t1)=strlen(t2)){fun(s,tl,t2,w);printf("

465Theresultis:%s

466",w);)elseprintf("

467Error:strlen(tl)!=strlen(t2)

468");34.给定程序M0DI1.C中函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。235813211235813例如,若n=5,则应输出:8.391667o请改正程序中的错误,使它能计算出正确的结果。#include/************found************/fun(intn){inta,b,c,k;doubles;s=0.0;a=2;b=1;fbr(k=1;k<=n;k++){/************found************/

469s=s+(Double)a/b;c=a;a=a+b;b=c;returns;main(){intn=5;printf("

470Thevalueoffunctionis:%lf

471",fun(n));34.给定程序M0DI1.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。#includedoublefun(intn){doubleresult=1.0;/************************/ifn==0return1.0;while(n>1&&n<170)/************found************/result*=n—returnresult;main(){intn;printff'InputN:");scanf^"%d",&n);printf("

472

473%d!=%lf

474

475",n,fun(n));35.给定程序MODILC中函数fim的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。例如:当s所指的字符串为:"ABCDE"时,则t所指的字符串应为:"EDCBAABCDE"。请改正程序中的错误,使它能得出正确的结果。#include#includevoidfun(char*s,char*t)/************found************/inti;si=strlen(s);

476fbr(i=0;i

477Pleaseenterstrings:");scanf("%s",s);fun(s,t);printf("Theresultis:%s

478",t);34.给定程序中firn函数的功能是:根据整型形参m,计算如下公式的值。11,龌01t=123m例如,若主函数中输入5,则应输出-0.283333o请改正函数fim中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。#includedoublefun(intm)doublet=1.0;inti;for(i=2;i<=m;i++)/**********found**********/t=1.0-1/i;/**********,ound**********/

479main()intm;printR"

480Pleaseenter1integernumbers:

481");scanty"%d",&m);printf("

482

483Theresultis%lf

484",fun(m));)40.给定程序MODI1.C中函数firn的功能是:根据形参m的值(2WmW9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。例如,若输入2|若输入4则输出:|则输出:1212342424681369121481216请改正程序函数中的错误,使它能得出正确的结果。#include#defineM10inta[M][M]={0};/****************************/fiin(int**a,intm){intj,k;for(j=0;j

485");41.给定程序M0DI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值返回。

486请改正程序中的错误,使它能得出正确的结果。#includeintfun(intm){inti,k;for(i=m+1;;i++){fbr(k=2;k

487",n);)41.给定程序MODI1.C中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为"abcdefg",b所指字符串中的内容为"1234"时,c所指数组中的内容应该为"a4b3c2dle龟";而当a所指字符串中的内容为"1234",b所指字符串中的内容为"abcdefg"时,c所指数组中的内容应该为Tg2f3e4dcba"。请改正程序中的错误,使它能得出正确的结果。#include#includevoidfun(char*a,char*b,char*c)inti,j;charch;i=0;j=strlen(b)-1;/************fiDiind************/while(i>j){ch=b[i];b[i]=b[j];b[j]=ch;i++;j-;while(*a||*b){/************^j^und***********东/If(*a){*c=*a;c++;a++;}if(*b){*c=*b;c++;b++;}

488*c=0;)main(){charsl[100],s2[100],t[200];printf("

489Entersistring:");scanf("%s",sl);prints"

490Enters2string:");scanf("%s",s2);fun(si,s2,t);printf("

491Theresultis:%s

492",t);)43.给定程序MODILC中函数firn的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:642o请改正程序中的错误,使它能得出正确的结果。#include/************^^und************/voidfiin(longs,longt){longsl=10;sI-10;*t=s%10;I『1'J^//个个个个小*ip个个*T*[Tl,个T'个,个*iP个*T*个T个*i*个/while(s<0){s=s/100;*t=s%10*sl+*t;si=si*10;main(){longs,t;printf("

493Pleaseenters:");scanR"%kT,&s);fun(s,&t);printf("Theresultis:%ld

494",t);44.给定程序MODILC中函数fim的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。

495请改正程序中的错误,使程序能输出正确的结果。#includeintfun(intk){intm=0,mc=0,j;while((k>=2)&&(me<10)){/************found************/if((k%13=0)||(k%17=0)){m=m+k;mc++;}kF)returnm;/************************Imain()(printf("%d

496",fun(500));44.给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fim的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正函数fim中指定部位的错误,使它能得出正确的结果。#include#includetypedefstructaa{intdata;structaa*next;}NODE;fun(NODE*h){intmax=-l;NODE*p;/*********************/P=h;while(p){if(p->data>max)max=p->data;/*********************/p=h->next;}.returnmax;)outresult(ints,FILE*pf)

497{fprintf^pf,"

498Themaxinlink:%d

499",s);}NODE*creatlink(intn,intm){NODE*h,*p,*s,*q;inti,x;h=p=(NODE*)malloc(sizeof(NODE));h->data=9999;for(i=l;i<=n;i++){s=(NODE*)malloc(sizeof^NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;)p->next=NULL;returnh;}outlink(NODE*h,FILE*pf){NODE*p;p=h->next;fprintf(pf,"

500THELIST:

501

502HEAD");while(p){fprintf(pf^"->%d",p->data);p=p->next;}main(){NODE*head;intm;head=creatlink(12,100);outlink(head,stdout);m=fun(head);printf("

503THERESULT:

504");outresult(m,stdout);)46.给定程序MOD".C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。请改正程序中的错误,使它能得出正确结果。#include#include#defineN5#defineM81/**********(J**********/fun(char(*sq)[M]){inti;char*sp;

505sp=sq[0];for(i=0;i

506",N);fbr(i=O;i

507TheNstring:

508",N);fbr(i=O;i

509Thelongeststring:

510");puts(longest);47.给定程序M0DI1.C的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入:Iamastudenttotaketheexamination.,则应输出:IAmAStudentToTakeTheExamination.o请改正程序中的错误,使程序能得出正确的结果。#include#include/************************/include(stdio.a)/************found************/upftt(charp){intk=0;for(;*p;p++)if(k){if(*p=")k=0;}elseif(*p!='1){k=1;*p=toupper(*p);})main(){charchrstr[81];printfif"

511PleaseenteranEnglishtextline:");gets(chrstr);printf("

512

513BefbrechangingAn%s",chrstr);upfst(chrstr);printf("

514AfterchangingAn%s

515",chrstr);

51647.给定程序MODI1.C中函数firn的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:80.5607290.59851.58864则低于平均分的学生人数为:4(平均分为:75.5625)。请改正程序中的错误,使它能统计出正确的结果。#include#defineN20intfun(float*s,intn,float*aver){floatave,t=0.0;intcount=0,k,i;fbr(k=0;k

517Pleaseenterm:");scanf("%d",&m);printf("

518Pleaseenter%dmark:

519",m);for(i=0;i

520Thenumberofstudents:%d

521",fun(s,m,&aver));printf("Ave=%f

522",aver);49.给定程序MODI1.C中函数firn的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中al放个位数,a2放十位数。请改正程序中的错误,使它能得出正确结果。#includefun(int*b){intk,al,a2,i=0;for(k=10;k<=55;k++){/************found************/a2=k/10;al=k-a2*10;if((k%3=0&&a2==5)||(k%3=0&&a1=5)){b[i]=k;i++;}

523}/************und************/returnk;}.main(){inta[100],k,m;m=fun(a);printf("Theresultis:

524");fbr(k=O;k

525");49.给定程序MODILC中函数fun的功能是:交换主函数中两个变量的值。例如:若变量a中的值原为8,b中的值为3。程序运行后a中的值为3,b中的侑为8。请改正程序中的错误,使它能计算出正确的结果。#include/*******************/intfiin(intx,inty)(intt;/*********^Qund**********/t=x;x=y;y=t;main(){inta,b;a=8;b=3;fiin(&a,&b);printR"%d,%d

526",a,b);三、编程题(程序设计题)1.编写程序,实现矩阵(3行3列)的转置(即行列互换)例如,输入下面的矩阵:

527100200300400500600700800900程序输出:100400700200500800300600900注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includeintfun(intarray[3][3])main()intiJ;intarray[3][3]={{100,200,300},(400,500,600},{700,800,900}};for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("

528");)fun(array);printf("Convertedarray:

529");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("

530");}NONOQ;提示:由于NONO()是阅卷老师用于评分的,跟考生没有任何关系,为节省篇幅,故以下编程题均省略NONO()函数,1.请编写函数fiin,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。注意:部分源程序在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineN80

531voidfun(int*w,intp,intn)main(){inta[N]={1,2,34,5,6,7,8,9,10,11,12,13,14,15);inti,p,n=15;printf("Theoriginaldata:

532");for(i=0;i

533

534Enterp:");scanf("%d",&p);fun(a,p,n);printf("

535Thedataaftermoving:

536");for(i=0;i

537

538");NONO();)3.请编写函数fim,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,字符串数组中的M个字符串为AAAABBBBBBBCC贝IJ合并后的字符串的内容应是:AAAABBBBBBBCCo注意:部分源程序在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#defineM3#defineN20voidfun(chara[M][N],char*b)main(){charw[M][N]={"AAAA","BBBBBBB","CC"},a[100];inti;printf("ThestringAn");fbr(i=O;i

539");fun(w,a);printf("TheAstring:

540");printf("%s",a);printf("

541

542");NONO();)4.函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12o调用该函数后,c=5241。

543注意:部分源程序存在文件PROGLC中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(inta,intb,long*c)main(){inta,b;longc;printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld

544",c);NONOQ;3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:A*BC*DEF*Go注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(char*a,intn,inth,inte)main(){chars[81],*t,*f;intm=0,tn=0,fn=0;printf("Enterastring:

545");gets(s);t=f=s;while(*t){t++;m++;}t—;while(*t='*'){t-;tn-H-;}fun(s,m,fh,tn);printff'Thestringafterdeleted:

546");puts(s);NONO();)4.函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。

547例如,当a=45,b=12o调用该函数后,c=4251o注意:部分源程序存在文件PROGLC中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includevoidfun(inta,intb,long*c)main(){inta,b;longc;printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld

548",c);NONO();)3.请编写函数fim,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[l]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fUn的花括号中填入你编写的若干语句。#include#defineN50#defineM11voidfiin(int*a,int*b)doublemd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;retum((double)r/m);}main(){intage[N],i,d[M];fbr(i=O;i

549");fbr(i=0;i

550":"%4d",age[i]);printf("

551

552");fUn(age,d);fbr(i=O;i<10;i++)printf("%4d―%4d:%4d

553",i*10,i*10+9,d[i]);prints"Over100:%4d

554",d[10]);NONO(d);

555}3.编写函数ftm,它的功能是:计算并输出下列级数和:111S=++…+1x22x3n(n+l)例如,当n=10时,函数值为:0.909091o注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#includedoublefiin(intn)main()/*主函数*/(printf("%f

556",fun(10));NONO();)4.编写函数firn,其功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。m!p=n!(m-n)!例如:m=12,n=8时,运行结果为495.000000。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#includefloatfun(intm,intn)main()/*主函数*/printf("P=%f

557",fun(12,8));NONO();}5.请编写函数firn,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。例如,二维数组中的数据为:333333334444444455555555则一维数组中的内容应是:334455334455334455334455。

558注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includevoidfun(int(*s)[10],int*b,int*n,intmm,intnn){)main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:

559");fbr(i=O;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i][j]);printf("

560");)fun(w,a,&n,3,4);printf("TheAarray:

561");for(i=0;i

562

563");NONO();3.请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在PP所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为:35,则有4个数符合要求,它们是:1,5,7,35o注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(intx,intpp[],int*n)main(){intx,aa[1000],n,i;printf("

564Pleaseenteranintegernumber:

565");scanf("%d",&x);fun(x,aa,&n);fbr(i=0;i

566");NONO();

5673.函数firn的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符C的ASCH码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是"BDF12345"。注意:部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#includevoidfun(char*s,chart[])

568main()(chars[100],t[100];printf("

569PleaseenterstringS:");scanf("%s",s);fun(s,t);printf("

570Theresultis:%s

571",t);NONO();)3.函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。例如,当a=45,b=12o调用该函数后,c=2415o注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(inta,intb,long*c)main(){inta,b;longc;printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld

572",c);NONO();)4.编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如若n为1000时,程序输出应为:s=153.909064o注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#includedoublefun(intn)main()/*主函数*/(

573printf("s=%f

574",fun(1000));NONO();)3.请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单兀中。例如,二维数组中的数据为:333333334444444455555555则一维数组中的内容应是:333333334444444455555555。注意:部分源程序在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#includevoidfun(int(*s)[10],int*b,int*n,intmm,intnn)main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:

575");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i]|j]);printf("

576");)fun(w,a,&n,3,4);printffTheAarray:

577");fbr(i=0;i

578

579");NONO();)4.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineN16typedefstruct

580{charnum[10];ints;}STREC;intfun(STRECa[])main(){STRECs[N]-{{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87),{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91),{"GAO11",66},{"GAO17",64},{"GA018",64},{"GAO16",72}};inti;FILE*out;fiin(s);printf("Thedataaftersorted:

581");fbr(i=O;i

582");printf^"%s%4d",s[i].num,s[i].s);printf("

583");out=fbpen("c:\\test\\out.dat","w");fbr(i=0;i

584");fprintf(out,"%4d",s[i].s);}fprintf(out,"

585");fclose(out);3.程序定义了NXN的二维数组,并在主函数中赋值。请编写函数firn,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。例如:a数组中的值为|01279||19745|a=|23831||45682||59141|则返回主程序后s的值应为:3.375。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#include#defineN5doublefun(intw[][N])main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1);inti,j;

586doubles;printf("*****Thearray*****

587");for(i=0;i

588");}s=fun(a);printf(',*****THERESULT*****

589");printf("Thesumis:%lf

590",s);NONO();)3.请编写函数fiin,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876675896101301401980431451777则输出结果为:6,980注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#includeintfun(int*s,intt,int*k)main()(inta[10]={876,675,896,101,301,401,980,431,451,777},k;fiin(a,10,&k);printf("%d,%d

591",k,a[k]);NONO();)4.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。例如,字符串中的内容为:****a*bc*def*g*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#includevoidfun(char*a)main()

592{chars[81];printf("Enterastring:

593");gets(s);fun(s);printf("Thestringafterdeleted:

594");puts(s);NONO();}3.编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。注意:部分源程序在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#include#defineMAX100intfun(intlim,intaa[MAX])main()(intlimit,i,sum;intaa[MAX];printf("输入一个整数)scanf("%d",&limit);sum=fun(limit,aa);for(i=O;i

595");printf("%5d",aa[i]);}NONOQ;}4.请编写函数ftin,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37,注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(intm,intk,intxx[])main()(intm,n,zz[1000];printf("

596Pleaseentertwointegers:");scanf("%d,%d",&m,&n);fun(m,n,zz);for(m=0;m

597printfC*%d",zz[m]);printf("

598");NONO();3.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fim,它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#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(is=s[i];i++;p->next=q;p=q;}p->next=0;returnh;)outlist(STREC*h){STREC*p;p=h->next;printf("head");do{printf("->%2.0f',p->s);p=p->next;}while(p!=0);printf("

599

600");)main()

601{doubles[N]={85,76,69,85,91,72,64,87),max;STREC*h;h=creat(s);outlist(h);max=fun(h);printR"max=%6.1f

602",max);NONO();3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数ftm,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。注意:部分源程序在文件PR0G1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineN12typedefstruct{charnum[10];doubles;}STREC;doublefun(STREC*a,STREC*b,int*n)main(){STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA09",60},{"GAll",79},{"GA12",73},{"GA10",90}};STRECh[N],t;FILE*out;inti,j,n;doubleave;ave=fUn(s,h,&n);printf("The%dstudentdatawhichishigherthan%7.3f:

603",n,ave);for(i=0;i

604",h[i].num,h[i].s);printf("

605");out=fbpen("c:\\test\\out.dat","w");fprintfi^out,"%d

606%7.3f

607",n,ave);fbr(i=O;i

608",h[i].s);fclose(out);)

6093.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如:二维数组中的值为13579299946999813570则函数值为61o注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineM4#defineN5intfun(inta[M][N])main(){intaa[M][N]={{l,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{13,5,7,0});inti,j,y;clrscr();printf("Theoriginaldatais:

610");for(i=0;i

611");}y=fun(aa);printf("

612Thesum:%d

613",y);printf("

614");NONO();)4.函数fiin的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCH码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:"135"0注意:部分源程序存在文件PROGLC中。

615请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#includevoidfun(char*s,chart[])main(){chars[100],t[100];printf("

616PleaseenterstringS:");scanR"%s",s);fun(s,t);printf("

617Theresultis:%s

618",t);NONO();)3.编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志)注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#include#includefun(char(*a)[81],intnum,char**max)main(){charss[10][81],*ps;intn,i=O;printf("输入若干个字符串:");gets(ss[i]);puts(ss[i]);while(!strcmp(ss[i],"****")==0)(i++;gets(ss[i]);puts(ss[i]);)n=i;fun(ss,n,&ps);printfC

619max=%s

620”,ps);NONO();)4.请编写函数fim,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。

621例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineN80intfun(char*str)main(){chars[N];printfC'Enterastring:");gets(s);printf("

622

623");puts(s);if(fun(s))printffYES

624");elseprintf("NO

625");NONO();)3.请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2223445666677899101010。删除后,数组中的内容应该是:2345678910o注意:部分源程序在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#defineN80intfun(inta[],intn)main(){inta[N]={2,2,23,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;printfC'Theoriginaldata:

626");for(i=0;i

627

628Thedataafterdeleted:

629");fbr(i=0;i

630

631");NONOQ;4.请编写一个函数ftin,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index

632存放最大值所在元素的下标。注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#includevoidfun(inta[],intn,int*max,int*d)main(){inti,x[20],max,index,n=10;randomize();for(i=0;i

633");fun(x,n,&max,&index);printf("Max=%5d,Index=%4d

634",max,index);NONO();)3.请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#include#defineN80intfiin(char*s)

635main(){charline[N];intnum=O;printfif"Enterastring:

636");gets(line);num=fun(line);printf("Thenumberofwordis:%d

637

638",num);NONO();)3.程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fim,函数的功能是:使数组右上三角元素中的值乘以mo例如:若m的值为2,a数组中的值为|197||21814|a=|238|则返回主程序后a数组中的值应为|2616||456||4512|注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数ftm的花括号中填入你编写的若干语句。#include#include#defineN5intfun(inta[][N],intm)main(){inta[N][N],m,i,j;printf("*****Thearray*****

639");for(i=0;i

640");)dom=rand()%10;while(m>=3);printf("m=%4d

641",m);fun(a,m);printf("THERESULT

642");for(i=0;i

643");NONO();)4.请编写函数fiin,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

644例如,二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是:WSHWSHWSHo注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#defineM3#defineN4voidfun(char(*s)[N],char*b)main(){chara[l00],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H',,H'}};inti,j;printf("Thematrix:

645");for(i=0;i

646");fun(w,a);printf("TheAstring:

647");puts(a);printf("

648

649");NONOQ;3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fim,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STREC*a,STREC*b)main(){STRECs[N]={{,,GA05',,85},{"GA03",76},{"GA02",69},{"GA04",85},

650{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91),{"GA0H",91},{"GA017",64},{"GA018",64},{"GA016",72}};STRECh[N];inti,n;FILE*out;n=fun(s,h);printf("The%dlowestscore:

651",n);fbr(i=0;i

652",h[i].num,h[i].s);printf("

653");out=fbpen("c:\\test\\out.dat","w");fprintf(out,"%d

654",n);for(i=0;i

655",h[i].s);fclose(out);3.编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fiin的花括号中填入你编写的若干语句。#include#includedoublefun(doublex,intn)main()(printf("%f

656",fun(0.3,10));NONO();)4.函数fim的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCII码值为奇数、…、字符1的ASCH码值也为奇数、…都应当删除,其它依此类推。最后t所指的数组中的内容应是:"BDF24"。注意:部分源程序存在文件PROGLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#include#include

657voidfun(char*s,chart[])main()chars[100],t[100];printf("

658PleaseenterstringS:");scanff'%s",s);fun(s,t);printf("

659Theresultis:%s

660",t);NONO();)3.请编写一个函数fim,它的功能是:求出一个2XM整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineM4fun(inta[][M])main(){intarr[2][M]={5,8,3,45,76,-4,12,82);printf("max=%d

661",fun(arr));NONO();}4.请编写一个函数fim,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234”,则函数把它转换为整数值-12340注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数ftin的花括号中填入你编写的若干语句。#include#includelongfun(char*p)

662main()/*主函数*/{chars[6];longn;printf("EnterastringAn");gets(s);n=fiin(s);printf("%ld

663",n);NONO();)3.函数fim的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。例如,当a=45,b=12o调用该函数后,c=1425o注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfiin(inta,intb,long*c)main()/*主函数*/{inta,b;longc;printff'Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%ld

664",c);NONO();)4.请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入"asdafaaz67",则输出为"asdafaaz67"o注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#includeintfun(char*str)main()(charstr[81];intn;

665printf("Inputastring:");gets(str);puts(str);fiin(str);printf("***str:%s

666",str);NONO();)3.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到pl所指的字符串后。例如,分别输入下面两个字符串:FirstString—SecondString程序输出:FirstString—SecondString注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(charpl[],charp2[])main(){charsl[80],s2[40];print:"Entersiands2:

667");scanf("%s%s",si,s2);printf("sl=%s

668",si);printf(,,s2=%s

669",s2);printf("Invokefun(sl,s2):

670");fiin(sl,s2);printfCAfterinvoking:

671");printf("%s

672",si);NONO();4.请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABCo注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include

673#include#defineN80voidfun(char*w,intm)main(){chara[N]="ABCDEFGHIJK";intm;printf("Theoriginalstring:

674");puts(a);printf("

675

676Enterm:");scanf("%d",&m);fun(a,m);printf("

677Thestringaftermoving:

678");puts(a);printf("

679

680");NONO();)NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE*r£*wf;chara[N];intm,i;rf=fopen("c:\\test\\in.dat",''r");wf=fopen("c:\\test\\out.dat","w");for(i=0;i<10;i++){fscanf(r^"%d%s",&m,a);fun(a,m);fprintf(wf,"%s

681",a);)fclose(rf);fclose(wf);}3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数ftm,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是6069,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#defineN16typedefstruct{charnum[10];ints;

682}STREC;intfun(STREC*a,STREC*b,int1,inth)main(){STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85),{"GAOO1",96},{"GAOO7",72},{MGA008",64},{"GA006",87},{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91),{"GAO11",90},{"GA017",64},{"GAO18",64},{"GAO16",72});STRECh[N],tt;FILE*out;inti,j,n,low,heigh,t;printf("Enter2integernumberlow&heigh:");scanf("%d%d",&low,&heigh);if(heigh

683",low,heigh);fbr(i=O;i

684",h[i].num,h[i].s);printf("

685");out=fopen("c:\\test\\out.dat",''w");n=fun(s,h,80,98);fprint^out,"%d

686",n);for(i=O;ih[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}fbr(i=O;i

687",h[i].s);fprintf(out,"

688");fclose(out);3.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#include#include#defineN10typedefstructss{charnum[10];ints;}STU;

689fun(STUa[],STU*s)main(){STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77),{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;inti;printf("*****Theoriginaldata*****

690");for(i=0;i

691",a[i].num,a[i].s);fun(a,&m);printf("****♦THERESULT*****

692");printf("Thelowest:%s,%d

693",m.num,m.s);NONO();)3.请编写一个函数fun,其功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入"abc4EFg”,则应输出"aBc4EFg"。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写/若干语句。#include#includevoidfun(char*ss)voidmain(void){chartt[51];prints"

694Pleaseenterancharacterstringwithin50characters:

695");gets(tt);printf("

696

697Afterchanging,thestring

698\"%s\"",tt);fiin(tt);printf("

699becomes

700\"%s\"",tt);NONOQ;4.请编一个函数ftm,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567,则函数返回1234.57;实型数为1234.564,则函数返回1234.56。注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括

701号中填入你编写的若干语句。#includefloatfun(floath)main(){floata;printf("Entera:");scanf("%f&a);printf("Theoriginaldatais:");printf("%f

702

703",a);printf("Theresult:%f

704",fun(a));NONO();3.请编写一个函数fun,它的功能是:根据以下公式求n的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):7t1"2"2x3b2x3x4lx2x...xn—=H—+H+++233x53x5x73、5、7*93x5x…x(2n+l)程序运行后,如果输入精度0.0005,则程序输出为3.14…。注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#include#includedoublefun(doubleeps)main(){doublex;printf("Inputeps:");scanf("%lf',&x);printf("

705eps=%\f,PI=%lf

706",x,fun(x));NONO();}4.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10、20、30、400注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括

707号中填入你编写的若干语句。#include#includeintfun(intscore[],intm,intbelow[])main(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90};n=fun(score,9,below);prints"

708Belowtheaveragescoreare:");for(i=0;ivoidfun(char*a)main(){chars[81];printf("Enterastring:

709");gets(s);fiin(s);printf("Thestringafterdeleted:

710");puts(s);NONO();)4.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。例如,字符串中的内容为:*******a*bc*def*g****,移动后,字符串中的内容应当是:a*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数firn的花括号中填入你编写的若干语句。#includevoidfun(char*a)main(){chars[81],*p;intn=0;

711printf("Enterastring:

712");gets(s);fiin(s);printff'Thestringaftermoveing:

713");puts(s);NONO();3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为:*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****a*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fim的花括号中填入你编写的若干语句。#includevoidfun(char*a,intn)main(){chars[81];intn;printfif"Enterastring:

714");gets(s);printf("Entern:");scanf("%d",&n);fiin(s,n);printff'Thestringafterdeleted:

715");puts(s);NONOQ;一、填空题参考答案:题1:第1处答案:U第2处答案:s++第3处答案:ctod(a)+ctod(b)题2:第1处答案:0第2处答案:n第3处答案:(t*t)题3:第1处答案:j第2处答案:0第3处答案:i++题4:第1处答案:N第2处答案:k第3处答案:ss[i]题5:第1处答案:double第2处答案:fl第3处答案:f2题6:第1处答案:structstudent第2处答案:n-1第3处答案:a[i].name,a[j].name题7:第1处答案:0第2处答案:x[i]/N第3处答案:j++

716题8:第1处答案:k第2处答案:N第3处答案:a[k][i]题9:第1处答案:999第2处答案:t/10第3处答案:x题10:第1处答案:48第2处答案:s++第3处答案:sum题11:第1处答案:t,s第2处答案:s[i]第3处答案:0题12:第1处答案:j第2处答案:k第3处答案:p题13:第1处答案:a第2处答案:b.name第3处答案:score[i]题14:第1处答案:[M]第2处答案:N第3处答案:0题15:第1处答案:h->next第2处答案:p->next第3处答案:>=题16:第1处答案:structstudent*第2处答案:a->score[i]第3处答案:题17:第1处答案:s/N第2处答案:j++第3处答案:-1题18:第1处答案:n++第2处答案:0第3处答案:s++题19:第1处答案:N第2处答案:i第3处答案:-1题20:第1处答案:a[0][i]第2处答案:<第3处答案:x,y题21:第1处答案:N第2处答案:break第3处答案:n题22:第1处答案:p->next第2处答案:q第3处答案:p->next题23:第1处答案:h->next第2处答案:p==0第3处答案:r题24:第1处答案:0第2处答案:10*x第3处答案:n/10题25:第1处答案:N第2处答案:substr第3处答案:0题26:第1处答案:1第2处答案:s第3处答案:i*10题27:第1处答案:"rb"第2处答案:>s[j].sno第3处答案:fwrite题28:第1处答案:*s第2处答案:1第3处答案:k[n]题29:第1处答案:*s第2处答案:s++第3处答案:n题30:第1处答案:NODE*第2处答案:q第3处答案:r题31:第1处答案:*av第2处答案:i第3处答案:x[j]题32:第1处答案:FILE*第2处答案:fp第3处答案:ch题33:第1处答案:structstudent第2处答案:a.name第3处答案:a.score[i]题34:第1处答案:i第2处答案:ps[i]第3处答案:tp题35:第1处答案:s[i]第2处答案:k第3处答案:0题36:第1处答案:3.第2处答案:>第3处答案:(2*i+l)题37:第1处答案:10第2处答案:0第3处答案:x题38:第1处答案:0第2处答案:x第3处答案:t++题39:第1处答案:0第2处答案:||第3处答案:1题40:第1处答案:k第2处答案:N-1第3处答案:temp题41:第1处答案:s第2处答案:--第3处答案:return。题42:第1处答案:feo戈巾)第2处答案:=sno第3处答案:sizeof(STU)题43:第1处答案:->sno第2处答案:->name第3处答案:&t题44:第1处答案:x[i]/N第2处答案:j++第3处答案:i++题45:第1处答案:0第2处答案:i++第3处答案:2.*i题46:第1处答案:[N]第2处答案:i第3处答案:i+1

717题47:第1处答案:double第2处答案:fl第3处答案:f2题48:第1处答案:FILE*第2处答案:fclose(fp)第3处答案:fp题49:第1处答案:1第2处答案:2*i第3处答案:(-1)题50:第1处答案:filename第2处答案:SEEKEND第3处答案:&n二、改错题参考答案:题1:第1处答案:doublefun(intn)第2处答案:c=a;a+=b;b=c;题2:第1处答案:n=strlen(aa);第2处答案:ch=aa[i];题3:第1处答案:doublefiin(doublea,doublexO)第2处答案:if(fabs(xl-x0)>0.00001)题4:第1处答案:num[k]=0;第2处答案:switch(*s)题5:第1处答案:voidfiin(char*s,char*t)第2处答案:t[2*d]=0;题6:第1处答案:aa[i]=m%k;第2处答案:printf("%d",aa[i-l]);题7:第1处答案:p=h->next;第2处答案:p=p->next;题8:第1处答案:t=(STU*)calloc(sizeof(STU),m);第2处答案:t[k]=b[j];题9:第1处答案:k++;第2处答案:if(m==k)题10:第1处答案:p=(NODE*)malloc(sizeof(NODE));第2处答案:returnh;题11:第1处答案:sum=0;第2处答案:scanf("%d",&a[i]|j]);题12:第1处答案:while(*s)第2处答案:s++;题13:第1处答案:r=t;第2处答案:if(*k=0)题14:第1处答案:*t=0;第2处答案:if(d%2!=0)题15:第1处答案:fun(intx,inty,intz)第2处答案:returnj;题16:第1处答案:intfun(intn,intxx[][M])第2处答案:printf("%d",xx[i]|j]);题17:第1处答案:p=s;第2处答案:while(*p++);题18:第1处答案:floatfun(intk)第2处答案:returns;题19:第1处答案:intj,c=0;floatxa=0.;第2处答案:if(x[j]>=xa)题20:第1处答案:if(i%2||s[i]%2=0)第2处答案:t[j]=O;题21:第1处答案:char*fun(char*s,char*t)第2处答案:ss++;第3处答案:tt++;题22:第1处答案:q=p+i;第2处答案:while(q>p)题23:第1处答案:doublefun(intm)第2处答案:fbr(i=100;i<=m;i+=100)题24:第1处答案:fbr(i=strlen(t)-1;i;i-)第2处答案:>t[j+1])题25:第1处答案:voidfim(char*s,int*a,int*b)第2处答案:++(*a);第3处答案:++(*b);题26:第1处答案:fbr(i=O;str[i];i++)第2处答案:if(substr[k+l]==O)

718789012345678901234567890222333333333344444444445题题题题题题题题题题题题题题题题题题题题题题题题第1处答案:fbr(i=2;i<=m;i++)第2处答案:y-=1.0/i/i;第1处答案:intk=O;第2处答案:while(*p||*q)第1处答案:s[j++]=s[i];第2答案:s[j]=O;第1处答案:t=l;第2处答案:return(2*s);第1处答案:floatfun(intn)第2处答案:fbr(i=2;i<=n;i++)第1处答案:s[j++]=s[i];第2处答案:s[j]=O;第1处答案:iWp==n)retum-l;第2处答案:a[i]=a[i+l];第1处答案:doublefun(intn)第2处答案:returnsum;第1处答案:while(*w)第2处答案:if(*k=*p)第1处答案:doublefun(intn)第2处答案:s=s+(double)a/b;第1处答案:if(n=0)第2处答案:result*=n--;第1处答案:inti,si;第2处答案:第1处答案:t-=L0/i;第2处答案:returnt;第1处答案:fun(inta[][M],intm)第2处答案:a[j][k]=(k+l)*(j+l);第1处答案:iRi%k==0)第2处答案:if(k>=i)第1处答案:while(i0)第1处答案:if((k%13==0)||(k%17==0))第2处答案:}第1处答案:p=h->next;第2处答案:p=p->next;第1处答案:char*fun(char(*sq)[M])第2处答案:returnsp;第1处答案:#include"stdio.h"第2处答案:upfst(char*p)第1处答案:t+=s[k];第2处答案:*aver=ave;第1处答案:a2=k/10;第2处答案:returni;第1处答案:intfun(int*x,int*y)第2处答案:t=*x;*x=*y;*y=t;三、编程题参考答案:1:intfun(intarray[3][3])inti,j,t;for(i=0;i<3;i++)fbr(j=O;j

7192:voidfun(int*w,intp,intn){inti,a[N];for(i=0;i<=p;i++)a[i]=w[i];fbr(i=0;i

720(*c-a/10*l000+a%10*10+b/l0+b%10*100;)7:voidfun(int*a,int*b)(inti,k;for(i=0;i=10)b[10]++;elseb[k]++;8:doublefiin(intn)(inti;doubles;fbr(i=l;i<=n;i++){s+=1.0/(i*(i+l));)returns;)9:floatfun(intm,intn){inti;floatml=1.0,nl=1,0,k=1.0;for(i=l;i<=m;i++)ml*=i;for(i=1;i<=n;i++)n1*=i;fbr(i=1;i<=m-n;i++)k*=i;returnml/nl/k;

721voidfun(int(*s)[10],int*b,int*n,intmm,intnn)inti,j,k=O;for(j=0;j

722inti;doubles=0;fdr(i=l;is[*k])*k=i;

72319、voidfiin(char*a)(inti=0,j=0;while(a[i])(if(a[i]!-**)j=0;elsej++;i++;)a[i-j]=O;20、intfun(intlim,intaa[MAX])(intij,k=O;fbr(i=2;i<=lim;i++)(for(j=2;j

72422、doublefun(STREC*h){doublea=0;STREC*p=h->next;while(p){if(as)a=p->s;p=p->next;returna;23、doublefun(STREC*a,STREC*b,int*n){inti;doubles=0;fbr(i=0;is){1,b[*n]=a[i];(*n)++;)returns;24、intfun(inta[M][N])(inti,s=O;fbr(i=O;i

725tU]=s[i];j++;tU]=o;26、fun(char(*a)[81],intnum,char**max)intij,k=strlen(a[O]);*max=a[0];fbr(i=1;i=j/2)return1;elsereturn0;28、intfiin(inta[],intn){intij=0;for(i=l;i

72629、voidfun(inta[],intn,int*max,int*d)(inti;*d=0;for(i=l;ia[*d])*d=i;*max=a[*d];30、intftm(char*s)(inti=0,j=0,f=l;while(s[i])(if(s[i]<'a'||s[i]>'z')(if⑴j++;f=0;}elsef=i;i++;)returnj+1;31、intfun(inta[][N],intm)inti,j;fbr(i=0;i

727for(i=l;is)s=a[O][i];

728if(a[l][i]>s)s=a[l][i];)returns;37、longfun(char*p)(longi,s=0;if(p[O]='-')(i=l;while(p[i]){,s=s*10+p[i]-'0';i++;)s*=-l;)else(i=0;while(p[i])(s=s*10+p[i]-'0';i++;}returns;38:voidfun(inta,intb,long*c)*c=a/10*100+a%10+b/10*1000+b%10*10;39:intfiin(char*str)(inti,k=0;char*p=str,s[81];while(*p){if(*p!-')s[k++]=*p;p++;)for(i=O;i

72940:voidfun(charpl[],charp2[])char*p,*q;P=P1;q=p2;while(*p)p++;while(*q)*p++=*q++;*p='\0';41、voidfun(char*w,intm){chara[N];inti;fdr(i=0;i=O;m—,i—)w[i]=a[m];42、intfun(STREC*a,STRJEC*b,int1,inth){inti,j=O;for(i=O;i=l&&a[i].s<=h)(bU]=a[i];j++;)}returnj;)43、fun(STUa[],STU*s)(inti;*s=a[O];fbr(i=l;i

730if(a[i].ss)(*s=a[i];)))44、voidfun(char*ss)(inti=l;while(ss[i-l]&&ss[i]){if(ss[i]>-a'&&ss[i]<='z')ss[i]+-A'-'a";i+=2;45、floatfun(floath){longi=h*1000;if(i%10<5)return(i/10)/100.0;elsereturn(i/10+1)/100.0;46、doublefun(doubleeps){doublei=l,a=1,b=1,c=l,s=0;while(c>=eps){s+=c;a*=i;b*=2*i+l;c=a/b;i++;)returns*2;47、intfiin(intscore[],intm,intbelow[]){inti,j=O,s=O;fbr(i=0;i

731below[j]=score[i];j++;returnj;48、voidfun(char*a)(inti=0,j=0;while(a[i]){if(j==O&&a[i]!='*')(j=i+l;}elseif(a[i]!=***){1,a[j]=a[i];j++;)i++;)a[j]=O;)49、voidfun(char*a)(inti=0,j=0;while(a[i]){if(a[i]!='*')(j=i;break;)i++;)while(a[i])(a[ij]=a[i];i++;)i-=j;

732for(;j>O;j-)i++;50、voidfun(char*a,intn){inti=0,j=0;while(a[i])1if(a[i]!='*')(j=i;break;)i++;)if(j>n){while(a[i])(a[i-j+n]=a[i];i++;)a[i-j+n]=0;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭