找到 375 道单选题
EXY-SC-0075
第 301 题

在 C++ 中,如果 a 和 b 均为 float 类型的变量,那么二者如果相差足够小(比如0.000001),就可以视作相等。比如 2.2345676 和 2.2345677 就可以视作相等。下列哪个表达式能用来正确判断“a等于b”( )。

A

( (b-a) < 0.000001 )

B

( (b-a) <= 0.000001 )

C

( abs(b-a) <= 0.000001 )

D

( sqrt(b-a) <= 0.000001 )

语言: C++
GESP真题 二级
2025.3
单选题号: 15
EXY-SC-0074
第 302 题

在 C++ 中,( )最适合填入横线处连续 5 次正确生成 1 到 10 之间的随机整数?

for(int i=0; i<5; i++)
    __________________;
A

rand( ) % 11

B

rand( ) % 10

C

rand( ) % 10 + 1

D

rand() % 9 + 1

语言: C++
GESP真题 二级
2025.3
单选题号: 14
EXY-SC-0073
第 303 题

已知 C++ 代码和执行后的期望输出如下,相关说法正确的是( )。

int i,j;
int last, N;

cout << "请输入层数N:";
cin >> N;

last = 1;
for (i = 1; i < N; i++){
    for (j = 1; j < i + 1; j++){ // L1
        if (last > 9)
            last = 1;

        cout << last << " ";
        last += 1;
    }
    printf("\n");
}
请输入层数N:10
1
2 3
4 5 6
7 8 9 1
2 3 4 5 6
7 8 9 1 2 3
4 5 6 7 8 9 1
2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
A

倒数第二行的 printf("\n") 有错,应该修改为 cout << endl;printf( ) 函数不能输出换行

B

last += 1 修改为 last = last + 1 执行效果相同

C

代码中 L1 标记行中的 j < i + 1 应修改为 j < i

D

外层 for 循环前的 last = 1 修改为 last = 0 执行效果相同

语言: C++
GESP真题 二级
2025.3
单选题号: 13
EXY-SC-0072
第 304 题

哥德巴赫猜想是指大于 2 的偶数都可以分解为两个质数之和,下面的代码用于验证 4-1000之内的偶数能否分解为两个质数之和。下面 C++ 代码中假设 isPrime() 是已经定义好用于判断正整数 N 是否为质数,返回 bool 值。对该段代码,错误的说法是( )。

for (i = 4; i < 1000; i += 2)
    for (j = 2; j < i; j++)
        if (isPrime(j) && isPrime(i-j)){
            printf("%d=%d+%d\n", i, j, i-j);
            break;
        }
A

将代码 isPrime(j) && isPrime(i-j) 修改为 isPrime(j) == true && isPrime(i-j) == true 效果相同

B

代码执行后,输出的一对质数,一定是小的数在前

C

即便将外层循环中 i 的上界 1000 修改为很大的整数,也不能说从数学上证明了哥德巴赫猜想

D

根据题意,break 语句应该移到 if 语句块之外

语言: C++
GESP真题 二级
2025.3
单选题号: 12
EXY-SC-0071
第 305 题

在数学中 N! 表示 N 的阶乘,即 1 到 N 的乘积,如 3!=1*2*3,且 0! = 1。下面的两段 C++ 代码用于求 1 到 N 的阶乘之和,如 N 为3,则结果是 9(1!+2!+3!的值)。选项中的说法正确的是( )。

// 实现1
int i,N;
cin >> N;
int tnt = 0, last = 1;
for (i = 1; i < N + 1; i++){
    last *= i;
    tnt += last;
}
cout << tnt << endl;
// 实现2
int i,N;
cin >> N;
int tnt = 0, tmp;
for (i = 1; i < N + 1; i++){
    tmp = 1;
    for (int j = 1; j < i + 1; j++)
        tmp *= j;
    tnt += tmp;
}
cout << tnt << endl;
A

虽然实现 1 的代码短小,但效率并不高

B

实现 2 的代码效率更高,且更易于理解

C

实现 1 因为应用了前项计算结果,计算量更小,因此效率高

D

两种实现,效率几乎一致

语言: C++
GESP真题 二级
2025.3
单选题号: 11
当前页显示 301 - 305 ,共 375 道单选题