C++蓝桥杯等级考试真题--第7级

答案:D

解析:步骤如下:

  1. 首先,--a 操作会使 a 的值减1,因此 a 变为 3
  2. 判断 a > b 即 3 > 3,此时表达式为假,因为 --a 后 a 并不大于 b
  3. 因此,程序进入 else 分支, a * b = 3 * 4 = 12,故答案为D。

答案:B

解析:A. for(int i=1;i<= 6;++i):从1开始,每次增加1,直到6为止,包括6,因此循环次数为6(即1, 2, 3, 4, 5, 6)。

B. for(int i=6;i<0;--i):从6开始,每次减少1,直到小于0为止。由于初始值已经是6,即使减到0也不满足条件(因为是i<0),所以这个循环实际上不会执行,循环次数为0

C. for(int i=6 ;>0;i-=1):这里似乎有一个语法错误,应该是for(int i=6;i>0;i-=1)。假设修正后,它从6开始,每次减少1,直到大于0的条件不再满足,也就是在i变为0时停止,因此循环次数为6(即6, 5, 4, 3, 2, 1)。

D. for(int i=0 ;i<=10; i+=2):从0开始,每次增加2,直到10为止,包括10,因此循环次数为6(即0, 2, 4, 6, 8, 10)。

其中,选项B的循环次数与其他选项不同,它是唯一一个不执行任何循环体的语句,故答案为B

答案:B

解析:初始化n1sum0,然后当n小于10时进入循环。

在循环内,如果n是奇数(即n%2 != 0),则将n累加到sum上,接着n自增。循环直到n不小于10时结束。最后,输出累积的sum值。

因此:sum = 1 + 3 + 5 + 7 + 9 = 25故答案为B


【参考程序】

#include <iostream>

int main() {
    int n;
    std::cin >> n;

    for(int i = 1; i <= n; ++i) {
        std::cout << 2 * i << (i < n ? " " : "");
    }
    std::cout << std::endl;

    return 0;
}

解析:首先读取一个正整数n,然后使用for循环从1遍历到n,每次循环计算等差数列的当前项(首项2乘以当前索引i),并输出。如果当前项不是最后一个项,则输出后跟一个空格。这样就按照要求输出了首项为2、公差为2的等差数列的前n项。

【参考程序】

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n; // 输入工作周数

    vector<int> wages(n); // 创建一个动态数组来存储每周工资
    for(int i = 0; i < n; ++i) {
        cin >> wages[i]; // 输入每周的工资
    }

    int total = 0;
    for(int wage : wages) {
        total += wage; // 计算总工资
    }

    int average = total / n; // 计算平均工资,结果自动向下取整
    cout << average << endl; // 输出平均工资

    return 0;
}

解析:首先读取佩琪工作的周数n,然后使用一个动态数组wages来存储接下来输入的n个周的工资数值。通过遍历这个数组并累加所有的工资值到变量total中,之后将总工资除以周数n得到平均工资,由于是整数除法,结果会自动向下取整。最后,程序输出这个平均工资值。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部