#605. CSP-J1模拟题

CSP-J1模拟题

一、单项选择题(共 20 题,每题 1.5 分,共计 30 分;每题且仅有一个正确选项)

1、计算机如果缺少( ),将无法正常启动。

{{ select(1) }}

  • 内存
  • 鼠标
  • U 盘
  • 摄像头

2.一片容量为 8GB 的 SD 卡能存储大约( )张大小为 2MB 的数码照片。 {{ select(2) }}

  • 1600
  • 2000
  • 4000
  • 16000

3.有人认为,在个人电脑送修前,将文件放入回收站中就是已经将其删除了。这种想法是( )。 {{ select(3) }}

  • 正确的,将文件放入回收站意味着彻底删除、无法恢复
  • 不正确的,只有将回收站清空后,才意味着彻底删除、无法恢复
  • 不正确的,即使将回收站清空,文件只是被标记为删除,仍可能通过恢复软件找回
  • 不正确的,只要在硬盘上出现过的文件,永远不可能被彻底删除

4.主存储器的存取速度比中央处理器(CPU)的工作速度慢得多,从而使得后者的效率受到影响。而根据局部性原理,CPU 所访问的存储单元通常都趋于聚集在一个较小的连续区域中。于是,为了提高系统整体的执行效率,在 CPU 中引入了( )。 {{ select(4) }}

  • 寄存器
  • 高速缓存
  • 闪存
  • 外存

5.十进制数 0.5 与八进制数( )值相等。 {{ select(5) }}

  • 0.8
  • 0.5
  • 0.1
  • 0.4

6. 计算机用户可以根据需要安装软件,那么计算机的软件系统一般分为( ) {{ select(6) }}

  • 系统软件和应用软件
  • 管理软件和控制软件
  • 军用软件和民用软件
  • 高级软件和一般软件

7.关于互联网,下面的说法哪一个是正确的( )。 {{ select(7) }}

  • 新一代互联网使用的 IPv6 标准是 IPv5 标准的升级与补充。
  • 互联网的入网主机如果有了域名就不再需要 IP 地址。
  • 互联网的基础协议为 TCP/IP 协议。
  • 互联网上所有可下载的软件及数据资源都是可以合法免费使用的

8.关于程序设计语言,下面哪个说法是正确的: {{ select(8) }}

  • 加了注释的程序一般会比同样的没有加注释的程序运行速度慢。
  • 高级语言开发的程序不能使用在低层次的硬件系统(如:自控机床)或低端手机上。
  • 高级语言相对于低级语言更容易实现跨平台的移植。
  • 以上说法都不对。

9、已知大写字母 A 的 ASCII 编码为 65(十进制),则大写字母 J 的十进制 ASCII 编码为: {{ select(9) }}

  • 71
  • 72
  • 73
  • 74

10.广域网的英文缩写是( )。 {{ select(10) }}

  • LAN
  • WAN
  • MAN
  • LNA

11.如果 a 和 b 都是整形,a 的值为 5,b 的值为 2,那么 a/b 运算结果为( )。 {{ select(11) }}

  • 2
  • 2.5
  • 5
  • 1

12.在 c++中使用 cin 和 cout 应该调用( )库。 {{ select(12) }}

  • iostream
  • cstdio
  • cmath
  • stack

13.整形变量 a 和 b,a 的值为 5,执行语句 b=++a 后,b 的值为( ) {{ select(13) }}

  • 5
  • 6
  • 0
  • 1

14.n 是一个三位数,那 n 的十位数为( ) {{ select(14) }}

  • (n%10)/10
  • (n/100)%10
  • (n/100)%100
  • (n%100)/10

15.C++中 x 取值范围大于 1 并且小于 100 正确表示方法( ) {{ select(15) }}

  • x>1&&x<100
  • x>1||x<100
  • x>1&x<100
  • x>1##x<100

16.读入一个整数 a,如果 a 为偶数在屏幕上输出“yes”,如果 a 为奇数在屏幕上输出“no”。为实现该功能程序①处应该填写( ) {{ select(16) }}

  • a/2= =1
  • a/2= =0
  • a%2=0
  • a%2= =0

#include <iostream>

using namespace std;

int main() {

int a;

cin>>a;

if (① )

cout<<"yes";

else

cout<<"no";

}

17.如果 a 的值为 2,执行以下代码段输出( )

switch(a) {

case 1:cout<<1;

case 2:cout<<2;

case 3:cout<<3;

default:cout<<"error";

} {{ select(17) }}

  • 23 error
  • 2
  • 23
  • error

18.编写程序计算 2+12+22+……102+……1002,①处应该填写( )

#include<iostream>

using namespace std;

int main()

{

int i,s;

s=0;

for(i=2;i<=1002; ①)

s=s+i;

cout<<s;

} {{ select(18) }}

  • i=i+1
  • i=i+10
  • i=i+2
  • i=i+100

19.执行以下程序段输出( )

for(i=1;i<=5;i=i+1) {

if (i= =3)

continue;

cout<<i;

} {{ select(19) }}

  • 45
  • 12
  • 12345
  • 1245

