首页 / 客观题库

80780 - CSP-S2026阅读程序1

其他算法

题目(材料题)

01 #include <iostream>
02 #include <cstring>
03 using namespace std;
04 int a[100];
05 string s;
06 int gen[13] = { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 };
07 int main() {
08  cin >> s;
09  for (int i = 0; i < 32; ++i) {
10      a[i] = s[i] - '0';
11  }
12  for (int i = 32; i < 44; ++i) {
13      a[i] = 0;
14  }
15  for (int i = 0; i < 32; ++i) {
16      if (a[i] == 0) continue;
17      for (int j = 0; j < 13; ++j) {
18          a[i + j] ^= gen[j];
19      }
20  }
21  for (int i = 32; i < 44; ++i) {
22      cout << a[i];
23  }
24  cout << endl;
25  return 0;
26 }
 
输入保证为一个长度恰为32的'0/1'字符串。
||
(1分)当输入为32个'0'时,程序输出12个0。()

✔ 正确

✘ 错误

程序运行结束后,数组a中下标从0到31的元素一定全部为0。()

✔ 正确

✘ 错误

若将第12~14行(为a[32]到a[43]补0的循环)删除,会改变程序输出的结果。()

✔ 正确

✘ 错误

( 单选 )
关于第6行定义的数组gen,下列说法正确的是()。

A gen共有12个元素,表示一个12位的除数

B gen共有13个元素,表示一个13位的被除数

C gen共有13个元素,其中gen[0]是除数的最高位

D gen共有13个元素,其中gen[12]是除数的最高位

( 单选 )
该程序实现的功能,最准确的说法是()

A 将输入的32位串看成二进制数$M$,输出$M$与13位二进制数1100000001111按位异或的结果

B 将输入串视为32位二进制数$M$,在其后补12个0(即计算$M\times x2^{12}$),再对它做模2除法求余数,并输出12位余数

C 对输入的32位串逐位取反并输出结果

D 统计输入串中1的个数,并把该个数用12位二进制表示后输出

( 单选 )
若将第16行if(a[i]==0)continue;删除,说法正确的是()

A 程序输出的结果不会改变

B 可能造成程序运行错误

C C.程序能够正常输出一个12位0/1'串,但是输出结果与输入的s无关

D 程序运行结束后,a[0]的值一定为0

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36