ARTICLE · 1178285
2026年入门级第一轮C++软件能力认证:阅读程序22-27题


CCF- CSP - J
一、
阅读程序


判断题
22. 当输入为 123 456 时,程序输出为 0579。( )
23. 假设输入的两个数均不含前导零,则程序输出的结果也一定不会含有前导零。( )
24. 将第21行改为 c[i] = a[i] + b[i]; 后,程序输出的结果一定比原来的结果小。( )
25. 当输入为 12345 678 时,输出为( )。
A. 012923
B. 013023
C. 13023
D. 130230
26. 将第22行的 if (c[i]>=10) 改为 if (c[i]>10) 后,当输入为 95 15 时,输出为( )。
A. 01010
B. 110
C. 140
D. 1410
27. 假设输入的两个数均为 n 位正整数(不含前导零,且它们的和小于 10^n),则程序输出的字符串一定满足( )。
A. 第一个字符一定不为 '0'
B. 长度一定为 n
C. 长度一定为 n+1,且第一个字符为 '0'
D. 长度可能为 n+2
二、
参考答案
程序解析:
功能:C++ 普通整型存不下超大数字,用数组模拟手工竖式加法,实现两个超长正整数相加。思路:把字符串逆序存入数组(低位放数组下标 0,方便从低位开始进位计算),逐位相加处理进位,最后逆序输出结果。

前导0为什么会产生原因

第二十二题答案:正确
123+456=579,程序输出固定 max(len)+1 位,即 0579。
第二十三题答案:错误
若两数最高位相加无进位,程序仍输出最高位的 0,如 123+456=0579。
第二十四题答案:错误
去掉进位后,c[i] 可能大于等于10,输出数字位数和数值都会改变,不一定变小。
第二十五题答案:B
12345+678=13023,程序输出6位:013023。
第二十六题答案:A
c[i]=10 不进位。95+15:个位 5+5=10 不进位,十位 9+1=10 不进位,输出 01010。
第二十七题答案:C

商业合作
1.定制版教具、竞赛版教具。
2.國際機器人教育發展協會师资培训
3.开展青少年机器人等级评测授权服务
4.四个教学点,任意选择
















































































