资源描述:
《全国计算机二级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((i6",i,c,a[i][c]);/********************/_3_;)if(!find)printf("notfound!
7");)main(){intx[M][N],i,j;printff'Enternumberforarray:
8");for(i=O;i9");fbr(i=O;i10
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;i16");f=fun(x,7);printff'Thestringwitchlengthislessthanorequalto7:
17");fbr(i=0;i18");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;i36/**********found**********/if(x[i]>av)y[3]=x[i];y[j]=-l;returnav;}main(){inti;doublex[N],y[N];for(i=0;i37");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;i44
45");fun(x,2);printff'Thearrayaftermoving:
46
47");for(i=O;i48
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;i62Theresultis:%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;i79");fun(x,4);
80printfi("
81Thestringafterdeleted:
82
83");for(i=0;i84");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;i85{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;i105");printf("
106Theaverageis:%f
107",fun(x));printf("
108Theresult:
109",fun(x));fbr(i=O;i110");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;i120");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;i127Thematrix:
128");for(i=0;i129");fiin(_3_);printf("
130Theresultis:");fbr(i=O;i131");21、给定程序中,函数ftm的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!#include#defineN20voidfun(int*a){inti,x,n=0;
132x=rand()%20;/**********(J**********/while(n<__1_){fbr(i=O;i133");fbr(i=0;i134");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(0155Theresultis:%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;i163");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(0167Theresultis:%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;i169}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;j174No:%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;j180No:%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**********/iftmax183Aftercount:
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;i204");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;i224Thestringaftersortingbylength:
225
226");fbr(i=O;i227Theoriginalstring
228
229");fbr(i=O;i230");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(0237Theresultis:%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(0240Theresultis:%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;i243");fbr(i=0;i244");fbr(i=0;i245");)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;i247
248");fdr(i=O;i249");}.fun(x,2);printf("Thearrayaftermoving:
250
251");for(i=0;i252");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