欢迎来到天天文库
浏览记录
ID:23931667
大小:322.66 KB
页数:56页
时间:2018-11-11
《NOIP提高组初赛历年试题及答案完善题篇.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NOIP提高组初赛历年试题及答案(完善题篇)完善程序,每年两题,每题每空2-4分,共28分。【数学题目】1、变量赋初值,如果以后用到的是加减运算,则赋初值0;如果以后用到的是乘除运算,则赋初值为1。2、循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m项或者是第n项,如果到了,则在循环中的第二个表达式中用到的是i<=或者i>=。3、循环条件中如果用的是while语句,则循环变量的初值应该在while的外面定义和赋初值,在循环语句中必须给变量自加或者是自减,即i++或i--。【字符串题目】1、把
2、一个数字字符转变成对应的数值的格式是:ch=’1’-‘0’;把大写字母转变为小写字母的格式:ch=ch+32;把小写字母转变为大写字母的格式为:ch=ch-32。2、区分好字符数组中的指针和指针所指的值的关系。在循环语句中,当指针往后走一个位置的时候,用的是指针的自加,而不是指针所指的值的自加。【结构体题目】1、注意定义结构体变量时的格式。2、结构体中成员的调用格式。结构体中的成员分为多种类型,调用结构体中的成员,使用的是“.”或者是“—>”运算符。3、如果返回的是结构体的话,函数的返回类型必须是结构体类型。调用
3、函数的格式中,调用的若是结构体数组,则只用写结构体数组名。【函数题目】1、看函数的返回类型,函数的返回类型必须和return语句返回的表达式的类型一致。2、函数的调用的情况,函数调用时只用写函数的名称,以及函数的参数。如:f1(x)和f2(x,y)。【数组题目】1、求一个数值数组中的所有值的平均值和把大于或者小于平均值的数放到另外一个数组中。首先定义一个变量来存放平均值,如果变量avg已经定义但是没有赋初值,那么这个空填写的内容的为:avg=0;2、求平均值时有两种方法,如果在for语句的后面有avg=avg/N
4、;则第二个空一般的填写时avg+=s[i];如果说没有avg=avg/N;则填写的是:avg+=s[i]/N。3、二维数组遍历时,使用的是两个循环,使用的是循环的嵌套使用,第二个循环填写的内容为:j=0。NOIP2011-1.大整数开方(同普及组2011-2)输入一个正整数n(1≤n≤10^100),试用二分法计算它的平方根的整数部分。#include#includeusingnamespacestd;constintSIZE=200;structhugeint{intlen,
5、num[SIZE];};//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推hugeinttimes(hugeinta,hugeintb)//计算大整数a和b的乘积{inti,j;hugeintans;memset(ans.num,0,sizeof(ans.num));for(i=1;i<=a.len;i++)for(j=1;j<=b.len;j++)ans.num[i+j-1]+=a.num[i]*b.num[j];for(i=1;i<=a.len+b.len;i++){ans.
6、num[i+1]+=ans.num[i]/10;ans.num[i]%=10;}if(ans.num[a.len+b.len]>0)ans.len=a.len+b.len;elseans.len=a.len+b.len-1;returnans;}hugeintadd(hugeinta,hugeintb)//计算大整数a和b的和{inti;hugeintans;memset(ans.num,0,sizeof(ans.num));if(a.len>b.len)ans.len=a.len;elseans.len=b.l
7、en;for(i=1;i<=ans.len;i++){ans.num[i]+=a.num[i]+b.num[i];ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;}if(ans.num[ans.len+1]>0)ans.len++;returnans;}hugeintaverage(hugeinta,hugeintb)//计算大整数a和b的平均数的整数部分{inti;hugeintans;ans=add(a,b);for(i=ans.len;i>=2;i--){ans.num
8、[i-1]+=(ans.num[i]%2)*10;ans.num[i]/=2;}ans.num[1]/=2;if(ans.num[ans.len]==0)ans.len--;returnans;}hugeintplustwo(hugeinta)//计算大整数a加2之后的结果{inti;hugeintans;ans=a;ans.num[1]+=2;i=1;while((i<
此文档下载收益归作者所有