大湾区C++模拟题

大湾区信息学创新大赛模拟题

一、单项选择题(15题共30分)

1.计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。处理器一次能处理的数据量叫字长。已知64位奔腾处理器一次能处理64个信息,相当于( A  )字节。

A. 8个 B. 1个 C. 16个 D. 2个

2.用某种排序方法对数列{25,84,21,47,15,27}进行排序,数列变化如下。

{15,84,21,47,25,27}

{15,21,84,47,25,27}

{15,21,25,47,84,27}

那么排序方法是( B )

  1. 冒泡 B. 选择 C. 插入 D. 快速

3.小明家突然断电了,以下仍能保存数据的是:(A )

 A:rom   B:ram   C:高速缓存  D:寄存器

4.现有一张分辨率为 2048×1024 像素的 32 位真彩色图像。请问要存储这张图像,需要多大的存储空间?(C )。

 A. 16MB

 B. 4MB

 C. 8MB

 D. 2MB

5.—副纸牌除掉大小王有 52张牌,四种花色,每种花色 13 张。

假设从这 52 张牌中随机抽取 13 张纸牌,则至少(A)张牌的花色一致。

 A. 4

 B. 2

 C. 3

 D. 5

6.二进制数 1011 转换成十进制数是( A)。

 A. 11

 B. 10

 C. 13

 D. 12

7.运行以下代码片段的行为是( D )

int x = 101;

int y = 201;

int *p = &x;

int *q = &y;

p = q;

A、将x的值赋为201                                   B、将 y 的值赋为 101

C、将 q 指向 x 的地址                                    D、将 p 指向 y 的地址

8.由1,1,2,2,3这五个数字组成不同的三位数有( A )种

A、18                                              B、15

C、12                                              D、24

9.以下和计算机领域最密切相关的奖项是(B )。

A. 菲尔兹奖

B. 图灵奖

C. 诺贝尔奖

D. 普利策奖

10.目前主流计算机储存数据采用(A )进行储存。 

A.二进制     B.十进制      C.八进制     D.十六进制

