C实验答案.docx
- 文档编号:10725067
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:30
- 大小:23.55KB
C实验答案.docx
《C实验答案.docx》由会员分享,可在线阅读,更多相关《C实验答案.docx(30页珍藏版)》请在冰豆网上搜索。
C实验答案
实验编程题答案
实验一
1、输入日期的年份和月份,求该月有多少天。
提示:
对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。
#include
usingnamespacestd;
intmain()
{
inty,m;
cin>>y>>m;
if(1900<=y&&y<3000&&0 { if(y%4==0&&y%100! =0||y%400==0) { switch(m) { case1: cout<<"31";break; case2: cout<<"29";break; case3: cout<<"31";break; case4: cout<<"30";break; case5: cout<<"31";break; case6: cout<<"30";break; case7: cout<<"31";break; case8: cout<<"31";break; case9: cout<<"30";break; case10: cout<<"31";break; case11: cout<<"30";break; case12: cout<<"31";break; } } else { switch(m) { case1: cout<<"31";break; case2: cout<<"28";break; case3: cout<<"31";break; case4: cout<<"30";break; case5: cout<<"31";break; case6: cout<<"30";break; case7: cout<<"31";break; case8: cout<<"31";break; case9: cout<<"30";break; case10: cout<<"31";break; case11: cout<<"30";break; case12: cout<<"31";break; } } } else cout<<"Inputerror! "; return0; } 2、某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。 编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。 #include usingnamespacestd; intmain() { inta,b,c,d,s; cin>>a>>b>>c>>d; s=a+b+c+d; if(a>=60&&b>=60&&c>=60&&d>=60&&s>=340) { if(s>=370)cout<<"公费"< elsecout<<"自费"< } elsecout<<"没有录取"< return0; } 3、 在华农校园里,没有自行车,上课办事会很不方便。 但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。 假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。 请判断走不同的距离去办事,是骑车快还是走路快。 #include usingnamespacestd; intmain() { doubletb,tw,s; cin>>s; tb=s/3+50; tw=s/1.2; if(tb>tw)cout<<"Walk"< else if(tb elsecout<<"All"< return0; } 4、 一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如: 如果输入为3.6小时,则费用为5+(3.6-3)*2=6.2元。 最高收费为40元。 假设任何车辆的停车时间都不超过24小时。 编写程序,计算每辆车的停车费。 【提示】 要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式: cout< (2)< 按上面的形式控制输出格式时,需在源程序最开始加上一行: #include #include #include usingnamespacestd; intmain() { doublet,cost; cin>>t; if(t<=3)cout<<"5.00"< else if(t<=20.5) { cost=(t-3)*2+5; cout< (2)< } elsecout<<"40.00"< return0; } 5、 模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、‘-’、‘*’或‘/’),对两个数进行相应的运算,输出运算结果。 注意: 除法运算‘/’的除数不能为0。 #include usingnamespacestd; intmain() { doublea,b,n; charc; cin>>a>>b>>c; if(c=='/'&&b==0)cout<<"除数为0! "< else if(c! ='+'&&c! ='-'&&c! ='*'&&c! ='/')cout<<"运算符号错误! "; else if(c=='+') { n=a+b; cout< } if(c=='-') { n=a-b; cout< } if(c=='*') { n=a*b; cout< } if(c=='/') { n=a/b; cout< } return0; } 实验二 1、 给定一个正整数a,以及另外的5个正整数,问题是: 这5个整数中,小于a的整数的和是多少? #include usingnamespacestd; intmain() {inta,b,c,d,e,f,x=0; cin>>a>>b>>c>>d>>e>>f; if(a<=100) if(b if(c if(d if(e if(f cout< return0; } 2 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。 编程计算气球在第5次落地时,共经过多少米? 第5次反弹多高? #include usingnamespacestd; intmain() { inth0; doubles,h; cin>>h0; h=h0/32.0; s=h0+2*(h0/2.0+h0/4.0+h0/8.0+h0/16.0); cout< return0; } 3 有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,....求这个分数序列的前n项之和。 #include #include usingnamespacestd; intmain() { doublei,n,x,y,z; doubles; cin>>n; x=2;y=1;s=2; for(i=1;i { z=x;x=y+z;y=z;s=s+x/y; } cout< return0; } 4 在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。 写一个程序,判断给定的多个点是否在这个正方形内。 #include usingnamespacestd; voidmain() { floatx,y; for(;;) { cin>>x>>y; if(x==0&&y==0) { cout<<"yes"< break; } if(x<=1&&x>=-1&&y<=1&&y>=-1) cout<<"yes"< else cout<<"no"< } } 5 一辆卡车违反交通规则,撞人后逃跑。 现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。 甲说: 牌照的前两位数字是相同的;乙说: 牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说: 四位的车号所构成的数字正好等于某一个整数的平方。 请根据以上线索求出车号。 #include usingnamespacestd; #include voidmain() {inta,b,c,d,m,n; for(a=0;a<10;a++) {for(b=0;b<10;b++) {for(c=0;c<10;c++) {for(d=0;d<10;d++) {if(a==b&&c==d) {m=a*1000+b*100+c*10+d; {for(n=32;n<100;n++) if(n*n==m) cout< { } } } } } } } } 实验三 1 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。 苹果成熟的时候,陶陶就会跑去摘苹果。 陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。 假设她碰到苹果,苹果就会掉下来。 #include usingnamespacestd; intmain() { inta[100]; intm,sum=0; for(inti=1;i<=10;i++) cin>>a[i]; cin>>m; for(i=1;i<=10;i++) { if(m>=a[i]||(m=a[i])) sum=sum+1; } cout< return0; } 2 歌唱大赛选手成绩这样计算: 去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后得分。 现假设共有6位评委,都是按百分制打分,请编程计算选手的成绩。 提示: 将6个评分存入score数组中。 关键是求出其中的最大值max(即最高分)和最小值min(即最低分)。 #include usingnamespacestd; intmain() { doublescore[100]; doublem=0; doubleg=0; for(inti=1;i<=6;i++) cin>>score[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=score[k]; } for(intn=1;n<=6;n++) g+=score[n]; m=(g-big-small)/4; cout< return0; } 3 插入式加密法是信息加密中一种简单的加密技术,其方法是在明文字符中插入一些无意义的字母来形成密文单词。 例如,对于明文: China,在间隔为1的位置依次插入一个字母而形成密文: Coheifnia。 因此,其解密过程与加密过程相反,即从密文中首字符开始取,每间隔1个位置依次取出字符,就得到原始的明文。 请编程实现插入式加密法所对应的解密算法,将密文翻译成明文。 提示: 定义两个字符数组ci和pl,分别存放密文字符串和明文字符串。 解密过程即在字符串ci中,从下标0的字符(首字符)开始,将偶数下标的字符(’\0’之前的)依次取出赋值到字符数组pl中,最后即得到明文字符串。 #include usingnamespacestd; 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'; cout< return0; } 4 输入一个长度小于20的不含空格的字符串,然后对该字符串做如下处理: 对字符串中的每个字符,如果是大写字母,将其转化为小写;如果是小写字母,将其转化为大写,最后将处理后的字符串输出。 要求用指针对字符串进行处理。 #include usingnamespacestd; intmain() { chars[21],*p; cin>>s; p=s; while(*p) { if(*p>='a'&&*p<='z') *p=*p-32; else if(*p>='A'&&*p<='Z') *p=*p+32; p++; } cout< return0; } 5 在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。 注意: 数组中的第一个数(下标为0)只要和第二个数(下标为1)不相等,第一个数(下标为0)就是极值点;同理,数组中的最后一个数只要和倒数第二个数不相等,最后一个数也是极值点。 #include usingnamespacestd; voidmain() { intn; cin>>n; cout< int*p=newint[n]; intj=0; for(inti=0;i cin>>p[i]; while(j { if(n>=2&&j==0&&p[0]! =p[1]) cout<<"0"<<''< if(j! =n-1&&j! =0) { if((p[j]>p[j+1]&&p[j]>p[j-1])||(p[j] cout< } if(j==n-1&&p[n-1]! =p[n-2]) cout< j++; } delete[]p; } 实验四 1 判断正整数n是否为完数。 已知一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数。 此程序要求编写函数boolwanshu(intn),判断n是否为完数,若n是,则函数返回true;否则返回false。 然后主函数通过该函数的返回值,在屏幕上输出判断结果。 #include usingnamespacestd; intnumber(int); intmain() { intn; cin>>n; intresult=number(n); if(result==-1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 答案