#1315. GESP-C++二级(2023-12)

GESP-C++二级(2023-12)

CCF GESP C++ 二级 (2023 年 12 月)

一、单选题(每题 2 分,共 30 分)

第 1 题:以下不可以做为 C++ 变量的是 ( )。

{{ select(1) }}

  • FiveStar
  • fiveStar
  • 5Star
  • Star5

第 2 题:在 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;
  • 以上均不对

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

cin>>N;
for(________________)
    if(N%i==0)
        cout<<i<<"";

{{ 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++

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

cin>>N;
newNum = 0;
while(N){ 
    newNum=newNum*10+N%10; 
    N=N/10;
}
if(newNum==N) cout<<N<<"为对称数";

{{ select(4) }}

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

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

cin>>N; 
for(i=2;i<N/2;i++) 
    if(N%i==0){ 
        cout<<N<<"不是质数";
        break;
    }
if(i>=N/2) cout<<N<<"是质数";

{{ select(5) }}

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

第 6 题:下面 C++ 代码执行后的输出是 ( )。

N=4;
for(int i=0;i<N;i++){ 
    for(int j=1;j<i;j++)
    	if(i*j%2==0) 
			cout<<i<<"#";	
    continue; 
} 
cout<<"0";

{{ select(6) }}

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

第 7 题:下面 C++ 代码执行后的输出是 ( )。

cnt=0;
for(i=1;i<10;i++) 
    for(j=1;j<i;j+=2) 
        if(i*j%2==0){
            cnt++;
            break;
        }
if(i>=10)cout<<cnt<<"#";
cout<<cnt;

{{ select(7) }}

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

第 8 题:下面 C++ 代码执行后的输出是 ( )。

N=100;
while(N>0)
    if(N%2) 
      break;
    else if(N%3==0) 
      N-=5;
    else 
      N-=20;
cout<<N;

{{ select(8) }}

  • 100
  • 95
  • 55
  • 0

第 9 题:下面 C++ 代码执行后的输出是 ( )。

x=1;
while (x<100){ 
    if(x%3!=0) 
      cout<<x<<",";
    else if(x/10) 
        break;
    else
      x+=5; 
    x+=2;
} 
cout<<x;

{{ select(9) }}

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

第 10 题:下面 C++ 代码执行后的输出是 ( )。

cnt=0;
for(i=0;i<5;i++) 
    for(j=0;j<i;j++)
        cnt+=1;
cout<<cnt;

{{ select(10) }}

  • 5
  • 10
  • 20
  • 30

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

for(i=1;i<100+1;i++)
    if(_______________ )
        cout<<i<<"";

{{ select(11) }}

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

第 12 题:下面的 C++ 代码用于实现特定效果,应在代码中填入 ( )。(代码实现效果描述略,需结合原文档图片理解)

{{ select(12) }}

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

第 13 题:某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的 ( )。

{{ select(13) }}

  • 麦克风
  • 扬声器
  • 油量表
  • 传感器

第 14 题:现代计算机是指电子计算机,它所基于的是 ( ) 体系结构。

{{ select(14) }}

  • 艾伦・图灵
  • 冯・诺依曼
  • 阿塔纳索夫
  • 埃克特 - 莫克利

第 15 题:输入一个正整数 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);

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

第 1 题:C++ 表达式-7/2的值为整数-3。( )

{{ select(16) }}

第 2 题:C++ 表达式2*int('9')*2的值为36。( )

{{ select(17) }}

第 3 题:C++ 表达式3+2 && 5-5的值为false。( )

{{ select(18) }}

第 4 题:在 C++ 代码中,执行srand(0)后连续两次执行rand()的结果相等。 ( )

{{ select(19) }}

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

{{ select(20) }}

第 6 题:执行以下 C++ 代码后将输出0。( )

Sum=0;
for(i=-500;i<500;i++)
    Sum+=i;
cout<<Sum;

{{ select(21) }}

第 7 题:在 C++ 代码中,运算符只能处理相同的数据类型,不同类型之间必须转换为相同的数据类型。( )

{{ select(22) }}

第 8 题:在 C++ 代码中,虽然变量都有数据类型,但同一个变量也可以先后用不同类型的值赋值。( )

{{ select(23) }}

第 9 题:小杨最近在准备考 GESP,他用的 Dev C++ 来练习和运行程序,所以 Dev C++ 也是一个小型操作系统。( )

{{ select(24) }}

第 10 题:任何一个while循环都可以转化为等价的for循环。( )

{{ select(25) }}