#6154. gesp三级真题分类六:算法与逻辑

gesp三级真题分类六:算法与逻辑

算法与逻辑(共20题)

  1. 用穷举法找出所有满足 a+b+c=100 的正整数解,最多需要枚举多少次?( ) {{ select(1) }}
  • 100³
  • 100²
  • 100
  • 不确定
  1. 下列哪个数是完全平方数?( ) {{ select(2) }}
  • 144
  • 145
  • 146
  • 147
  1. 字符串 "abcba" 是回文串,判断回文串的最优时间复杂度是( ) {{ select(3) }}
  • O(1)
  • O(n)
  • O(n²)
  • O(logn)
  1. 下列哪个算法可以判断一个数是否为素数?( ) {{ select(4) }}
  • 枚举所有因子
  • 二分查找
  • 快速排序
  • 深度优先搜索
  1. 以下代码段的功能是( )
    int rev = 0;
    while(x > 0) {
        rev = rev * 10 + x % 10;
        x /= 10;
    }
    
    {{ select(5) }}
  • 求 x 的位数
  • 反转整数 x
  • 求 x 的各位平方和
  • 判断 x 是否为回文数
  1. 下列哪个问题适合用枚举法解决?( ) {{ select(6) }}
  • 求 1 到 100 的素数
  • 求解一元二次方程
  • 对数组排序
  • 求图的连通分量
  1. 以下代码输出结果是( )
    int sum = 0;
    for(int i=1; i<=100; i++) {
        if(i%3==0 && i%5==0) sum += i;
    }
    cout << sum;
    
    {{ select(7) }}
  • 315
  • 330
  • 300
  • 285
  1. 以下哪种方法可以高效判断一个数是否为 2 的幂次?( ) {{ select(8) }}
  • n % 2 == 0
  • (n & (n-1)) == 0
  • n == (n >> 1) << 1
  • n == n / 2 * 2
  1. 下列哪个数不是素数?( ) {{ select(9) }}
  • 17
  • 19
  • 21
  • 23
  1. 以下关于递归的说法,正确的是( ) {{ select(10) }}
  • 递归必须要有终止条件
  • 递归比循环效率更高
  • 所有问题都适合用递归解决
  • 递归不能有返回值
  1. 枚举法一定能找到问题的最优解。( ) {{ select(11) }}
  • 正确
  • 错误
  1. 两个完全平方数之和一定还是完全平方数。( ) {{ select(12) }}
  • 正确
  • 错误
  1. 字符串 "Hello" 反转后是 "olleH"。( ) {{ select(13) }}
  • 正确
  • 错误
  1. 判断一个数是否为 3 的倍数,可以看各位数字之和是否为 3 的倍数。( ) {{ select(14) }}
  • 正确
  • 错误
  1. 对于任意正整数 n,n & (n-1) 的结果一定小于 n。( ) {{ select(15) }}
  • 正确
  • 错误
  1. 百钱百鸡问题可以用三层循环穷举求解。( ) {{ select(16) }}
  • 正确
  • 错误
  1. 素数有无穷多个。( ) {{ select(17) }}
  • 正确
  • 错误
  1. 回文串的判断需要 O(n²) 的时间复杂度。( ) {{ select(18) }}
  • 正确
  • 错误
  1. 完全平方数一定是偶数。( ) {{ select(19) }}
  • 正确
  • 错误
  1. 辗转相除法可以用来求最大公约数。( ) {{ select(20) }}
  • 正确
  • 错误