#1299. GESP-C++一级(2023-12)

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

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

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

1.以下 C++ 不可以作为变量的名称的是 ()。

{{ select(1) }}

  • CCF GESP
  • ccfGESP
  • CCFgesp
  • CCF_GESP

2. C++ 表达式 10 - 3 * (2 + 1) % 10 的值是 ()。

{{ select(2) }}

  • 0
  • 1
  • 2
  • 3

3.假设现在是上午十点,求出 N 小时 (正整数) 后是第几天几时,如输入 20 小时则为第 2 天 6 点,如 N 输入 4 则为今天 14 点。为实现相应功能,应在横线处填写代码是 ()。

int N,dayx,hourx;
cin >> N;
days=________,hourx=________;// 横线处代码
if (dayx == 0)
    cout << "今天"<< hourX <<"点";
else
    cout <<“第” << (dayx + 1) <<”天”<< hourx << ”点”;

{{ select(3) }}

  • (10 + N)% 24,(10 + N)/ 24
  • (10 + N)/24,(10 + N)% 24
  • N% 24,N /24
  • 10 /24,10 % 24

4. 下面的程序用于判断 N 是否为偶数,横线处应填写代码是 ( ) 。

cin>>N;
if (______)
    cout<<"偶数";
else 
    cout<<"奇数";

{{ select(4) }}

  • N % 2 == 0
  • N % 2 = 0
  • N % 2
  • N % 2 != 0

5. 下面对 C++ 代码执行后输出的描述,正确的是 ( )。

cin>>N;
cnt=0;
for(int i=1;i<N; i++)
    cnt +=1;
cout<<cnt;

{{ select(5) }}

  • 如果输入的 N 是小于等于 2 整数,第 5 行将输出 0。
  • 如果输入的 N 是大于等于 2 整数,第 5 行将输出 N - 1。
  • 如果输入的 N 是大于等于 2 整数,第 5 行将输出 N。
  • 以上说法均不正确。

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

cnt=0;
for(int i=1;i<10;i++){ 
    i+=2; 
    cnt +=1;
} 
cout<<cnt;

{{ select(6) }}

  • 10
  • 9
  • 3
  • 1

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

cnt=0;
for(int i=1;i<20;i++){
    if(i%2) continue;
    else if(i%3==0&&i%5==0) 
        break;
    cnt+=i;
} 
cout<<cnt;

{{ select(7) }}

  • 90
  • 44
  • 20
  • 10

8. 下面C++代码执行后的输出是 ( )

N=10;
cnt=0;
while(1){
    if(N==0)break; 
    cnt +=1;
    N-=2; 
} 
cout<<cnt;

{{ select(8) }}

  • 11
  • 10
  • 5
  • 4

9. 下面 C++ 代码用于判断一个数是否为质数 (素数),在横线处应填入代码是 ( )。

cin>>N;
cnt=0;
for (int i=1;i<N+1;i++)
    if(N%i==0)
      ________;   // 横线处代码
if (cnt==2)
    cout<<N<<"是质数。";
else
    cout<<N<<"不是质数。";

{{ select(9) }}

  • cnt = 1
  • cnt = 2
  • cnt =+ 1
  • cnt += 1

10. 对下面的代码,描述正确的是 ( )。

#include <stdlib.h> 
using namespace std;
int main(){ 
    int arr[]={2,6,3,5,4,8,1,0,9,10};
    for (int i=0;i<10;i++)
        cout<<arr[i]<<" ";
    cout<<i<<endl;
    cout<<endl; 
    return 0;
} 

{{ select(10) }}

  • 输出 2 6 3 5 4 8 1 0 9 10 10
  • 输出 2 6 3 5 4 8 1 0 9 9
  • 输出 2 6 3 5 4 8 1 0 9 10
  • 提示有编译错误

11. 执行下面 C++ 代码后输出是 ( )。

cnt=0;
for(i=10;i>3;i-=3) 
    cnt=cnt+i;
cout<<cnt;

{{ select(11) }}

  • 3
  • 21
  • 27
  • 49

12. 定义变量 char c ,下面对 c 赋值的语句,不符合语法的是 ( )。

{{ select(12) }}

  • c = (char)66;
  • c = (char)(66);
  • c = char(66);
  • c = char 66;

13.下图所示 C++ 代码对大写字母 'A' 到 'Z' 分组,对每个字母输出所属的组号,那么输入 'C' 时将输出的组号是?( )。

char c;
while (1){ 
    cin>>c; 
    if(c=='q')break; 
    switch (c){
        case 'A':cout<<"1";break; 
        case 'B':cout<<"3";
        case 'C':cout<<"3";
        case 'D':cout<<"5";break; 
        case 'E':cout<<"5";break; 
        default:cout<<"9";
    }
} 
cout<<endl;

{{ select(13) }}

  • 3
  • 3 5
  • 3 5 9
  • 以上都不对

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

{{ select(14) }}

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

15. 现代计算机是指电子计算机,它所基于的是 ( ) 体系结构。

{{ select(15) }}

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

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

16. C++ 表达式 int (3.14) 的值为 3。( )

{{ select(16) }}

17. C++ 语句 cout <<(2 * 3, 3 % 10, 2 + 3) 的输出为 6,3,5 。 ( )

{{ select(17) }}

18. for (int i = 1; i < 10; i += 3;) ; 表示 i 从 1 开始到 10 结束间隔为 3,相当于 1、4、7、10。( )

{{ select(18) }}

19. C++ 表达式 010 + 100 + 001 的值为 111。( )

{{ select(19) }}

20.if 语句中的条件表达式的结果可以为 int 类型。( )

{{ select(20) }}

21.在下面的 C++ 代码 while (1) continue; 中,由于循环中的 continue 是无条件被执行,因此将导致死循环。( )

{{ select(21) }}

22. C++ 表达式 ('1' + '1' == '2'? flag = 1 : flag = 2) 的结果值和表达式 (flag == 2) 的相同。( )

{{ select(22) }}

23. 在 C++ 的程序中,不能用 scanf 作为变量名。( )

{{ select(23) }}

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

{{ select(24) }}

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

{{ select(25) }}