20.执行以下程序段输出( )

a=123;

s=0;

while(a>0)

{

s=s+a%10;

a=a/10;

}

cout<<s; {{ select(20) }}

  • 6
  • 123
  • 3
  • 12

二、程序阅读(每题 4 分,共 40 分)

1.楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶,计算上楼共有多少种不同的走法。当 N=1 时,只有 1 种走法;N=2 时有 2 种走法;N=5 时,有 8 种走法。 {{ select(21) }}

  • 正确
  • 错误

2. A 队和 B 队各有 5 名选手围坐一桌进行比赛,比赛规定相同队伍选手必须相隔就坐,即每个 A 队选手左右旁都是 B 队选手,每个 B 队选手左右旁都是 A 队选手。那么,这一桌一共有 1440 种不同的就坐方案。 注:如果在两个方案中,每个选手左右相邻的选手相同,则视为同一种方案。 {{ select(22) }}

  • 正确
  • 错误

#include<iostream>

using namespace std;

int main()

{

int a,b,c,d;

cin>>a>>b;

a=a+b;

b=a%10;

c=a-b;

d=a/10;

cout<<a<<endl;

cout<<b<<endl;

cout<<c<<endl;

cout<<b*10+d<<endl;

}

输入:15

23

输出:

38

8

30

83 {{ select(23) }}

  • 正确
  • 错误

4.

#include<iostream>

using namespace std;

int main()

{

int a,b,c;

cin>>a>>b>>c;

if (a>b&&b>c)

cout<<a<<' '<<b<<' '<<c<<' '<<endl;

if (a>c&&c>b)

cout<<a<<' '<<c<<' '<<b<<' '<<endl;

if (b>a&&a>c)

cout<<b<<' '<<a<<' '<<c<<' '<<endl;

cout<<"over";

}

输入:3 2 1

输出:

3 2 1 {{ select(24) }}

  • 正确
  • 错误

5.

#include<iostream>

using namespace std;

int main()

{

int a,b,c;

cin>>a>>b;

c=a;

while(c%b!=0)

{

c=c+a;

cout<<c<<endl;

}

}

输入:12 15

输出:

60

{{ select(25) }}

  • 正确
  • 错误

6.

#include<iostream>

using namespace std;

int main()

{

int i,j;

for(i=1;i<=4;i++)

{

j=4;

while(i<=j)

{

cout<<i*10+j<<" ";

j--;

}

cout<<endl;

}

return 0;

}

输出:

14 13 12 11

24 23 22

34 33

44

{{ select(26) }}

  • 正确
  • 错误

#include <iostream>

using namespace std;

int a,b;

int work(int a,int b){

if (a%b) return work(b,a%b); return b; }

int main(){ cin >> a >> b;

cout << work(a,b) << endl;

return 0;

}

输入: 20 12

输出: _______ {{ select(27) }}

  • 5
  • 20
  • 4
  • 12

image

输入: 2 3 5

输出: _______

{{ select(28) }}

  • 512
  • 39
  • 45
  • 416

image

输入: 11 2

输出: {{ select(29) }}

  • 782
  • 783
  • 781
  • 780

image

输入: NOIP 3

输出:

{{ select(30) }}

  • NPOI
  • PNIO
  • OIPN
  • INPO

三、程序完成题(每题 3 分,共 30 分)

1. 数列输出

输入两个整数 m 和 n,输出从 m 到 n 的数列。

例如

输入: 3 5,输出序列为:3 4 5;

输入:5 3 则输出:5 4 3。

image

① {{ select(31) }}

  • n
  • x
  • 空白
  • y

② {{ select(32) }}

  • . >
  • . > =
  • <
  • =

③ {{ select(33) }}

  • i--
  • i
  • i=i+2
  • i++

④ {{ select(34) }}

  • n
  • m
  • m+1
  • 1

⑤ {{ select(35) }}

  • i--
  • i
  • i=i+2
  • i++

2. 同行列对角线的格

输入三个自然数 n,x,y(1<=x<=n,1<=y<=n),输出在一个 n*n 格的棋盘中(行列均从 1 开始编号),与格子(x,y)同行、同列、同一对角线的所有格子的位置。如:n=4,x=2,x=3 表示了棋盘中的第二行第三列的格子,如下图: image

当 n=4,x=2,y=3 时,输出的结果是:

(2,1) (2,2) (2,3) (2,4)

同一行上格子的位置

(1,3) (2,3) (3,3) (4,3)

同一列上格子的位置

(1,2) (2,3) (3,4)

左上到右下对角线上的格子的位置

(4,1) (3,2) (2,3) (1,4)

左下到右上对角线上的格子的位置

image

① {{ select(36) }}

  • i+1
  • i
  • y
  • y+1

② {{ select(37) }}

  • end
  • x
  • endl
  • y

③ {{ select(38) }}

  • y-x
  • i+x-y
  • x-y
  • i+y-x

④ {{ select(39) }}

  • i>=1
  • i>1
  • i>0
  • i<0

⑤ {{ select(40) }}

  • x+y
  • x+y-i
  • i+y-x
  • i+x-y