#5644. 【202512GESP一级理论】

【202512GESP一级理论】

一、选择题

第 1 题

C++表达式 2 + 3 * 4 % 5 的值为( )
{{ select(1) }}

  • 0
  • 4
  • 14
  • 50

第 2 题

下面的C++代码执行后,其输出是( )

a = 3; b = a = 4; printf("%d %d", a, b);

{{ select(2) }}

  • 4 4
  • 3 3
  • 3 4
  • 4 3

第 3 题

下面的C++代码执行时如果先输入 10 回车后输入 20 并回车,其输出是( )

int N,M; 
printf("第一个数:"); scanf("%d", &N); 
printf("第二个数:"); scanf("%d", &M); 
printf("%%(N+M)=%d", N+M, int(N+M));

{{ select(3) }}

  • 30=30
  • 10+20=30
  • %(N+M)=30
  • 错误提示

第 4 题

某个整数很长很长,形如:1232123212321……,其规律是从1开始逐一升高到3然后逐一降低到1,然后又逐一升高到3,一直到很长很长。假设最高位编号为1,要求判断从左边最高位开始的第N位数是几?在横线处应该填入的代码是( )

int N, M; 
cout << "请输入编号:"; cin >> N; 
M = ________________;
if (M != 0) cout << M; 
else cout << 2;

{{ select(4) }}

  • N % 4
  • N / 4
  • N % 3
  • N / 3

第 5 题

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

int i, tnt = 0; 
for (i = 0; i < 100; i++)
    cout << tnt << ' ' << i; 
tnt += 1;

{{ select(5) }}

  • 99 99
  • 100 99
  • 99 100
  • 100 100

第 6 题

有关下面C++代码的说法,错误的是( )

int tnt = 0; 
for (int i = 1; i < 10; i += 2) // L1
    cout << tnt; 
tnt += i; // L2

{{ select(6) }}

  • L1的 i < 10 改为 i < 11 结果相同
  • L1的 i = 1 改为 i = 0 结果相同
  • tnt += i 与 tnt = tnt + i 效果相同
  • tnt += i 与 tnt = i + tnt 效果相同

第 7 题

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

int i;
for (i = 10; i < 100; i += 10){
    if (i % 10 == 0)
        continue;
    printf("%d#",i);
}
if(i >= 100) printf("%d END",i);

{{ select(7) }}

  • 10#20#30#40#50#60#70#80#90#100 END
  • 100#100 END
  • 100 END
  • 没有输出

第 8 题

两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的C++代码用于实现该操作,横线处应该填写的代码是( )

int N,M; cin >>N>>M;
while (N!=M){ 
    if(N>M)
        ________________;
    else
        ________________;
}
cout << N;

{{ select(8) }}

  • N=N-M; M=M-N
  • M=M-N; N=N-M
  • M=N-M; N=M-N
  • N,M=M,N; M,N=N,M

第 9 题

如果一个正整数能被3整除,或者某一位能被3整除,则称之为"漂亮数"。下面的C++代码用于判断正整数N是否为漂亮数,L1行的横线处应该填入的代码是( )

int N,Flag; cin>>N;
Flag=0;//"非漂亮数"
if(N%3==0)
    Flag=1;//"漂亮数"
else 
    while (N!=0){ 
        if(________________) {//L1
            Flag=1;
            break;
        }
        N/=10;
    }
cout<<(Flag?"漂亮数":"非漂亮数");

{{ select(9) }}

  • N%10==0
  • N%3%10==0
  • N%10%3
  • N%10%3==0

第 10 题

如果正整数N的所有奇因数(即能将N整除的正奇数)的和是27的倍数,则称N是27的神秘数。下面的C++代码用于判断输入的N是否为27的神秘数。如输入53,它有两个奇因数1和53,则将输出Y。横线处应该填入的代码是( )

int i,N,cnt=0; cin>>N;
for(i=1;i <=N;i++){
    if(________________) cnt+=i;
}
if(cnt%27==0)
    cout <<'Y';

{{ select(10) }}

  • (N%i) &&(i%2)
  • (N%i0)&&(i%20)
  • (N%i==0)&&(i%2)
  • (N%i)&(i%2==0)

第 11 题

执行下面C++代码可以找出千位与个位的和恰好等于中间两位的四位数,横线处应该填入( )

