返回 课程

信奥AC之路-1级

0% 完成
0/0 步骤
  1. 第1课 开发环境与基础输出
    5 主题|小节
  2. 第2课 算术运算符
    7 主题|小节
  3. 第3课 printf与运算输出
    7 主题|小节
  4. 第4课 数的进制与拆位
    6 主题|小节
  5. 第5课 变量与基础运算
    17 主题|小节
  6. 第6课 常量与取整运算
    8 主题|小节
  7. 第7课 关系运算
    8 主题|小节
  8. 第8课 逻辑运算
    9 主题|小节
  9. 第9课 输入与计算进阶
    10 主题|小节
  10. 第10课 if语句及双分支语句
    8 主题|小节
  11. 第11课 if语句及双分支进阶
    11 主题|小节
  12. 第12课 三目运算
    9 主题|小节
  13. 第13课 多分支、多if和switch语句
    11 主题|小节
  14. 第14课 循环(基本输出)
    7 主题|小节
  15. 第15课 循环(While+If)
    8 主题|小节
  16. 第16课 循环(计数、求和、求乘积)
    10 主题|小节
  17. 第17课 循环进阶(While+)
    8 主题|小节
  18. 第18课 do-while及while其他用法
    8 主题|小节
  19. 第19课 For循环基础
    9 主题|小节
  20. 第20课 For循环进阶
    8 主题|小节
课 3, 主题|小节 4
进行中

3.3 真题精讲

2025年9月22日
课 进展
0% 完成

真题1

printf("Hello,GESP!");

判断:配对双引号内,不可以有汉字
A. 配对双引号内内容,不可以有汉字
B. 配对双引号内可以相互改变为英文单引号而输出效果不变
C. 配对双引号内可以相互改变为三个连续英文单引号而输出效果不变
D. 配对双引号内可以相互改变为三个连续英文双引号而输出效果不变

正确答案:A

详细解析:

  1. 语法规则:printf函数的字符串参数必须用双引号(“”)包围,这是C/C++的基本语法要求。

  2. 各选项分析:

    • 选项A:错误。printf的双引号内是可以包含汉字的,C++支持Unicode字符集,可以正常输出中文字符。
    • 选项B:错误。单引号和双引号在C++中有完全不同的含义:
      • 双引号(“”)用于表示字符串
      • 单引号(”)用于表示单个字符
        因此不能互换使用。
    • 选项C:错误。三个连续的单引号不是C++的有效语法。
    • 选项D:错误。三个连续的双引号也不是C++的有效语法。
  3. 实际使用示例:

printf("你好,GESP!");  // ✓ 正确,可以包含汉字
printf('Hello,GESP!');  // × 错误,不能用单引号
printf(Hello,GESP!);    // × 错误,必须用引号

真题2

C++语句 printf(“%d#%d”,2,3) 执行后的输出是什么?

A. 2#3
B. #
C. 2,3
D. 23

正确答案:A

详细解析:

  1. printf格式串解析:

    • “%d#%d” 是格式控制字符串
    • 第一个%d会被第一个参数2替换
    • #是普通字符,会原样输出
    • 第二个%d会被第二个参数3替换
  2. 替换过程:

    • “%d#%d”
      → “2#%d” (第一个%d被2替换)
      → “2#3” (第二个%d被3替换)
  3. 关键点说明:

    • %d是整数格式符,用于输出整数值
    • 格式字符串中的非格式符字符(如这里的#)会原样输出
    • 参数会按顺序替换格式字符串中的格式符

真题3

C++语句 printf(“5%2={%d}n”,5 % 2) 执行后的输出是什么?

A. 1={1}
B. 5%2={5%2}
C. 5%2={1}
D. 5 ={1}

正确答案:C

详细解析:

  1. 语句分解:

    • 格式字符串:”5%2={%d}n”
    • 参数:5 % 2 (取模运算)
    • n 表示换行符
  2. 运算过程:

    • 5 % 2 的计算:
      • 5 ÷ 2 = 2 余 1
      • 所以 5 % 2 = 1
  3. 输出分析:

    • “5%2=” 会原样输出
    • {%d} 中的%d会被计算结果1替换
    • 最后输出 “5%2={1}”
  4. 易错点:

    • %在printf中有特殊含义,但这里它是作为普通字符输出的
    • 如果要在printf中表示真正的百分号,需要用%%

真题4

C++语句 printf(“6%2={%d}”, 6%2) 执行后的输出是什么?

A. “6%2={6%2}”
B. 6%2={0}
C. 0={0}
D. 6%2={6}

正确答案:B

详细解析:

  1. 语句分析:

    • 格式字符串:”6%2={%d}”
    • 参数:6 % 2 (取模运算)
    • {%d} 用于显示计算结果
  2. 运算过程:

    • 6 % 2 的计算:
      • 6 ÷ 2 = 3 余 0
      • 所以 6 % 2 = 0
  3. 输出形成过程:

    • “6%2=” 部分原样输出
    • {%d} 被替换为计算结果0
    • 最终输出:”6%2={0}”
  4. 注意事项:

    • % 在这里作为普通字符输出
    • 格式串中的%d会被后面的参数值替换
    • 大括号{}也会原样输出
  5. 一些相关的例子:

printf("6%%2=%d", 6%2);    // 输出:6%2=0 (%%表示输出%)
printf("%d", 6%2);         // 输出:0 (仅输出结果)
printf("6%2=%d", 6%2);     // 输出:6%2=0