2018余姚市程序设计竞赛小学组初赛试题
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
2018年余姚市程序设计竞赛初赛试题 (C++/Pascal语言 二小时完成 ) ● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●● 一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案。) 1、已知英文字母a的ASCll代码值是十进制数97,那么字母e的ASCll 代码十进制表示值是( ) A)98 B)99 C)100 D)101 2、摩尔定律(Moore's law)是由英特尔创始人之一戈登·摩尔(Gordon Moore)提出来的。根据摩尔定律,在过去几十年,单块集成电路的集成度大约每( )个月翻一番。而2015年开始摩尔定律由于工艺的限制已经失效了。 A) 6 B) 12 C) 18 D) 36 3、关于CPU下面哪个说法是错误的( ): A) CPU全称为中央处理器(或中央处理单元)。 B) CPU能直接运行机器语言。 C) CPU最早是由Intel公司发明的。 D) CPU由运算器与控制器组成。 4、关于计算机内存下面的说法哪个是正确的: A) 随机存储器(RAM)的意思是当程序运行时,内存中数据内容是随机而不确定的。 B) 1MB内存通常是指1024*1024*8字节大小的内存。 C) 寄存器是硬盘的重要组成部分。 D) 一般内存中的数据即使在断电的情况下也能保留2个小时以上。 5、某计算机的硬盘容量为500G,这里500G容量是( )字节。 A) 500 B) 500*1024 C、500*1000*1000 D、500*1024*1024*1024 6、操作系统是一类重要的系统软件,下面几个软件中,不属于系统软件的是( )。 A) WPS B) MS-DOS C) Linux D) Windows 10 7、不属于Internet的功能是( ) A) 聊天 B) 远程教育 C) 查询资料 D) 传送能量 8、计算机网络最主要的优点是( )。 A) 运算速度快 B) 共享资源 C) 精度高 D) 存储容量大 9、关于ASCII,下面哪个说法是正确的: A) ASCII码就是键盘上所有键的唯一编码。 B) 一个ASCII码使用一个字节的内存空间就能够存放。 C) 最新扩展的ASCII编码方案包含了汉字和其他欧洲语言的编码。 余姚市程序设计初赛 1 D) ASCII码是英国人主持制定并推广使用的。 10、IE是目前流行的浏览器软件,它的工作基础是解释执行用( )语言书写的文件。 A)VC B)HTML C)BASIC D)HTTP 11、以下运算结果为true的是 ( ) (C++)A) 5>5 B) (5>=4) && (7<=7) C) false D) (6<4) && (5>=5) (Pascal)A) 5>5 B) (5>=4) and (7<=7) C) false D) (6<4) and (5>=5) 12、评价一个算法的好坏有多种指标,下列不是算法评价指标的是( )。 A) 正确性 B) 运行时间 C) 占用空间 D) 迭代次数 13、将十进制数100.875转化成二进制数:(100.875)10=( ) 2. A) 100.875 B) 1100100.111 C) 1100100.101 D) 10011.011 14、设栈S的初始状态为空,元素a, b, c, d, e, f, g依次入栈,以下出栈序列不可能出现的有( )。 A) a, b, c, e, d, f, g B) b, c, a, f, e, g, d C) d, c, f, e, b, a, g D) g, e, f, d, c, b, a 15、插入排序最好情况下的算法复杂度为: A) O(log2n) B) O(n) C) O(nlog2n) D) O(n2) 16. 已知 6 个结点的二叉树的先根遍历是 A B C D E F,后根遍历是F E D C B A,则该二叉树的可能的中根遍历是( ) A) C B E D A F B) F E D C B A C) B A C E D F D) B C A D F E 17、对按关键字排序好的线性表进行二分查找,该线性表适合的存储结构为( )。 A) 链接存储 B) 索引存储 C) 散列存储 D) 顺序存储 18、一棵完全二叉树的结点总数为18,其叶结点数为( )。 A) 7个 B) 3个 C) 9个 D) 8个 19、设有100个数据元素,已经从小到大排好序,采用折半搜索时,最大比较次数为( )。 A) 6 B) 7 C) 8 D) 9 20、计算机科学与技术领域的最高奖是( ): A) 菲尔兹奖 B) 诺贝尔奖 C) 图灵奖 D) 普利兹奖 二.问题求解(共2题,第一题5分,第二题第一空2分,第二空3分,共计10分) 1.用1、2、3、4(每个数恰好用一次)可组成24个四位数,其中共有________个能被11整除? 2.笑笑很喜欢数字游戏,最近他在研究一种不降数,这种数字必须满足从左到右各个数字呈现小于等于的关系,如123,446。现在他请你帮他计算一下200以内的自然数中也就是0到200(包含0和200)一共有多少个不降数 ;同时他还想知道,今天的日期组成的区间,1215到2018之间(包含1215和2018)一共有多少个不降数_________。 余姚市程序设计初赛 2 三.阅读程序写结果(共4题,每题8分,共计32分) 1. C++ 代码: #include using namespace std; int main(){ } int v,a,b,s; scanf("%d%d%d",&a,&b,&v); s=(v-a)/(a-b)+1; if((v-a)%(a-b)>0) printf("%d\n",s+1); else printf("%d\n",s); return 0; Pascal 代码: var v,a,b,s:longint; begin readln(a,b,v); s:=(v-a) div (a-b)+1; if (v-a) mod (a-b)>0 then writeln(s+1) else writeln(s); end. 输入:20 5 80 输出:_______ 2. C++ 代码: #include Pascal 代码: var n,i,x,ans:longint; a:array[0..99]of longint; begin readln(n); for i:=1 to n do read(a[i]); for i:=1 to n do begin read(x); if a[i]>x then ans:=ans+1; end. end; writeln(ans); int a[100],x,n,ans=0; int main() { scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) { scanf("%d",&x); if (a[i]>x) ans++; } printf("%d\n",ans); return 0; } 输入:19 28 38 29 9 22 31 21 8 37 11 6 25 30 15 1 27 5 24 19 16 23 26 33 13 4 3 7 12 17 35 32 34 2 10 20 18 36 14 输出:_______ 余姚市程序设计初赛 3 3. C++ 代码: #include Pascal 代码: var x,y,n,t:int64; begin readln(n); x:=0;y:=1; while y begin t:=x; x:=y; y:=t+y; end; t:=n-x;
if t>y-n then t:=y-n; writeln(t); end.
using namespace std;
int main(){
long long x,y,n,t;
scanf("%lld", &n);
x=0; y=1;
while(y
t=x; x=y;
y=t+x;
}
t=n-x;
if(t>y-n) t=y-n;
printf("%lld\n",t);
return 0;
}
输入:400
输出: 4.
C++ 代码:
#include using namespace std; int n,m; int tot=0;
void work(string s1, string s2, string s3){ } int main(){ }
scanf("%d%d", &n,&m); string tmp="";
for(int i = 1; i <= n; i++)
tmp += char(i+'0'); work("","",tmp); printf("%d\n", tot); return 0;
if(s2=="" && s3==""){ }
if(s2!="") work(s1+s2[0],s2.substr(1,s2.length()-1),s3); if(s3!="") work(s1,s3[0]+s2,s3.substr(1,s3.length()-1));
if(s1[0]==m+'0') tot++; return;
余姚市程序设计初赛
4
Pascal 代码: var
n,m,tot,i:longint;
tmp:string;
procedure work(s1,s2,s3:string); begin end; begin
readln(n,m); end.
tmp:=''; for i:=1 to n do
tmp:=tmp+chr(i+48); work('','',tmp); writeln(tot);
if(s2='') and (s3='') then begin end;
if(s2<>'') then work(s1+s2[1],copy(s2,2,length(s2)-1),s3); if(s3<>'') then work(s1,s3[1]+s2,copy(s3,2,length(s3)-1));
if(s1[1]=chr(m+48)) then inc(tot); exit;
输入:6 3
输出:
四.完善程序 (前8空,每空3分,后2空,每空2分,共28分) 1、(计数问题)试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次 。 样例输入: 11 1
样例输出: 4
余姚市程序设计初赛
5
C++ 代码: #include using namespace std; int calc(int x, int t) {
int tmp = 0;
while( ① ) {
if(x % 10 == t) tmp++; ② ; }
return ③ ; } int main() {
int n , x;
scanf("%d%d",&n,&x); int ans = 0;
for(int i = 1;i <= n;i++) ans += ④ ; printf("%d\n", ⑤ ); return 0; }
Pascal 代码: var var end; begin end.
readln(n,x); ans:=0; for i:=1 to n do
ans:=ans+ ④ ; writeln( ⑤ ); tmp:longint; tmp:=0;
while ① do begin end;
exit( ③ );
if x mod 10=t then inc(tmp); ② ;
begin
n,x,i,ans:longint;
function calc(x,t:longint):longint;
2、(战马列队) 检阅战马的时候。战马分为白色和棕色两种,一字排开,指挥官希望他的战马队列尽可能整齐好看,将相同颜色的战马放在一起。
大部分人都喜欢高头白马,因此,指挥官要求白马排在前面,棕马排在后面。现在,N匹战马都已经在广场列队。为了达到要求,指挥官可以调换任意一个位置上的战马(有充足的备用战马)。问至少调换多少匹可以达到要求。 第一行一个整数N,表示已经排队的战马数量。
第二行一个字符串,表示当前队列从前到后战马的颜色,只包含两种字符,"W"表示白马,"B"表示黑马。
输出一个数字,表示至少需要调换多少匹战马。
【样例输入】 5
WBWBW 【样例输出】 2
对于样例,可以把棕马都换成白马WWWWW,或者WWWBB,都是符合要求的队列,至少调换2匹。
算法提示:枚举棕马和白马的分界点,分别统计左边棕马的数量和右边白马的数量,对于每个分界点统计要调换的战马数,最终统计最小值。
余姚市程序设计初赛
6
C++ 代码:
#include using namespace std; int main(){ }
int n; string s; int min=10000000; cin>>n; cin>>s;
for(int i=0; i<=n; i++){ }
printf("%d\n", ⑤ ); return 0;
string t=""; int k=0;
for(int j=0; j
t=t+"W"; t=t+ ② ; if(t[j]!=s[j]) ③ ; for(int j=i; j< ① ; j++) for(int j=0; jif(k ④ ;
Pascal 代码: var end.
n,i,j,k,min:longint; t,s:ansistring; readln(n); readln(s); min:=maxlongint; for i:=0 to n do end;
writeln( ⑤ );
t:=''; k:=0; for j:=1 to i do
t:=t+'W';
t:=t+ ② ;
if t[j]<>s[j] then ③ ; for j:=i+1 to ① do for j:=1 to n do
if k ④ ;
begin
begin
余姚市程序设计初赛
7
本文来源:https://www.wddqw.com/doc/7ae9effa87254b35eefdc8d376eeaeaad0f31643.html