C++期末考试.pdf
《C++期末考试.pdf》由会员分享,可在线阅读,更多相关《C++期末考试.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、I.编写一个完整的程序,运行时向用户提问“你考了多少分?(0-100)”,接受输入后判断其等级显示出来。规则如下:优 90V=分数 二100等级=良 80 二分数90中 60二分数80差 0=分数60#includeint main()(int score;coutvv”请输入你要输入的成绩:n”;cinscore;if(score 100)coutvv”成绩输入有误!请重新输入n”;cinscore;)if(score=0)if(90=score&score=100)coutvv优n”;if(80=score&score90)coutu 良n”;if(60=score&score80)cou
2、tvv中 n;if(0=score&score60)coutvv差 n;return 0;2.从键盘输入3个数,将其中的最大值输出。#includeint main()(int a,b,c,max;couivv”从键盘输入3 个数:c in a b c;if(ab&bc)ll(ac&cb)max=a;else if(ba&ac)ll(bc&ca)max=b;else if(ca&ab)ll(cb&ba)ma x=c;c out ma x;return 0;3.从键盘输入两个两位数a、b,将其组合成一个四位数输出(千位是a的个位,百位是b的十位,十位是b的个位,个位是a的十位)。#inc lud
3、eint ma in()(int a,b,c,d,e,f,num;c outv”从键盘输入两个两位数a、b:“;c i n a b;c=(a%l 0)*1 0 0 0;d=(a/1 0)*l;e=(b%1 0)*1 0;f=(b/1 0)*1 0 0;num=c+d+e+f;c out num;return 0;)4.使 用 循 环 语 句 打 印 出 以 下 这 个 三 角 形.11 231 23 451 23 45 6 71 23 45 6 7 8 91 23 45 6 7 8 9 1 0 1 11 23 45 6 7 8 9 1 0 1 1 1 21 31 23 45 6 7 8 9 1
4、 0 1 1 1 21 3 1 41 5#inc lude#define line_ num 8int ma in()(int line;int b la nknum;int sta mum;for(line=1 ;line=line_ num;line+4-)for(b la nknum=1;b la nknum=line_ num-line;b la nknum+4-)coutfor(starnum=1 ;starnum=2*line-1 ;slarnum+)coutstarnum;coutendl;)return 0;)5.实现一个简单的菜单程序,运行时显示 uMenu:A(dd)D(e
5、lete)S(ort)Q(uit),Select one:M提示用户输入。A 表示增加,D 表示删除,S 表示排序,Q 表示退出。输入为A、D、S 时分别提示“数据已经增加、删除、排序”,输入Q 时程序结束。#includeint main()char x;inti;coutHMenu:A(dd)D(elete)S(ort)Q(uit),Select one:endl;coutA 表示增加,D 表示删除,S 表示排序,Q 表示退出Jvvendl;coutv”输入选择:vvendl;cinx;for(i=0;x!=,q,llx!=,Q,;i+)switch(x)(case A:case a:co
6、utvv”数据已经增加。”;break;case D:case d:coutvv”数据已经删除。n;break;case S:case s:coutvv”数据已经排序。break;case rQ:case q:coutv”退出程序。;relum 0;default:cout输入有误,请重新输入!;break;)coutendl;cinx;)coutendl;return 0;6.中国有句俗语叫“三天打鱼两天晒网”,某人从1990年 1 月 1 I I起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还 是“晒网”。/*中国有句俗语叫 三天打鱼两天晒网”,某人从1990年 1 月 1
7、 日起开始”三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼“还是“晒网”。*/#includevoid main()(int y,m,d,t,a,b,yl,c=O;coutvv”如出现输入错误,此结果有误“vvendkv”出入年 月 日:“vvendl;c in y m d;if(m=2&d29)coutv“输入错误”31)coutvv”输入错误vvendl;if(m=4ll6H9lll l)&d30)coutvv”输入错误 vvendl;if(m2&(y%4=0&y%100!=0lly%400=0)t=1;else t=0;switch(m)(case 1:a=0;break;case
8、 2:a=31 ;break;case 3:a=31+28;break;case 4:a=31+28+31 ;break;case 5:a=31+28+3 l+30;break;case 6:a=31 +28+31 +30+31 ;break;case 7:a=31+28+31+30+3 l+30;break;case 8:a=31 +28+31+30+31 +30+31;break;case 9:a=31 +28+31+30+31+30+31+31;break;case 10:a=31+28+31+30+31+30+31+3 l+30;break;case 11:a=31 +28+31+30
9、+31+30+31 +31+30+31;break;case 12:a=31+28+31+30+31+30+31+31+30+31 +30;break;default:coutvv输入错误vvendl;)b=a+t+d;for(y 1 =1990;y l0&b4)cout 打渔 nendl;elsecoutvv”晒网 nendl;/*或 者 下面这个*问题分析与算法设计根据题意可以将解题过程分为三步:1)计算从1990年 1 月 1 日开始至指定日期共有多少天;2)由于“打鱼”和“晒网”的周期为5 天,所以将计算出的天数用5 去除;3)根据余数判断他是在“打鱼”还是在“晒网”;若 余 数 为
10、1,2,3,则他是在“打鱼”否则是在“晒网”在这三步中,关键是第一步。求 从 1990年 1 月 1 日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年为28天。闰年的方法可以用伪语句描述如下:如 果(年能被4 除 尽 且 不 能 被 100除尽)或能被400除尽)则该年是闰年;否则不是闰年。C 语言中判断能否整除可以使用求余运算(即求模)*程序与程序注释*/#includeint days(struct date day);struct date(int year;int month;int day;);void main()struct date today,term;i
11、nt yearday,year,day;printf(HEnter year/month/day:u);scanf(%d%d%d&today.year,&today.month,&today.day);/*输入日期*/temi.momh=12;/*设置变量的初始值:月*/term.day=31;/*设置变量的初始值:日*/for(yearday=0,year=1990;year0&day4)printf(Hhe was fishing at that dayAn);/*打 E|1 结果*/else printf(He was sleeping at that day.nn);int days(
12、struct date day)(static int day_tab2l3=0,31,28,31,30,31,30,31,31,30,31,30,31,/*平均每月的天数*/(0,31,29,31,30,31,30,31,31,30,31,30,31,;int i,lp;lp=day.year%4=0&day.year%100!=01 Id ay.y ear%400=0;/*判定year为闰年还是平年,lp=0为平年,非 0 为闰年*/for(i=l;ivday.month;i+)/*计算本年中自1 月 1 日起的天数*/day.day+=day_tablp i;return day.day
13、;)7.编写一个函数prime判断给定的整数是否是素数,是返回I,不是返回0,在主函数中实现输入输出。#includeint prime(int n)(if(n0)(for(int i=2;i=n-l;i+)if(n%i=0)return 0;elsereturn 1;)else coutvv”该数出错 J;)int main()(int n;coutvv”请输入一个数:;cinn;if(prime(n)=0)cout0;elsecout 1;return 0;)8.在 主 函 数 中 提 示 输 入 整 数n,编写函数用递归的方法求1+2+3+o o o +n 的值 o#include io
14、stream.hint sum(int n);int main()int n,f;coutvv”请输入 n:n;cinn;f=sum(n);coutl+2.+n u=fendl;return 0;)int sum(int n)(if(n=l)return 1;elsereturn n+sum(n-l);9.采用函数重载的方式分别对两个数求和及三个数求和(参数采用缺省形参值),主函数中实现输入输出。#includeshu(int,int);shu(int,int,int);int main()(int c,i,d;coutnPlease input three integer:endl;c in
15、 c i d;cout sum of two shu(c,i)endl;coutH sum of three shu(c,i,d)endl;return 0;)shu(int c,int i)(return(c+i);)shu(int c,int i,int d)return(c+i+d);1 0.给定一个一维数组,将数组中所有指定值X全部删除,输出删除后内容。#include#define N 10int main()int aN=1,2,3,4,5,6,7,8,9,10);int x,i,j,m;m=N;coutvv”输入要删除的数值(1 -10)nendl;cinx;for(i=0;iN
16、;i+)if(ai=x)m-;for(j=i;jN-l;j+)aj=afj+l;i=0;)cout删|x 后数组的值:endl;for(i=0;im;i+)coutaicoutendl;return 0;)1 1.输入一个十进制整数,将其转换为R进制输出(R值为2-1 6)。#include/十进制数转换成二进制数字void fun_l(int n)(if(n=2)(fun_l(n/2);coutn%2;)十进制数字转换成八进制数字void fun_2(int n)if(n=8)(fun_2(n/8);coutn%8;)上进制数转换成卜六进制数字void fun_3(int n)(switch
17、(n)(case 10:coutvvA;break;case 11:coutB,;break;case 12:coutnCH;break;case 13:coutD;break;case 14:coutnE;break;case 15:coutnFn;break;default:coutn;)void fun_4(int n)(if(n=16)(fun_4(n/16);fun_3(n%16);)主函数void main()(int n;cout请输入 n 的值:endl;cinn;cout上进制数字转换成二进制,八进制,十六进制数字结果如F:endl;fun_l(n);coutendl;/输出
18、结果换行fun_2(n);coutendl;fun_4(n);coutendl;12.定义一个函数用来实现两个数的交换(使用指针变量作为形参),主函数中输出交换之后的结果。#includevoid swap(int*,int*);int main()(int x,y;coutvv”输入两个数将其进行交换 vvendl;c in x y;swap(&x,&y);c o u t x n n y e n d l;return 0;)void swap(int*a,int*b)(int temp;temp=*a;*a=*b;*b=temp;)13.从键盘输入要输出的斐波那契数列的个数,采用动态内存分配
19、的方法定义数组保存数列的内容并输出#include#includevoid sortarray(int IJJnt);int main()(int*a;int i,num;coutvv”输出的斐波那契数列的个数:“;cinnum;a=new intnum;alOJ=O;atl=l;sortarray(a,num);coutvv”分配后的数据:nendl;for(i=0;inum;i+)co u tain n;coutendl;delete J a;return 0;void sortarray(int a,int b)(for(int i=2;ib;i+)ai=ai-2+ai-l;)14.从键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 期末考试
限制150内