0 #J2004. CCF-GESP编程能力等级认证真题【C022312】

CCF-GESP编程能力等级认证真题【C022312】

一、选择题。(15题,每题2分,共30分)

  1. 以下不可以做为C++变量的是? {{ select(1) }}
  • FiveStar
  • fiveStar
  • 5Star
  • Star5

  1. 在C++中,与 for(int i = 10; i < 20; i +=2) cout << i; 输出结果相同的是? {{ select(2) }}
  • for(int i = 10; i < 19; i +=2) cout << i;
  • for(int i = 11; i < 19; i +=2) cout << i;
  • for(int i = 10; i < 21; i +=2) cout << i;
  • 以上均不对

  1. 以下C++代码实现从小到大的顺序输出能整除N的数(N的因子),例如N=18时输出1 2 3 6 9 18,横线处应填入?

image

{{ select(3) }}

  • int i = 0; i < N; i++
  • int i = 1; i < N; i++
  • int i = 0; i < N+1; i++
  • int i = 1; i < N+1; i++

  1. 下面C++代码用于判断输入的整数是否为对称数,如1221、12321是对称数,但123、972不是对称数。下面对该题对应代码的说法,正确的是?

image

{{ select(4) }}

  • 代码没有语法错误,如果N为对称数,第8行将能正确输出
  • 代码没有语法错误,但如果N为负数,将导致死循环
  • 代码存在语法错误,程序不能被执行
  • 代码没有语法错误,但不能达到预期目标,因为循环结束N总为0

  1. 下面C++代码用于判断N(大于等于2的正整数)是否为质数(素数)。下面对如下代码的说法,正确的是?

image

{{ select(5) }}

  • 代码能正确判断N是否为质数
  • 代码总是不能判断N是否质数
  • 删除第5行 break ,将能正确判断N是否质数
  • 代码存在漏洞,边界存在问题,应将第2行和第7行的 N / 2 改为 N / 2 + 1

  1. 下面C++代码执行后的输出是?

image

{{ select(6) }}

  • 2#3#0
  • 1#2#0
  • 1#0#
  • 2#3#

  1. 下面C++代码执行后的输出是?

image

{{ select(7) }}

  • 0
  • 8#8
  • 4
  • 4#4

  1. 下面C++代码执行后的输出是?

image

{{ select(8) }}

  • 100
  • 95
  • 55
  • 0

  1. 下面C++代码执行后的输出是?

image

{{ select(9) }}

  • 1
  • 1,3
  • 15,17
  • 1,10,12

  1. 下面C++代码执行后的输出是?

image

{{ select(10) }}

  • 5
  • 10
  • 20
  • 30

  1. 以下C++代码用于输出1-100(含)的整数平方数(完全平方数),如16是4的平方,横线处应填写?

image

{{ select(11) }}

  • int(sqrt(i)) * int(sqrt(i)) = i
  • int(sqrt(i)) == sqrt(i)
  • int(sqrt(i)) * int(sqrt(i)) == i
  • int(sqrt(i)) == int(i/sqrt(i))

  1. 下面的C++代码用于实现如下左图所示的效果,应在以下右图C++代码中填入?

image

{{ select(12) }}

  • 与第8行下面填入一行: cout << nowNum;
  • 与第2行下面填入一行: cout << endl;
  • 与第7行下面填入一行: cout << nowNum;
  • 与第9行下面填入一行: cout << endl;

  1. 某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动 选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的? {{ select(13) }}
  • 麦克风
  • 扬声器
  • 油量表
  • 传感器

  1. 现代计算机是指电子计算机,它所基于的是( )体系结构。 {{ select(14) }}
  • 艾伦·图灵
  • 冯·诺依曼
  • 阿塔纳索夫
  • 埃克特-莫克利

  1. 输入一个正整数N,想找出它所有相邻的因数对,比如,输入12,因数对有(1,2)、(2,3)、(3,4)。下面哪段代码找不到所有的因数对? {{ select(15) }}
  • for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
  • for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
  • for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);
  • for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

二、判断题​。(10题,每题2分,共20分)

  1. C++表达式 -7/2 的值为整数-3。 {{ select(16) }}


  1. C++表达式 2*int('9')*2 的值为36。 {{ select(17) }}


  1. C++表达式 3+2 && 5-5 的值为false。 {{ select(18) }}


  1. 在C++代码中,执行 srand(0) 后连续两次执行 rand() 的结果相等。 {{ select(19) }}


  1. C++代码中 while(1){...} 的判断条件不是逻辑值,将导致语法错误。 {{ select(20) }}


  1. 执行以下C++代码后将输出0。

image

{{ select(21) }}



  1. 在C++代码中,运算符只能处理相同的数据类型,不同类型之间必须转换为相同的数据类型。 {{ select(22) }}


  1. 在C++代码中,虽然变量都有数据类型,但同一个变量也可以先后用不同类型的值赋值。 {{ select(23) }}


  1. 小杨最近在准备考GESP,他用的Dev C++来练习和运行程序,所以Dev C++也是一个小型操作系统。 {{ select(24) }}


  1. 任何一个 while 循环都可以转化为等价的 for 循环。 {{ select(25) }}


三、​编程题。(2题,每题25分,共50分)

  1. 【小杨做题】
  2. 【小杨的 HH 字矩阵】