题型:单选题
下面的函数 selectTopK() 实现从 n 个学生中选出前 k 名成绩最好的学生颁发奖学金(不需要对所有
学生完全排序,只需要找出前 k 名),则横线上应填写( )。
struct Student {
string name;
int score;
};
void selectTopK(Student students[], int n, int k) {
for (int i = 0; i < k; i++) {
int maxIdx = i;
for (int j = i + 1; j < n; j++) { // 填空内容
if (students[j].score > students[maxIdx].score) {
maxIdx = j;
}
}
if (maxIdx != i) {
Student temp = students[i];
students[i] = students[maxIdx];
students[maxIdx] = temp;
}
}
} | A.int j = 0; j < n; j++ | B.int j = i + 1; j < n; j++ |
| C.int j = i; j < n; j++ | D.int j = 1; j <= n; j++ |
更新时间:2026-07-22 09:40:04
|
【知识点】
CCF—GESP C++四级
抱歉! 您未登录, 不能查看答案和解析点击登录
相似题推荐
判断题
下面程序执行后输出 2010 。
int x = 10;
void f() { int x = 20; cout << x; }
int main() {
f();
cout << x;
} | A.正确 | B.错误 |
2026-09-29
判断题
下面程序可以正常编译并输出 10 。
int calc(int x, int y = 10);
int calc(int x) { return x * 2; }
int calc(int x, int y) { return x * y; }
int main() {
cout << calc(5);
} | A.正确 | B.错误 |
2026-09-29
判断题
下面程序能够把 Hello 写入 data.txt 文件中。
ofstream fout("data.txt");
cout << "Hello";
fout.close(); | A.正确 | B.错误 |
2026-09-29
单选题
执行 climb(6) 的返回值为( )。
int climb(int n){
if(n <= 2) return n;
int a = 1, b = 2, c = 0;
for(int i = 3; i <= n; i++){
c = a + b;
a = b;
b = c;
}
return c;
} | A. 8 |
B. 13 |
| C. 5 |
D. 10 |
2026-09-29
单选题
已知:
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int (*p)[4] = a;则表达式 *(*(p + 2) + 1) 的值为( )。
| A. 6 |
B. 10 |
| C. 9 |
D. 11 |
2026-09-29