11.定义n!=1*2*3*....*n,则100!的末尾0的个数为(B

A、23                                         B、24

C、25                                         D、26

12. 已知定义 int a[][3] = {1, 2, 3, 4, 5, 6, 7, 8}; 则以下哪个选项结果为10。(  A  )

提示:a[][3]意思是二维数组,列数为3,行数不固定,把数据按顺序上,缺的位置补0

A. a[0][1] + a[2][1]

B. a[1][0] + a[2][1]

C. a[1][1] + a[2][1]

D. a[1][1] + a[2][2]

13.已经f[i]=f[i-1]+f[i-2]*2(i>=2),f[0]=f[1]=1,则f[6]=(B

A、21                                                    B、43

C、85                                                    D、41

14.某个非负整数的二进制、十进制、十六进制的表示均一致,则这个数是(D

A、1                                                     B、0

C、无数多个                                              D、1和0

15.电线上停着两种鸟(A、B),可以看出两只相邻的鸟将电线分为了一个线段,这些线段可分为两类:一类是两端的小鸟相同;另一类是两端的小鸟不相同。已知:电线上两个顶点处正好停着相同的小鸟。则两端为不同小鸟的线段数目一定是( B )

A. 奇数 B. 偶数 C. 可奇可偶 D. 数目不定

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

(1)

 

16.输入的字符串只能由小写字母或大写字母组成, 否则程序运行时会发生错误。( ×  )

17.若将第8行的“i=1”改为“i=0”,程序运行时会发生错误。               (  )

18.若将第9行的“st[i-1]”改为“st[i]”,程序运行结果不会改变。            ( ×  )

19.若输入的字符串为“abc123ABC”,那么输入的字符串跟输出的字符串相比,有( A )个字符不同。 

A. 3

B. 6

C. 9

D. 0

20.若输入的字符串为(D  ),输出的字符串和输入的字符串相同

A.“abc123”
B.“aBc123”
C.“ABc123”

D.“ABC123”

(2)

 

假设输入的正整数n的值不超过2*10^6,请回答以下问题:

21.若输入的n的值为10,则输出结果为4。                            ( √  )

22.若输入的n的值为20,则输出结果为7。                            ( ×  )

23.若vis[n]的值为0,则说明n是质数。                                ( ×  )

24.为了提升程序效率,可以将第11行的“int j=2”改为“int j=i”          ( ×  )

25.对该程序的复杂度估算最准确的是(D

A.O(n)       B.(n*n)          C.(n*logn)                  D.(n*log(logn))

(3)

 

假设输入的正整数n的值不超过50000, 0 <= a[i]<= 1000000000,请回答以下问题:

26.根据数据范围,第3行的long long可以改为int。                     ( ×  

27.在同一组数据下,第12行的a[i]==a[i-1]可以改为a[i]==a[i+1],结果不变  ( ×

28.第16行与第17行互换,会影响输出结果                          ( √  )

29.最后输出的ans值有可能为0                                  (  )

30.若输入的n为10,10个数分别为8 5 7 4 0 7 1 3 0 9,结果为(D)

A.0      B.1          C.2           D.3

(4)

 

31.第3行定义的变量n与第4行定义的变量n意义相同。             ( × )

32.把第3行定义变量的语句移动到第11行,不影响程序执行。        (  )

33.不考虑其他因素,把第4行的int fac改成 long long fac,此程序就能正确算出n为50时的结果。                                                   (

34.此程序的时间复杂度是( D )

A. O(n)    B. O(n^2)        C. O(n*logn)     D. O(2^n)

35.若输入10,输出结果是( C )

A.1      B.55          C.89           D.144

三、完善程序题(6题共60分)

(回文数)回文数指的是一个数字,从左到右读和从右到左读都一样。例如,1221和 1234321 是回文数,1234 不是回文数。现有 n 个正整数 ai(i=0,1,2,3,.....n-1),请找出其中最大的回文数。

 

36.①处应填(  A  )

A.%lld   B. %d C. %c    D. %f

37.②处应填(  C  )

A.x=0   B. s1=0 C. s=0   D. ans=0

38.③处应填(  C  )

A.s1*10   B. s%10 C. s1*10+s%10     D. s1*10*s%10

39.④处应填(  B  )

A.x/=10  B. s/=10 C. x%=10    D. s%=10

40.⑤处应填(  D  )

A.s   B. x C. min(x,ans)     D. max(x,ans)

(幸运数字)假设幸运数字是7。现在小明和小华手上各有n个数,他们想每人从中选择一个数,然后把两个数相加,所得的和如果能被7整除,则小明和小华觉得自己是幸运的。求小明和小华觉得自己是幸运的选择方案数。

 

41. ①处应填(A

A. 0      B. 1      C. n      D. n+1

42. ②处应填( C

A. a[i]=t    B. a[t]++     C. a[t%7]++     D. a[t%10]++

43. ③处应填( B

A. i=0;i<=6;i++

B. i=1;i<=6;i++

C. i=0;i<=n;i++

D. i=1;i<=n;i++

44. ④处应填(D )

A. b[0]    B. b[i]    C. b[n-i]    D. b[7-i]

45. ⑤处应填(A )

A. a[0]*b[0]    B. a[0]+b[0]    C. a[7]*b[7]    D. a[n]*b[n]

 (质因数)从小到大打印正整数 n 以内的所有质因数(既是质数,又是n的因数的数)

 

46. ①处应填( A

A. n % i == 0    B. n % i == 1      C. n % (i-1) == 0     D. n % (i-1) == 1

47. ②处应填( A

A. i % fac[j] == 0

B. fac[j] % i == 0

C.i % fac[j] != 0

D. fac[j] % i != 0

48. ③处应填( A

A. false      B. true     C. (i <= fac[j])     D. (i == fac[j])

49. ④处应填(C )

A. n % i == 0       B. i <=t      C. isprime      D. !isprime

50. ⑤处应填( B

A. n / fac[k]

B. fac[k]

C. fac[k]-1

D. n / (fac[k]-1)

(风景点)给出 N 行 M 列的二维格子, 每个格子要么是‘ #’ ,要么是‘ .’ 。 一个格子是“ 风景点” ,它同时满足如下两个条件:1、 该格子是‘ .’;2、 该格子的上、 下、 左、 右, 四个方向整条线全部都是‘ .’(该点处于边缘的话可以忽略该点没有的方向,如点在左边缘只需考虑上、下、右三个方向) 。你的任务是统计总共有多少个“ 风景点” 。

 

51. ①处应填(C

A. int     B. long long     C. char      D. string

52. ②处应填( A

A. a[i][j]=='.'    B. a[i][j]=='#'    C. a[i][j]==1    D. a[i][j]==0

53. ③处应填( D

A. i      B. j      C. n     D. m

54. ④处应填(A

A. a[i][k]    B. a[j][k]     C. a[k][i]    D. a[k][j]

55. ⑤处应填( C

A. a[i][j]=='.'     B. a[i][j]=='#'     C. book==true     D. book==false

(连续区间)现有n个整数,每个整数用ai表示(1<=ai<=n)。现希望找出连续的一段区间,要求区间内不能出现重复数字。求符合要求的区间的最大长度。

 

56. ①处应填( D

A. L=0, R=0        B. L=0, R=1       C. L=1, R=0       D. L=1, R=1

57. ②处应填( B

A. L++     B. R++    C. L++,R++     D. 不填

58. ③处应填(A )

A. b[a[R]]++      B. a[R]++      C. b[a[L]]++     D. a[L]++

59. ④处应填( B

A. a[R]>1     B. b[a[R]]>1    C. a[L]>1    D. b[a[L]]>1

60. ⑤处应填(D )

A. b[a[R]]    B. b[a[L]]      C. R-L     D. R-L+1

(看电视)给出n个节目的时间表,每个节目用两个整数si和ei表示第i个节目的开始和结束时间。节目间存在时间重叠的情况,问最多可以完整看完多少个节目?

 

61. ①处应填( C

A. true    B. false    C. a.e<b.e    D. a.s<b.s

62. ②处应填( A

A. a[1].e     B. a[1].s     C. 0       D. 1

63. ③处应填( B

A. 1    B. 2     C. k     D. k+1

64. ④处应填(B

A. a[i].s>k    B. a[i].s>=k     C. a[i].e>k    D. a[i].e>=k

65. ⑤处应填( C

A. ans+=a[i].s    B. ans+=a[i].e     C. ans++     D. k++,ans++

  • 34
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值