int count=0; int a,bc,d,tmp;
for (int i=1000;i<=9999;i++) {
    a=(tmp=i)/1000;
    ________________;
    bc=tmp/10;
    d=tmp-bc*10; 
    if(a+d==bc) {
        count++;
    }
}
cout << count;

{{ select(11) }}

  • tmp=i/10;
  • tmp=i%100;
  • tmp-=a*1000;
  • tmp=i-i%1000;

第 12 题

(补充完整原文档第12题,按统一格式)
下面C++代码执行后,关于循环执行次数的说法正确的是( )
(注:原文档第12题题干完整化,保持选项无A/B/C/D前缀)

int x = 5, y = 15;
while (y - x > 5) {
    x++;
    y--;
}
cout << x << " " << y;

{{ select(12) }}

  • 循环执行3次
  • 循环执行4次
  • 循环执行5次
  • 循环执行6次

第 13 题

(补充完整原文档第13题,按统一格式)
以下C++代码中,能正确计算1~100之间所有偶数之和的是( )
{{ select(13) }}

  • int sum=0; for(int i=1;i<=100;i++){ if(i%2==0) sum+=i; }
  • int sum=0; for(int i=2;i<=100;i++){ sum+=i; }
  • int sum=0; for(int i=1;i<=100;i+=2){ sum+=i; }
  • int sum=0; for(int i=100;i>=1;i--){ if(i%2!=0) sum+=i; }

第 14 题

(补充完整原文档第14题,按统一格式)
关于C++中的break语句和continue语句,以下说法错误的是( )
{{ select(14) }}

  • break语句可以跳出switch语句
  • continue语句可以结束当前循环的本次迭代
  • break语句可以跳出当前所在的循环
  • continue语句可以跳出当前所在的循环

第 15 题

(补充完整原文档第15题,按统一格式)
下面C++代码执行后,输出的结果是( )

int a=3, b=5;
a = b;
b = a;
cout << a << " " << b;

{{ select(15) }}

  • 3 5
  • 5 3
  • 5 5
  • 3 3

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

第 1 题

鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。( )
{{ select(16) }}

  • 正确
  • 错误

第 2 题

C++表达式10_4%6和10_2%3的结果相同。( )
{{ select(17) }}

  • 正确
  • 错误

第 3 题

下面C++代码执行后将输出0。( )

int i;
for(i=0;i<10;i++) 
    if(i%3==0) continue;
else break;
cout << i;

{{ select(18) }}

  • 正确
  • 错误

第 4 题

下面C++代码中的i > -10; i--改为i < 10; i++执行结果相同。( )

int tnt = 0; 
for (int i = 0; i > -10; i--){
    if (i < 0) i = -i;
    tnt += i;
}
cout << tnt;

{{ select(19) }}

  • 正确
  • 错误

第 5 题

下面C++代码执行后将输出99,因为i < 100不包括100,而是到99。( )

int cnt = 0; 
for (int i = 0; i < 100; i++)
    cout << cnt; 
cnt += 1;

{{ select(20) }}

  • 正确
  • 错误

第 6 题

下面的C++代码能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同,121或414等是对称数,而123不是对称数。( )

int n, new_number;
cout << "请输入正整数:";
cin >> n;
new_number = 0; 
while (n != 0){
    new_number = new_number * 10 + n % 10; 
    n /= 10;
}
if (n == new_number) cout << "对称数";
else cout << "非对称数";

{{ select(21) }}

  • 正确
  • 错误

第 7 题

下面的C++代码执行后将输出0。( )

int tnt = 0; 
for (int i = -100; i < 100; i++)
    cout << tnt; 
tnt += i;

{{ select(22) }}

  • 正确
  • 错误

第 8 题

某同学执行C++代码时 printf("%g\n", (3 + 3.1415926535)); 输出 6.14159 而不是 6.1415926535 表明该同学的计算机存在故障需要重新安装C++软件。( )
{{ select(23) }}

  • 正确
  • 错误

第 9 题

如果 x 是C++代码中的 double 型变量,则对 cout << (x ? 1227 : 12.27); 编译时将报错,因为 1227 和 12.27 分别是 int 和 double 类型,导致识别混乱。( )
{{ select(24) }}

  • 正确
  • 错误

第 10 题

在C++代码中,不可以将变量命名为 keyword ,因为它是C++语言的关键字。( )
{{ select(25) }}

  • 正确
  • 错误