您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C++上机试题及答案
新视野教育内部资料语言上机考试复习资料,共有50套题目一、程序填空题1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。例如,有9个正整数:1572387582145按升序排列时的中间数为:8处理后主函数中输出的数列为:8882387882145请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#defineN9intfun(intx[]){inti,j,k,t,mid,b[N];for(i=0;iN;i++)b[i]=x[i];for(i=0;i=N/2;i++){k=i;for(j=i+1;jN;j++)if(b[k]b[j])k=j;if(k!=i){/**********found**********/t=b[i];b[i]=___1___;b[k]=t;}}/**********found**********/mid=b[___2___];for(i=0;iN;i++)/**********found**********/if(x[i]___3___mid)x[i]=mid;returnmid;}main(){inti,x[N]={1,5,7,23,87,5,8,21,45};for(i=0;iN;i++)printf(%d,x[i]);printf(\nThemiddatais:%d\n,fun(x));for(i=0;iN;i++)printf(%d,x[i]);printf(\n);}2、给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:1111112221123211222111111请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#defineN7/**********found**********/voidfun(int(*a)__1__){inti,j,k,m;if(N%2==0)m=N/2;elsem=N/2+1;for(i=0;im;i++){/**********found**********/for(j=__2__;jN-i;j++)a[i][j]=a[N-i-1][j]=i+1;for(k=i+1;kN-i;k++)/**********found**********/a[k][i]=a[k][N-i-1]=__3__;}}main(){intx[N][N]={0},i,j;fun(x);printf(\nTheresultis:\n);for(i=0;iN;i++){for(j=0;jN;j++)printf(%3d,x[i][j]);printf(\n);}}3、给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.hvoidfun(char*s){inti,j=0,k=0;chart1[80],t2[80];for(i=0;s[i]!='\0';i++)if(s[i]='0'&&s[i]='9'){/**********found**********/t2[j]=s[i];___1___;}elset1[k++]=s[i];t2[j]=0;t1[k]=0;/**********found**********/for(i=0;ik;i++)___2___;/**********found**********/for(i=0;i___3___;i++)s[k+i]=t2[i];}main(){chars[80]=def35adh3kjsdf7;printf(\nTheoriginalstringis:%s\n,s);fun(s);printf(\nTheresultis:%s\n,s);}4、给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:123456789计算结果为10065010149请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#defineN4/**********found**********/voidfun(int(*t)___1___){inti,j;for(i=1;iN;i++){for(j=0;ji;j++){/**********found**********/___2___=t[i][j]+t[j][i];/**********found**********/___3___=0;}}}main(){intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;printf(\nTheoriginalarray:\n);for(i=0;iN;i++){for(j=0;jN;j++)printf(%2d,t[i][j]);printf(\n);新视野教育内部资料}fun(t);printf(\nTheresultis:\n);for(i=0;iN;i++){for(j=0;jN;j++)printf(%2d,t[i][j]);printf(\n);}}5、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.hvoidfun(char*s,char*p){inti,j,n,x,t;n=0;for(i=0;s[i]!='\0';i++)n++;for(i=1;in-2;i=i+2){/**********found**********/___1___;/**********found**********/for(j=___2___+2;jn;j=j+2)if(s[t]s[j])t=j;if(t!=i){x=s[i];s[i]=s[t];s[t]=x;}}for(i=1,j=0;in;i=i+2,j++)p[j]=s[i];/**********found**********/p[j]=___3___;}main(){chars[80]=baawrskjghzlicda,p[50];printf(\nTheoriginalstringis:%s\n,s);fun(s,p);printf(\nTheresultis:%s\n,p);}6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.htypedefstruct{intnum;charname[9];charsex;struct{intyear,month,day;}birthday;floatscore[3];}STU;/**********found**********/voidshow(STU___1___){inti;printf(\n%d%s%c%d-%d-%d,tt.num,tt.name,tt.sex,tt.birthday.year,tt.birthday.month,tt.birthday.day);for(i=0;i3;i++)/**********found**********/printf(%5.1f,___2___);printf(\n);}main(){STUstd={1,Zhanghua,'M',1961,10,8,76.5,78.0,82.0};printf(\nAstudentdata:\n);/**********found**********/show(___3___);}7、给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:123456789fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdio.h#defineN4fun(intt[][N],intn){inti,sum;/**********found**********/___1___;for(i=0;in;i++)/**********found**********/sum+=___2___;for(i=0;in;i++)/**********found**********/sum+=t[i][n-i-___3___];returnsum;}main(){intt[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;printf(\nTheoriginaldata:\n);for(i=0;iN;i++){for(j=0;jN;j++)printf(%4d,t[i][j]);printf(\n);}printf(Theresultis:%d,fun(t,N));}8、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,有10个正数:4630324061745154826,平均值为:30.500000主函数中输出:4632404548请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includestdlib.h#includestdio.h#defineN10doublefun(doublex[],double*y){inti,j;doubleav;/**********found**********/av=__1__;/**********found**
本文标题:C++上机试题及答案
链接地址:https://www.777doc.com/doc-7028643 .html