#gesp2025121. CCF GESP C++ 一级 2025 年 12 月真题

CCF GESP C++ 一级 2025 年 12 月真题

CCF GESP C++ 一级 2025 年 12 月真题

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

  1. 近日,空中客车公司表示,约6000架空客A320系列飞机需要紧急更换一种易受太阳辐射影响的飞行控制软件。空客表示,在对一起飞行事故分析后的结果显示,强烈的太阳辐射可能会损坏飞行控制系统所需的关键数据,导致判断失误,进而引发飞行异常。那这里的飞行控制系统执行判断的部件最可能是下面的()。 {{ select(1) }}
  • A. 辐射传感器
  • B. 处理器
  • C. 内存单元
  • D. 输出设备
  1. 下面的C++代码在某集成开发环境中编译运行时,提示有“Invalid Character”(“无效字符”)错误。可能的原因是(): int a, b; a=3,b = 4; // L1 cout << a; // L2 cout << b; // L3 {{ select(2) }}
  • A. L1行代码中的逗号很可能是中文逗号,应该改为英文逗号。
  • B. L1行应该分为两行,分别是 a=3 和 b =4。
  • C. 代码运行前没有保存到文件。
  • D. L2和L3不能分为两行,应合并为一行。
  1. 下面有关C++变量的说法,正确的是()。 {{ select(3) }}
  • A. 不可以用 for 作为变量名,因为 for 是C++的关键字(保留字)。
  • B. _tnt 不可以是变量名,因为变量名的第一个字符必须是英文字母。
  • C. tnt 不可以是变量名,因为最后一个字符容易与减号混淆。
  • D. 可以用 printf 作为变量名,因为 printf 是关键字,但这不是好习惯,因为 printf 有约定的功能与含义。
  1. X 是C++的整型变量,则 cout << (X=3, X++, ++X); 执行后的输出是()。 {{ select(4) }}
  • A. 3
  • B. 4
  • C. 5
  • D. 不确定
  1. C++表达式 2 + 3 * 4 % 5 的值为()。 {{ select(5) }}
  • A. 0
  • B. 4
  • C. 14
  • D. 50
  1. 下面的C++代码执行后,其输出是()。 a = 3; b = a = 4; printf("%d %d", a, b); {{ select(6) }}
  • A. 4 4
  • B. 3 3
  • C. 3 4
  • D. 4 3
  1. 下面的C++代码执行时如果先输入 10 回车后输入 20 并回车,其输出是()。 int N,M; printf("第一个数:"); scanf("%d", &N); printf("第二个数:"); scanf("%d", &M); printf("%%(N+M)=%d", N+M, int(N+M)); {{ select(7) }}
  • A. 30=30
  • B. 10+20=30
  • C. %(N+M)=30
  • D. 错误提示
  1. 某个整数很长很长,形如:1232123212321……,其规律是从1开始逐一升高到3然后逐一降低到1,然后又逐一升高到3,一直到很长很长。假设最高位编号为1,要求判断从左边最高位开始的第N位数是几?在横线处应该填入的代码是()。 cout << "请输入编号:"; int N, M; cin >> N; M = if (M != 0) cout << M; else cout << 2; {{ select(8) }}
  • A. N % 4
  • B. N / 4
  • C. N % 3
  • D. N / 3
  1. 下面C++代码执行后的输出是() int i, tnt = 0; for (i = 0; i < 100; i++) cout << tnt << ' ' << i; tnt += 1; {{ select(9) }}
  • A. 99 99
  • B. 100 99
  • C. 99 100
  • D. 100 100
  1. 有关下面C++代码的说法,错误的是()。 int tnt = 0; for (int i = 1; i < 10; i += 2) // L1 cout << tnt; tnt += i; // L2 {{ select(10) }}
  • A. L1的 i < 10 改为 i < 11 结果相同。
  • B. L1的 i = 1 改为 i = 0 结果相同。
  • C. tnt += i 与 tnt = tnt + i 效果相同。
  • D. tnt += i 与 tnt = i + tnt 效果相同。
  1. 下面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(11) }}
  • A. 10#20#30#40#50#60#70#80#90#100 END
  • B. 100#100 END
  • C. 100 END
  • D. 没有输出
  1. 两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的C++代码用于实现该操作,横线处应该填写的代码是()。 int N,M; cin >>N>>M; while (N!=M){ if(N>M) else } cout <<N; {{ select(12) }}
  • A. N=N-M; M=M-N
  • B. M=M-N; N=N-M
  • C. M=N-M; N=M-N
  • D. N,M=M,N; M,N=N,M
  1. 如果一个正整数能被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(13) }}
  • A.N% 10==0
  • B.N%3%10==0
  • C.N%10%3
  • D.N%10%3==0
  1. 如果正整数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(14) }}
  • A.(N%i) &&(i%2)
  • B.(N%i0)&&(i%20)
  • C.(N%i==0)&&(i%2)
  • D.(N%i)&(i%2==0)
  1. 执行下面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(15) }}
  • A.tmp=i/10;
  • B.tmp=i%100;
  • C.tmp-=a*1000;
  • D.tmp=i-i%1000;

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

  1. 鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。() {{ select(16) }}
  • A. 对
  • B. 错
  1. C++表达式104%6和102%3的结果相同。() {{ select(17) }}
  • A. 对
  • B. 错
  1. 下面C++代码执行后将输出0。() int i; for(i=0;i<10;i++) if(i%3==0) continue; cout <<i; else break; {{ select(18) }}
  • A. 对
  • B. 错
  1. 下面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) }}
  • A. 对
  • B. 错
  1. 下面C++代码执行后将输出 99,因为 i < 100 不包括100,而是到99。( ) int cnt = 0; for (int i = 0; i < 100; i++) cout << cnt; cnt += 1; {{ select(20) }}
  • A. 对
  • B. 错
  1. 下面的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) }}
  • A. 对
  • B. 错
  1. 下面C++代码执行后将输出 0。( ) int tnt = 0; for (int i = -100; i < 100; i++) cout << tnt; tnt += i; {{ select(22) }}
  • A. 对
  • B. 错
  1. 某同学执行C++代码时 printf("%g\n", (3 + 3.1415926535)); 输出 6.14159 而不是 6.1415926535 表明该同学的计算机存在故障需要重新安装C++软件。( ) {{ select(23) }}
  • A. 对
  • B. 错
  1. 如果 x 是C++代码中的 double 型变量,则对 cout << ( x? 1227 : 12.27); 编译时将报错,因为 1227 和 12.12 分别是 int 和 double 类型,导致识别混乱。( ) {{ select(24) }}
  • A. 对
  • B. 错
  1. 在C++代码中,不可以将变量命名为 keyword,因为它是C++语言的关键字。( ) {{ select(25) }}
  • A. 对
  • B. 错