万卷网 > 题目详情
题型:单选题

某游戏的排行榜系统需要实时更新玩家分数。每次只有一个玩家的分数发生变化,排行榜已经是按分数降序排列的。现在需要将更新后的玩家调整到正确位置。下面的函数 updateRanking() 要实现上述功能,则两处横线上应分别填写( )。

#include <string>
using namespace std;

struct Player { 
  string name; 
  int score; 
 }; 

// 玩家索引playerIdx的分数刚刚更新,需要调整位置 
void updateRanking(Player players[], int size, int playerIdx) { 
  Player updatedPlayer = players[playerIdx]; 

  if (playerIdx > 0 && updatedPlayer.score > players[playerIdx - 1].score) { 
    int i = playerIdx; 
    while (i > 0 && updatedPlayer.score > players[i - 1].score) { // 第一空
      players[i] = players[i - 1]; 
      i--; 
    } 
    players[i] = updatedPlayer; 
  } 
  else if (playerIdx < size - 1 && updatedPlayer.score < players[playerIdx + 1].score) { 
    int i = playerIdx; 
    while (i < size - 1 && updatedPlayer.score < players[i + 1].score) { // 第二空
      players[i] = players[i + 1]; 
      i++; 
    } 
    players[i] = updatedPlayer; 
  } 
}
A.
i > 0 && updatedPlayer.score > players[i - 1].score 
i < size - 1 && updatedPlayer.score < players[i + 1].score
B.
i < size - 1 && updatedPlayer.score < players[i + 1].score 
i > 0 && updatedPlayer.score > players[i - 1].score
C.
i > 0 && updatedPlayer.score < players[i - 1].score 
i < size - 1 && updatedPlayer.score < players[i + 1].score
D.
i > 0 && updatedPlayer.score < players[i - 1].score 
i < size - 1 && updatedPlayer.score > players[i + 1].score
更新时间:2026-07-22 15:37:43 |
【知识点】 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
公众号
客服 反馈
顶部