阅读程序1

📅 2026/8/6 10:42:55
阅读程序1
第一题C 源代码#include iostream using namespace std; ​ int n; int a[1005]; ​ int f(int x) { return x (x ^ (x - 1)); } ​ int g(int x) { int s 0; while (x) { x ^ f(x); s; } return s; } ​ int h(int x) { int s 0; for (int y x; y; y (y - 1) x) s f(y); return s; } ​ int main() { cin n; for (int i 0; i n; i) cin a[i]; for (int i 0; i n; i) cout g(a[i]) h(a[i]) \n; return 0; }判断题当某个输入的 a[i] 为 0 时该行输出一定为 0 0。对任意正整数 x函数 f(x) 的返回值一定是 2 的整数次幂。对任意正整数 x函数 g(x) 的返回值等于 x 的十进制位数。单选题4.当输入为1 12时输出为哪一个A. 2 12 B. 2 16 C. 3 16 D. 3 125.当输入为1 15时输出为哪一个A. 4 15B. 4 24C. 4 32D. 5 326.设正整数 x 的二进制表示中有 k 个 1则函数 h(x) 的时间复杂度最接近于哪一个A. O(k)B. O(log x)C. O(x)D. O(2^k)第二题C 源代码#include iostream #include algorithm using namespace std; ​ int n, m; int x[1005], y[1005]; int f[1005][1005]; ​ int main() { cin n m; for (int i 1; i n; i) cin x[i] y[i]; ​ for (int i 1; i n; i) { for (int j 0; j m; j) { f[i][j] f[i - 1][j]; if (j x[i]) f[i][j] max(f[i][j], f[i - 1][j - x[i]] y[i]); } } cout f[n][m] endl; return 0; }判断题若所有输入的 y [i] 都小于等于 0则程序输出一定为 0。若某个 i 满足 x [i] 0 且 y [i] 0则处理完第 i 轮后对任意 j (0 ≤ j ≤ m)都有 f[i][j] f[i - 1][j] y[i]。交换任意两组输入数据 (x[i],y[i]) 的先后顺序程序最终输出不变。单选题4.当输入为4 7 6 13 4 8 3 6 5 12时输出为。A. 12B. 13C. 14D. 195.若所有输入满足x[i] 1y[i] 两两不同且都为正整数m n则程序输出等于。A. 所有 y[i] 的和B. 最小的 m 个 y[i] 的和C. 最大的 m 个 y[i] 的和D. 最大的 n-m 个 y[i] 的和6.若所有输入满足所有 x[i] 都是偶数m 是奇数则程序输出一定与下列哪一个相同A. f[n][m - 1]B. f[n][m - 2]C. 0D. 无法确定