C++蓝桥杯等级考试真题--第7级
答案:D
解析:步骤如下:
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
解析:初始化n为1,sum为0,然后当n小于10时进入循环。
在循环内,如果n是奇数(即n%2 != 0),则将n累加到sum上,接着n自增。循环直到n不小于10时结束。最后,输出累积的sum值。
因此:sum = 1 + 3 + 5 + 7 + 9 = 25,故答案为B
【参考程序】
- #include
-
- 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
- #include
- 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
得到平均工资,由于是整数除法,结果会自动向下取整。最后,程序输出这个平均工资值。