GESP认证C++编程真题解析 | 202506 一级

GESP认证C++编程真题解析 | 202506 一级 ​欢迎大家订阅我的专栏算法题解C与Python实现本专栏旨在帮助大家从基础到进阶 逐步提升编程能力助力信息学竞赛备战专栏特色1.经典算法练习根据信息学竞赛大纲精心挑选经典算法题目提供清晰的代码实现与详细指导帮助您夯实算法基础。2.系统化学习路径按照算法类别和难度分级从基础到进阶循序渐进帮助您全面提升编程能力与算法思维。适合人群准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生希望系统学习C/Python编程的初学者想要提升算法与编程能力的编程爱好者附上汇总帖GESP认证C编程真题解析 | 汇总单选题第1题2025年4⽉19⽇在北京举⾏了⼀场颇为瞩⽬的⼈形机器⼈半程马拉松赛。⽐赛期间跑动着的机器⼈会利⽤ ⾝上安装的多个传感器所反馈的数据来调整姿态、保持平衡等那么这类传感器类似于计算机的 。A.处理器B.存储器C.输入设备D.输出设备【答案】C【解析】传感器的功能是采集数据属于输入设备。第2题在某集成开发环境中调试下⾯代码段时尝试设置断点和检查局部变量下⾯哪个说法是错误的 。inti,N0;// L1cinN;// L2for(i1;i9;i)if(N%i0)break;// L3if(i9)printf(N不能大于9\n);// L4A.断点不可以设在L1标记的代码行B.执行暂停在L2标记的代码行时可以检测 i 的值C.执行暂停在L3标记的代码行时可以修改 i 的值D.执行有可能暂停在L4标记的代码行【答案】A【解析】断点可以设置在任一行代码处。第3题对下列C的代码描述准确的是 。intfirst10;printf({%d}\n,First)A.执行后输出10B.执行后输出 {First}C.执行后输出 “{First}”D.编译报错因为 First 应该是 first【答案】D【解析】C的变量名区分大小写First 和 first 不是同一个变量。第4题在C中下列可以做变量名的是 。A.X.cppB.X-cppC.X#cppD.X_cpp【答案】D【解析】C的变量名智能包含字母、数字、下划线。第5题C表达式 14-3*3%2 的值是 。A.0B.11C.13D.-67【答案】C【解析】乘法和取模的优先级高于减法先计算乘法然后取模然后减法得到13。第6题下⾯的C代码执⾏后其输出是 。intx10,y20;xxy;yx-y;xx-y;coutx y;A.10 20B.20 10C.10 10D.20 20【答案】B【解析】三行运算执行效果是交换两个变量的值。第7题定义整型变量 int a16 则执行 a 3 之后a的值会是 。A.3B.17C.19D.20【答案】D【解析】先 再 后 a 变为 17 再 3 后 a 变为 20。第8题C的 int 类型变量 X 的值为 8 如果执行 cout (X);则输出和执行后 X 的值分别是 。A.8 9B.9 9C.9 10D.编译错误无法执行【答案】C【解析】先执行前面的 x 值为 9然后执行后置的 x 的值变为 10但整个表达式的值是后置 执行前的值也就是 9。第9题下⾯C代码执⾏后的输出是 。inta,b;a3;b4;printf(ab%02d#ab{ab},ab,ab);A.ab07#ab{ab}B.ab 7#ab7C.ab7#ab{ab}D.ab7#ab7【答案】A【解析】%02d 表示输出的整数至少占2位不足时左侧补 0。其余内容是普通字符串照样输出。第10题下⾯的C代码⽤于求M天后是星期几两处横线处分别应填⼊的代码是 。intN,M,D;cout当前星期几;// 星期日是0cinN;cout求多少天后;// 输入正整数cinM;D______;if(______)printf(%d天后是星期日,M);elseprintf(%d天后是星期%d,M,D);A.(NM)/7D0B.(NM)%7D0C.(NM)/7D0D.(NM)%7D0【答案】B【解析】七天对应取模 7 的结果 0~6。0 代表周日第11题下⾯C代码执⾏后输出是 。inti;for(i1;i11;i3){continue;if(i%20)break;printf(%d#,i);}if(i11)printf(END);A.ENDB.1#C.1#4#ENDD.1#4#7#10#END【答案】A【解析】for 循环执行过程中 i 的取值依次变为 1、4、7、10、13。循环体内容由于 continue 并未执行最后会打印 END。第12题下⾯的C代码⽤于求 N 的所有因数即能将 N 整除的数如输入 12 则将输出 12,6,4,3,2,1。 inti,N;cinN;iN;while(____){if(N%i0)printf(%d,,i);i-1;)printf(1);A.i - 1B.i 1C.i 1D.i 1【答案】C【解析】注意最后一行输出了1所以 i 从大到小枚举从 N 到 2 的所有数。第13题下⾯C代码执行后输出的是 。intSum0;for(inti0;i10;i){if(i%20)continue;if(i%50)break;Sumi;}coutSum;A.55B.15C.9D.4【答案】D【解析】i 等于 0 时 continue1 时 Sumi2 时 continue3 时 Sum i4 时 continue5 时 break。第14题试图编译并执行下⾯C代码下⾯描述正确的是 。floatx;x101;x;coutx;A.输出 101B.输出 102C.输出 103D.编译将报错无法执行【答案】C【解析】后 加了 1 前 又加了 1。第15题以下C代码可以找出百位、十位和个位满⾜特定条件的三位数横线处应该填入的是 intcount0;for(inti100;i999;i){intai/100;______intci%10;if(a*ab*bc*c){count;}}A.int b (i / 10) / 10;B.int b (i / 10) % 10;C.int b (i % 10) / 10;D.int b (i % 10) % 10;【答案】B【解析】取 i 的十位i / 10 % 10。判断题第16题⼈们现在参加很多闭卷考试时通常都不允许带智能⼿机、平板电脑等此外很多种智能手表同样因为具有嵌入操作系统及通信等功能所以也不允许随⾝携带。 A.正确B.错误【答案】A【解析】考场明确要求第17题如果N是C的整型变量值为5则表达式 (N !N) 的值为4。 A.正确B.错误【答案】B【解析】!N 为假值为 0。 5 0 5第18题在下⾯C代码中删除break语句对程序执行结果没有影响。 inti;for(i0;i10;i){continue;couti#;break;}if(i10)coutEND;A.正确B.错误【答案】A【解析】for 循环体的第一行是 continue后面的代码都不会执行。第19题删除下⾯C代码中的continue后其输出是0#2#4#6#8。 inti;for(i0;i10;i){if(i%20){couti#;continue;}}if(i10)coutEND;A.正确B.错误【答案】B【解析】会输出0#2#4#6#8#END第20题将下面C代码中的i100; i i 1修改为i200; i i 1其输出与当前代码输出相同。 intcnt0;for(inti0;i100;ii1)cnt1coutcnt;A.正确B.错误【答案】B【解析】改之前回输出 100 改后会输出 8因为 i i 1 导致步长一直增长i 的值0,1,3,7,15,…第21题交换下面C代码中的 i2 和 cnt1交换前后分别运行的两次输出相同。 inti,cnt0;cnt0;while(i10){i2;cnt1;}coutcnt;A.正确B.错误【答案】B【解析】i 没有初始化值是随机的每次运行结果可能都不一样。第22题下⾯的C代码执行后将输出45。 intcnt;for(inti0;i10;i)cnt1;coutcnt;A.正确B.错误【答案】B【解析】cnt 没有初始化值是随机的。第23题执行C代码cout (12 12.12)将报错因为12是int类型而12.12是float类型不同类型不能直接运算。 A.正确B.错误【答案】B【解析】int 和 double 可以运算运算时会自动把 int 转为 double。第24题在C代码中不可以将变量命名为false因为false是C语⾔的关键字。 A.正确B.错误【答案】A【解析】false 是 C 关键字关键字不能用来命名变量。第25题X是C的整型变量则表达式 3 X 5 求值结果是4。 A.正确B.错误【答案】B【解析】表达式 3 x 5 先计算 3 x再计算 (3 x) 5结果是布尔值 0 或 1。编程题题解洛谷 B4354 [GESP202506 一级] 假期阅读题解洛谷 B4355 [GESP202506 一级] 值日