C++题答案.docx
- 文档编号:9989634
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:52
- 大小:36.15KB
C++题答案.docx
《C++题答案.docx》由会员分享,可在线阅读,更多相关《C++题答案.docx(52页珍藏版)》请在冰豆网上搜索。
C++题答案
本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:
(1)考核时间:
本学期最后一次上机时间为机试。
(2)考核内容:
C++面向过程部分,主要是算法设计与实现。
考题来自本学期布置的作业、部分例题及一些补充的题目。
(3)考试形式:
机试前进入机房时,每人随机抽取一道题(同一个班的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。
源程序文件明必须是“学号姓名.cpp”,如刘天.cpp”。
(4)考试要求:
机试时考试规则同课堂考试一致,不允许带书、纸张等。
不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器),不能携带任何类型的通讯工具,包括无线电接收器、移动电话。
(5)考试成绩:
本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。
(6)其它有关事项由主考教师和监考人员负责处理。
附:
考试题集
1.利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输入加密及解密的字符串。
//加密字符串
#include
voidmain()
{
chara[21],b,key;
inti;
cout<<"请输入字符串:
";
cin>>a;
cout<<"请输入密匙:
";
cin>>b;
for(i=0;a[i]!
=0;i++)
a[i]=a[i]^b;
cout<<"加密后:
";
for(i=0;a[i]!
=0;i++)
cout< cout< "; cin>>key; for(i=0;a[i]! =0;i++) a[i]=a[i]^key; for(i=0;a[i]! =0;i++) cout< cout< } 已阅,请放心食用 2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。 (提示: 对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除次之外都不是闰年)。 #include voidmain() { intyear,month,days; cout<<"请输入年份,月份: "; cin>>year>>month; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { days=31; cout< } elseif(month==4||month==6||month==9||month==11) { days=30; cout< } elseif((year%4==0&&year%100! =0)||year%400==0) { days=29; cout< } else { days=28; cout< } } 已阅,请放心食用 3.某大桥按不同型号征收车辆过桥费: 自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。 编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。 (提示: 可以用整数对不同型号的车辆进行编码) //收过桥费 #include voidmain() { intkind; cout<<"1.自行车\n"; cout<<"2.摩托车\n"; cout<<"3.小汽车\n"; cout<<"4.大货车或客车\n"; cout<<"5.货柜车\n"; cout<<"请输入汽车种类: "; cin>>kind; switch(kind) { case1: cout<<"费用: 0元"< break; case2: cout<<"费用: 2元"< break; case3: cout<<"费用: 5元"< break; case4: cout<<"费用: 8元"< break; case5: cout<<"费用: 12元"< break; default: cout<<"错误! "< } } 已阅,请放心食用 4.输入一位同学的考试成绩,若是90~100分,输出“Excellent”,80~89输出“Verygood”,70~79输出“Good”,60~69输出“Pass”,60分以下输出“NoPass”。 #include voidmain() { intmarks; cout<<"输入考试成绩: "; cin>>marks; switch(marks/10) { case10: case9: cout<<"Excellent\n"; break; case8: cout<<"VeryGood\n"; break; case7: cout<<"Good\n"; break; case6: cout<<"Pass\n"; break; default: cout<<"NoPass\n"; } } 已阅,请放心食用 5.旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;订票量大于或等于30张时,航空公司给予最高的45%的折扣。 编程输入订票张数及单张机票票价,程序输出折扣率及应付款额。 //旅行社折扣 #include voidmain() { intnum,price; floatdiscount,total_price; cout<<"输入购买张数和单价: "; cin>>num>>price; switch(num/10) { case0: discount=0.1; break; case1: discount=0.15; break; case2: discount=0.3; break; default: discount=0.45; } total_price=num*price*(1-discount); cout<<"总价格为: "< } 已阅,请放心食用 6.用户输入一个整数流(输入1000表示数据输入结束),如 编写程序统计输入流中-1、0和+1的个数。 //输入数流 #include voidmain() { inta[100],i,j,x=0,y=0,z=0; cout<<"输入数流(以1000结束): "; for(i=0;;i++) { cin>>a[i]; if(a[i]==1000)break; } for(j=0;a[j]! =1000;j++) { if(a[j]==-1)x++; if(a[j]==0)y++; if(a[j]==1)z++; } cout<<"该数流中含-1: "< cout<<"该数流中含0: "< cout<<"该数流中含1: "< } 已阅,请放心食用 7.编写一个程序,求一个自然数中含有多少个2的因子。 如,6含1个2的因子,8含3个2的因子,11不含2的因子。 (提示,程序应检查用户输入的合法性)。 //求2因子 #include voidmain() { intx,i,n; do{ cout<<"输入整数: "; cin>>x; }while(x<=0); n=x; for(i=0;n%2==0;i++) n/=2; cout<<"整数"< } 已阅,请放心食用 8.编写一个程序解决爱因斯坦台阶问题: 有人走以台阶,若以每步走2级则最后剩1级;若每步走3级则最后剩2级;若以每步走4级则最后剩3级;若以每步走5级则最后剩4级;若以每步走6级则最后剩5级;若以每步走7级则最后刚好不剩。 问台阶共有几级? #include voidmain() { inti; for(i=0;;i++) { if(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5&&i%7==0)break; } cout<<"最小可能值是: "< } 已阅,请放心食用 9.公鸡5元1只,母鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只? //百元买百鸡 #include voidmain() { intcock,hen,chicken,price; for(cock=0;cock<=20;cock++) { for(hen=0;hen<=33;hen++) { chicken=100-cock-hen; if(chicken%3==0&&5*cock+3*hen+chicken/3==100) cout<<"公鸡"< } } } 已阅,请放心食用 10.编程实现解决下述问题的算法: 一位顾客在购物时,如果买4个苹果剩下4角钱.如果买5个苹果则缺5角钱,请问,该顾客带了多少钱? 多少钱可以头一个苹果? #include voidmain() { intmoney,money1,money2,i,m,n; for(i=1;;i++) { if(4+4*i==5*i-5) { money=4+4*i; money1=money/10; money2=money-10*money1; cout<<"顾客带了"< break; } } } 已阅,请放心食用 11.编写程序.计算100之内可以被13整除的自然数之和。 #include voidmain() { inti,sum=0; for(i=1;i<=100;i++) { if(i%13==0) sum+=i; } cout<<"100以内可以被13整除的自然数之和为: "< } 已阅,请放心食用 12.键盘输入m和n(10 //求m到n的素数 #include #include intf(inti) { intl; for(l=2;l { if(i%l==0) return0; } return1; } voidmain() { intm,n,x,i,j; intk=0; do{ cout<<"输入m,n(其中10 "; cin>>m>>n; }while(m<=10||m>=n||n>32000); for(i=m;i<=n;i++) { if(f(i)) { cout< k++; if(k%8==0)cout< } } cout< } 已阅,请放心食用 13.编写程序打印乘法口诀表。 //打印乘法口诀表 #include voidmain() { inta,b,t; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) cout< cout< } } 已阅,请放心食用 14.编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。 算法如下: 步骤1: 如果p 步骤2: 令r是p/q的余数。 步骤3: 如果r=0,则令g=q并终止; 否则令p=q,q=r并转向步骤2 14. //求最大公约数 #include voidmain() { intp,q,r; cout<<"输入两个整数: "; cin>>p>>q; if(p { r=q; q=p; p=r; } r=p%q; while(r! =0) { p=q; q=r; r=p%q; } cout<<"最大公约数是: "< } 已阅,请放心食用 15.求不超过正整数n的2的最大幂值,如输入17,程序应输出4(24=16<17)。 #include voidmain() { intn,t=1,i; cout<<"请输入正整数n: "; cin>>n; for(i=0;;i++,t*=2) { if(t>n) { cout< break; } } } 已阅,请放心食用 16.有关专家十分关注珠江渔业资源的问题。 目前珠江中大约有8000万条鱼,平均每年以3.5%的速度减少。 请编写一个程序,计算在多少年之后鱼的数目下降到目前的一半? 多少年后下降到目前的十分之一? (提示注意整数类型的取值范围)。 #include voidmain() { doublefishnum=8e7,fish; intyear; for(year=0,fish=fishnum;;year++,fish*=0.965) { if(fish<=4e7) { cout<<"当鱼的数目等于原来的一半时,需要"< break; } } for(year=0,fish=fishnum;;year++,fish*=0.965) { if(fish<=8e6) { cout<<"当鱼的数目等于原来的十分之一时,需要"< break; } } } 已阅,请放心食用 17.编程求解一元二次方程 +bx+c=0的根。 要求: 设计完备的测试数据集,考虑a,b,c各种取值对根的影响 //二次方程求解 #include #include voidmain() { floata,b,c,x1,x2,t; cout<<"请输入a,b,c: "; cin>>a>>b>>c; t=b*b-4*a*c; if(a==0&&b==0) cout<<"根为一切实数\n"; elseif(a==0) cout<<"根为"<<-c/b<<'\n'; elseif(t<0) cout<<"无根\n"; elseif(t==0) cout<<"根为"<<-b/(2*a)<<'\n'; elseif(t>0) cout<<"根为"<<(-b+sqrt(t))/(2*a)<<"和"<<(-b-sqrt(t))/(2*a)<<'\n'; } 已阅,请放心食用 18.编写一个程序,输入全班同学某门课考试成绩,计算平均成绩并找出其中最高分与最低分。 (提示: 批量数据通常不事先规定输入的数据数量,而是以一个特殊的标志作为输入结束。 程序根据结束标志统计人数) //班级分数 #include voidmain() { inta[100],i,max,min,s=0; cout<<"输入同学成绩(以1000结束): "; for(i=0;;i++) { cin>>a[i]; if(a[i]==1000)break; if(i==0) { max=a[0]; min=a[0]; } max=max>a[i]max: a[i]; min=min a[i]; s+=a[i]; } cout<<"该班同学成绩中最高分为: "< } 已阅,请放心食用 19.编一程序模拟整数加、减、乘、除四则运算。 当你在键盘上输入 5+6 后,程序将输出=11,当你在键盘上输入11*7后,程序将输出=77。 //模拟四则运算 #include voidmain() { floata,b; charx; cout<<"请输入算式: "< cin>>a>>x>>b; if(x=='+') cout<<"="< elseif(x=='-') cout<<"="< elseif(x=='*') cout<<"="< elseif(x=='/')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)