返回 课程

信奥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 主题|小节
课 12, 主题|小节 7
进行中

12.6 模拟题

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

“小朋友们,为了帮助大家更好地准备考试,我们来尝试一些模拟题,”我说,”这些题目会全面测试你们对三目运算的理解。”

一、选择题(5题)

第1题:下面C++代码执行后输出是( )。

int a = 10, b = 5;
cout << (a % b == 0 ? a / b : a % b);

□ A. 2 □ B. 0 □ C. 5 □ D. 10

答案:A

解析: a % b == 0为真(10可以被5整除),所以表达式的值为a / b,即10 / 5 = 2。

第2题:下面C++代码执行后输出的是( )。

int x = 7;
cout << (x > 0 ? x < 5 ? "小" : "中" : "负");

□ A. 小 □ B. 中 □ C. 负 □ D. 不输出

答案:B

解析: x > 0为真(7大于0),然后计算x < 5,这为假(7不小于5),所以输出”中”。

第3题:下面C++代码执行后输出的是( )。

int n = 10;
cout << (n % 3 == 0 ? "能被3整除" : n % 3 == 1 ? "余数为1" : "余数为2");

□ A. 能被3整除 □ B. 余数为1 □ C. 余数为2 □ D. 输出错误

答案:B

解析: n % 3 == 0为假(10不能被3整除),然后计算n % 3 == 1,这为真(10 / 3的余数是1),所以输出”余数为1″。

第4题:下面C++代码执行后,变量c的值是( )。

int a = 3, b = 4, c;
c = a + b > 6 ? a * b : a + b;

□ A. 7 □ B. 12 □ C. 6 □ D. 0

答案:B

解析: a + b > 6为真(3 + 4 = 7大于6),所以c的值为a * b,即3 * 4 = 12。

第5题:下面C++代码等价于( )。

result = value >= 0 ? sqrt(value) : -1;

□ A.

if(value >= 0) {
    result = sqrt(value);
}

□ B.

if(value >= 0) {
    result = sqrt(value);
} else {
    result = -1;
}

□ C.

if(value >= 0) {
    result = -1;
} else {
    result = sqrt(value);
}

□ D.

result = sqrt(value);
if(value < 0) {
    result = -1;
}

答案:B

解析: 三目运算等价于if-else结构,当条件value >= 0为真时结果为sqrt(value),为假时结果为-1。

二、判断题(5题)

第1题:三目运算符可以嵌套使用,但不能链式使用。( )

答案:错误

解析: 三目运算符既可以嵌套使用,也可以链式使用。链式使用的形式如:condition1 ? value1 : condition2 ? value2 : value3。

第2题:表达式 (a > b) ? a : b 的功能等同于求两数的最大值。( )

答案:正确

解析: 这个表达式会比较a和b的大小,返回较大的值,与求最大值的功能相同。

第3题:在三目运算中,如果条件为真,冒号后面的表达式也会被计算。( )

答案:错误

解析: 三目运算具有短路求值的特性,如果条件为真,只会计算问号后的表达式,冒号后的表达式不会被计算。

第4题:三目运算符(?:)的优先级高于加法运算符(+)。( )

答案:错误

解析: 三目运算符的优先级低于加法运算符,因此a + b ? c : d会被解释为(a + b) ? c : d。

第5题:表达式 flag ? var = 10 : var = 20 在C++中是合法的。( )

答案:错误

解析: 在C++中,这种写法是不合法的。赋值语句不能直接作为三目运算的分支。正确的写法应该是 var = flag ? 10 : 20。

三、编程题(3题)

第1题:奇偶性输出

题目描述:输入一个整数,如果是偶数,则输出它除以2的结果;如果是奇数,则输出它乘以2的结果。

样例输入

7

样例输出

14

参考代码

#include <iostream>
using namespace std;

int main() {
    int n;                      // 定义整数变量n
    cin >> n;                   // 输入一个整数
    
    cout << (n % 2 == 0 ? n / 2 : n * 2); // 使用三目运算判断奇偶性并执行对应操作
    
    return 0;
}

第2题:成绩评级

题目描述:输入一个0到100之间的成绩,使用三目运算符输出对应的等级:90分及以上为”优秀”,60到89分为”及格”,60分以下为”不及格”。

样例输入

85

样例输出

及格

参考代码

#include <iostream>
using namespace std;

int main() {
    int score;                  // 定义整数变量score表示成绩
    cin >> score;               // 输入一个成绩
    
    // 使用嵌套的三目运算判断成绩等级
    cout << (score >= 90 ? "优秀" : (score >= 60 ? "及格" : "不及格"));
    
    return 0;
}

第3题:三数排序

题目描述:输入三个不同的整数,使用三目运算符按照从小到大的顺序输出这三个数。

样例输入

7 2 9

样例输出

2 7 9

参考代码

#include <iostream>
using namespace std;

int main() {
    int a, b, c;                // 定义三个整数变量
    cin >> a >> b >> c;         // 输入三个整数
    
    // 使用三目运算找出最小值
    int min_val = (a < b ? (a < c ? a : c) : (b < c ? b : c));
    
    // 使用三目运算找出最大值
    int max_val = (a > b ? (a > c ? a : c) : (b > c ? b : c));
    
    // 中间值等于三数之和减去最大值和最小值
    int mid_val = a + b + c - min_val - max_val;
    
    // 按顺序输出
    cout << min_val << " " << mid_val << " " << max_val;
    
    return 0;
}