#GESP202412C3T1. 单选题(每题 2 分,共 30 分)

    ID: 3350 Type: Objective Tried: 8 Accepted: 1 Difficulty: 2 Uploaded By: Tags>GESP三级计算机基础程序设计基础数组字符串进制转换

单选题(每题 2 分,共 30 分)

单选题(每题 2 分,共 30 分)

第 1 题

下列二进制表示的十进制数值分别是( )

[10000011]原 = ( )
[10000011]补 = ( )

{{ select(1) }}

  • 125-1253-3
  • 3-3125-125
  • 3-33-3
  • 125-125125-125

第 2 题

关于计算机中的编码,下列说法中错误的是( )

{{ select(2) }}

  • 对于无符号数,原码就是真值
  • 正数的反码是其本身
  • 负数的反码和补码是不一样的
  • 负数的反码,在其原码的基础上,各个位取反

第 3 题

1616 进制数 B2025B2025 转换成 88 进制数是( )

{{ select(3) }}

  • 26200452620045
  • 20045262004526
  • 729125729125
  • 24200452420045

第 4 题

625.625625.625 变成二进制是( )。

{{ select(4) }}

  • 1001110001.1011001110001.101
  • 101.101101.101
  • 101.1001110001101.1001110001
  • 1001110001.11011001110001.1101

第 5 题

下面逻辑运算中,正确的是( )。

{{ select(5) }}

  • 5 && 3 == 0
  • 5 | 3 == 8
  • 5 || 3 == 11
  • 5 & 3 == 0001

第 6 题

补码 1111 11011111\ 1101 进行运算 1111 1101>>11111\ 1101 >> 1 以后得到的结果是( )

{{ select(6) }}

  • 1111 11001111\ 1100
  • 2-2
  • 1111 11011111\ 1101
  • 1111 10101111\ 1010

第 7 题

下列代码输出的是

string s = "1234@@chenadai";
string str = "12345";
s.replace(1, 5, str);
cout << s << endl;

{{ select(7) }}

  • 12345
  • 2345@
  • 112345chenadai
  • 12345chenadai

第 8 题

a | 10aa1010 都是 1010 进制,且二进制表示最高位为 11)运算的结果是( )。

{{ select(8) }}

  • 使 aa 的二进制表示从右往左的第二位为 11
  • 使 aa 的二进制表示从右往左的第一位为 00
  • 使 aa 的二进制表示从右往左第二位为 00
  • 使 aa 的二进制表示最高位为 00

第 9 题

下列程序输出的是( )。

string ch = "hello";
if (ch[5] == NULL)
{
    cout << "right" << endl;
}
else if (ch[5] == '\0')
{
    cout << "wrong" << endl;
}
else
{
    cout << "hello" << endl;
}

{{ select(9) }}

  • right
  • wrong
  • hello
  • 不能正确执行

第 10 题

下列程序中,假设一个字符占用的内存空间是 11,下列程序中,ch 占用的内存空间是( )

char ch[] = "hello world";
size_t ret = strlen(ch);
cout << ret << endl;

{{ select(10) }}

  • 1111
  • 1010
  • 1313
  • 1212

第 11 题

下列程序最后输出的是( )

int a = 65;
cout << tolower(a) << endl;

{{ select(11) }}

  • 6565
  • A
  • a
  • 9797

第 12 题

想要计算从数字 nn 到数字 mm 之间(包含 nnmm )有多少个数字 dd 出现,下列程序哪个能够实现( )。

A.

int n, m, res, d;
cin >> n >> m >> d;
for (int i = n + C1; i <= m; i++) {
    int temp = i;
    while (temp) {
        if (temp % 10 == d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;

B.

int n, m, res, d;
cin >> n >> m >> d;
for (int i = n; i <= m; i++) {
    int temp = i;
    while (temp) {
        if (temp % 10 = d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;

C.

```cpp
int n,m,res=0,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
    int temp = i;
    while(temp){
        if(temp % 10 == d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;

D.

int n,m,res=0,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
    while(temp){
        if(temp % 10 == d) res++;
        temp /= 10;
    }
}
cout << res << endl;
return 0;

{{ select(12) }}

  • A
  • B
  • C
  • D

第 13 题

兔子五元一只,鸡三元一只,小鸭子一元三只,现在你有一百元要买一百只,兔子、鸡、鸭子,问兔子、鸡、鸭子各买多少只,每种必须至少一只,下列哪个程序能实现。( )。

A.

for(int i = 0; i <= 100; i++){
    for(int j = 0; j <= 100; j++){
        for(int k = 0; k <= 100; k++){
            if(i + j + k == 100 && 25 * i + 10 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}

B.

for(int i = 0; i <= 100; i++){
    for(int j = 0; j <= 100; j++){
        for(int k = 0; k <= 100; k++){
            if(i + j + k == 100 && 20 * i + 10 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}

C.

for(int i = 0; i <= 20; i++){
    for(int j = 0; j <= 34; j++){
        for(int k = 0; k <= 20; k++){
            if(i + j + k == 100 && 15 * i + 9 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}

D.

for(int i = 0; i <= 100; i++){
    for(int j = 0; j <= 100; j++){
        for(int k = 0; k <= 100; k++){
            if(i + j + k == 100 && 15 * i + 9 * j + k == 300)
                cout << i << " " << j << " " << k << endl;
        }
    }
}

{{ select(13) }}

  • A
  • B
  • C
  • D

第 14 题

求小于等于 NN 的素数的方法中,有一种方法是将所有从 22 到它本身减 11 的数都除一遍,如果不能整除,就是素数。下列哪个程序,体现了这种方法( )?

A.

if(N >= 3){
    cout<<2<<endl;
    for(int i = 2; i <= N; i++){
        for(int j = 2; j < i; j++){
            if(i % j != 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
        flag = 0;
    }
}

B.

if(N > 2){
    for(int i = 3; i <= N; i++){
        for(int j = 2; j < i; j++){
            if(i % j == 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
        flag = 0;
    }
}

C.

if(N > 2){
    cout<<2<<endl;
    for(int i = 3; i <= N; i++){
        for(int j = 2; j < i; j++){
            if(i % j == 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
        flag = 0;
    }
}

D.

if(N > 2){
    cout<<2<<endl;
    for(int i = 3; i <= N; i++){
        for(int j = 2; j < i; j++){
            if(i % j == 0){
                flag = 1;
            }
        }
        if(flag == 0){
            cout<<i<<endl;
        }
    }
}

{{ select(14) }}

  • A
  • B
  • C
  • D

第 15 题

工人工作一天,会得到一个金环作为工资报酬,某个工作需要 1515 天完成,一条 1515 个环的金环项链,为了严格执行每天工作结束时,完成对工人工资的结算,最少需要将金环项链剪裁成几段,每段几个金环( )

{{ select(15) }}

  • 44 段,分别是 11224488
  • 1515 段,每段 11
  • 66 段,分别是 3333332211
  • 99 段,分别是 222222222222111111