2018余姚市程序设计竞赛小学组初赛试题

时间:2022-07-10 23:42:54 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


2018年余姚市程序设计竞赛初赛试题

C++/Pascal语言 二小时完成

全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●



一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案。

1、已知英文字母aASCll代码值是十进制数97,那么字母eASCll 代码十进制表示值是(

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 C500*1000*1000 D500*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码是英国人主持制定并推广使用的。



10IE是目前流行的浏览器软件,它的工作基础是解释执行用( )语言书写的文件。

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) PascalA) 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.用1234(每个数恰好用一次)可组成24个四位数,其中共有________个能11整除?

2.笑笑很喜欢数字游戏,最近他在研究一种不降数,这种数字必须满足从左到右各个数字呈现小于等于的关系,如123446。现在他请你帮他计算一下200以内的自然数中也就是0200(包含0200)一共有多少个不降数 ;同时他还想知道,天的日期组成的区间,12152018之间(包含12152018)一共有多少个不降数_________



余姚市程序设计初赛

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 ,即在 1234567891011 ,数字 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