《NOIP初赛-模拟试题-byOIStore(c~).doc》由会员分享,可在线阅读,更多相关《NOIP初赛-模拟试题-byOIStore(c~).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-_NOIP 初赛模拟试题初赛模拟试题 by OI Store (提高组(提高组 C+语言语言 二小时完成)二小时完成) 一、单项选择题(共一、单项选择题(共 10 题,每题题,每题 1.5 分,共计分,共计 15 分。每题有且仅有一个正确答案。)分。每题有且仅有一个正确答案。) 1. 建立了计算机最主要的结构原理的人是( )。 A. 图灵 B. 比尔盖茨 C. 冯诺伊曼 D. 克拉拉丹 E. 哥德尔 2. 设 a、b、c 是三个布尔型(boolean)的变量,则表达式(ab)(bc)(ca)(aa)(bb)的值( )。 A. 始终为 true B. 始终为 false C. 当且仅当 c 为
2、 true 时为 false D. 当且仅当 a 与 b 均为 true 时为 true E. 依赖于 a、b、c 三者的值 3. 设 a、b 为两个浮点(float)型变量,下面的表达式中最有可能为真的是( )。A. a=b B. a*a+2*a*b+b*b=(a+b)*(a+b) C. (a+b)*(a-b)+b*b-a*a3*S(3)+2*S(2)-1 C. S(0)2*S(3)+S(2) E. S(0) #include using namespace std; int main()int a,b,c,i,s300;cinabc;s0=a;s1=b;for (i=2;i #includ
3、e using namespace std; void get()char c;cinc;if (c!=!) get();cout #include using namespace std; double f(double d)-_return 1.0/(1-d); int main()double a;int b,i;cinab;for (i=b;i=1;i-)a=f(a);printf(“%.1fn“,a);return 0;输入:0.5 1000输出:26.程 序:#include #include using namespace std; int s100,ii,i,j,n,swap;
4、 bool r; void swp(int i,int j)int tmp;tmp=si;si=sj;sj=tmp; void rev(int i,int j)while (in;for (i=0;isi;i=n-1;while (true) ii=i;i-;if (si=sj);swp(i,j);rev(ii,n- 1);break;for(i=0;i #include #include #include #include using namespace std; int s100,t100,a,b,g,i,j,d; int gcd(int a,int b)if (b=0) return a
5、;else _(1)_; void work(int a,int b)i=0;-_d=1;while (true)if (a=0) break;a*=10;ti=a;si=a / b;a=a % b;for (j=0;jab;if (ab) g=gcd(a,b);else _(4)_;a/=g;b/=g;_(5)_;a%=b;work(a,b);return 0; 28.题目描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种 类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之 和。可以看出,所有的果子经过
6、 n-1 次合并之后,就只剩下一堆了。多多在合并 果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。 假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是 设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。 例如有 3 种果子,数目依次为 1,2,9。可以先将 1、2 堆合并,新堆数目为 3, 耗费体力为 3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 12, 耗费体力为 12。所以多多总共耗费体力=3+12=15。可以证明 15 为最小的体力 耗费值。 输入:输入包括
7、两行,第一行是一个整数 n(1 #include using namespace std; int s115000,s215000,s1Low,s1hi,s2Low,s2hi,r,L,s,x,i,min1,min2; int peeksmall()min1=1000000000;min2=1000000000;if(s1Low!=s1hi) min1=s1s1Low;if (s2Low!=s2hi) min2=s2s2Low;if (_(1)_) return s1s1Low+;else return s2s2Low+; void swap(int L,int r)int tmp;tmp=s1r;s1r=s1L;s1L=tmp; void sort(int Low,int hi)int L;if (Low=hi) _(2)_;else x=s1(Low+hi) / 2;swap(Low,_(3)_);L=Low;r=hi;while (L=x) r-;s1L=s1r;while (Ls1hi;for (i=0;is1i;sort(0,_(5)_);s=0;for (i=s1hi-1;i=1;i-)s2s2hi=peeksmall()+_(6)_;-_s=s+s2s2hi;s2hi+;coutsendl;return 0;