您好,欢迎访问三七文档
实验编程题答案实验一1、输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。#includeiostreamusingnamespacestd;intmain(){inty,m;cinym;if(1900=y&&y3000&&0m&&m13){if(y%4==0&&y%100!=0||y%400==0){switch(m){case1:cout31;break;case2:cout29;break;case3:cout31;break;case4:cout30;break;case5:cout31;break;case6:cout30;break;case7:cout31;break;case8:cout31;break;case9:cout30;break;case10:cout31;break;case11:cout30;break;case12:cout31;break;}}else{switch(m){case1:cout31;break;case2:cout28;break;case3:cout31;break;case4:cout30;break;case5:cout31;break;case6:cout30;break;case7:cout31;break;case8:cout31;break;case9:cout30;break;case10:cout31;break;case11:cout30;break;case12:cout31;break;}}}elsecoutInputerror!;return0;}2、某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。#includeiostreamusingnamespacestd;intmain(){inta,b,c,d,s;cinabcd;s=a+b+c+d;if(a=60&&b=60&&c=60&&d=60&&s=340){if(s=370)cout公费endl;elsecout自费endl;}elsecout没有录取endl;return0;}3、在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。#includeiostreamusingnamespacestd;intmain(){doubletb,tw,s;cins;tb=s/3+50;tw=s/1.2;if(tbtw)coutWalkendl;elseif(tbtw)coutBikeendl;elsecoutAllendl;return0;}4、一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。【提示】要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:coutfixedsetprecision(2)costendl;按上面的形式控制输出格式时,需在源程序最开始加上一行:#includeiomanip。#includeiostream#includeiomanipusingnamespacestd;intmain(){doublet,cost;cint;if(t=3)cout5.00endl;elseif(t=20.5){cost=(t-3)*2+5;coutfixedsetprecision(2)costendl;}elsecout40.00endl;return0;}5、模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/’的除数不能为0。#includeiostreamusingnamespacestd;intmain(){doublea,b,n;charc;cinabc;if(c=='/'&&b==0)cout除数为0!endl;elseif(c!='+'&&c!='-'&&c!='*'&&c!='/')cout运算符号错误!;elseif(c=='+'){n=a+b;coutnendl;}if(c=='-'){n=a-b;coutnendl;}if(c=='*'){n=a*b;coutnendl;}if(c=='/'){n=a/b;coutnendl;}return0;}实验二1、给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?#includeiostreamusingnamespacestd;intmain(){inta,b,c,d,e,f,x=0;cinabcdef;if(a=100)if(ba)x=x+b;if(ca)x=x+c;if(da)x=x+d;if(ea)x=x+e;if(fa)x=x+f;coutendlxendl;return0;}2一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米?第5次反弹多高?#includeiostreamusingnamespacestd;intmain(){inth0;doubles,h;cinh0;h=h0/32.0;s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0);couts''hendl;return0;}3有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。#includeiostream#includeiomanipusingnamespacestd;intmain(){doublei,n,x,y,z;doubles;cinn;x=2;y=1;s=2;for(i=1;in;i=i++){z=x;x=y+z;y=z;s=s+x/y;}coutfixedsetprecision(4)sendl;return0;}4在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。#includeiostreamusingnamespacestd;voidmain(){floatx,y;for(;;){cinxy;if(x==0&&y==0){coutyesendl;break;}if(x=1&&x=-1&&y=1&&y=-1)coutyesendl;elsecoutnoendl;}}5一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号所构成的数字正好等于某一个整数的平方。请根据以上线索求出车号。#includeiostreamusingnamespacestd;#includemath.hvoidmain(){inta,b,c,d,m,n;for(a=0;a10;a++){for(b=0;b10;b++){for(c=0;c10;c++){for(d=0;d10;d++){if(a==b&&c==d){m=a*1000+b*100+c*10+d;{for(n=32;n100;n++)if(n*n==m)coutmendl;{}}}}}}}}实验三1陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。#includeiostreamusingnamespacestd;intmain(){inta[100];intm,sum=0;for(inti=1;i=10;i++)cina[i];cinm;for(i=1;i=10;i++){if(m=a[i]||(ma[i])&&(m+30=a[i]))sum=sum+1;}coutsumendl;return0;}2歌唱大赛选手成绩这样计算:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。提示:将6个评分存入score数组中。关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。#includeiostreamusingnamespacestd;intmain(){doublescore[100];doublem=0;doubleg=0;for(inti=1;i=6;i++)cinscore[i];doublebig=score[1];doublesmall=score[1];for(intj=1;j=6;j++){if(score[j]big)big=score[j];}for(intk=1;k=6;k++){if(score[k]small)small=score[k];}for(intn=1;n=6;n++)g+=score[n];m=(g-big-small)/4;coutmendl;return0;}3插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。例如,对于明文:China,在间隔为1的位置依次插入一个字母而形成密文:Coheifnia。因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。提示:定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。#includeiostreamusingnamespacestd;intmain(){charci[100];charpl[100];intm=0;cin.getline(ci,100);for(inti=0;ci[i]!='\0';i++){if(i%2==0){pl[m]=ci[i];m=m+1;}}pl[m]='\0';coutplendl;return0;}4输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理:对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最
本文标题:C++实验答案
链接地址:https://www.777doc.com/doc-5234849 .html