logo资料库

NOIP近10年真题阅读程序写结果答案及详细解释C++.docx

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
NOIP 2016(第二十二届)
NOIP 2015(第二十一届)
NOIP 2014(第二十届)
NOIP 2013(第十九届)
NOIP 2012(第十八届)
NOIP 2011(第十七届)
NOIP 2010(第十六届)
NOIP 2009(第十五届)
NOIP 2008(第十四届)
NOIP 2007(第十三届)
NOIP 公众号 50808786@qq.com NOIP2016(第二十二届) 1、//考察基本的 while 循环,求最大和最小值 #include using namespace std; int main(){ int max,min,sum,count=0; int tmp; if (tmp==0) return 0; max = min = sum = tmp; count++; while (tmp!=0){ cin>>tmp; if(tmp!=0) { sum +=tmp; count++; if (tmp>max) max = tmp; if (tmp using namespace std; int main(){ int i=100, x=0,y=0; while (i>0) { i--; x = i%8; if (x==1) y++; } cout << y << endl; return 0; } 1
NOIP 公众号 50808786@qq.com 输出:_13_____________ 3、//首尾交换数组内容 #include using namespace std; int main(){ int a[6] = {1,2,3,4,5,6}; int pi = 0; int pj=5; int t,i; while (pi using namespace std; int main(){ int i,length1,length2; string s1,s2; s1 = "I have a dream."; s2 = "I Have A Dream."; length1 = s1.size(); length2 = s2.size(); for(i=0;i='a' && s1[i]<='z') s1[i] -= 'a' - 'A'; for(i=0;i='a' && s2[i] <='z') s2[i] -= 'a'-'A'; if(s1==s2) 2
NOIP 公众号 50808786@qq.com cout << "=" << endl; else if(s1>s2) cout<<">"< using namespace std; int main(){ int a,b,c; a = 1; b = 2; c = 3; if(a>b) { if(a>c) else cout< using namespace std; struct point{ int x; int y; }; int main(){ struct EX { int a; int b; point c; 3
NOIP 公众号 50808786@qq.com } e; e.a = 1; e.b = 2; e.c.x = e.a+e.b; e.c.y = e.a*e.b; cout << e.c.x << ',' << e.c.y < #include using namespace std; int main(){ string str; int i; int count; count = 0; getline(cin,str); for(i=0;i='a' && str[i]<='z') count++; } cout << "It has "< using namespace std; void fun(char *a,char *b){ a = b; (*a)++; } int main(){ char c1,c2,*p1,*p2; c1 = 'A'; c2 = 'a'; p1 = &c1; 4
NOIP 公众号 50808786@qq.com p2 = &c2; fun(p1,p2); cout << c1 < using namespace std; int main(){ int a,b,c,d,ans; cin >> a>>b>>c; d=a-b; a = d+c; ans = a*b; cout<< "Ans= " < using namespace std; int fun(int n){ if (n==1) return 1; if (n==2) return 2; return fun(n-2)-fun(n-1); } int main(){ int n; cin >> n; cout << fun(n)<
NOIP 公众号 50808786@qq.com 输出:-11________________ 3、{注:考察对字符的操作,ord 和 chr 函数的理解} #include #include using namespace std; int main() { string st; int i,len; getline(cin,st); len = st.size(); for(i=0;i='a' && st[i]<='z') st[i] = st[i]-'a'+'A'; } cout < using namespace std; const int SIZE = 100; int main() { int p[SIZE]; int n,tot,i,cn; tot = 0; cin >> n; for(i=1;i<=n;i++) p[i] = 1; for(i=2;i<=n;i++){ if(p[i]==1) tot++; cn = i*2; while(cn<=n){ p[cn] = 0; 6
NOIP 公众号 50808786@qq.com cn +=i; } } cout< using namespace std; int main() { int a,b; cin>>a>>b; cout< using namespace std; int main() { int a,b,u,i,num; cin>>a>>b>>u; num = 0; for(i=a;i<=b;i++) if((i%u) ==0) num++; cout<
NOIP 公众号 50808786@qq.com 3、{注:本题的实质是二分法查找指定数据} #include using namespace std; int main() { const int SIZE=100; int n,f,i,left,right,middle,a[SIZE]; cin>>n>>f; for(i=1;i<=n;i++) left = 1; right =n; do{ cin>>a[i]; middle = (left+right) /2; if(f<=a[middle]) right = middle; else left = middle+1; } while(left using namespace std; int main() { const int SIZE = 100; int height[SIZE],num[SIZE], n,ans; cin>>n; for(int i=0;i>height[i]; num[i]=1; for(int j=0;j=num[i])) num[i] = num[j]+1; } 8
分享到:
收藏