#GESP002. 模拟测试

模拟测试

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

  1. 在 C++ 程序中用到的一个常量a =5e-6在内存中占( )空间。

    {{ select(1) }}

  • 2 字节
  • 1 字节
  • 4 字节
  • 8 字节
  1. 以下关于CSP 与NOIP 的描述正确的是( )。

    {{ select(2) }}

  • CSP 属于专业认证,只有计算机专业在校生才能参加

  • CSP-J/CSP-S 是中国通信学会举办的程序设计竞赛

  • CSP-J 初赛零分也可以直接报名参加NOIP

  • CSP-J 和CSP-S都是CCF牵头举办的程序设计赛事

  1. 某单位安装一条电信宽带进行上网,运营商说下行速度是500 Mbps。要下载大小为10 GB的软件,最快大约需要( )秒。

    {{ select(3) }}

  • 2
  • 20
  • 200
  • 2000
  1. 大写字母M 的 ASCI 码整数值和空格的ASCII码整数值之和,是字母m 的 ASCII 码整数值。空格的ASCII码整数值是( )。

    {{ select(4) }}

  • A.32
  • B.31
  • C.30
  • D.29
  1. 在微型计算机中,( )的存取速度最快。

    {{ select(5) }}

  • A.RAM
  • B.CD-ROM
  • C. 高速缓存
  • D. 寄存器
  1. 搜索算法中的DFS算法经常用到的数据结构是( )。

    {{ select(6) }}

  • A. 堆
  • B. 栈
  • C. 链表
  • D. 队列
  1. 以下哪个说法是正确的?( )

    {{ select(7) }}

  • A. 花括号“{”和“}”只能作为C++ 函数体的定界符

  • B. 构成C++ 程序的基本单位是函数,所有函数名都可以由用户命名

  • C. 分号是C++语句之间的分隔符,不是语句的一部分

  • D.C++ 程序中的注释部分可以出现在程序中任意合适的地方

  1. 在下列排序算法中,STL中的sort() 函数采用的主要算法是( )。

    {{ select(8) }}

  • A. 选择排序
  • B. 快速排序
  • C. 冒泡排序
  • D. 拓扑排序
  1. 以下哪个说法是正确的?( )

    {{ select(9) }}

  • A. 第一台电子计算机ENIAC是基于集成电路的产物

  • B. 计算机必须要同时有IP 地址和域名才能接入互联网

  • C. david@163.com是一个正确的电子邮箱地址

  • D. 手机上收到的短信,里面的链接可以随意点击打开

  1. 以下不能对二维数组a 进行正确初始化的语句是( )。

    {{ select(10) }

  • A.int a[2][3]={{1,2},{3,4},{5,6}};

  • B.int a[][3]={{1,2},{0}};

  • C.int a[2][3]={0};

  • D.int a[][3]={1,2,3,4,5,6};

  1. 现在有一个八进制数274,其转换成的二进制数是( )。

    {{ select(11) }}

  • A.10111011
  • B.10111101
  • C.10111100
  • D.10101100

12.设A=true,B=false,C=false,D=true, 以下逻辑运算表达式的值为假的是( )。

​ {{ select(12) }}

  • A.(AAB)VC)AD
  • B.(AVB)A(CVD)
  • C.AA(BVC)VD)
  • D. (A人(BVC))VD
  1. 二叉树的中序序列为 ABCEFGHD, 后序序列为 ABFHGEDC, 则 其 前 序 序 列 为 ( )。

    {{ select(13) }}

  • A.CBADEGHF
  • B.CBADEGFH
  • C.CBDAEGFH
  • D.CBADGEFH
  1. 从班级中体育比较好的12人中选5人去参加运动会,其中甲、乙、丙最多同时选两 人,不同的选法共有( ) 种 。

    {{ select(14) }}

  • A.792
  • B.756
  • C.720
  • D.676
  1. 以下哪个结构可以用来存储图?( )

    {{ select(15) }}

  • A. 栈
  • B. 二叉树
  • C. 邻接表
  • D. 队列

二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填T,错误填F

除特殊说明外,判断题每题1.5分,选择题每题3分,共计40分)

(1)

image-20250803004703547

■ 判断题(空格填T或F)

\16. 将 第 2 行 代 码 改 为 #include<stdio.h>, 程序的运行结果不会改变。 {{ input(16) }}

\17. 将第9~10行代码改为cin>>51>>52;, 程序的运行结果不会改变。 {{ input(17) }}

\18. 若输入两个都超过1005位长的正整数,则程序一 定会出错且无输出。 {{ input(18) }}

\19. 在输入00的情况下,将第24行代码中的Lc>0 去 掉 , 程 序 的 运 行 结 果 不 会 改 变 。

{{ input(19) }}

■ 选择题

\20. 若输入数据为10241000,则输出为( )。

​ {{ select(20) }}

  • 24
  • 2024
  • 1024
  • 1000

\21. 若输人数据为1 - 1,则输出为( )。

​ {{ select(21) }}

  • 1
  • 0
  • -1
  • 以上都不是

(2)

image-20250803004643783

■ 判断题(正确填T错误填F)

\22. 该排序算法用到的是不稳定的排序算法。{{ input(22) }}

\23. 将第10行改为mid =l+r>>1;,程序的输出结果不变。{{ input(23) }}

