下面的 C++ 代码执行时如果先输入 `10` 回车后输入 `20` 并回车,其输出是( )。
int N, M;
printf("第一个数:");
scanf("%d", &N);
printf("第二个数:");
scanf("%d", &M);
printf("%%(N+M)=%d", N+M, int(N+M));
- A. `30=30`
- B. `10+20=30`
- C. `%(N+M)=30`
- D. 错误提示
正确答案:C
int N, M;
printf("第一个数:");
scanf("%d", &N);
printf("第二个数:");
scanf("%d", &M);
printf("%%(N+M)=%d", N+M, int(N+M));
正确答案:C
%% 表示输出一个百分号,所以 %%(N+M)= 显示成 %(N+M)=;第一个 %d 被 N+M=30 替换(第二个实参多余、忽略),得 %(N+M)=30,选 C。 💡 printf 里要输出百分号本身得写 %%(单个 % 会被当占位符)。多余的实参会被忽略,不报错。想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?
进入 GESPPASS 开始练习