logo资料库

ACM经典题库+代码.doc

第1页 / 共96页
第2页 / 共96页
第3页 / 共96页
第4页 / 共96页
第5页 / 共96页
第6页 / 共96页
第7页 / 共96页
第8页 / 共96页
资料共96页,剩余部分请下载后查看
第一章:选择结构:
1、开学第一考(1355)
2、小明的考题1——分段函数
3、小明的考题2——数与单词
4、小明的考题3——必杀技
5、四则运算器
6、算日期
第二章:循环
1、分数约简
2、再做分段函数
3、简单的数列求和
4、找闰年
5、小明的自娱自乐
6、Simple a + b
7、几何级数的计算机验证法
8、解铃还须系铃人1
9、解铃还须系铃人2
10、谁是下一个十佳歌手
11、九九乘法表
12、奇偶求和计算
第三章:数组
1、志愿者的工作
2、进制转换
3、第K高的人
4、矩阵乘法
5、寻书之旅1
6、寻书之旅2
7、合并队伍
8、变态杨辉三角
9、不重叠子串数
10、小明的生词本
11、回文号码
12、卡片游戏
第四章:函数
1、石子消耗游戏
2、颠倒的数字
3、进制转换进阶版
4、高精度乘法
5、简单的统计
6、伪ackermann函数
7、简单的几何问题
8、数组的平衡
9、哥德巴赫猜想的验证
10、抛硬币
11、组合
12、子矩阵求和
第五章:指针
1、查找
2、qsort
3、模式匹配
4、矩阵旋转
5、链表插入排序
6、轻松一刻
第六章:自建结构
1、数据排序
2、数列的移动
3、整数分类
4、出队统计
5、寻找最大内角
6、第K早之日
第七章: 文件输入输出
1、简单编辑
2、copy.exe(Simplified)
3、fc.exe(Simplified)
4、归并排序
5、整理成绩
6、借贷记账法
补充题目
第二章 循环
1.输出菱形
2.分解质因数
第三章 数组
1. 矩阵链乘的前奏
2.字母统计
4.数组搬运
第四章 函数
1.数字黑洞
2.Fibonacci中的素数
3.亲密对数
C 语言题库 第一章:选择结构: ............................................................ 2 1、开学第一考(1355) ..................................................... 2 2、小明的考题 1——分段函数)(1356) ......................................3 3、小明的考题 2——数与单词(1357) ........................................4 4、小明的考题 3——必杀技(1358) ..........................................5 5、四则运算器(1359) ..................................................... 6 6、算日期(1360) ......................................................... 6 第二章:循环 .................................................................. 9 1、分数约简(1361) ....................................................... 9 2、再做分段函数(1362) .................................................. 10 3、简单的数列求和(1363) ................................................ 11 4、找闰年(1364) ........................................................ 12 5、小明的自娱自乐(1365) ................................................ 13 6、Simple a + b(1366) .................................................. 14 7、几何级数的计算机验证法(1367) ........................................ 16 8、解铃还须系铃人 1(1368) ...............................................17 9、解铃还须系铃人 2(1369) ...............................................18 10、谁是下一个十佳歌手(1370) ........................................... 20 11、九九乘法表(1371) ................................................... 21 12、奇偶求和计算(1372) ................................................. 22 第三章:数组 ................................................................. 23 1、志愿者的工作(1373) .................................................. 23 2、进制转换(1374) ...................................................... 24 3、第 K 高的人(1375) .................................................... 25 4、矩阵乘法(1376) ...................................................... 26 5、寻书之旅 1(1377) .....................................................27 6、寻书之旅 2(1378) .....................................................28 7、合并队伍(1379) ...................................................... 30 8、变态杨辉三角(1380) .................................................. 31 9、不重叠子串数(1381) .................................................. 33 10、小明的生词本(1382) ................................................. 34 11、回文号码(1383) ..................................................... 35 12、卡片游戏(1384) ..................................................... 36 第四章:函数 ................................................................. 38 1、石子消耗游戏(1385) .................................................. 38 2、颠倒的数字(1386) .................................................... 40 3、进制转换进阶版(1387) ................................................ 41 4、高精度乘法(1388) .................................................... 42 5、简单的统计(1389) .................................................... 44 6、伪 ackermann 函数(1390) .............................................. 45 7、简单的几何问题(1391) ................................................ 46 8、数组的平衡(1392) .................................................... 47 9、哥德巴赫猜想的验证(1393) ............................................ 48 10、抛硬币(1394) ....................................................... 50 11、组合(1395) ......................................................... 51 1 / 96
12、子矩阵求和(1396) ................................................... 53 第五章:指针 ................................................................. 54 1、查找(1411) .......................................................... 54 2、qsort(1412) ......................................................... 55 3、模式匹配(1413) ...................................................... 57 4、矩阵旋转(1414) ...................................................... 58 5、链表插入排序(1415) .................................................. 59 6、轻松一刻(1416) ...................................................... 63 第六章:自建结构 ............................................................. 64 1、数据排序(1397) ...................................................... 64 2、数列的移动(1398) .................................................... 65 3、整数分类(1399) ...................................................... 68 4、出队统计(1400) ...................................................... 69 5、寻找最大内角(1401) .................................................. 71 6、第 K 早之日(1402) .................................................... 73 第七章: 文件输入输出 ........................................................ 75 1、简单编辑 .............................................................. 75 2、copy.exe .............................................................. 76 3、fc.exe ................................................................ 77 4、归并排序 .............................................................. 79 5、整理成绩 .............................................................. 81 6、借贷记账法 ............................................................ 83 补充题目 ..................................................................... 87 第二章 循环 .................................................................. 87 1、输出菱形(1403) ...................................................... 87 2、分解质因数(1404) .................................................... 88 第三章 数组 .................................................................. 89 1、矩阵链乘的前奏(1405) ................................................ 89 2、字母统计(1406) ...................................................... 90 4、数组搬运(1407) ...................................................... 91 第四章 函数 .................................................................. 92 1、数字黑洞(1408) ...................................................... 92 2、Fibonacci 中的素数(1409) .............................................94 3、亲密对数(1410) ...................................................... 95 凤凰花,开两季,一季送走了老一批的 programmer,另一季迎接来新一批的 programmer。 第一章:选择结构: 1、开学第一考(1355) Description: 开学的第一个周末,像往届一样,新生都会参加英语分级考试。所谓英语分级考试就是 2 / 96
为了测试一下新生的英语水平,并将他们分成 1~4,4 个等级。分级规则如下:95 分(含 95 分)以上为 level4,只需修一个学期的大学英语;85 分(含 85 分)至 95 分为 level3, 需修大学英语两个学期;75 分(含 75 分)至 85 分为 level2,需修 3 个学期的大学英语;剩 下的为 level1,对不起,就只能修 4 个学期的大学英语了。小明是刚 12 级计算机系的新 生,他不小心知道了自己的分级考试成绩,于是乎他就迫切的想知道自己会被分在哪一个 level,这不,就麻烦一下新生中大神小强,写一个小程序来判定一下小明会被分在哪一个 level 吧! Input: 输入一个整数 x 代表小明的分数 Output: 输出小明被分在哪一个英语等级,level1、level2、level3、level4,如果分数不在 [0,100]区间内,输出“Error!”(注意:不输出引号) Sample Input: 60 101 Sample Output: level1 Error! #include int main() { int score; scanf("%d",&score); if(score>100) printf("Error!\n"); else if(95<=score) printf("level4\n"); else if(score>=85) printf("level3\n"); else if(score>=75) printf("level2\n"); else if(score>=0) printf("level1\n"); else printf("Error!\n"); return 0; } Description: 2、小明的考题 1——分段函数 小明是一个数学狂,自吹自擂说自己的数学是如何如何的好,但是他的风头却被大神小 3 / 96
强抢光了,小明就很郁闷,自言自语了一句:不就是编程牛逼点嘛,有本事编几个程序出来 解解数学题啊。运气挺背的是,小强就在他后面,不小心就听到了……小强倒是很大方的 说:要不你就出几个题考考我?小明这下就得瑟了,呵,小样,看我不整死你!因为小明不 知大神的底,于是乎第一题就出了一个简单的分段函数题: Input: 变量 x Output: 函数值 f(x) Sample Input: -10 Sample Output: -440 #include int main() { int x,fx,gx; scanf("%d",&x); gx=x*x-550; if(x
Sample Output: eight #include int main() { int x; scanf("%d",&x); switch(x) { case 0:printf("zero\n");break; case 1:printf("one\n");break; case 2:printf("two\n");break; case 3:printf("three\n");break; case 4:printf("four\n");break; case 5:printf("five\n");break; case 6:printf("six\n");break; case 7:printf("seven\n");break; case 8:printf("eight\n");break; case 9:printf("nine\n");break; } return 0; } Description: 4、小明的考题 3——必杀技 小明为了这最后一题煞费苦心,不过他还是没有什么头绪。这天,他去宿舍楼下的邮局 给高中的那群哥们姐妹寄几张咱厦大魅力风光的明信片。抬头的时候瞥了一眼墙上挂着的信 函资费说明,详情如下: 平信分本埠和外埠,按首重和续重计收资费,首重 100 克以内,每重 20 克(不足 20 克 按 20 克计算)本埠 0.80 元,外埠 1.20 元。续重 101~2000 克,每重 100 克(不足 100 克 按 100 克计算)本埠 1.20 元,外埠 2.00 元。 这下,小明可就有主意了。他就用这个信函的资费考考小强。 Input: 输入两个正整数 k,w,k=1 or k=2,k=1 代表本埠,k=2 代表外埠。w 代表信函重量, 单位 g 0 5 / 96
int main() { int k,w,num; double cost,extra_cost,ans; scanf("%d%d",&k,&w); if(k==1) { cost=0.80; extra_cost=1.20; } else { cost=1.20; extra_cost=2.00; } if(w<=100) { if(w%20==0) num=w/20; else num=w/20+1; ans=num*cost; } else { w-=100; ans=5*cost; if(w%100==0) num=w/100; else num=w/100+1; ans+=num*extra_cost; } printf("%.2f\n",ans); return 0; } 5、四则运算器 Description: 三题下来,小明败得彻彻底底的,看着小强写的那些代码,自己瞬间压力山大了。不 过,小明就是小明,灵光忽地乍现:自己何不拜小强为师,这样以后的编程不就有师傅做靠 6 / 96
山,那不就变得 easy 啦?小明说到做到,当即就拜小强为师。小强秉着助人为乐的原则, 也就收下了小明这个徒弟。不过呢,拜师得有考验才行了,这不,就换小强考考小明啦!不 过,小强也不打算怎么为难小强!既然小明数学不错,那就让他去做做简单的数学方面的题 吧。给出一个计算式,求结果。 ps:计算式只包含“+”、“-”、“*”、“/”其中一种运算 Input: 输入一个计算式,格式为:a # b = 。#为运算符。注意,运算符与数之间有空格! Output: 输出计算式的结果,保留 4 位小数。当#为/,即计算除法时,要判断除数是否为 0,若 除数为 0,输出“Error!”(输出无引号) Sample Input: 15 + 23 = Sample Output: 38.0000 #include int main() { double a,b; char c; scanf("%lf %c %lf =",&a,&c,&b); switch(c) { case '+':printf("%.4f\n",a+b);break; case '-':printf("%.4f\n",a-b);break; case '*':printf("%.4f\n",a*b);break; case '/': if(b==0) else break; printf("Error!\n"); printf("%.4f",a/b); } return 0; } Description: 6、算日期 自从收了小明这个徒弟之后,小强的生活就没平静过,小明发扬勤奋好问的精神,总是 缠着小强问这问那的。这天,小强在去食堂的路上不小心看见小明迎面走来,正打算避开他 的时候,不过小明也正好看见小强像他走去,就喊着“师傅师傅”,小强这下没得躲了。小 明问了小强非常意外的问题:师傅,今天几号啊。小强随口答道:XX 号。不过就在这时, 小强却想到了一个可以打发小明的方法,他对小明说:小明啊,你不是想让我给你出出题做 嘛,我正好想到一个,今天是 XXXX 年 XX 月 XX 日,你给我算算今天是今年的第多少天吧! 7 / 96
小明还想问问怎么做来着,只见小强已经开溜了…… (XOJ 1181) Input: 输入一个日期,格式为 yyyy/mm/dd Output: 输出一个整数,表示该日期在当年中为第几天 Sample Input: 2000/03/01 Sample Output: 61 #include int main() { int day,year,month,sum,leap; scanf("%d/%d/%d",&year,&month,&day); switch(month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; } sum=sum+day; if((year%400==0)||(year%4==0&&year%100!=0)) leap=1; else leap=0; if(leap==1&&month>2) sum++; printf("%d\n",sum); return 0; } 8 / 96
分享到:
收藏