C50题规范标准答案.doc
《C50题规范标准答案.doc》由会员分享,可在线阅读,更多相关《C50题规范标准答案.doc(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-*本学期程序设计基础课程实行上机考核,现将考核有关事项通知如下:(1) 考核时间:本学期最后一次上机时间为机试。(2) 考核内容:C+面向过程部分,主要是算法设计与实现。考题来自本学期布置的作业、部分例题及一些补充的题目。(3) 考试形式:机试前进入机房时,每人随机抽取一道题(同一个班的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“2012211532刘天.cpp”。(4) 考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据
2、(不允许任何私人携带的U盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。(5) 考试成绩:本次机试成绩将在程序设计基础课程成绩中占25%的比重。(6) 其它有关事项由主考教师和监考人员负责处理。附:考试题集1. 利用异或运算对输入的文本进行加密解密输出,用户输入一个文本(字符串,设不超过20个字符),然后输入作为密钥的字符,程序输入加密及解密的字符串。/加密字符串#includevoid main() char a21,b,key; int i; couta; coutb; for(i=0;ai!=0;i+) ai=aib; cout加密后:; for(i=0;a
3、i!=0;i+) coutai; coutendlkey; for(i=0;ai!=0;i+) ai=aikey; for(i=0;ai!=0;i+) coutai; coutendl; 已阅,请放心食用2. 编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除次之外都不是闰年)。#includevoid main() int year,month,days; coutyearmonth; if(month=1|month=3|month=5|month=7|month=8|month=1
4、0|month=12) days=31; coutyear年month月有days天n; else if(month=4|month=6|month=9|month=11) days=30; coutyear年month月有days天n; else if(year%4=0&year%100!=0)|year%400=0) days=29; coutyear年month月有days天n; else days=28; coutyear年month月有days天n; 已阅,请放心食用 3. 某大桥按不同型号征收车辆过桥费:自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。编写一个程
5、序,按车辆的不同型号计算通过该大桥应征的过桥费。(提示:可以用整数对不同型号的车辆进行编码)/收过桥费#includevoid main() int kind; cout1.自行车n; cout2.摩托车n; cout3.小汽车n; cout4.大货车或客车n; cout5.货柜车n; coutkind; switch(kind) case 1: cout费用:0元endl; break; case 2: cout费用:2元endl; break; case 3: cout费用:5元endl; break; case 4: cout费用:8元endl; break; case 5: cout费
6、用:12元endl; break; default: cout错误!endl; 已阅,请放心食用4. 输入一位同学的考试成绩,若是90100分,输出“Excellent”,8089输出“Very good”,7079输出“Good”,6069输出“Pass”,60分以下输出“No Pass”。#includevoid main() int marks; coutmarks; switch(marks/10) case 10:case 9: coutExcellentn; break; case 8: coutVery Goodn; break; case 7: coutGoodn; break
7、; case 6: coutPassn; break; default : coutNo Passn; 已阅,请放心食用5. 旅行社的订票量小于10张时,航空公司给予10%的折扣;订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;订票量大于或等于30张时,航空公司给予最高的45%的折扣。编程输入订票张数及单张机票票价,程序输出折扣率及应付款额。/旅行社折扣#includevoid main() int num,price; float discount,total_price; coutnumprice; switc
8、h(num/10) case 0: discount=0.1; break; case 1: discount=0.15; break; case 2: discount=0.3; break; default: discount=0.45; total_price=num*price*(1-discount); cout总价格为:total_priceendl;已阅,请放心食用6. 用户输入一个整数流(输入1000表示数据输入结束),如4 1 13 0 6 -5 1 -1 7 -12 19 0 100 编写程序统计输入流中-1、0和+1的个数。/输入数流#includevoid main()
9、 int a100,i,j,x=0,y=0,z=0; coutai; if(ai=1000) break; for(j=0;aj!=1000;j+) if(aj=-1) x+; if(aj=0) y+; if(aj=1) z+; cout该数流中含-1:x项n; cout该数流中含 0:y项n; cout该数流中含 1:z项n;已阅,请放心食用7. 编写一个程序,求一个自然数中含有多少个2的因子。如,6含1个2的因子,8含3个2的因子,11不含2的因子。(提示,程序应检查用户输入的合法性)。/求2因子#includevoid main() int x,i,n;docoutx; while(x=
10、0); n=x; for(i=0;n%2=0;i+) n/=2; cout整数x含有i个2因子endl;已阅,请放心食用8. 编写一个程序解决爱因斯坦台阶问题:有人走以台阶,若以每步走2级则最后剩1级;若每步走3级则最后剩2级;若以每步走4级则最后剩3级;若以每步走5级则最后剩4级;若以每步走6级则最后剩5级;若以每步走7级则最后刚好不剩。问台阶共有几级?#includevoid main() int i; 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最小可能值是:iendl;已阅,请放心食用9. 公鸡5元1只,母
11、鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?/百元买百鸡#includevoid main() int cock,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公鸡cock只,母鸡hen只,小鸡chicken只n; 已阅,请放心食用10. 编程实现解决下述问题的算法:一位顾客在购物时,如果买4个苹果剩下4角钱如果买5个苹果则缺5角钱
12、,请问,该顾客带了多少钱?多少钱可以头一个苹果?#includevoid main() int money,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顾客带了money1元money2角,苹果价格为每个i角n; break; 已阅,请放心食用11. 编写程序计算100之内可以被13整除的自然数之和。#includevoid main() int i,sum=0; for(i=1;i=100;i+) if(i%13=0) su
13、m+=i; cout100以内可以被13整除的自然数之和为:sumendl;已阅,请放心食用12. 键盘输入m和n(10mn32000),求出mn间所有素数且按每行8个数形式输出。/求m到n的素数#include#includeint f(int i)int l;for(l=2;li;l+)if(i%l=0)return 0;return 1;void main()int m,n,x,i,j;int k=0;docout输入m,n (其中10mmn;while(m=n|n32000);for(i=m;i=n;i+)if(f(i)coutsetw(6)i;k+;if(k%8=0)coutendl
14、;coutendl;已阅,请放心食用13. 编写程序打印乘法口诀表。/打印乘法口诀表#includevoid main() int a,b,t; for(i=1;i=9;i+) for(j=1;j=i;j+) couti*j=i*jt; coutendl; 已阅,请放心食用14. 编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。算法如下:步骤1:如果p q,则交换p和q。步骤2:令r是p / q 的余数。步骤3:如果r = 0,则令g = q并终止;否则令p = q, q = r并转向步骤2 14./求最大公约数#includevoid main()in
15、t p,q,r;coutpq;if(pq)r=q;q=p;p=r;r=p%q;while(r!=0)p=q;q=r;r=p%q;cout最大公约数是:qendl;已阅,请放心食用15. 求不超过正整数n的2的最大幂值,如输入17,程序应输出4(24=1617)。#includevoid main() int n,t=1,i; coutn; for(i=0;i+,t*=2) if(tn) couti-1n; break; 已阅,请放心食用16. 有关专家十分关注珠江渔业资源的问题。目前珠江中大约有8000万条鱼,平均每年以3.5%的速度减少。请编写一个程序,计算在多少年之后鱼的数目下降到目前的一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c50 规范 标准答案
限制150内