编程猫2019NOIP冬令营入学试题

此表单用于参加noip营学生的入学考试,学生需测试通过后才可入营。本试题由编程猫团队发布,不可外传,编程猫拥有本试题及活动的解释权。
考生姓名及生日(格式 张三三20080101)
    ____________
家长姓名及手机
    ____________
一、判断题(每题6分,共30分)
如果没有设置循环终止的条件,那么循环语句就会不断重复执行下去。 
变量可以先使用,之后补上对它的定义。
给变量重新赋值时,原来的值会被覆盖,无法找回。
一个字符串是由许多零散的个体字符组成,不能当成一个整体来看待。
只要写程序的时候没有报出错误信息,程序运行时就不可能有错。
二、选择题(每题6分,共18分)
2019年2月5日是星期二,那么2018年12月24日是____
星期一
星期二
星期三
星期四
下列不能编写、调试程序的软件是_____________。
源码编译器
海龟编译器
代码岛2.0
编程猫格式工厂
如果a>b为真,x>y为假,那么表达式a>b且x>y的值为______________,表达式a<=b或x<=y的值为_________________。
假;假
假;真
真;假
真;真
三、 填空题(每题6分,共12分)
二进制数01001010与二进制数01011110相加的结果是________(用二进制数表示)。
    ____________
对于序列{a1,a2,…,an},我们称(i,j)为逆序对当且仅当i<j且ai>aj,比如在序列{2,3,1}中,(3,1)和(2, 1)是逆序对,而(2,3)不是逆序对。请问序列{4,2,1,3}的逆序对数量为________。(填数字即可)
    ____________
-----------------------------------------------------------------------------------------------------------------------------------------------

四、程序题,考生可选择其中一门语言作答(4种语言,各语言均为10空,共40分)

注:考生可根据自己的语言基础 选择一种语言 作答,如果都做了,按 高分 计分。(注意用逗号分隔答案)

A、python程序题

质数指的是 在大于1的自然数中,除了1和它本身以外不再有其他因子的数。我们编写一个程序,判断一个数是不是质数。首先读入要检查的数a,a如果小于2一定不可能是质数。然后检查从2开始到a-1为止的所有数,看看是不是a的因子。如果a有2到a-1之间的因子,说明a不是质数,否则a就是质数。现在我们来补全这个程序。

a = int ( input ())
if a < 2 :
   
print ( ' 不是质数' )
   
exit ()
isprime =
1
for i in range (___ ___, _____ _ ___):
   
if ____ ___________:
        isprime =
0
if isprime:
   
print ( ' 是质数' )
else :
   
print ( ' 不是质数' )

第1空    ____________
第2空    ____________
第3空    ____________

列表可以用来方便的管理数据,对列表的操作是程序员必须掌握的技能。阅读下面的程序,请依次写出程序输出的结果。

a = [ 3 , 2 , 5 , 1 ]
a.remove(
2 )
a.append(
1 )
print (a)     

第1空    ____________
第2空    ____________
第3空    ____________
第4空    ____________

在python中,若对一个字典进行如下操作,输出的结果应该是

box = {}
box[
'toy' ] = 'rabbit'

print (box[ 'toy' ])
print (box.pop( 'toy' ))
print (box.get( 'toy' ))

第1空    ____________
第2空    ____________
第3空    ____________
B、kitten程序题

如下三种方式求得的总和分别为多少?
第1空:


第2空:

第3空:
​​​​​​​

第1空    ____________
第2空    ____________
第3空    ____________

列表可以用来方便的管理数据,对列表的操作是程序员必须掌握的技能。对于给定列表,执行如下操作后,列表中各元素的值是多少?
​​​​​​​

第1空    ____________
第2空    ____________
第3空    ____________
第4空    ____________

下面的程序中,有两个角色,一个为编程猫,另一个为雷电猴。他们各自的代码如下,程序中各变量的初始值为0。请你写出程序运行结果。
编程猫的代码:

雷电猴的代码:
​​​​​​​

(雷电猴)计数:    ____________
(编程猫)计数:    ____________
全局变量:    ____________
C、C语言程序题

质数指的是在大于1的自然数中,除了1和它本身以外不再有其他因子的数。我们编写一个程序,判断一个数是不是质数。首先读入要检查的数a,a如果小于2一定不可能是质数。然后检查从2开始到a-1为止的所有数,看看是不是a的因子。如果a有2到a-1之间的因子,说明a不是质数,否则a就是质数。现在我们来补全这个程序。

#include <stdio.h>

int
main() {
   
int a;
    scanf(
" %d " ,&a);
   
if (a< 2 ){
        printf(
" 不是质数 \n " );
       
return 0 ;
    }
   
int isprime = 1 ;
   
for ( int __________;________;i++){
       
if (________){
            isprime =
0 ;
        }
    }
   
if (isprime)
        printf(
" 是质数 \n " );
   
else
       
printf( " 不是质数 \n " );
   
return 0 ;
}

第1空    ____________
第2空    ____________
第3空    ____________

运行如下代码,在程序结束之前,数组a中的值是什么?

#include <stdio.h>

int main() {
   
int a[] = { 3 , 2 , 5 , 1 };
   
int m = 1 ;
   
for ( int i= 3 ;i>m;i--){
        a[i] = a[i-
1 ];
    }
    a[m] =
1 ;
   
return 0 ;
}

第1空    ____________
第2空    ____________
第3空    ____________
第4空    ____________

运行如下代码,程序输出的结果是什么?

#include <stdio.h>

int
main() {
   
int a = 2 , b = 3 , c = 4 ;
   
int x = a++;
   
int y = a * b;
   
int z = (b, 1);
    printf(
"x = %d , y = %d , z = %d " ,x,y,z);
   
return 0 ;
}

x=?    ____________
y=?    ____________
z=?    ____________
D、C++程序题

质数指的是在大于1的自然数中,除了1和它本身以外不再有其他因子的数。我们编写一个程序,判断一个数是不是质数。首先读入要检查的数a,a如果小于2一定不可能是质数。然后检查从2开始到a-1为止的所有数,看看是不是a的因子。如果a有2到a-1之间的因子,说明a不是质数,否则a就是质数。现在我们来补全这个程序。

#include <iostream>

int
main() {
   
int a;
    scanf(
" %d " ,&a);
   
if (a< 2 ){
        printf(
" 不是质数 \n " );
       
return 0 ;
    }
   
int isprime = 1 ;
   
for ( int __________;________;i++){
       
if (________){
            isprime =
0 ;
        }
    }
   
if (isprime)
        printf(
" 是质数 \n " );
   
else
       
printf( " 不是质数 \n " );
   
return 0 ;
}

第1空    ____________
第2空    ____________
第3空    ____________

运行如下代码,在程序结束之前,数组a中的值是什么?

#include <iostream>

int main() {
   
int a[] = { 3 , 2 , 5 , 1 };
   
int m = 1 ;
   
for ( int i= 3 ;i>m;i--){
        a[i] = a[i-
1 ];
    }
    a[m] =
1 ;
   
return 0 ;
}

第1空    ____________
第2空    ____________
第3空    ____________
第4空    ____________

运行如下代码,程序输出的结果是什么?

#include <iostream>

int
main() {
   
int a = 2 , b = 3 , c = 4 ;
   
int x = a++;
   
int y = a * b;
   
int z = (b, 1);
    printf(
"x = %d , y = %d , z = %d " ,x,y,z);
   
return 0 ;
}

x=?    ____________
y=?    ____________
z=?    ____________

33题 | 被引用9次

使用此模板创建