\24. 该排序算法用到了分治的思想。{{ input(24) }}

\25. 第35行代码用到的三目运算符处理代码可以用等价的条件语句来写。{{ input(25) }}

■ 选择题

\26. 在最坏情况下,该算法的时间复杂度和下面哪个算法相当?( )

​ {{ select(26) }}

  • 插人排序
  • 选择排序
  • 堆排序
  • 快速排序

\27. 若 输 出 2 3 5 7 8 ,则输入可能为( )。

​ {{ select(27) }}

  • 12467
  • 87523
  • 34257
  • 82345

(3)

image-20250803005313735

image-20250803005416641

■ 判断题(正确填T错误填F)

\28. 该程序的作用是对n 进行质因数分解并从小到大依次打印。 {{ input(28) }}

\29. 将第9行代码printf("%4d",a[k]); 中的4去掉,程序输出不变。 {{ input(29) }}

\30. 第24~26行的作用是求出n 的所有因子。 {{ input(230}}

\31. 程序运行过程中,若输入n 为0或者负数,程序一定会打印错误,崩溃退出。

{{ input(31) }}

■ 选择题

\32. 若输入6,则输出为( )。

​ {{ select(32) }}

  • 6 3 2
  • 72 36 2
  • 6 2 3
  • 72 2 36

\33. 若输入n=1, 那么输出结果可能是( )。

​ {{ select(33) }}

  • 2
  • 1
  • 0
  • 什么也不输出

\34. (4分)若输人2024,则输出有( )行。

​ {{ select(34) }}

  • 18
  • 20
  • 21
  • 19

三、完善程序(单选题,每小题3分,共计30分)

(1)扫雷游戏是一款十分经典的单机小游戏。在n 行 m 列的雷区中有一些格子含有地雷 (称为地雷格),其他格子不含地雷(称为非地雷格)。玩家翻开一个非地雷格时,该 格子中将会出现一个数字,提示周围格子中有多少个是地雷格。玩家的目标是在不 翻出任何地雷格的条件下,找出所有的非地雷格。请将程序补充完整。

现在给出n 行 m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下这8个 方向上与之直接相邻的格子。

输入格式:

第1行是用一个空格隔开的两个整数n 和 m, 分别表示雷区的行数和列数。接 下 来n 行,每行m 个字符,描述了雷区中的地雷分布情况。字符*表示相应格 子是地雷格,字符?表示相应格子是非地雷格。相邻字符之间无分隔符。

输出格式:

输出文件包含n 行,每行m 个字符,描述整个雷区。用*表示地雷格,用周围 的地雷个数表示非地雷格。相邻字符之间无分隔符。

输入样例:

33

*2?

???

?*?

输出样例:

*10

221

1*1

01 #include<bits/stdc++.h>

02 using namespace std;

03 const int dx[]={1,1,1,0,0,-1,-1,-1};

04 const int dy[]={-1,0,1,-1,1,-1,0,1};

05 char g[101][101];

06 int main()

07 {

08 int n,m,cnt;

09 cin>>n>>m;

10 for(int i=0;i<n;i++)

11 for(int j=0;j<m;j++)

12 cin>>g[i][j];

13 for(int i=0;icn;i++)

14 {

15 for(int j=0;j<m;j++)

16 if(①)

17 {

18 ②;

19 for(int k =0;③;k++)

20 if(④)

21 cnt++;

22 cout<<cnt;

23 }

24 else

25 cout<<"**;

26 if(⑤)

27 cout<<endl; 28

29 return 0;

30}

35.①处应填( )。

​ {{ select(35) }}

  • g[i][j]!='?'
  • g[i][j]!='\0'
  • g[i][j]!='*'
  • g[i][j]='*'

36.②处应填( )。

​ {{ select(36) }}

  • cnt++
  • cnt =0
  • cnt =0
  • ++cnt =0

37.③处应填( )。

​ {{ select(37) }}

  • k<8
  • k<m
  • k<n
  • k<min(m,n)

38.④处应填( )。

​ {{ select(38) }}

  • g[i+dy[k]][j+dx[k]]=='*'
  • g[i-dx[k]][j-dy[k]]=='*'
  • g[i+dx[k]][j+dy[k]]=='*'
  • g[i-dy[k]][j-dx[k]]=='*'

39.⑤处应填( )。

​ {{ select(39) }}

  • j!=m
  • j!=m-1
  • i!=n
  • i!=n-1

image-20250804004812239

image-20250804004905738

40.①处应填( )。

​ {{ select(40) }}

  • i%=10
  • i/=10
  • i++
  • i--

41.②处应填( )。

{{ select(41) }}

  • k +=hcb[i]
  • k +=hcb[i/10]
  • k+hcb[i/10%10]
  • k +=hcb[i%10]

42,③处应填( )。

{{ select(42) }}

  • num==0
  • num!=0
  • num==n
  • num!=n

43.④处应填( )。

{{ select(43) }}

  • count=1
  • count=match(n)
  • count=0
  • count=n

44.⑤处应填( )。

{{ select(44) }}

  • matches(i)+matches(j)+matches(i+j)+6==n
  • matches(i)+matches(j)+matches(i+j)+3==n
  • matches(i)+matches(j)+matches(i+j)+4==n
  • matches(i)+matches(j)+matches(i+j)+5==n