编程期中考整理文件.docx
- 文档编号:17781578
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:23
- 大小:24.88KB
编程期中考整理文件.docx
《编程期中考整理文件.docx》由会员分享,可在线阅读,更多相关《编程期中考整理文件.docx(23页珍藏版)》请在冰点文库上搜索。
编程期中考整理文件
1145校门外的树:
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。
我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。
这些区域用它们在数轴上的起始点和终止点表示。
已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。
现在要把这些区域中的树(包括区域端点处的两棵树)移走。
你的任务是计算将这些树都移走后,马路上还有多少棵树。
Input:
输入的第一行有两个整数L(1<=L<=10000)和M(1<=M<=100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。
接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
Output:
输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
#include
boolprime[10002];
intmain()
{
intL,M,a,b,s=0;
scanf("%d%d",&L,&M);
for(inti=0;i prime[i]=1; for(inti=0;i { scanf("%d%d",&a,&b); for(intj=a;j<=b;j++) prime[j]=0; } for(inti=0;i if(prime[i]==1) s++; printf("%d\n",s); return0;} 1159Sum: Givenseveralpositiveintegers,calculatethesumofthem. Input: Thereareseveraltestcases,onelineforeachcase.Foreachline,thefirstnumber,N(N<=100000),isthenumberofpositivenumbersandthenNpositivenumbersfollowed. Output: Outputeachsuminasinglelinewithoutleadingzeros. Sample: 111111*********1111111111111111111111111*********1111111111111111111 2222222222222222222222222222222222 #include #include intmain() { intn; while(scanf("%d",&n)! =EOF) { chara[150]; intsum[150]={0}; intlen; for(inti=0;i { scanf("%s",a); len=strlen(a); intnum[150]={0}; for(intj=0;j num[j]=a[len-1-j]-'0'; for(intj=0;j<150;j++) { sum[j]=sum[j]+num[j]; sum[j+1]=sum[j+1]+sum[j]/10; sum[j]=sum[j]%10; } } for(intj=149;j>=0;j--) { if(sum[j]! =0) { len=j;break; } } for(intj=len;j>=0;j--) printf("%d",sum[j]); printf("\n"); } return0;} 1147谁拿了最多奖学金: 1)院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得; 2)五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得; 3)成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得; 4)西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得; 5)班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得; 只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。 例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。 现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。 输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。 如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。 第三行是这N个学生获得的奖学金的总数。 #include #include structSTUDENT { charname[25]; intqmcj,bjpy; charBJGB; charXBXS; intlws; intjjzs; }; STUDENTstudent[100]; intmain() { inti,n; scanf("%d",&n); for(i=0;i scanf("%s%d%d%c%c%d",student[i].name,&student[i].qmcj,&student[i].bjpy,&student[i].BJGB,&student[i].XBXS,&student[i].lws); ints=0; for(i=0;i { ints1,s2,s3,s4,s5,s6; if(student[i].qmcj>80&&student[i].lws>=1) s1=8000;elses1=0; if(student[i].qmcj>85&&student[i].bjpy>80) s2=4000;elses2=0; if(student[i].qmcj>90) s3=2000;elses3=0; if(student[i].qmcj>85&&student[i].XBXS=='Y') s4=1000;elses4=0; if(student[i].bjpy>80&&student[i].BJGB=='Y') s5=850;elses5=0; student[i].jjzs=s1+s2+s3+s4+s5; } inttotal=0; for(i=0;i { total+=student[i].jjzs; } intmax=student[0].jjzs; intk=0; for(i=0;i { if(student[i].jjzs>max) { max=student[i].jjzs; k=i; } } printf("%s\n%d\n%d\n",student[k].name,max,total); return0;} 1200: 包括多组数据,当n=0时结束程序。 输入奇数个数,如121,有一个2是无法匹配的。 即数字出现奇数次的,输出这个数字。 #include #include usingnamespacestd; inta[101]; intmain() { intn; while(scanf("%d",&n),n! =0) { for(inti=0;i scanf("%d",&a[i]); sort(a,a+n); for(inti=0;i { if(a[i]! =a[i+1]) { printf("%d\n",a[i]);break; } else i=i+2; } } return0;} 1294: 高级机密: 越界的问题。 注意想办法去利用你要的数,一般是余数 (a^b)modc输入a,bc,计算这个式子。 #include intmain() { inta,b,c,d=1; scanf("%d%d%d",&a,&b,&c); a=a%c; for(inti=0;i {d=d*a;d=d%c;} printf("%d\n",d); return0; } 输入一组数,排列后每隔m个数输出一个。 #include #include intA[100000]; usingnamespacestd; intmain() { intn,m; while(scanf("%d",&n)) { scanf("%d",&m); if(n! =0) { for(inti=0;i scanf("%d",&A[i]); sort(A,A+n); for(inti=0;i { if(i printf("%d",A[i]); else printf("%d",A[i]); i+=m; } printf("\n"); } elsebreak; } return0;} 筛选法: #include usingnamespacestd; boolprime[105000]; intmain() { intn,i,s=0; cin>>n; for(inti=1;i<=105000;i++) prime[i]=1; for(i=2;i<=105000;i++) for(intj=2;i*j<105000;j++) prime[i*j]=false; for(inti=2;i<=105000;i++) if(prime[i]) { s++; if(s==n) cout< } return0;} 校园歌手大赛每组数据第一行两个正整数nm(3<=n,m<=100),表示有n个评委,m个选手。 接下来n行,每行m个正整数。 每行表示一个评委给m个选手的分数,分数为[0,100]的整数。 将结果输出对于每组输入数据输出m行,每行表示一个选手的得分,结果保留2位小数。 #include #include usingnamespacestd; intA[100][100]; intmain() { intT,n,m,i,j,c,b,max,min;doublek; scanf("%d",&T);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 期中 整理 文件