您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 2014春C++上机题答案
一、选择结构1、输入三个整数,然后输出最大值。#includeiostreamusingnamespacestd;intmain(){inta,b,c;cinabc;if(ab)a=b;if(ac)a=c;couta;return1;}2、计算分段函数,输入x(整数),输出y(整数):┌2x+1(x1)y=│4x+3(x=1)└6x+5(x1)#includeiostreamusingnamespacestd;intmain(){intx,y;cinx;if(x1)y=2*x+1;if(x==1)y=4*x+3;if(x1)y=6*x+5;couty;return1;}二、循环结构1、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:*************************#includeiostream#includeiomanipusingnamespacestd;intmain(){inti,j,n;cinn;for(i=1;i=n;i++){coutsetw(n-i+1);for(j=1;j=2*i-1;j++)cout*;coutendl;}return1;}2、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:***************#includeiostream#includeiomanipusingnamespacestd;intmain(){inti,j,n;cinn;for(i=n;i=1;i--){coutsetw(n-i+1);for(j=1;j=i;j++)cout*;coutendl;}return1;}三、函数循环1、根据下面对函数的说明,编写其后的函数体。(1)函数功能:计算s=1/(1*3)+2/(3*5)+3/(5*7)....n/((2*n-1)*(2*n+1))前n项之和。doublefun(intn){//答题开始处。在下面答题,此行不能有任何改动。inti;doubles=0;for(i=1;i=n;i++)s+=1.0*i/((2*i-1)*(2*i+1));returns;//答题结束处。在上面答题,此行不能有任何改动。}2、根据下面对函数的说明,编写其后的函数体。(1)功能:求1/2+3/4+5/6+7/8...前n项之和。doublefun(intn){//答题开始处。在下面答题,此行不能有任何改动。inti;doubles=0;for(i=1;i=n;i++)s+=1.0*(2*i-1)/(2*i);returns;//答题结束处。在上面答题,此行不能有任何改动。}四、函数数组1、根据下面对函数的说明,编写其后的函数体。(1)函数功能:逆序存放一维数组元素。(原1,3,2,4,5-变为5,4,2,3,1)voidfun(inta[],intn){//答题开始处。在下面答题,此行不能有任何改动。inti,t;for(i=0;in/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}//答题结束处。在上面答题,此行不能有任何改动。}2、根据下面对函数的说明,编写其后的函数体。(1)函数功能:一个数组中存有n个整数,对这些整数进行升序排序,voidfun(inta[],intn){//答题开始处。在下面答题,此行不能有任何改动。inti,j,t;for(i=0;in-1;i++)for(j=0;jn-1;j++)if(a[j]a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}//答题结束处。在上面答题,此行不能有任何改动。}五、模拟题(6套)第1套模拟题1、计算分段函数,输入x(整数),输出y(整数):┌x+10(x11)y=│x+11(x=11)└x+12(x11)#includeiostreamusingnamespacestd;intmain(){intx,y;cinx;if(x11)y=x+10;if(x==11)y=x+11;if(x11)y=x+12;couty;return1;}2、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:***************#includeiostream#includeiomanipusingnamespacestd;intmain(){inti,j,n;cinn;for(i=1;i=n;i++){coutsetw(n-i+1);for(j=1;j=i;j++)cout*;cout\n;}return1;}3、根据下面对函数的说明,编写其后的函数体。函数功能:一个数组中存有n个整数,统计奇数个数并作为函数值返回。intfun(inta[],intn){//答题开始处。在下面答题,此行不能有任何改动。inti,s=0;for(i=0;in;i++)if(a[i]%2)s+=1;returns;//答题开始处。在下面答题,此行不能有任何改动。}4、根据下面对函数的说明,编写其后的函数体。函数功能:计算nxn的二维数组首行和首列。例如n=4yyyyx123x456x789计算后:15121518212354568789voidfun(int**a,intn){//答题开始处。在下面答题,此行不能有任何改动。inti,j,s;for(i=1;in;i++){s=0;for(j=1;jn;j++)s+=a[i][j];a[i][0]=s/(n-1);}for(j=0;jn;j++){s=0;for(i=1;in;i++)s+=a[i][j];a[0][j]=s;}//答题结束处。在上面答题,此行不能有任何改动。}5、根据下面对函数的说明,在其后函数体中错误指引处改错。(1)函数功能:求出满足3+5+7+……+nm时的最大n值。intfun(intm){//在下一行内错误发生处改错(本行与下一行之间不能加行)intss=0,i;for(i=3;;i+=2){ss+=i;if(ss=m)//在下一行内错误发生处改错(本行与下一行之间不能加行)returni-2;}}6、根据下面对函数的说明,在其后函数体中填空指引处填空。(1)功能:计算s=5/3+8/5+13/8+21/13+...前n项和。doublefun(intn){doublesum=0;inta,b,c;//在下一行内下划线处填空(删除下划线,本行与下一行之间不能加行)a=5;//在下一行内下划线处填空(删除下划线,本行与下一行之间不能加行)b=3;for(inti=1;i=n;i++){sum+=(double)a/b;c=a+b;b=a;a=c;}//在下一行内下划线处填空(删除下划线,本行与下一行之间不能加行)returnsum;}7、根据下面对函数的说明,用给定内容编写(组合)其后的函数体。(1)函数功能:计算s=1+2+3+...n。intfun(intn){//答题开始处。在下面答题,此行不能有任何改动。inti=1,s=0;loop:{s+=i++;if(i=n)gotoloop;}returns;//答题结束处。在上面答题,此行不能有任何改动。}第2套模拟题计算分段函数,输入x(整数),输出y(整数):┌x+14(x15)y=│x+15(x=15)└x+16(x15)#includeiostreamusingnamespacestd;intmain(){intx,y;cinx;if(x15)y=x+14;if(x==15)y=x+15;if(x15)y=x+16;coutyendl;return1;}2、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:***************#includeiostream#includeiomanipusingnamespacestd;intmain(){inti,j,n;cinn;for(i=n;i=1;i--){coutsetw(n-i+1);for(j=1;j=i;j++)cout'*';coutendl;}return1;}3、根据下面对函数的说明,编写其后的函数体。(1)函数功能:一个数组中存有n个整数,求出偶数之和并作为函数值返回。intfun(inta[],intn){//答题开始处。在下面答题,此行不能有任何改动。inti,s=0;for(i=0;in;i++)if(a[i]%2==0)s+=a[i];returns;//答题结束处。在上面答题,此行不能有任何改动。}4、根据下面对函数的说明,编写其后的函数体。(1)函数功能:将二维数组转置。例如n=3123456789转置后:147258369voidfun(int**a,intn){//答题开始处。在下面答题,此行不能有任何改动。inti,j,t;for(i=0;in;i++)for(j=0;ji;j++)t=a[i][j],a[i][j]=a[j][i],a[j][i]=t;//答题结束处。在上面答题,此行不能有任何改动。}5、根据下面对函数的说明,在其后函数体中错误指引处改错。(1)功能:计算s=1/2-3/4+5/6-7/8...前n项和。doublefun(intn){inti,t=1;//在下一行内错误发生处改错(本行与下一行之间不能加行)doubles=0;for(i=1;in+n;i+=2){//在下一行内错误发生处改错(本行与下一行之间不能加行)s+=1.0*i/(i+1)*t;t=-t;}returns;}6、根据下面对函数的说明,在其后函数体中填空指引处填空。(1)功能:计算s=1/(3*3)-1/(5*5)+1/(7*7)-...前n项和。doublefun(intn){//在下一行内下划线处填空(删除下划线,本行与下一行之间不能加行)doublesum=0;inti,j;for(j=3,i=1;i=n;i++,j+=2){//在下一行内下划线处填空(删除下划线,本行与下一行之间不能加行)if(i%2)sum+=1.0/(j*j);elsesum-=1.0/(j*j);}returnsum;}7、根据下面对函数的说明,用给定内容编写(组合)其后的函数体。(1)函数功能:计算s=1+2+3+...n。intfun(intn){//答题开始处。在下面答题,此行不能有任何改动。inti,s;s=0;for(i=1;i=n;i++)s+=i;returns;//答题结束处。在上面答题,此行不能有任何改动。}第3套模拟题1、计算分段函数,输入x(整数),输出y(整数):┌x+5(x6)y=│x+6(x=6)└x+7(x6)#includeiostreamusingnamespacestd;intmain(){intx,y;cinx;if(x6)y=x+5;if(x==6)y=x+6;if(x6)y=x+7;couty;return1;}2、编程输出n行图形(n值通过键盘输入),假设n=5,则图形如下:*************************#includeiostream#includeiomanipusingnamespacestd;intmain(){inti,j,n;cinn;for(i=1;i=n;i++){coutsetw(i);for(j=1;j=n;j++)cout*;coutendl;}return1;}3、根据下面对函数的说明,编写其后的函数体。(1)函数功能:一个数组中存有n个整数,求出下标值为偶数的元素之和并作为函数值返回。intfun(inta[],intn){//答题开始处。在下面答题,此行不能有任何改动。inti,s=0;for(i=0;in;i++)if(i%2==0)s+=a[
本文标题:2014春C++上机题答案
链接地址:https://www.777doc.com/doc-2937799 .html