您好,欢迎访问三七文档
2006年9月上机考试题库说明:上机考试正式系统题库中共有50套题目,考生随机从中抽取一套进行考试。例如,如果你考的是二级C语言上机考试,那么你输入准考证号并确认后,机器将从正式题库的50套题中随机为你抽取一套题目(包括一道程序填空题(30分)、一道程序修改题(30分)、一道程序设计题(40分)共3题)让你考试,如果3题都完全答对,那么你上机考试的成绩就是满分100分。(注:一般来说,抽题时,填空题第1题和修改题第1题和编程题第1题会对应同时出现,如此类推)以下包括50套题(填空题、改错题、编程题各50道题目)和答案一、填空题(程序填空题)1、给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#includestring.h#includectype.h#defineN9longctod(char*s){longd=0;while(*s)if(isdigit(*s)){/**********found**********/d=d*10+*s-__1__;/**********found**********/__2__;}returnd;}longfun(char*a,char*b){/**********found**********/return__3__;}main(){chars1[N],s2[N];do{printf(Inputstrings1:);gets(s1);}while(strlen(s1)N);do{printf(Inputstrings2:);gets(s2);}while(strlen(s2)N);printf(Theresultis:%ld\n,fun(s1,s2));}2、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:9.612558。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.hdoublefun(intn){inti;doubles,t;/**********found**********/s=__1__;/**********found**********/for(i=1;i=__2__;i++){t=2.0*i;/**********found**********/s=s+(2.0*i-1)*(2.0*i+1)/__3__;}returns;}main(){intn=-1;while(n0){printf(Pleaseinput(n0):);scanf(%d,&n);}printf(\nTheresultis:%f\n,fun(n));}3、给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。例如,有下列矩阵:12134781063597程序执行结果为:find:a[2][2]=9请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#defineM3#defineN4voidfun(int(*a)[N]){inti=0,j,find=0,rmax,c,k;while((iM)&&(!find)){rmax=a[i][0];c=0;for(j=1;jN;j++)if(rmaxa[i][j]){/**********found**********/rmax=a[i][j];c=__1__;}find=1;k=0;while(kM&&find){/**********found**********/if(k!=i&&a[k][c]=rmax)find=__2__;k++;}if(find)printf(find:a[%d][%d]=%d\n,i,c,a[i][c]);/**********found**********/__3__;}if(!find)printf(notfound!\n);}main(){intx[M][N],i,j;printf(Enternumberforarray:\n);for(i=0;iM;i++)for(j=0;jN;j++)scanf(%d,&x[i][j]);printf(Thearray:\n);for(i=0;iM;i++){for(j=0;jN;j++)printf(%3d,x[i][j]);printf(\n\n);}fun(x);}4、给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#includestring.h#defineN5#defineM10intfun(char(*ss)[M],intk){inti,j=0,len;/**********found**********/for(i=0;i__1__;i++){len=strlen(ss[i]);/**********found**********/if(len=__2__)/**********found**********/strcpy(ss[j++],__3__);}returnj;}main(){charx[N][M]={Beijing,Shanghai,Tianjing,Nanjing,Wuhan};inti,f;printf(\nTheoriginalstring\n\n);for(i=0;iN;i++)puts(x[i]);printf(\n);f=fun(x,7);printf(Thestringwitchlengthislessthanorequalto7:\n);for(i=0;if;i++)puts(x[i]);printf(\n);}5、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.hdoublef1(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}/**********found**********/__1__fun(inti,doublex,doubley){if(i==1)/**********found**********/return__2__(x);else/**********found**********/return__3__(x,y);}main(){doublex1=5,x2=3,r;r=fun(1,x1,x2);r+=fun(2,x1,x2);printf(\nx1=%f,x2=%f,x1*x1+x1*x2=%f\n\n,x1,x2,r);}6、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#includestring.hstructstudent{longsno;charname[10];floatscore[3];};voidfun(structstudenta[],intn){/**********found**********/__1__t;inti,j;/**********found**********/for(i=0;i__2__;i++)for(j=i+1;jn;j++)/**********found**********/if(strcmp(__3__)0){t=a[i];a[i]=a[j];a[j]=t;}}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;printf(\n\nTheoriginaldata:\n\n);for(j=0;j4;j++){printf(\nNo:%ldName:%-8sScores:,s[j].sno,s[j].name);for(i=0;i3;i++)printf(%6.2f,s[j].score[i]);printf(\n);}fun(s,4);printf(\n\nThedataaftersorting:\n\n);for(j=0;j4;j++){printf(\nNo:%ldName:%-8sScores:,s[j].sno,s[j].name);for(i=0;i3;i++)printf(%6.2f,s[j].score[i]);printf(\n);}}7、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000主函数中输出:4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdlib.h#defineN10doublefun(doublex[],double*y){inti,j;doubleav;/**********found**********/av=__1__;/**********found**********/for(i=0;iN;i++)av=av+__2__;for(i=j=0;iN;i++)/**********found**********/if(x[i]av)y[__3__]=x[i];y[j]=-1;returnav;}main(){inti;doublex[N],y[N];for(i=0;iN;i++){x[i]=rand()%50;printf(%4.0f,x[i]);}printf(\n);printf(\nTheaverageis:%f\n,fun(x,y));for(i=0;y[i]=0;i++)printf(%5.1f,y[i]);printf(\n);}8、给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。例如,有下列矩阵:123456789101112若k为2,程序执行结果为:789456123101112请在程序的下划线处
本文标题:C语言上机考试题库
链接地址:https://www.777doc.com/doc-4804089 .html